0. Reference
https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf
1. Introduction
- 현재 머신러닝은 현대 사회의 많은 측면에서 핵심적인 역할을 하고 있다.
- 이러한 머신러닝 관련한 프로그램들은 점점 더 자주 딥러닝이라는 기술적 기법의 한 분야로 활용되고 있다.
- 해당 논문에선 딥러닝에 대한 전반적인 종류와 특징,베이스를 쌓기위한 기초적인 내용들을 담고 있다.
1.1. 전통적인 머신러닝
- 전통적인 머신러닝 기법은 원시 데이터를 처리하는 능력에 한계가 있다.
- 데이터에서 유용한 패턴을 발견하거나 분류하려면, 데이터를 사람이 직접 설계한 특징(feature)로 변환해야 한다.
-이는 feature extractor 설계라는 복잡한 작업을 요구한다.
1.2. Representation Learning & Deep Learning
- Representation Learning(표현 학습)은 원시 데이터를 받아 필요한 특징을 자동으로 학습하는 방법이다.
- 그중 Deep Learning은 여러 Layer의 표현을 활용하는 학습 기법이다.
- 딥러닝의 특징은 다음과 같다.
"""
i) 계층적 구조 : 간단한 비선형 함수들을 계속 이어나가 고차원 데이터를 학습한다.
ii) 자동화된 Represent Learning : feature extractor을 자동으로 설계하여, 데이터를 학습한다.
iii) 복잡한 문제 해결 : 이미지, 음성 등에서 기존 기술이 해결하지 못한 문제를 뛰어난 성능으로 해결한다.
"""
2. Supervised Learning(지도 학습)
- 딥러닝에서 가장 흔히 사용되는 학습 방식은 Supervised Learning(지도 학습)이다.
- 라벨링이된 데이터를 가지고 학습시키는 것을 의미한다.(ex MNIST)
2.1. 지도 학습 과정
- 1) 학습 과정에서 모델이 이미지를 입력받고, 각각에 대한 예측한 벡터를 출력한다.
- 2) 실제 정답 벡터와 예측 벡터와의 거리를 측정하는 Loss Function을 계산한다.
- 3) Loss값을 줄이기 위해 Weight를 수정한다.
- 4) train에서 이과정을 반복했다면, 결과적으로 test에서 모델성능을 평가한다.
2.2. Gradient Descent(경사 하강법)
- Loss값을 줄이기 위해 Weight를 수정한다고 하였는데, 어떻게 수정할 수 있을까?
- 이를 위해선 각 가중치에 대해 Gradient Vector를 계산한다.
- 이 Gradient Vector는 특정 가중치가 약간 증가했을 때 Loss가 얼마나 증가하거나 감소하는지 나타낸다.
- 실제로 Loss값을 줄이기 위해선 Weight Vector를 Gradient Vector방향의 반대 방향으로 조정된다.
cf) 여기서 Gradient Vector를 구하기 위해서 사용되는 기법이 Backpropagation(역전파)이다.
cf) Loss Function은 그래프를 그려보면 울퉁불퉁한 언덕(hilly landscape)로 표현된다.
3. Backpropagation to train multilayer architectures
- 해당 파트에선 Gradient Vector를 구하기 위한 미분법중 하나인 역전파에 대해 서술한다.
- 역전파는 Chain rule(연쇄 법칙)을 활용하여 Loss Function의 Gradient vector를 계산한다.
- 기존의 Numerical Gradient(수치 미분)보다 더 빠르고 간단하게 구할수 있다고 한다.
4. CNN(Convolutional Neural Networks)
- ConvNet은 다차원형태로 구성된 데이터를 처리하도록 설계되어 있다.
- 현재 우리들이 처리하는 데이터들은 대다수 다차원의 형태로 구성되어있다.
4.1. CNN의 아키텍처
- 일반적으로 ConvNet의 구조는 다음과 같은 단계들로 구성되어 있다.
- 초기 단계인 "Convolutional Layers(합성곱층)" 과 "Pooling Layers(풀링 층)"인 두가지 층으로 이루어져 있다.
4.1.1. Convolutional Layers
- 합성곱층의 유닛들은 결과물로 "Feature Map"으로 배출한다.
- 각 유닛은 이전 층의 Feature Map에서 Local Patch와 연결된다.
- 이 연결은 "Filter Bank"라고 불리는 가중치 집합을 통해 이루어 진다.
- 다음과 같이 이전 층의 Feature Map과 커널(필터)와 Frobenius Inner Product를 해준다.
- Frobenius Inner Product는 단순하게 내적이라고 생각하면 된다.
- 이러한 ConVLayer는 두 가지 이유때문에 나오게 되었다.
i) 이미지와 같은 배열 데이터는 이웃된 값들이 강하게 상관관계를 가지며, 이는 독특한 패턴을 형성한다.
ii) 이미지는 회전,확대,축소,평행이동을 하더라도 이웃된 값들의 상대적 위치는 불변이다.
- 따라서 이러한 이유 때문에 이러한 합성곱층이 유용하게 사용이 된다는 것이다.
4.1.2. Pooling Layer
- 앞서 ConVLayer은 이전 층에서의 Feature Map들의 Local Conjunction(지역적인 결합)을 감지하는 역할을 한다.
- Pooling Layer은 유사한 특징을 하나로 합치는 역할을 한다.
- 풀링층은 한 Feature Map의 Local Patch에서 Maximum을 계산한다.
- (이를 Max Pooling이라고 한다.)
- 이 과정을 통해 Feature Map의 크기를 줄일수 있고, 미세한 shift나 왜곡에 대해 불변성이 생긴다.
5. Distributed Representation and Language Processing
- 딥러닝은 기존의 알고리즘에 비해 두 가지 Exponential Advantages가 있다
i) 분산 표현을 학습하면, 새로운 특징 값들의 조합에서도 일반화 가능하다.
ii) 딥러닝에서 신경망의 깊이에 비례하여 Exponential Advantage를 얻을 수 있다.
- 언어 모델에서 local context(연속 맥락)에서 다음 단어를 예측하도록 다층 신경망을 학습시키려면 어떻게 할까?
"""
i) 입력 표현:
- 각 맥락 단어는 1-of-N Vector로 신경망에 입력된다.
- 이 벡터는 하나의 값만 1이고 나머지는 0인 구조이다.
ii) 첫 번째 층:
- 각 단어는 서로 다른 activation Pattern을 생성하며, 이를 word vector로 정의한다.
iii) 출력 표현:
- 신경망의 다른 층들은 입력 단어 벡터를 변환하여, 다음 단어를 예측하기 위한 출력 단어 벡터를 생성한다.
- 이 벡터는 어휘 내의 어떤 단어가 다음 단어로 등장할 확률을 예측하는 데 사용된다.
5.1. Distributed Representation(분산 표현)
- 분산 표현을 학습하는 과정에서, word vector는 다음과 같은 특성을 갖게 된다.
i) 각 벡터에는 여러 Active Components(활성화 요소)가 포함되며, 각 요소는 단어의 feature로 해석된다.
ii) 학습을 통해 입력과 출력간의 관계를 micro-rule로 분해하는 방식으로 특징이 발견된다.
iii) 이 방식은 실제 대규모 corpus(말뭉치)에서도 잘 작동된다.
- 예를 들어 뉴스 기사에서 다음 단어를 예측하도록 신경망을 학습시킬 경우,
- 화요일과 수요일의 단어 벡터는 매우 유사해 진다.
- 마찬가지로 일본과 한국의 단어 벡터 역시 유사한 패턴을 보인다.
- 이러한 표현을 Distributed representation(분산 표현)이라고 불린다.
- 이러한 원리때문에 신경망 기반 언어 모델은 더 깊고 넓은 context(문맥)에서 높은 수준의 일반화와 예측을 가능하게 한다.
6. RNN(Recurrent Neural Networks)
- Backpropagation(역전파)가 처음 도입되었을 때, 가장 큰 관심사는 순환 신경망(RNN)을 훈련하는 것이다.
- Sequence 자료형을 처리하는 작업에서는 RNN을 사용하는 경우가 더 나은 경우가 많았다.
- RNN은 입력 시퀀스를 하나씩 처리하면서 숨겨진 유닛에 'state vector'를 유지한다.
- state vector는 시퀀스의 모든 과거 요소에 대한 정보를 암묵적으로 포함한다.
- RNN은 매우 강력한 동적 시스템이지만, 이를 훈련하는데 문제가 있었다.
- 그 이유는 역전파된 기울기가 각 시간 단계에서 커지거나 작아지기 때문에,
- 많은 단계가 지나면 gradeint vanish나 gradient exploid가 생기는 경우가 많았다.
- 그러나 구조가 발전함에 따라 RNN은 텍스트에서 다음 문자를 예측하거나 시퀀스에서 다음 단어를 예측하는 데 뛰어난 성능을 보인다.
6.1. LSTM
- 기존의 RNN의 단점을 보완하기 위해 나오게 된 모델이다.
- 이에 대한 내용은 LSTM논문에서 서술하고자 한다.