Activation Function 이란?
Activation Function 란 layer 와 layer 사이에 위치한 non-linear function (비선형 함수)

Activation Function은 왜 필요한가??
Non-Linear 한 activation function을 사용함으로써 뉴럴넷은 non-linear한 decision boundary를 그릴 수 있기 때문이다. 그리고 linear한 activation function을 사용하면 아무리 많은 layer를 쌓아도 Single Layer Neural Network에 불과하다. 그 이유에 대해서 알아보도록 하자.

이미지의 예시를 살펴보자. Output 에 대해 정리해보면 다음과 같다.
보이는 것처럼 linear한 layer만으로 구성하면 결국 아무리 많은 Layer를 쌓아도 Single Layer Neural Network에 불과하다. 이는 Activation Function이 Linear한 경우여도 마찬가지다.
Neural Network는 Non-Linear Decision Boundary를 어떻게 학습할까?
먼저 Neural Network Layer를 구성하는 각 요소들이 어떤 역할과 의미를 갖는지 살펴보자.
위 수식의 각 요소들의 의미를 따져보자.
-
- 행렬 (Matrix)와 Vector을 서로 곱한 것
- 의미 : input vector 에 Affine Transformation을 적용하는 것
- Affine Transformation: Input Space 상에서의 격자 크기가 일정하거나 균일하게 바뀌는 변환
-
- bias vector 를 더해주는 것
- 의미 : 평행이동 (Translation) 시키는 것
-
- Non-Linear한 activation function을 적용하는 것
- 의미 : 격자가 일정하지 않은 변환을 적용하는 것
그렇다면 NN이 어떻게 Non-Linear Decision Boundary를 학습할까?
- 에서 일련의 "의 affine transformation" (확장, 회전, 전단)과 ""의 평행이동, "$\sigma의 비선형 변환"을 수행함
- 더 많은 layer들을 쌓고 ("공간을 여러 번 접고 펼치고 당기는 것")
- 더 많은 neuron (즉, 더 큰 dimensional한 space 상에서 변화하는 것)
- 더 복잡한 -> 의 mapping 학습
Activation Function의 종류
Sigmoid
- 범위의 인풋값 을 0 ~ 1 사이의 값으로 변환
- 이면 다음 뉴런에 전기 신호 보냄 (activated)
- 이면 다음 뉴런에 전기 신호 보내지 않음 (not activated)
- 양 끝부분에서 Gradient가 거의 0에 가깝기 때문에 Weight가 너무 크거나 작으면 학습 속도가 매우 느릴 수 있다

Tanh
- 범위의 인풋값 을 -1 ~ 1 사이의 값으로 변환해준다.
- Sigmoid 함수와 마찬가지로 양 끝 부분에서 Gradient가 아주 작아지지만 0을 중심값으로 가진다.

ReLU
- Sigmoid, Tanh 함수들에 비해서 SGD의 학습 수렴 속도가 빠르다
- Sigmoid, Tanh에 비해서 saturation의 문제로부터 비교적 자유롭다
- VGG와 DenseNet에서 사용된다
- 에 대해서는 Gradient가 0이다. -> 'Dead Neuron' 문제 발생 가능

"Dead Neuron"의 문제점은?
만약 모델이 학습하는 과정에서 이 되어버리고 즉 매우 작은 음수의 값을 가지도록 bias term b를 학습하게 되면 기울기가 0이 되어버린다. 따라서 해당 뉴런의 weight는 더 이상 업데이트 되지 않고 죽어버리는 현상 발생!
Leaky ReLU
- ReLU의 'dead neuron' 문제점을 해결하기 위해 제안됨
- 인 부분에 대해서도 non-Zero Gradient 값을 가진다.

ELU
- 에 대해서도 Non - Zero Gradient를 가진다
- 하지만 에 대해서는 Saturate하여 Gradient가 0으로 수렴한다

Softmax
- 목적: Neural Network의 마지막 Classification Layer에서 output한 logit의 값을 normalization하는 역할

Softmax 함수의 는 Temperature를 뜻한다. 모델의 출력을 조정하는 스케일링 파라미터로, 예측 분포의 샤프니스(sharpness) 또는 평탄함(smoothness)을 제어하는 역할을 한다.
- : 확률 분포가 더 평탄하도록 출력, 여러 클래스의 확률 차이가 감소 : Entropy가 높다
- : 일반적인 Softmax 함수와 동일
- : 확률 값이 더 샤프해진다. 모델이 특정 클래스에 대해 더 확신하는 형태 : Entropy가 낮다
'산업공학 > Deep Learning' 카테고리의 다른 글
[딥러닝] Optimization (최적화) (1) | 2024.09.25 |
---|---|
[딥러닝] Gradient Descent (경사하강법) - 심화 (0) | 2024.08.28 |
[딥러닝] Loss Function (1) | 2024.08.18 |
[딥러닝] PyTorch - Transforms (1) | 2024.08.17 |
[딥러닝] PyTorch - Dataset and Data Loader (0) | 2024.08.17 |