본문 바로가기

Enginius/Machine Learning

Deep Learning Survey

Deep learning의 발전사



기존의 SVM이나 kernel machine 들과 같은 shallow architecture와 구별하기 위해 여러 개의 layer로 이뤄진 구조를 multi-layer network라고 부른다. [1] 


1960년대에 최초의 artificial neural network가 연구되기 시작하였다. 이 때는 input, output의 두 개의 layer를 사용하였고, 각 layer의 neuron과 neuron을 잇는 synapse의 weight를 학습시켜서 물체 인식을 하는 연구가 진행되었다. 이 때는 training data를 통해서 weight를 자동으로 학습할 수는 없었고, 사람이 수동으로 튜닝을 해야만 했다. 이러한 구조는 XOR 문제를 풀 수 없다는 근원적인 단점을 가지고 있었다. 


1985년도에 perceptron들에 기반한 여러 개의 hidden layer를 갖는 neural network가 Geoffrey Hinton에 의해서 개발되기 시작하였다. 특히 [2], [3]의 논문은 (같은 내용) 인용 수를 합쳐보면 거의 3만에 이를 만큼 새로운 분야를 개척했다고 평가 받고 있다. 이 논문의 2저자인 Geoffrey E. Hinton은 현재 Deep learning의 대가로 알려져 있다. 비슷한 시기에 Geoffrey E. Hinton이 낸 논문 [4]은 Boltzmann machine에 대한 연구로 현재 Deep learning이 Restricted Boltzmann machine을 사용한다는 것을 고려할 때 이미 30년 전부터 초석을 다져왔다고 볼 수 있다. 현재 Geoffrey E. Hinton은 Yoshua Bengio과 함께 Deep learning의 선구자로 알려져 있다. 

이러한 multi-layer perceptron (MLP)는 글자 인식 등에 널리 사용되었지만 supervised learning 알고리즘이므로 unlabeled data를 처리할 수 없고, learning 속도가 너무 느리다는 단점이 있다. 또한 learning이 gradient 기반 방식이므로 initial state에 크게 영향을 받고, local optima에 빠진다는 단점이 있다. 


1995년에 Vladimir N. Vapnik과 연구자들이 support vector machine (SVM)을 처음 제안하였다. SVM은 kernel function을 통해서 input data를 다른 높은 차원의 공간으로 mapping을 하고, 이 공간에서 classification을 하는 구조를 갖고 있다. 이러한 간단한 구조덕분에 SVM은 빠른 시간에 학습이 가능하고, 여러 실제적인 문제에 잘 적용이 되었다. 하지만 shallow architecture를 갖고 있다는 측면에서 SVM은 AI에 있어서 좋은 연구 방향은 아니라고 평가 받는다. [5] 


[1]에서 AI 측면에서 긍정적인 구조는 다음의 측면을 가져야 한다고 제안한다. 

1) input data를 통해서 prior knowledge를 학습할 수 있어야 한다. 

2) 여러 개의 layer를 갖는 구조여야 한다. 

3) 여러 개의 학습 가능한 parameter를 갖고 있어야 한다. 

4) 확장 가능해야 한다. 

5) Supervised learning 만이 아니라 multi-task learning, semi-supervised learning 등의 학습도 가능해야 한다. 


위의 다섯 가지 특성은 Deep learning이 다른 구조 (MLP, SVM 등)들과 다른 특성이다. 예를 들면 MLP는 supervised learning 만이 가능하고, SVM은 하나의 layer를 갖는 shallow architecture이다. 


기본적으로 Deep learning은 여러 개의 layer를 갖는 구조를 지칭하므로 수 많은 구조가 가능 할 수 있다. 하지만 그 중에서도 Deep Belief Network (DBN) 이 가장 큰 milestone이라고 할 수 있다. 2006년도에 [6]에서 Geoffrey E. Hinton은 Deep Belief Network (DBN) 이라는 구조를 제안하였다. DBN은 기존의 fully connected Boltzmann machine을 변형하여 layer와 layer 사이에만 connection이 있는 restricted Boltzmann machine을 사용하여서 학습을 좀 더 용이하게 하였다. 또한 기존의 back-propagation 방법이 아닌 Gibbs sampling을 이용한 contrastive divergence (CD) 방식을 사용해서 maximum likelihood estimation (MLE) 문제를 풀었다. 즉 training data에서 input과 output이 필요한 것이 아니기 때문에 unsupervised learning과 semi-supervised learning에 적용할 수 있게 되었다. 또한 최상위 층에 MLP 등을 이용해서 supervised learning에서 사용될 수 있는 장점이 있다. 


Deep learning 연구 Topic 들 


Deep Belief Network (DBN)이 처음 등장한 것은 [6]에서 이었다. DBN은 기존 neural network의 discriminative 한 특성과 다르게 probabilistic generative model이다. Generative model은 observation가 hidden variable (여기선 label)이 있을 때 p(Label | Observation)의 posterior와 p(Observation | Label)의 likelihood를 모두 계산할 수 있는 반면에 discriminative model은 posterior만을 계산할 수 있다. 그렇기 때문에 Generative model은 label이 없는 데이터에도 적용될 수 있고, 바꿔 말하면 unsupervised learning이 가능하다는 장점이 있다. 이 부분이 기존의 MLP과 DBN이 갖는 근본적인 차이점이다. 


