ROKO

[coursera] Neural Networks and Deep Learning: Week 3 본문

Artificial Intelligence/Deep Learning

[coursera] Neural Networks and Deep Learning: Week 3

RO_KO 2024. 6. 29. 14:52
728x90

Notation

  • \( z^([1]) \): 1번째 layer로부터 나온 값
  • \(z^{[1]}_1\): 1번째 layer로부터 나온 값중 1번째 node
  • |(\z^{[1](1)}\): 1번째 training data로 계산한 1번째 layer 값
  • \(a^{[0]}=X\)
  • []: subscript square bracket

[]는 노드 (node)나 층 (layer)에 관련한 정보를 주는 표시이고 ()는 이전에 정의했다시피 training data에 대한 정보를 의미한다.

 

.

층이 하나인 logistic regression이 아닌 multi layer 상황을 다룬다. 각 층은 입력층 은닉층.출력층으로 구분된다.

 

Activation function

수식에서 활성함수는 g()로 표현한다. 보통 최종 출력값이 0~1이 나와야하는 상황이 아닌이상 tanhsigmoid보다 대부분의 상황에서 좋다. ReLU도 많이 사용하는데 0에서 미분 불가능인 문제점음 0에 가까운 작은 값으로 처리한다.

 

실제로는 ReLU를 모든 상황에서 많이 사용한다. 학습속도가 빠르고 실제 세계에서 잘 작동하기 때문이다. (학습속도 가속화가 큰 요인) 만약 음수부분의 기울기가 0이여서 한계점으로 느껴진다면 leaky ReLU를 사용하면 된다.

 

linear activation function을 사용할수도 있기는 한데 이는 일반 회귀문제의 경우에 해당하고 복잡한 문제를 풀기 위해 사용하는것은 부절절하다.

 

그렇다면 비선형 활성함수는 왜 필요한가?

선형층을 아무리 쌓은들 수식으로 정리하면 하나의 선형 층가 다를게 없다. 따라서 비선형 분포를 이루는 데이터를 처리할 수 없게된다. 하지만 활성함수를 사용하면 비선형성을 배울수 있게 된다.

 

Derivative of activation function

  • sigmoid \(g'(z)=g(z) (1-g(z)) \)
  • tanh \(g'(z)=1-g^2(z)\)
  • ReLU: \(g'(z) = \left\{\begin{matrix} 1 \, if \, z>0 \\ 0 \, if \, z<0 \end{matrix}\right.\)

Random initialization

* logistic regression에서는 0으로 초기화해도 괜찮다. (초기화 위치 상관 없이 극대최소점을 찾을수 있기 때문에)

 

하지만 다층 신경망에서는 0으로 초기화 할 경우 모델이 잘 동작하지 않는다. 가중치를 0으로 초기화 하면 가장 마지막 층을 제외하고 나머지 층의 가중치는 업데이트가 되지 않는다. 또한 마지막 층은 symmetric하게 학습을 하게되어 서로 다른 특성을 학습하지 못하고 성능이 떨어지게 된다. (symmetry breaking이 안됨)

728x90
Comments