딥 러닝

딥 러닝의 역사

MIT가 2013년을 빛낼 10대 혁신기술 중 하나로 선정 하고 가트너(Gartner, Inc.)가 2014 세계 IT 시장 10대 주요 예측 에 포함시키는 등 최근들어 딥 러닝에 대한 관심이 높아지고 있지만 사실 딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념으로 역사를 따지자면 최소 1980년 Kunihiko Fukushima에 의해 소개 된 Neocognitron 까지 거슬러 올라가야 한다.
1989년에 얀 르쿤과 그의 동료들은 오류역전파 알고리즘(backpropagation algorithm) 에 기반하여 우편물에 손으로 쓰여진 우편번호를 인식하는 deep neural networks를 소개 했다. 알고리즘이 성공적으로 동작했음에도 불구하고, 신경망 학습에 소요되는 시간(10 개의 숫자를 인식하기 위해 학습하는 시간)이 거의 3일이 걸렸고 이것은 다른분야에 일반적으로 적용되기에는 비현실적인 것으로 여겨졌다.
많은 요소들이 느린 속도에 원인을 제공했는데, 그 중 하나는 1991년 Jürgen Schmidhuber의 제자였던 Sepp Hochreiter에 의해 분석된 vanishing gradient problem(지역최솟값에 머무르게 되는 원인)이었다. 또한 불연속 시뮬레이션에서 초기 상태를 어떻게 선택하느냐에 따라 수렴이 안되고 진동 또는 발산하는 문제, 트레이닝셋에 너무 가깝게 맞추어 학습되는 과적합 (Overfitting) 문제, 원론적으로 생물학적 신경망과는 다르다는 이슈들이 끊임 없이 제기되면서 인공신경망은 관심에서 멀어졌고 90년대와 2000년대에는 서포트 벡터 머신 같은 기법들이 각광받게 된다.
본격적으로 딥 러닝이란 용어를 사용한 것은 2000년대 딥 러닝의 중흥기를 이끌어간다고 평가할 수 있는 제프리 힌튼 과 Ruslan Salakhutdinov에 의해서이며, 기존 신경망의 과적합 문제를 해결하기 위해 이들은 unsupervised RBM(restricted Boltzmann machine)을 통해 학습시킬 앞먹임 신경망(Feedforward Neural Network)의 각 층을 효과적으로 사전훈련(pre-trainning)하여 과적합을 방지할 수 있는 수준의 initialize point를 잡았고, 이를 다시 supervised backpropagation를 사용하는 형태로 학습을 진행한다.
또한 2013년에는 신호처리학회인 ICASSP에서 RBM을 대체하여 과적합을 방지할 수 있는 Drop-out 이라는 개념이 소개되면서 사전훈련보다 훨씬 더 간단하고 강력한 형태로 과적합을 방지할 수 있게 되었다.

왜 다시 딥 러닝인가?

딥 러닝이 부활하게 된 이유는 크게 세 가지로 꼽힌다.
첫 번 째는 앞서 딥 러닝의 역사에서 언급한 바 있는 기존 인공신경망 모델의 단점이 극복되었다는 점이다. 그러나 과적합 문제만 해결되었다고 해서 느린 학습시간이 줄어드는 것은 아니다.
두 번 째 이유로, 여기에는 하드웨어의 발전이라는 또다른 요인이 존재 한다. 특히 강력한 GPU는 딥 러닝에서 복잡한 행렬 연산에 소요되는 시간을 크게 단축시켰다.
마지막으로 언급하지만 가장 중요한 세 번 째 이유로 빅 데이터를 들 수 있다. 대량으로 쏟아져 나오는 데이터들, 그리고 그것들을 수집하기 위한 노력 특히 SNS 사용자들에 의해 생산되는 다량의 자료와 태그정보들 모두가 종합되고 분석 되어 학습에 이용될 수 있다.
- 인공신경망의 학습에 사용되는 트레이닝벡터는 이름이 붙어 있는(labeled) 데이터여야 하는데(supervised learning의 경우) 대량의 트레이닝셋 모두에 label을 달아주는 일은 불가능한 일이다. 이런 이유로 초기 학습에 사용되는 일부 데이터에 대해서만 지도학습(supervised learning)을 수행하고 나머지 트레이닝셋에 대해서는 비지도학습(unsupervised learning)을 진행하며, 학습된 결과는 기존 학습의 결과와 앞서 분석된 메타태그 정보들을 종합하여 인식기가 완성 된다.
딥 러닝의 부활 이후 다양한 분야, 특히 자동 음성 인식(ASR, automatic speech recognition)과 컴퓨터비전 분야에서 최고수준의 성능을 보여주고 있으며 이들은 보통 딥 러닝의 새로운 응용들의 지속적인 성능 향상을 위해 만들어진 TIMIT(Texas Instruments와 MIT가 제작한 음성 Database), MNIST(이미지 클러스터링을 위한 hand-written 숫자 이미지 데이터베이스로 National Institute of Standards and Technology가 제작) 등의 데이터베이스를 사용했다. 최근에는 Convolution Neural Networks 기반의 딥 러닝 알고리즘이 뛰어난 성능을 발휘하고 있으며, 컴퓨터비전과 음성인식등의 분야에서 특히 탁월한 성능을 보이고 있다.