이렇듯 Deep learning은 기본적으로 unsupervised learning 알고리즘이다. 그렇기 때문에 일종의 feature extractor로 사용될 수 있다. [7]에선 DBN에서 학습되는 feature가 인간의 시각을 담당하는 뇌의 V2 영역과 실제로 비슷한 역할을 한다는 것을 보였다. 즉 Deep learning의 방향이 AI 관점에서 긍정적이란 것을 보인 논문이다. [8]에선 DBN이 dimension reduction 관점에서 다른 방식들 (PCA, back-propagation autoencoder) 에 갖는 장점들을 설명하였다. 


DBN을 정확하게 학습시키기 위해서는 가능한 모든 hidden variable등의 경우의 수만큼 연산을 해야 한다. 하지만 [9]에서는 이를 Gibbs sampling을 이용한 contrastive divergence (CD)를 통해서 근사하였다. 이 논문은 통해서 DBN의 확장에 큰 breakthrough가 된 중요한 논문 중 하나다. 


Convolutional Neural Network (CNN)은 multi-layer neural network로 이미지와 동영상 등과 같은 2차원 데이터를 위한 구조이다. [10] 최근 [11]에서는 CNN과 DBN을 결합하여 convolutional deep belief network (CDBN)을 제안하였다. 기존의 DBN과 다르게 CDBN은 2차원 구조를 갖는 input에 적합한 방법이고, 주변 pixel들과의 관계 역시 고려할 수 있다는 장점이 있다. 


DBN은 기본적으로 시간의 흐름을 고려하지 않는다. 특히 CD를 포함한 대부분의 학습은 모든 데이터가 독립적인 관계를 갖는다고 가정을 한다. 이러한 시간의 흐름을 고려하기 위해서 [12]에서는 hierarchical temporal memory (HTM) 라는 구조를 제안하였다. 이 구조는 인간 뇌의 신피질의 구조를 모방해서 만들었고, Hebb rule을 이용한 강화 학습을 통해서 synapse 들을 학습시킨다. HTM의 이름에서 알 수 있듯이 모든 데이터는 temporal하게 들어온다고 가정을 하고 있다. 하지만 구조가 복잡하고, 학습해야 할 parameter가 많기 때문에 많은 곳에 실제적으로 적용되지는 못하고 있는 상황이다. 


Deep learning의 효용성을 보이기 위한 연구 역시 많이 진행되어왔다. 가장 대표적인 연구가 MNIST dataset을 이용한 연구이다. MNIST는 사람이 손으로 쓴 0~9까지 숫자를 쓴 것을 모아놓은 dataset이다. Convolutional network를 사용했을 때 숫자 인식 정확도가 99.7%까지 나온다. [13] 그 외에도 얼굴 인식 [14], 음성 인식 [15], 일반적 물체 인식 [10], 자연어 인식 [16] 등에 사용되었다. 


Reference


[1] Bengio, Yoshua, and Yann LeCun. "Scaling learning algorithms towards AI."Large-Scale Kernel Machines 34 (2007).

[2] Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. "Learning representations by back-propagating errors." Nature 323.6088 (1986): 533-536.

[3] Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. "Learning representations by back-propagating errors." Cognitive modeling 1 (2002): 213.

[4] Ackley, David H., Geoffrey E. Hinton, and Terrence J. Sejnowski. "A learning algorithm for Boltzmann machines." Cognitive science 9.1 (1985): 147-169.

[5] Mo, Dandan. "A survey on deep learning: one small step toward AI." (2012).

[6] Geoffrey E. Hinton, Simon Osindero, and Yee-Whye Teh. "A fast learning algorithm for deep belief nets." Neural computation 18.7 (2006): 1527-1554.

[7] Lee, Honglak, Chaitanya Ekanadham, and Andrew Ng. "Sparse deep belief net model for visual area V2." Advances in neural information processing systems. 2007.

[8] Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of data with neural networks." Science 313.5786 (2006): 504-507.

[9] Hinton, Geoffrey E. "Training products of experts by minimizing contrastive divergence." Neural computation 14.8 (2002): 1771-1800.

[10] Huang, Fu Jie, and Yann LeCun. "Large-scale learning with svm and convolutional for generic object categorization." Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 1. IEEE, 2006.

[11] Lee, Honglak, et al. "Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations." Proceedings of the 26th Annual International Conference on Machine Learning. ACM, 2009. 

[12] Hawkins, Jeffrey, et al. "Architecture of a hierarchical temporal memory based system." U.S. Patent Application 11/351,437.

[13] Ciresan, Dan, Ueli Meier, and Jürgen Schmidhuber. "Multi-column deep neural networks for image classification." Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012.

[14] Osadchy, Margarita, Yann Le Cun, and Matthew L. Miller. "Synergistic face detection and pose estimation with energy-based models." The Journal of Machine Learning Research 8 (2007): 1197-1215.

[15] LeCun, Yann, and Yoshua Bengio. "Convolutional networks for images, speech, and time series." The handbook of brain theory and neural networks 3361 (1995).

[16] Bengio, Yoshua, et al. "Greedy layer-wise training of deep networks." Advances in neural information processing systems 19 (2007): 153.


'Enginius > Machine Learning' 카테고리의 다른 글

Gaussian Process Bayes Filter  (0) 2014.02.17
Reinforcement Learning  (5) 2014.02.07
Gaussian Process Mixture  (0) 2014.01.13
Computer science: The learning machines  (0) 2014.01.09
Gaussian Process Approximations (PITC, D2FAS)  (0) 2013.10.15