딥러닝 학습방법 이해하기
비선형모델 신경망
신경망 모델은 기본적으로 비선형 모델이지만, 보통 선형 모델과 비선형 모델의 결합으로 이루어져 있다.
소프트맥스(softmax) 연산
모델의 출력을 확률로 해석할 수 있게 변환해주는 연산임.
분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측한다.
def softmax(vec): denumerator = np.exp(vec = np.max(vec, axis=-1, keepdims=True)) numerator = np.sum(denumerator, axis=-1, keepdims=True) val = denumerator / numerator return val
신경망은 선형모델과 활성함수(activation function)을 합성한 함수이다.
Multi-layer Perceptron(MLP)은 신경망이 여러층 합성된 함수이다.
활성함수
- 활성함수는 비선형함수이다.
- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.
- 시그모이드 함수나 tanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU 함수를 많이 쓰고 있다.
층을 여러 개 쌓는 이유
- 이론적으로는 2층 신경망으로도 임의의 연속함수를 근사할 수 있다.
- 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다.
- 층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나서 넓은(wide) 신경망이 되어야 한다.
딥러닝 학습원리: 역전파 알고리즘
- 딥러닝은 역전파(backpropagation) 알고리즘을 이용하여 각 층에 사용된 파라미터를 학습한다.
- 역전파 알고리즘은 합성함수 미분법인 ‘연쇄법칙(chain-rule)’ 기반 자동미분(auto-differentiation)을 사용한다.