딥러닝 학습방법 이해하기
신경망을 수식으로 분해해보자
•
비선형 모델 신경망 (Neural Network)
•
d 개의 변수로 p 개의 선형모델을 만들어서, p 개의 잠재변수를 설명
소프트맥스 연산
•
소프트맥스(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
Python
복사
vec = np.array([[1, 2, 0], [-1, 0, 1], [-10, 0, 10]])
softmax(vec)
Python
복사
•
신경망은 선형모델과 활성함수(activation function) 를 합성한 함수이다
활성함수?
•
활성함수 (activation function) 는 R(실수값) 위에 정의된 비선형 함수로서 딥러닝에서 매우 중요한 개념
•
활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다
•
시크모이드(sigmoid) 함수나 tanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU 함수를 많이 쓰고 있다
신경망을 수식으로 분해
•
신경망은 선형모델과 활성함수(activation function)를 합성한 함수이다
•
다층(multi-layer) 퍼셉트론(MLP)은 신경망이 여러층 합성된 함수이다
왜 층을 여러개 쌓나?
•
이론적으로는 2층 신경망으로도 임의의 연속함수를 근사할 수 있다
◦
이를 universal approximation theorem 이라 부른다
•
그러나 층이 깊을수록 목적 함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다
딥러닝 학습원리 : 역전파 알고리즘
•
딥러닝 역전파 (backpropagation) 알고리즘을 이용하여 각 층에 사용된 파라미터 를 학습
•
각 층 파라미터의 그레디언트 벡터는 윗층부터 역순으로 계산하게 된다
•
역전파 알고리즘은 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분(auto-differentiation)을 사용한다
예제) 2층 신경망
•
2층 신경망의 역전파 알고리즘