요즘 머신러닝이 많이 뜨는 건 사실이고

Multi Layer Perceptron 이니 뭐니 하면서

뇌의 구조를 컴퓨터가 모델링한 것이다 라고 이야기들 하는데


 이건 제한적인 진실이다.


 애초에 머신 러닝의 이론적 기반이 Bayesian 통계인데

Bayesian 통계를 자세히 들여다 보면

결국 이건 Prior, Posterior Distribution 이 있고

그 사이에  Likelihood 라는 주어진 모델 파라미터에 independent 한 놈이 있어서


Posterior ~= Prior * Likelihood


라는 공식이 성립하게 되고,


여기서 모델 파라미터가 단일 갯수거나 손으로 꼽을 수 있는 갯수라면 그냥 Model averaging 써서 해결하면 되지만

파라미터 갯수가 너무 커서 어떤 파라미터의 부분집합이 최적인지 알 수 없을 때 MCMC를 보통 쓴다.


예를 들어

영화평점에 관한 파라미터(IMDB, Rotten Tomato 레이팅, 관객 수, 출연 배우 수상경력 등등)가 수백개가 된다면 

부분 집합의 갯수만 해도 2^n(parameter) 즉 2의 지수승 개의 집합을 모두 검증해야 하기 때문에

이것을 하지 않고도 최적 모델을 추출해 낼 수 있는 프레임워크가 바로 MCMC(마르코브 연쇄 몬테 카를로) 인 것이다.


이것에 이론적 기반을 두고 있는 과거 머신러닝 모델들이 있었는데

대표적인 것이 바로 RBM 되시겠다.


사실 Gradient descent 방법으로 최적 모델 파라미터를 찾아내는 딥 러닝의 이론적 기반은 거의 MC 시뮬레이션에 근거를 두고 있다고 봐도 무방하다.

그리디하지만 빠르기 때문

이런 것들을 잘 알고, shortcominng 이 무엇이며 그것을 어떻게 극복할 수 있을지는

통계학에 대한 profound 한 knowledge 가 있어야 한다.


 사람들이 그냥 


김성훈 교수 강좌 보고, CS 231N 보면 되요! 


라고 말들 하는데 나는 그 사람들이 과연 전문가인지 의심이 든다. 

베이지언 통계와 머신 러닝과의 관계는

알고리즘과 현대적 프로그램의 개발 사이의 관계와 사뭇 다르기 때문이다.


후자는 몰라도 할 수 있는 것이지만

전자는 모르면 전문가가 될 수 없기 때문이다.


실제로 구글의 데이터 사이언티스트들은 거의 다 베이지언 통계학자라고 봐도 무방하다.

그리고 그 사람들은 머신러닝 뿐만이 아니라 다른 통계학적 기법들도 모두 어느 정도 다 알고 있다.

데스크에 주어지는 일은 자신이 열심히 판 분야의 것이 항상 아닐 수도 있기 때문에

머신 러닝의 기법을 아는 것 보다는 통계학 전문가가 되는 것이

오히려 딥 러닝을 이용해서 프로페셔널하게 일을 할 수 있는 능력을 가지는 지름길이다.


수박 겉핥기로는 아무것도 할 수 없다