본문 바로가기
카테고리 없음

딥 러닝 소개

by CHML 2016. 7. 18.
1. 딥 러닝 (Deep Learning)

2012년, 구글은 1만 6천개의 컴퓨터 프로세스와 10억 개 이상의 neural networks 그리고 deep neural networks (DNNs)을 이용하여 유튜브에 업로드 되어 있는 천만 개가 넘는 비디오에서 고양이를 인식해내는 프로젝트에 성공하였다. 구글이 천만 개가 넘는 비디오에서 고양이를 인식하는데 사용한 기술이 바로 딥 러닝이다.



최근에는 마이크로소프트, 페이스북 등의 IT 기업에서도 딥 러닝 분야의 연구팀을 인수하거나 자체 개발 부서를 운영하고 있다. 마이크로소프트에서 개발한 감정 인식 API와 페이스북에서 개발한 얼굴 인식 API는 모두 놀라운 정확도를 보여주고 있다.


2. 딥 러닝의 정의

많은 자료와 기사에서 딥 러닝을 소개하지만, 자료마다 딥 러닝의 정의가 다르다. 현재까지도 많은 연구에서 딥 러닝을 다양한 의미로 이용하고 있다. 딥 러닝의 정의를 몇 가지로 요약하자면 아래와 같다 [1].


  • 정의 1: 비선형 정보 처리를 수행하는 계층 (layer)을 여러 겹으로 쌓아서 학습 모델을 구현하는 머신러닝 기술의 한 분야
  • 정의 2: 데이터 간의 복잡한 관계를 이해하기 위해 학습을 중첩하여 수행하는 알고리즘
  • 정의 3: 생물의 지능과 더욱 유사하게 다층 구조의 학습을 수행하는 머신러닝의 새로운 분야

위의 세 정의는 비슷한 면이 있지만, 각각은 머신러닝 기술의 한 분야, 알고리즘, 머신러닝의 새로운 분야로 딥 러닝을 상이하게 정의하고 있다. 그러나 다층 (multiple layers)이라는 단어는 모든 정의에서 공통적으로 등장하고 있다. 즉, 딥 러닝이라는 것은 '기존의 머신러닝 알고리즘을 다층으로 쌓아서 만든 것의 총칭' 정도로 이해하면 딥 러닝에 대한 자료를 읽는데 문제는 없을 것이다.


3. 딥 러닝의 역사

기존의 많은 머신러닝 알고리즘과 데이터 분석 기법은 shallow architecture라는 1~2개의 계층으로 이루어진 모델을 이용하였다. Shallow architecture를 이용하는 대표적인 모델은 아래와 같은 것다.


  • Multi-Layered Perceptrons (MLPs)
  • Maximum Entropy Models (MaxEnt Models)
  • Support Vector Machines (SVMs)
  • Gaussian Mixture Models (GMMs)

Shallow architecture 형태의 알고리즘들은 단순하고 잘 정돈된 문제에 대해서는 매우 높은 정확도를 보여주었다. 그러나 이러한 형태의 알고리즘들은 음성 인식이나 실세계의 언어 또는 이미지와 같이 실세계의 복잡한 데이터를 처리하는데 있어서는 많은 한계점이 있었다 [1]. 아래의 [그림 1]은 shallow architecture의 대표적인 알고리즘인 multi-layered perceptron과 deep architecture의 대표적인 알고리즘인 convolutional neural network의 구조를 보여준다.


[그림 1] Shallow architecture와 deep architecture


[그림 1]에서 나타나듯이 shallow architecture는 입력층과 출력층을 제외하면 1~2개의 계층으로만 구성되는 반면에 deep architecture는 다양한 계층이 중첩되어 하나의 구조를 형성한다.

딥 러닝은 인공신경망을 기반으로 발전하였다. 딥 러닝이 등장하기 이전에도 deep neural networks (DNNs)으로 분류되는 다층 feedforward neural networks 또는 MLPs가 존재했었다. 1980년대에는 주로 역전파 (backpropagation)라고 불리는 학습 알고리즘을 이용하여 인공신경망을 학습하였는데, 입력층과 출력층 사이의 은닉층의 수가 많아짐에 따라 역전파 알고리즘은 학습 정확도가 급격하게 감소하는 문제점이 있었다 [2]. 특히, 인공신경망의 학습 중에 발생하는 지역 최적점 수렴 문제와 과적합 (overfitting) 현상은 인공신경망의 정확도를 심각하게 감소시켰다.


[그림 2] 지역 최적점 수렴 현상 (a)과 과적합 현상 (b)에 대한 도식적 표현


지역 최적점 수렴 문제는 여러 전역 최적화 (global optimization) 알고리즘을 이용하여 해결할 수 있었지만, 과적합 현상은 많은 노력에도 불구하고 해결할 수가 없었다. 그러나 2000년대에 들어 막대한 계산량을 처리할 수 있는 프로세서가 등장하고, 정보 처리 분야의 연구가 진척됨에 따라 이러한 과적합 문제를 완화하는 많은 연구들이 소개되었다. 특히, 최근에는 전세계적으로 데이터를 개방하는 추세가 지속되자 인공신경망 연구자들은 막대한 양의 학습 데이터를 확보할 수 있었고, 막대한 양의 학습 데이터는 인공신경망의 정확도를 크게 향상시켰다. 이러한 복합적인 요소를 결합하여 인공신경망의 성능을 크게 향상시키려는 시도를 딥 러닝이라고 생각하여도 무방하다.






References

[1] Li Deng, Dong Yu. 2014. Deep Learning: Methods and Applications. Foundations and Trends in Signal Processing, Vol. 7, Issue 3-4, 2014, pp. 197-387.

[2] Y Bengio. 2009. Learning Deep Architectures for AI. Foundations and Trends in Machine Learning, Vol. 2, Issue 1, January 2009, pp. 1-127.