딥러닝 학습방법 이해하기¶
신경망¶
데이터가 바뀌면결과값도 바뀌게 된다. 이 때 출력 벡터의 차원은 d에서 p로 바뀌게 된다. d개의 변수로 p개의 선형모델을 만들어서 p개의 잠재변수를 설명하는 모델을 볼 수 있다.
여기서 여러가지 문제를 풀 수 있는데, 주어진 데이터가 어느 클래스에 해당하는지 예측하는데 사용할 수 있다. 분류 문제를 풀때 softmax()
를 알아야 한다.
출력 벡터 $o$에 softmax함수를 합성하면 확률벡터가 되므로 특정 클래스 $k$에 속할 확률로 해설할 수 있다.
그러나 추론을 할 때(즉, 어떤 클래스에 속했나 반환)는 원-핫(one-hot) 벡터로 최대값을 가진 주소만 1로 출력하는 연산을 사요해서 softmax를 사용하진 않는다. 왜냐하면 softmax는 그 클래스에 속할 확률로 나오기 때문에 가장 큰 확률은 가장 큰값에서 나오기 때문에 굳이 softmax를 거치지 않고 추론을 한다.
신경망은 선형모델 + 활성함수이다¶
활성함수 $\sigma$는 비선형함수로 잠재벡터 $z=(z_{1},...,z_{q})$의 각 노드에 개별적으로 적용하여
새로운 잠재벡터 $H=(\sigma(z_{1}),...,\sigma(z_{n}))$를 만든다.
활성함수¶
- 활성함수(activation function)는 $R$ 위에 정의된 비선형(nonlinear)함수로서 딥러닝에서 매우 중요한 개념이다.
- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.
- 시그모이드(sigmoid)함수나 tanh함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에서 ReLu 함수를 많이 쓰고 있다.
잠재벡터 $H$에서 가중치 행렬$W^{(2)}$와 $b^{(2)}$를 통해 다시 한 번 선형변환해서 출력하게 되면
($W^{(2)}$,$W^{(1)}$)를 파라미터로 가진 2층(2-layers)신경망이다.
다층(multi-layer) 퍼셉트론(MLP)은 신경망이 여러층 합성된 함수이다.
$\sigma(Z)$는 $(\sigma(z_{1}),...,\sigma(z_{n}))$으로 이루어진 행렬이다. MLP의 파라미터는 $L$개의 가중치 행렬 $W^{L},...,W^{1}$로 이루어져 있다. $\ell=1,...,L$까지 순차적인 신경망 계산을 순전파(forward propagation)라 부른다.
층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다. 층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나서 넓은(wide) 신경망이 되어야한다.
역전파 알고리즘¶
딥러닝은 역전파(backpropagation)알고리즘을 이용하여 각 층에 사용된 파라미터 $\{W^{(\ell)},b^{(\ell)}\}_{\ell=1}^{L}$를 학습한다. 각 층 파라미터의 그레디언트 벡터는 윗층부터 역순으로 계산하게 된다. 역전파는 $\ell=L,...1$순서로 연쇄법칙을 통해 그레디언트 벡터를 전달한다.
역전파 알고리즘은 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분(auto-differentiation)을 사용한다.
연쇄법칙을 통해 합성함수의 미분을 계산할 수 있다.
예시¶
계산에 사용되는 수식을 보게되면 다음과 같다.
간단히 보게 되면
위 수식을 통해서 역전파 알고리즘이 계산되게 된다.
'AI > 이론' 카테고리의 다른 글
matplotlib I (0) | 2021.01.29 |
---|---|
확률론 맛보기 (0) | 2021.01.28 |
Pandas IV (0) | 2021.01.28 |
Pandas III (0) | 2021.01.28 |
Pandas II (0) | 2021.01.27 |
Pandas I (0) | 2021.01.27 |
경사하강법 II (0) | 2021.01.26 |
경사하강법 I (0) | 2021.01.26 |