본문 바로가기
Deep Learning Specialization

Shallow Neural Network [Deep Learning Specialization #2]

by ALTERww 2022. 7. 13.
320x100

Coursera의 Deep Learning Specialization - Week 1의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다.

 

지난 주차에는 아주 기본적인 Neural Network를 살펴 보았습니다. 이번에는 얕은 Neural Network를 살펴 보겠습니다.

 

 

Shallow Neural Network

입력 X와 출력 Y Layer를 제외하고, 그 사이에 있는 Layer를 Hidden Layer라고 합니다. 숨겨진 레이어에서 파라미터 W와 b의 학습이 이루어집니다. 아래의 간단한 그림을 살펴 보면, Input Layer를 제외하고 모든 Hidden Layer와 Output Layer에는 활성 함수 activation이 존재하며, 이 Layer들을 각 값들 우측 상단에 대괄호로 표기합니다.

Hidden Layer에서 z를 구하고, 활성 함수를 통해 활성 값을 계산하는 하나의 연산이 이루어지는 단위를 Unit이라고 부릅니다. 

 

 

Activation Function (활성 함수)

각 Layer에서 W와 b에 의해 계산된 z값을 다음 Layer로 얼마 만큼이나 넘겨줄 것인지 결정하는 함수로 활성 함수를 정의합니다.

  • Sigmoid - 0에서 1 사이의 값을 가지도록 하는 함수입니다.
    그러나 z의 절댓값이 증가하면 Gradient가 0으로 수렴하여  Gradient가 소멸하는 Vanishing Gradient가 일어나 잘 쓰이지 않습니다. 주로 이진 분류에 이용됩니다.
  • Tanh - Sigmoid의 개선된 버전으로, -1에서 1 사이의 값을 가지도록 하는 함수입니다. 
    그러나 z의 절댓값이 매우 커지면 Gradient가 소멸하는 현상은 여전히 존재합니다.
  • ReLU - Rectified Linear Unit의 약자입니다. 이전과는 다르게 비선형을 유지하는 활성 함수로, 
    음수의 z값에서는 0을 반환합니다. 현재 자주 이용되나, 음수의 z값에 대해 뉴런이 죽는 현상이 발생합니다.
  • Leaky ReLU - ReLU에서 음수 z값에 대해 뉴런이 죽는 것을 방지하기 위해 max(0.01z, z)를 적용하여 음수의 z값에도 0.01z값을 반환합니다. 잘 이용되지는 않고, ReLU의 차선책으로 이용됩니다.

 

 

Forward Propagation 

입력 X에서 Layer들을 거쳐 출력 Y로 진행하는 전파를 Forward Propagation이라고 합니다.

 

 

Backward Propagation

출력 Y로부터 입력 X로 진행하면서 각 Layer 별 파라미터 변수에 대한 도함수를 계산하는 전파를 Backward Propagation이라고 합니다. dW, db를 계산하여 W와 b를 갱신하고 학습시킵니다.

 

 

Random Initialization (무작위 초기화)

처음 W와 b를 초기화할 때, zero로 초기화하면 a[1]과 a[2]가 대칭적인 값을 띠게 되어 심층 학습의 의미가 줄어듭니다.

따라서 매개변수 값을 무작위로 초기화해야 합니다. 단, b는 zero로 초기화했을 때의 영향이 많지 않다고 밝혀져 Weight만 무작위로 초기화하도록 합니다.

 

 

 

댓글