단단한 머신러닝 Ch. 1 리뷰

단단한 머신러닝 Ch. 1 리뷰

전체 내용을 요약하기보단, 특별히 기억할 만한 내용이나 흥미로운 내용 위주로 리뷰한다. 다시 말해, 단단한 머신러닝을 이미 읽어본 독자를 기준으로 글을 쓴다.

1.2 머신러닝의 기본 용어

학습 또는 훈련: 데이터를 통해 모델을 만들어나가는 과정

가설: 학습 모델(데이터 속에 잠재된 어떠한 규칙)

머신러닝 모델에게 중요한 것은 일반화(generalization) 능력

이미 주어진 학습 데이터에 맞춰 정해진 출력을 내는 것은 이미 대부분의 모델에서 가능하며, 그것보단 unseen dataset에 대한 합리적인 예측 능력이 중요하다.

1.3 가설 공간

버전 공간(version space): 훈련 데이터 세트와 일치하는 '가설들의 집합'

1.4 귀납적 편향

귀납적 편향(inductive bias): 특정한 유형의 가설에 대한 편향

💡
최근 transformer, cnn 관련 논문(CoAtNet, Perceiver 등등)을 많이 읽어본 사람이라면 많이 익숙한 단어일 것이다. 실제로 관련 논문을 읽어보면 Convolution은 어떤 픽셀은 인접한 픽셀과 큰 연관이 있다는 전제(inductive bias)하에 설계된 연산이며, (global) self-attention은 그러한 inductive bias가 없다고 서술한다. 더불어 CNN은 이러한 inductive bias가 존재하기에 학습 데이터셋이 방대하지 않아도 어느 정도의 성능을 낼 수가 있지만, transformer 기반 모델은 그러한 inductive bias가 존재하지 않기에 JFT-300M 정도의 초거대 데이터셋이 있어야 제대로 된 성능을 낼 수 있다. (ViT, DeiT 논문 참고)
또 CoAtNet에서 소개하는 convolution을 일부 섞은 self-attention은 self-attention이면서도 convolution의 inductive bias를 섞었다는 점에서 흥미롭게 볼 수 있다.

모델의 일반화 능력을 '합리적으로' 만드는데 있어 귀납적 편향, inductive bias는 매우 중요하다. 가장 간단한 종류의 귀납적 편향은 '오컴의 면도날 원리'로서, 만약 다수의 가설이 훈련 데이터에 fit한다면 가장 간단한 가설을 선택해야 한다는 원리이다.

하지만 오컴의 면도날 원리가 모든 종류의 문제에 대해 가장 적절한 귀납적 편향인지는 고민해볼 문제이고, 유감스럽게도 실제로 이렇게 '가장 간단한 가설'이 '최선의 가설'이 아닌 경우는 자주 발생한다.

해결하고 싶은 문제에 맞춰 귀납적 편향을 '적절히' 설계하지 않는다면 학습 데이터에 fit한 가설을 설계하더라도 일반화 문제에 있어 이점을 전혀 얻을 수 없다. 모든 문제의 출현 비중이 균등하게 나타난다면, 학습 알고리즘에 관계 없이 이들의 기대 성능은 똑같기 때문이다. (NFL 정리, '공짜 점심은 없다') 물론 이는 모든 문제가 출현하는 기회가 같거나 모든 문제가 똑같이 중요하다는, 실제 상황에는 비현실적인, 전제를 깔고 있으며, 실제로 문제를 해결할 경우에는 이러한 균등 분포가 나타나지 않으므로, 해결하고자 하는 문제의 종류에 맞춰 적절한 귀납적 편향(inductive bias)를 설계한다면 성능(test set evaluation)상의 이점을 얻을 수 있다.

그리고 책에서는 아래와 같이 서술한다.

따라서 NFL 정리의 가장 큰 교훈은 구체적인 문제를 떠나서 '어떤 학습 알고리즘이 가장 좋은가?' 라는 논의를 하는 것은 아무런 의미가 없다는 것입니다. 왜냐하면, 모든 잠재적 문제를 고려한다면 모든 학습 알고리즘이 동등하게 좋을 것이기 때문입니다. 만약 알고리즘의 좋고 나쁨을비교해야 한다면 특정하고 구체적인 학습 문제에 대해서 비교해야 합니다. 마지막으로, 어떤 문제에서 좋은 성능을 보인 학습 알고리즘이 다른 문제에서는 생각만큼 좋지 못하다면, 학습 알고리즘 본연의 귀납적 편향과 잘 맞지 않을 때가 많다는 것도 기억해야 합니다.

내가 이에 덧붙이고 싶은 잡설이 있는데, 책에서는 "모든 잠재적 문제를 고려한다면 모든 학습 알고리즘이 동등하게 좋다"고 언급하지만, "모든 잠재적 문제"가 아니라 "자연에 나타나는 대부분의 문제"로 한정한다면 아닐지도 모른다. (단순히 '가설'로서, '흥미거리'로 제안하는 내용일 뿐이니 무겁게 받아들이진 말자) 이와 관련해서 굉장히 흥미로운 논문도 몇 있는데, Pretrained Transformers As Universal Computation Engines이 바로 그것이다. 관련해서 PR-12에서 이진원님이, 그리고 Yannic Kilcher가 해설한 영상이 유튜브에 있으니 참고해 보길 권한다.

