[GDG DevFest Seoul 2016] 초보자를 위한 기계학습과 Tensorflow
머신러닝의 역사와 이론
컴퓨터는 Adaptive System이다.
사람에 있어서 Adaptive System은 ‘뇌’
30년대 처음 사람들이 Adaptive System을 연구했을 때, 오징어를 통해 모델링을 하였고, 이를 HH model이라고 한다.
HH model을 단순화하여 개량한 것이 FN model, 그 후 ANN model이라고 한다.
70년대 STDP라는 개념이 나왔고 이는 비슷한 작동을 하는 뉴런은 연결이 되고, 자극을 받을수록 발전한다는 것이다.
이렇게 해서 생긴 것이 Neural Network이다.
원숭이를 통한 실험이 있었는데, 갓태어난 원숭이를 가로선만 있는 방안에 가두고 3개월을 키우면 그 후 세로선을 보여줘도 인식을 하지 못한다. 이 원숭이는 세로선의 존재 자체를 인식하지 못하는 것이다.
Neural Network는 90년대에 발전하여 CNN, SOM, RNN 등이 생겼다 사라졌고, 돈과 시간의 투자로 현재 다시 부상 중이다.
뉴런은 트랜지스터와 같이 입력 두 개를 받아 하나의 출력을 하는 모습을 가지고 있으며, 자극을 통해 특정한 path가 강화된다. 이 개념은 Neural Network + Machine Learning의 개념이 되었다.
Neural Network는 수 많은 정보 중에 특징을 가진 Feature를 찾아내고, 그 안에서 다시 Feature를 찾아내어 카테고리를 나누거나 기억을 하는 것이다.
예를 들어 A가 1,1,3 이라는 숫자를 쓴다면 그것을 본 B는 A의 필체를 기억하는 것이 아니라 1,1,3이라는 숫자 데이터를 기억하는 것!!!
Self-organizing map이란 차원을 줄이자는 아이디어이다. 차원이란 서로 오써거널한 영역을 의미하며, 격자 모양의 map 위에 어떠한 물체가 떨어진다고 하면, 이 물체를 피해서 격자를 재구성하는 것이다. 이는 로봇 청소기에 사용되는 기술이다. (가구를 피해서 청소를 하는 똑똑한 청소기!) 근데…로봇 청소기에서 끝난 기술이다….
다시 뉴런을 살펴보니 여러 층의 레이어가 존재하고 같은 레이어 안의 뉴런들은 서로 연결되어 있지 않지만 상위 레이어는 하위 레이어와 연결이 되어있다. 인간의 뉴런은 8개의 레이어를 가지고 있으며, 개발자들은 컴퓨터도 8개의 레이어로 만들면 되는 줄 알고 개발을 하였다…그러나 결국 망했다.
2012년 이후, 돈 많은 구글이 22~27개의 레이어를 만들어보기 시작했고, 이는 결국 Deap Learning이 된다.
위에 개념이 현대에 정리된 것이
- 차원안에 의미있는 것을 인식하는 Embedding dimension
- 복잡한 n차원을 최적화하는 Hyper dimension
- 차원을 구분짓는 Hyper plane 이 있다. (따로 조사 필요)
머신러닝은 어렵구나….생물도 알고 수학도 알고 물리도 알아야하네……이론이 너무 어려워