BOOST CAMP - AI Tech
[WEEK 1] AI Math - 딥러닝 학습 방법
_JAEJAE_
2022. 9. 25. 00:08
▶ 신경망 (Neural Network)
- $O_{n×p}=X_{n×d}W_{d×p}+\mathbf b_{n×p}$
- d개의 변수로 p개의 선형모델을 만들어서 p개의 잠재변수를 설명하는 모델이다.
▶ Softmax
- 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산이다.
- 출력 벡터 o 에 softmax 함수 합성하면 확률벡터가 되므로 특정 클래스 k 에 속할 확률로 해석할 수 있다.
- 분류 문제 풀 때 선형모델과 소프트맥스 함수 결합하여 예측한다.
- 원-핫(one-hot) 벡터 : 최대값을 가진 주소만 1로 출력하는 연산이다.
- 학습을 할 때는 softmax를 사용하고 추론을 하는 경우에는 one-hot 벡터를 사용한다.
def softmax(vec):
denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True)) # overflow 방지하기 위해 max값을 뺀 뒤 exp
numerator = np.sum(denumerator, axis=-1, keepdims=True)
val = denumerator / numerator
return val
- 신경망은 선형모델과 활성함수(activation function)를 합성한 함수이다.
▶ 활성 함수
- $H=(\sigma(z_1),...,\sigma(z_n))$ $\sigma(z)=\sigma(Wx+b)$
- 활성함수 $\sigma$는 비선형함수로 잠재벡터 z의 각 노드에 개별적으로 적용하여 새로운 잠재벡터 H를 만든다.
- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.
- 시그모이드와 tanh 함수는 전통적으로 많이 쓰였지만 딥러닝에선 ReLU 함수를 많이 사용한다.
▶ 신경망
- 신경망은 선형모델과 활성함수를 합성한 함수이다.
- 선형모델을 반복적으로 사용하는데 그 사이에 활성화 함수를 넣는 것이 핵심이다.
- 다층 퍼셉트론(MLP)은 신경망이 여러층 합성된 함수이다.
- 순차적인 신경망 계산을 순전파(forward propagation)라고 부른다.
- 순전파는 학습이 아니라 입력이 왔을 때 출력을 내보내는 연산이다.
- 층을 여러 개 쌓는 이유
- 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 효율적으로 학습 가능하다.
- 층이 얇으면 뉴런의 숫자가 늘어나서 넓은 신경망이 되어야 한다.
▶ 역전파 알고리즘 (backpropagation)
- 딥러닝은 역전파 알고리즘 이용하여 각 층에 사용된 파라미터 $\{\mathbf W^{(l)},\mathbf b^{(l)}\}^L_{l=1}$를 학습한다.
- 손실함수를 $\mathcal L$이라 했을 때 역전파는 $\partial\mathcal L \over \partial{W^{(l)}}$ 정보를 계산할 때 사용된다.
- 각 층의 패러미터의 그래디언트 벡터는 윗층부터 역순으로 계산하게 된다.
- L, …, 1 순서로 연쇄법칙을 통해 그래디언트 벡터를 전달한다.
- 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분(auto-differentitation)을 사용한다.