Perceiver 역시도 이러한 측면에서 굉장히 흥미로운 모델이라고 할 수 있는데, inductive bias를 크게 명시적으로 설계하지 않고, 크게 strict한 전제를 두지도 않고 단순히 "set"에 해당하는 데이터셋에 대해 학습을 진행했기 때문이다. 물론 순서가 중요한 데이터의 경우 fourier encoding을 통해 순서에 대한 정보를 삽입해 주었지만, 이는 오히려 어떤 데이터든 관계없이 set으로만 나타낼 수 있으면 fourier feature을 더해주는 등 약간의 변형만 거쳐서도 universal하게 training이 가능한 모델이 있지 않을까~ 하는 생각을 하게 만든다. 인간의 뇌라던가?

인간의 뇌는 굉장히 훌륭한(그러나 파악과 모방이 아직까지 힘든) inductive bias를 가지고 있다~고 판단할 수 있고, 그러나 그럼에도 양자역학 등이 직관적으로 이해되지 않는 것을 보면 "모든 종류의 문제"에 대해서 추론이 가능한 것은 아니지 않을까 싶다. 뭐 당연히 "일상의", "자연의" 문제에 대해서는 상당량 유효한 추론을 한다고 볼 수 있겠지만?

뭐 하여튼, NFL 정리가 성립함에도 "자연에 나타나는 문제"를 범용적으로 해결하는 어떠한 모델과 inductive bias가 존재하지 않을까~ 하는 가설은, 흥미로운 가설임에 틀림없다.

위에 대충 네 문단으로 써둔 건 별 근거 없는, 흥미거리에 가까운 잡소리므로 진지하게 받아들이진 말자.

1.5 발전 과정

머신러닝의 발전 과정을 1950년대부터 소개한다.

연결주의(connectionism) 학습과 기호주의(symbolism) 학습 등등에 대해 말하는데, 나는 '딥러닝이 아닌 머신러닝'에 대한 지식이 부족해서 아직 읽어도 뭔지 모르겠는 내용이 많았다.

커널 기법에 대해서는 앞으로 이 책을 읽고 리뷰를 쓸 생각이다. 내가 이 책을 고른 주된 이유 중 하나가 kernel이기 때문.

1.6 응용 현황

2010년 이전, 2000대 초반부터 DARPA와 NASA에서 모두 머신러닝의 중요성에 대해 강조했다고 하여 놀랐다. 그 때는 딥러닝도 지금처럼 발전하지 않았고 사용처가 지금처럼 많지는 않았을 텐데...

자율주행에 대해서는 아래 글을 참고해 보면 좋을 것 같다. 뭐 전망 좋은 분야임에는 틀림이 없지만, "완전" 자율주행은 일론 머스크가 말하길 본인 예전 생각처럼 빠르게 오지 않는단다.

머스크 “이렇게 어려울 줄은”...완전 자율주행, 생각보다 천천히 오고 있다
머스크 이렇게 어려울 줄은...완전 자율주행, 생각보다 천천히 오고 있다 WEEKLY BIZ불투명한 자율주행차의 꿈

또 머신러닝을 통해 "인류가 어떻게 학습하는가"?를 이해할 수 있기에 머신러닝은 정보과학에서 매우 중요한 위치를 차지하고 있으며, 만물의 본질, 생명 본성, 인간 자아 등에 대한 탐구와도 밀접한 연관이 있으므로 자연과학의 성질도 띄고 있다고 말한다. 뭐 물론 이렇기 때문에 내가 이렇게 흥미를 가지고 공부하고 있는 거지만. 관련해서 Sparse Distributed Memory, SDM에 대해서도 서술하는데, SDM과 Attention Mechanism의 유사성에 대해 지적한 Attention Approximates Sparse Distributed Memory라는 논문도 관심이 있다면 읽어보자. 관련 영상

1.7 더 읽을거리

오컴의 면도날 원칙은 물리학, 천문학 등에서 광범위하게 사용되는 기초원칙이나, 항상 적용이 잘 되는 원칙은 아니다. 오컴의 면도날 외의 가설 선택 원칙으로, 고대 그리스 철학자 에피쿠로스가 제안한 다해석원칙(principle of multiple explanations)에 대해서도 책에서 소개하는데(경험 관찰과 일치하는 모든 가설을 보류하라는 주장이다), 이것이 앙상블 학습과 부합하는 면이 있다는 서술에서 저자의 지식량이 대단하구나 느꼈다. 고대 그리스 철학자가 무슨 말을 했는지 나는 전혀 관심이 없었는데...

연습문제

연습문제는 공식 해설은 없고 역자가 해설을 소개하는 티스토리 블로그가 있다.

1.3의 경우, 역자 해설에서는 뭐라 답을 말하는데 이건 그냥 "오차항"이라는 귀납적 편향을 넣어주면 되는 게 아닌가 싶다. 선형 모델에서 $y=w^Tx+\epsilon$에서 $\epsilon$처럼 $N(0,1)$을 따른다 가정하는 오차항을 넣어주는 것처럼...

1.5의 경우, semantic search 같은 걸 말하나 싶었지만 이러한 '딥러닝'에 근거한 내용보다 '딥러닝이 아닌 머신러닝'의 응용사례를 말하라는 것 같은 느낌을 받았다. 뭐 좋은 답안이 있는지는 모르겠네.