알고리즘

다양한 종류의 심층 신경망 구조가 존재하지만, 대부분의 경우 대표적인 몇 가지 구조들에서 파생된 것이다. 그렇지만 여러 종류의 구조들의 성능을 동시에 비교하는 것이 항상 가능한 것은 아닌데, 그 이유는 특정 구조들의 경우 주어진 데이터 집합에 적합하도록 구현되지 않은 경우도 있기 때문이다.

심층 신경망의 문제점

기존의 인공신경망과 같이, 심층 신경망 또한 나이브(naive)한 방식으로 학습될 경우 많은 문제들이 발생할 수 있다. 그 중 과적합과 높은 시간 복잡도가 흔히 발생하는 문제들이다.
심층 신경망이 과적합에 취약한 이유는 추가된 계층들이 학습 데이터의 rare dependency의 모형화가 가능하도록 해주기 때문이다. 과적합을 극복하기 위해서 weight decay (–regularization) 또는 sparsity (–regularization) 와 같은 정칙화(regularization) 방법들이 사용될 수 있다. 그리고 최근에 들어서는 심층 신경망에 적용되고 있는 정칙화 방법 중 하나로 dropout 정칙화가 등장했다. dropout 정칙화에서는 학습 도중 은닉 계층들의 몇몇 유닛들이 임의로 생략된다. 이러한 방법은 학습 데이터(training data)에서 발생할 수 있는 rare dependency를 해결하는데 도움을 준다.
오차역전파법과 경사 하강법은 구현의 용이함과 국지적 최적화(local optima)에 잘 도달한다는 특성으로 인해 다른 방법들에 비해 선호되어온 방법들이다. 그러나 이 방법들은 심층 신경망을 학습 시킬 때 시간 복잡도가 매우 높다. 심층 신경망을 학습시킬 때에는 크기(계층의 수 와 계층 당 유닛 수), 학습률, 초기 가중치 등 많은 매개변수(parameter)들이 고려되어야 한다. 하지만 최적의 매개변수들을 찾기 위해 매개변수 공간 전부를 확인하는 것은 계산에 필요한 시간과 자원의 제약으로 인해 불가능하다. 시간 복잡도를 해결하기 위해, 미니 배치(mini batch, 여러 학습 예제들의 경사를 동시에 계산), 드롭 아웃(drop out)과 같은 다양한 '묘책’들이 등장하였다. 또한, 행렬 및 벡터 계산에 특화된 GPU는 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주었다.

합성곱 신경망(Convolutional Neural Network, CNN)

