brunch

You can make anything
by writing

C.S.Lewis

by 히말 May 13. 2021

페드로 도밍고스의 머신러닝 쇼케이스 (6) 유추주의자

[책을 읽고] 페드로 도밍고스의 <마스터 알고리즘> (6)

유추주의자의 머신러닝은 대단히 쉽다. 어떤 것이 개인지 고양이인지 알고 싶다면 내가 알고 있는 개나 고양이 이미지와 비교해 보면 된다는 것이다. 유비추리, 줄여서 유추라고 말하는 방법이고, 인간이 본능적으로 사용하는 알고리즘이다. 그래서 가장 간단한 분류기, 예컨대 k-근접 분류기(KNeighborsClassifier)는 유추주의자의 것이다.


단 두 개의 특성, 예컨대 눈 사이의 거리와 귀의 각도로만 개와 고양이를 구별할 수 있다고 해보자. 두 특성을 x, y축에 대응시키면 데이터를 좌표평면에 표시할 수 있다. 이 때 어떤 새로운 이미지를 판별해야 한다. 그 이미지에서 두 가지 특성을 추출한 뒤, 이것을 좌표에 표시한다. 그 다음, 가장 가까운 점을 찾는다. 이것이 최근접 이웃이다. 최근접 이웃이 개라면 새 이미지는 개의 이미지라고 할 수 있다. k는 몇 개의 최근접 이웃을 고려할 것인가를 결정하는 패러미터다. 만약 k=3이라면 최근접 이웃 세 개를 고려하게 된다. 가장 가까운 이웃 3을 살펴보니 개가 하나고 고양이가 둘이라면, 새 이미지는 고양이다.


이것은 극단적으로 단순한 알고리즘이다. 그러나 의사결정트리에서 알 수 있듯이, 단순하다고 얕볼 수는 없는 노릇이다. 더구나 컴퓨터는 인간이라면 상상도 하지 못하는 n차원 공간에서 이 계산을 수행해낸다.







페드로 도밍고스가 유추주의자의 마스터 알고리즘이라 칭하는 것은 서포트 벡터 머신이다. 그는 서포트 벡터를 매우 직관적으로 설명한다. 위 그림은 포지스탄과 네걸랜드라는 두 나라의 영역을 표시하고 있다. 플러스 사인은 포지스탄, 마이너스 표시는 네걸랜드의 도시다. 중세유럽의 봉건 체제처럼 사람들이 주로 도시에 산다고 가정하자. 양국 도시까지 등거리를 이루는 선을 양국간 국경이라 생각하는 것은 매우 상식적이다. 그렇게 만들어진 것이 그림의 실선이다.


그런데 가만히 보면 모든 도시를 다 표시하지 않고도 국경을 정할 수 있다는 사실을 쉽게 알 수 있다. 예컨대 그림 하단 가장 왼쪽에 있는 도시는 없어도 국경에 영향을 미치지 않는다. 이렇게 필요 없는 도시를 모두 지운 다음에 남는 것들, 즉 국경을 정하는 데 꼭 필요한 사례들이 바로 서포트 벡터다.


회귀 방정식을 공부해본 사람들은 알겠지만, 회귀 방정식에서 우리는 평균제곱근오차(Mean Squared Error, MSE)를 최소화하려고 한다. 마찬가지로 서포트 벡터 머신은 세포트 벡터들 사이의 거리, 즉 마진(margin)을 최대한 넓히려고 한다. 그래서 서포트 벡터 머신을 Large Margin Classifier라고도 부른다.


서포트 벡터 머신의 최적화는 결국 마진을 최적화하는 작업이다. 최대한 헷갈리지 않겠다는 것이다. 이로 인해 서포트 벡터 머신은 과적합의 위험이 상대적으로 작은 편이다.



*****



머신러닝에는 과적합, 국소최적점의 딜레마 외에도 '차원의 저주'라는 게 있다. 차원의 저주 역시 유추주의자들만의 문제는 아니다. 다만 저자는 때가 되었다고 생각했는지, 이 장에서 차원의 저주를 소개한다. 머신러닝 알고리즘이 특성 n개를 고려한다면, 특성 세트는 n차원 평면에 표시된다. 3차원 이상은 인간의 머리로 상상하기 어렵다. 그런데 차원의 저주는 단지 상상하기 어렵다는 이야기 이상의 것이다.


3차원의 오렌지 껍질을 벗긴다고 상상하자. 껍질 두께가 반지름의 10%라면, 껍질을 제거하고 남은 과육은 전체 부피의 73%(0.9^3)로 줄어든다. 오렌지가 100차원이라면 어떨까? 남는 것은 0.9^100, 즉 0.03%에 불과하다. 고차원 평면에서 각 데이터들은 소행성 대에 분포한 소행성들처럼 서로에게서 아주 멀리 떨어져 있다. 게다가 고차원 정규 분포는 도넛 모양이다. 즉, 데이터는 가운데에 모여 있지 않고 바깥으로 흩어진다. 페드로 도밍고스는 머신러닝에 있어 차원의 저주가 과적합에 이어 두 번째로 나쁜 것이라 말한다.


차원의 저주를 파훼하는 방법은 두 가지라고 저자는 말하는데, 사실 그 둘은 서로 얽혀 있다. 첫째, 필요없는 차원을 제거하는 것이다. 둘째, 가중치를 쓰는 방법이다. 쓸모없는 차원에 가중치를 줄이는 것이니, 둘은 하나의 방법이라 봐도 무관할 것이다. 사실 이 부분이 재미있는 이유는 차원 축소가 초끈이론을 연상시키기 때문이다. 초끈이론(의 다수설)은 3차원을 제외한 여분의 공간 차원이 미소공간에 말려들어가 있다고 설명한다. 아주 가는 실 위를 걷는 개미에게 세계가 1차원인 것과 같다. 그 실은 지름도 가지고 있고, 어디엔가 단면도 있겠지만, 개미에게는 없는 것과 마찬가지다. 페드로 도밍고스는 이렇게 비유한다.



방의 천장이 높지만 데이터의 위치는 카펫에 앉은 얇은 먼지 층처럼 모두 바닥에 가까운 경우도 있다. 이것은 운이 좋은 경우다. 3차원 문제처럼 보이지만 사실은 2차원 문제에 더 가깝기 때문이다. (309쪽)


이쯤이 차원축소를 설명하기에 딱 좋은 타이밍이지만, 도밍고스는 다음 장으로 그 이야기를 넘긴다. 차원축소는 대표적인 비지도학습 알고리즘이기 때문이다.




유추주의자 블라디미르 바프닉(Vladimir Vapnik)



매거진의 이전글 출퇴근의 종말

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari