NLP/AI/Statistics

[cs231n] Note 5: Neural Networks-1 (Activation function) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 5: Neural Networks-1 (Activation function)

Danbi Cho 2021. 2. 8. 12:13

신경망 구조를 이해하기 위해 중요한 요소인 activation function에 대하여 소개한다.

 

Activation function (활성화 함수)은 쉽게 말해 모델 학습을 통해 출력되는 값을 활성화시키는 것을 의미하며

 

모델 최적화를 위해 가중치 (weight)를 업데이트한 후, 최종적으로 어떠한 값을 출력할 것인가를 결정하는 역할을 한다고 할 수 있다. 

 

위와 같이 $w_{i}x_{i}+b$ 연산으로 출력되는 마지막 층의 output에 activation function을 거쳐 출력값을 결정한다. 

 

Perceptron에서는 가장 기초적인 activation function으로 step function과 linear function을 사용하였다. 

 

Step function의 경우, 계단 형식으로 0 혹은 1의 값만을 출력하는 단점이 있으며 linear function은 step function보다 다양한 값으로 출력되지만 backpropagation이 불가능한 단점이 있다. 

 

Linear function은 항상 동일한 기울기를 갖기 때문에 다중으로 layer을 쌓더라도 결론적인 output이 동일하게 나타나는 문제가 발생한다. 

 

이처럼 step function, linear function의 문제를 해결하면서 소개된 activation function들 중에서 가장 자주 사용되고 중요한 함수들에 대하여 소개한다. 

 

1) sigmoid

2) tanh

3) ReLU

 

이 activation function들은 linear function(선형함수)의 문제를 보완하기 위해 비선형 함수를 나타내는 특징이 있다. 

 

Sigmoid

 

$$\sigma(x) = \frac{1}{(1+\exp^{-x})}$$

 

Sigmoid는 위의 수식으로 계산되며 [0, 1]의 범위로 나타난다. 

 

위의 그림을 보면, 출력값이 매우 작거나 매우 클 경우 기울기가 0의 값으로 나타난다. 

 

이 부분을 Saturation (포화상태)라고 하며, gradient(기울기) = 0이기 때문에 gradient가 사라지는 문제인 vanishing gradient 문제가 발생한다. 

 

또한, gradient가 0이 아닌 구간에서는 zero-centered 되어 있지 않아 속도가 느리다는 단점이 존재한다. 

(중간 부분을 의미한다.)

 

#. 만약 뉴런의 input인 $x$가 항상 양수일 경우, gradient $W$는 항상 양수거나 음수로 나타난다. 

 

Tanh

 

Tanh는 위의 그림과 같으며 sigmoid함수를 zero-centered한 형태와 동일하다.

 

Tanh 역시 sigmoid와 같이 출력값이 매우 작거나 매우 클 경우 기울기가 0의 값이 되어 vanishing gradient 문제가 발생하지만 0을 중심으로 [-1, 1]의 범위 내에서 적용된다는 점에서 sigmoid보다 선호되는 경향이 있다. 

 

ReLU

 

ReLU (Rectified Linear Unit)은 최근 가장 많은 인기를 받고 있는 활성화 함수이다. 

 

$$f(x) = max(0, x)$$

 

위와 같은 수식으로 계산되며 출력값이 0이하인 경우 gradient는 0의 값으로만 표현된다. 

 

ReLU는 sigmoid, tanh에 비해 stochastic gradient descent (SGD, 확률적 경사하강법)의 수렴을 크게 가속화시키는 장점이 있다. 

 

또한, sigmoid, tanh는 연산량이 많은 반면, ReLU는 단순히 활성화 행렬을 0의 임계 값으로 지정하여 계산되기 때문에 연산량이 적다는 장점이 있다.

 

하지만 앞에서 언급된 바와 같이 ReLU는 0 이하의 값들은 모두 0으로 출력되기 때문에 모델이 데이터를 학습하는 능력이 떨어지는 단점이 있다.

 

즉, ReLU로 입력되는 값 중 음수의 값들은 모두 0으로 변환되어 정확한 학습 결과를 출력하지 못한다. 

 

이를 방지하기 위해 learning rate를 적절하게 설정하는 것이 중요하다. 

 

참고) https://cs231n.github.io/neural-networks-1/#actfun

 

CS231n Convolutional Neural Networks for Visual Recognition

Table of Contents: Quick intro It is possible to introduce neural networks without appealing to brain analogies. In the section on linear classification we computed scores for different visual categories given the image using the formula \( s = W x \), whe

cs231n.github.io

 

Comments