합성곱 신경망(Convolutional Neural Network, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다. CNN은 또한 표준 역전달을 통해 훈련될 수 있다. CNN은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다. 최근 딥 러닝에서는 합성곱 심층 신뢰 신경망 (Convolutional Deep Belief Network, CDBN) 가 개발되었는데, 기존 CNN과 구조적으로 매우 비슷해서, 그림의 2차원 구조를 잘 이용할 수 있으며 그와 동시에 심층 신뢰 신경망 (Deep Belief Network, DBN)에서의 선훈련에 의한 장점도 취할 수 있다. CDBN은 다양한 영상과 신호 처리 기법에 사용될 수 있는 일반적인 구조를 제공하며 CIFAR 와 같은 표준 이미지 데이터에 대한 여러 벤치마크 결과에 사용되고 있다.

순환 신경망(Recurrent Neural Network, RNN)

순환 신경망은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다. 순환 신경망을 구성할 수 있는 구조에는 여러가지 방식이 사용되고 있다. 완전 순환망(Fully Recurrent Network), Hopfield Network, Elman Network, Echo state network(ESN), Long short term memory network(LSTM), Bi-directional RNN, Continuous-time RNN(CTRNN), Hierarchical RNN, Second Order RNN 등이 대표적인 예이다. 순환 신경망을 훈련(Training)시키기 위해 대표적으로 경사 하강법, Hessian Free Optimization, Global Optimization Methods 방식이 쓰이고 있다.
하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고있다.

심층 신뢰 신경망 (Deep Belief Network, DBN)

심층 신뢰 신경망(Deep Belief Network, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다.
DBN은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다.
DBN은 비지도 방식으로 계층마다 학습을 진행하는데 이때 각각의 계층은 보통 RBM의 형태를 띄고 있다. RBM들을 쌓아 올리면서 DBN을 훈련시키는 방법에 대한 설명은 아래에 제공 되어 있다. RBM은 에너지 기반의 생성 모형으로 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태이다. 가시 유닛들과 은닉 유닛들 사이에만 연결이 존재한다.
RBM이 훈련되고 나면 다른 RBM이 그 위에 쌓아 올려짐으로써 다중 계층 모형을 형성한다. RBM이 쌓아 올려질 때마다, 이미 훈련된 RBM의 최상위 계층이 새로 쌓이는 RBM의 입력으로 쓰인다. 이 입력을 이용하여 새 RBM이 훈련되고, 원하는 만큼의 계층이 쌓일 때까지 해당 과정이 반복된다.
실험결과에 따르면, CD의 최대가능도 근사가 굉장히 투박함에도 불구하고, 심층 신경망 구조를 학습하기에는 충분히 효과적인 방식이라고 한다.

심층 Q-네트워크(Deep Q-Networks)

2015년 2월, 강화 학습을 위한 가장 최신 딥 러닝 모델이 네이처에 소개되었다.

영상 인식

일반적으로 이미지 분류를 위한 평가 데이터로서 MNIST 데이터베이스 데이터가 이용된다. MNIST는 손으로 쓴 숫자들로 구성되어 있으며, 60000개의 학습 예제들과 10000개의 테스트 예제들을 포함한다. TIMIT와 유사하게, 적은 용량의 MNIST 데이터는 복수의 테스트 환경설정이 가능하게 해준다. MNIST 데이터에 대한 종합적인 결과들을 [123]에서 확인할 수 있다. 현재까지 MNIST 데이터에 대한 가장 우수한 결과는 Ciresan 등이 작성한 에서 달성되었으며, 오차율 0.23%를 기록했다.
제프리 힌튼과 그의 제자들은 2012년 가을에 대규모 ImageNet 대회에서 당시 최신 기계 학습 방법들의 성능을 훌쩍 뛰어넘는 결과를 보여주며 우승하였다. 이로 인해 컴퓨터 비전의 주요 분야인 영상 인식 및 사물 인식 분야에서의 딥 러닝의 중요성이 대두되었다. 그 당시, 대규모 음성인식에 딥 러닝이 상당히 잘 작동한다는 것을 알고 있었던 그들은, 20년 전에 고안된 심층 합성곱 신경망 구조를 대규모 작업에 맞도록 대규모로 사용하였다. 2013년부터 2014년에 이르기까지, 딥 러닝을 이용한 ImageNet 과제 결과의 오차율은 대규모 음성인식 분야와 추세를 같이하며 빠르게 줄어나갔다.
자동 음성인식 분야의 자동 음성 번역 및 이해 분야로의 확장과 마찬가지로, 이미지 분류 분야는 자동 영상 캡션닝(captioning)이라는 더욱 도전적인 분야로 확장되었다. 자동 영상 캡셔닝은 딥 러닝을 핵심 기반 기술로 사용하는 분야이다.
적용 사례로는 360°카메라 화면을 이해할 수 있도록 딥 러닝을 통해 학습된 자동차 탑재용 컴퓨터 등이 있다.

자연어 처리

2000년대 초부터 인공신경망은 언어 모형을 구현하기 위해 사용되어 왔다. 이 분야에서의 핵심 기법은 negative sampling과 단어 표현(word embedding)이다. word2vec과 같은 단어 표현은 데이터집합으로 주어진 단어들 사이의 관계를 학습하는 인공신경망을 이용하여 단어를 벡터 공간 상에 나타내는 것이라고 할 수 있다. 단어표현을 재귀 신경망(recursive neural network)의 입력 계층으로 이용하면 해당 신경망이 compositional vector grammar를 통해 문장과 구(phrase)를 분석하도록 학습시킬 수 있다. 이 compositional vector grammar는 재귀 신경망으로 구현된 probabilistic context free grammar (PCFG) 라고 할 수 있다. 단어표현을 기반으로 구성된 Recursive autoencoder는 문장 간의 유사도 판단과 의역 탐지를 하도록 훈련이 가능하다. 이러한 심층 인공신경망 구조들은 자동 번역(machine translation), 감정 분석(sentiment analysis), 정보 검색(information retrieval)을 비롯한 다양한 자연언어처리 관련 연구에서 최첨단 기술로서 쓰이고 있다.

약물 발견과 독성학

제약 산업에서 많은 수의 약들은 시장에 출시되지 못한다. 이렇게 실패하는 이유중 하나는 생각한 만큼의 효험을 보이지 못하거나, 예상치 못한 다른 작용을 일으키기 때문이다. 이를 해결하기 위해 2012년 George Dahl의 팀은 다중 DNN을 약의 효험을 예측하는 데에 활용하여 "Merck Molecular Activity Challenge"에 우승하였고, 2014년 Sepp Hochreiter의 팀은 예상치 못한 다른 작용을 사전에 탐지하기 위해 딥 러닝을 활용하여 "Tox21 Data Challenge"에서 우승하였다. 이러한 성공은 딥 러닝이 약학에 있어 가상 실험 방법(Virtual Screening Method)에 적합함을 보여준다. 현재 많은 수의 연구자들이 여러가지 데이터를 조합하여 약물을 발견하는 데에 딥 러닝을 활용하고 있다.

고객 관계 관리

최근 직접 마케팅 기획, 고객 관계 관리 자동화를 위한 수단 적합성 산출 등에 직접적으로 심층 강화 학습을 활용하여 성공하는 사례들이 알려지고 있다. 인공 신경망은 RFM으로 정의된 고객들에 대한 활용 가능한 마케팅 활동의 값을 예측할 때 사용되었다. 예측된 함수는 고객 생명 주기 값(customer lifetime value, CLV)으로 변환되어 사용되었다.

딥 러닝과 인간 두뇌

딥 러닝은 인지신경과학자(Cognitive neuroscientist)들이 1990년대 초에 제안한 뇌 발달(Brain development)과 밀접한 관련이 있다. 이러한 발달 관점의 이론들이 도입되면서, 순수한 전산 기반의 딥 러닝 모델들을 위한 기술적인 기반도 마련되었다. 발달 이론에서는 신경발달요인(Nerve growth factor)의 물결과 같은 뇌에서의 다양한 학습 역학이 결국은 서로 연관된 신경망들의 자기조직화를 도와준다는 특징이 있다. 이는 나중에 전산 기반의 딥 러닝 모델에서도 활용되어서, 인공신경망의 계층적인 필터 구조(각 동작 환경에서 필요한 정보만 걸러내는 다중 계층 구조)가 실제 뇌의 피질과 유사해보이게 되었다. 이러한 과정을 통해 자기조직적인 변환기의 계층구조가 만들어지고 각 환경에 맞도록 조율된다. 1995년에 뉴욕 타임스에서는 다음과 같이 말하였다. "...유아의 두뇌는 영양적인 요인의 영향으로 스스로 조직화되는 것 같다... 뇌에서 한 층의 조직이 먼저 성숙되고 다른 부분과 순차적으로 연결되는 방식으로 전체 뇌가 성숙될 때 까지 반복된다."

인간의 인식 발달 및 진화와 관련하여 딥 러닝의 중요성은 많은 과학자들의 관심을 끌고 있다. 가까운 영장류 동물들과 인간이 차별화되는 부분 중 하나는 바로 발달 시기이다. 다른 영장류 동물들의 뇌가 출산 전에 거의 완성되는 반면에, 인간의 뇌는 비교적 출산 후에도 계속 발달하는 편이다. 그래서 인간의 경우 뇌가 발달되는 중요한 시기 동안 세상 밖의 훨씬 더 복잡한 경험에 노출될 수 있다. 이러한 현상은 인간이 다른 동물들에 비하여 빠르게 변화하는 환경에 더 잘 적응할 수 있도록 만든다. 이러한 변화의 정도는 대뇌 피질 발달에 반영되기도 하고, 또한 두뇌의 자기조직화 시기에 자극적인 환경으로부터의 정보 추출에 변화를 준다. 물론, 이러한 유연성은 인간이 다른 동물들에 비해 긴 미성숙기(보호자에게 도움을 받고 훈련을 받아야 하는 의존적인 시기)를 가지게 된 원인이기도 하다. 딥 러닝의 이런 이론들은 결국 인간 진화의 기본적인 조건으로서 문화와 인식의 공진화를 보여준다.

영리 활동

딥 러닝은 종종 강인공지능의 현실화를 향한 발걸음으로 묘사되기도 하기 때문에 많은 기관에서 딥 러닝의 활용에 관심을 보이고 있다. 2013년 3월, 제프리 힌튼과 두 명의 제자(Alex Krizhevsky and Ilya Sutskever)가 구글에 채용되었다. 이들은 구글의 기존 기계 학습 제품들을 향상시키고 구글이 가지고있는 데이터를 더 잘 활용할 수 있도록 돕는 일을 할 것이다. 구글은 또한 힌튼의 회사 DNNresearch를 인수하였다. 2013년 12월에는 페이스북이 캘리포니아, 런던, 뉴욕에서 운영될 인공지능 연구실의 수장으로 얀 르쿤을 채용했다고 발표하였다. 이 인공지능 연구실에서는 딥 러닝 기법들을 연구 하여 페이스북의 사진에 자동으로 사람의 이름을 연결시키는 등의 기능을 구현할 예정이다. 2014년, 구글은 영국의 스타트업기업인 딥마인드 테크놀로지스를 인수하였다. 딥마인드에서는 화면의 정보만을 가지고 비디오 게임을 어떻게 플레이하는지를 스스로 학습하는 시스템을 개발하였다. 바이두 는 앤드류 응을 그들의 새로운 실리콘밸리 딥 러닝 연구실의 수장으로 채용하였다.

부정적 시각과 코멘트

딥 러닝에 대한 부정적 시각중 하나로 딥 러닝에 사용되는 방법들의 이론적인 뒷받침이 빈약하다는 것이 있다. 대부분의 딥 러닝 알고리즘은 경사 하강법에 기초를 두고 있다. 그런데 경사 하강법 자체는 이론적으로 이해가 잘 되었지만, 이와 함께 사용하는 다른 알고리즘은 이론적인 검증이 빈약하다. 그러한 알고리즘 중 하나인 contrastive divergence는 이 알고리즘이 실제로 정말 수렴하는지, 수렴한다면 얼마나 빠르게 수렴하는지에 대한 부분이 현재 분명하게 증명되지 않았다. 이와 같이, 딥 러닝에 사용되는 방법들은 이론적이기보다는 경험적으로 검증된 방법들을 사용하기 때문에 종종 블랙박스로 이해되기도 한다.
또다른 사람들은 보통 사람들이 딥 러닝을 모든 것을 해결해주는 솔루션으로 바라보는 것에 대해 딥 러닝은 유일한 솔루션이 아니고, 강한 인공 지능을 실현하는 데에 한 걸음 더 다가갈 수 있게 해주는 것으로 봐야한다고 주장한다. 딥 러닝을 모든 것을 해결해주는 솔루션으로 보기에는 기능적으로 여전히 부족한 점이 많기 때문이다. 심리학자인 게리 마커스는 다음과 같이 말했다.
"현실적으로, 딥 러닝은 지능형 기계를 구축하는 것의 일부분에 불과합니다. 딥 러닝에 쓰이는 테크닉들은 인과 관계를 나타내는 능력이 부족하고 논리적 추론을 하는 것에 확실한 방법을 가지고있지 않습니다. 그리고 이 방법들은 어떤 물체가 무엇인지, 용도가 무엇인지 등과 같은 추상적인 정보를 인식하는 데에 오랜 시간이 걸립니다. 왓슨과 같이 현재 가장 강력한 인공지능 시스템은 딥 러닝을 복잡한 여러 개의 테크닉 중 단지 한 부분을 위해 사용하고 있습니다."