활성화 함수
활성화 함수란?
활성화 함수(Activation Function)는 인공 신경망에서 뉴런의 출력을 결정하는 비선형 변환 함수이다. 입력 데이터가 뉴런을 통과할 때, 활성화 함수는 입력의 가중합을 특정 범위로 변환하여 출력하게 되며, 이를 통해 신경망이 학습을 진행할 수 있도록 한다.
엄밀히 말하자면 선형 함수를 활성화 함수로 쓸수도 있지만
대체적으로 선형 함수를 활성화 함수로 사용하진 않는다.
활성화 함수의 역할
- 비선형성 도입
- 신경망이 복잡한 패턴을 학습하고 비선형적 관계를 모델링할 수 있도록 한다. 만약 활성화 함수가 없다면, 신경망은 단순한 선형 모델로 동작하여 복잡한 문제를 해결할 수 없다. (일차식의 한계)
- 출력값 제한
- 활성화 함수는 뉴런의 출력을 특정 범위로 제한하여 출력 값이 너무 커지거나 작아지는 문제를 방지한다.
- 학습 가능성 보장
- 경사하강법과 같은 최적화 알고리즘에서 미분을 통해 손실을 줄여나가는 과정이 중요한데, 활성화 함수는 이때 필요한 미분 가능성을 보장한다.
활성화 함수의 종류
- Sigmoid
- 식: σ(x) = 1 / (1 + e^(-x)) (e는 자연상수)
- 자연상수 e는 2.71828으로 알려진 무리수이며 자연상수를 이용한 지수 함수는 입력 값의 변화를 부드럽게 반영하는 특성을 가진다. 즉, 작은 변화도 민감하게 반응하지만, 입력 값이 크게 변할 때는 더 이상 출력 값에 큰 영향을 주지 않는다
- Sigmoid 함수는 출력 값을 0과 1 사이로 매핑한다 이 특성은 확률 해석에 매우 적합하다. 예를 들어, Sigmoid 함수의 출력을 "특정 클래스에 속할 확률"로 해석할 수 있다.
- 출력값을 0과 1 사이로 제한한다.
- 주로 이진 분류 문제에서 사용된다.
- 미분이 가능하다
- 단점: 출력 값이 0 또는 1에 가까워질 경우, 기울기가 작아져서 학습이 잘 되지 않는 Vanishing Gradient 문제를 일으킬 수 있다.
- 식: σ(x) = 1 / (1 + e^(-x)) (e는 자연상수)
- Tanh (Hyperbolic Tangent)
- 식: a(x) = tanh(x)
- e^x - e^-x / e^x + e^-x
- 출력 값 범위
- -1에서 1 사이로 제한된다.
- 입력 값이 0일 때는 출력 값이 0이 된다.
- 입력 값이 양의 무한대로 갈수록 출력 값은 1에 가까워지며, 입력 값이 음의 무한대로 갈수록 출력 값은 -1에 가까워진다.
- 중심 대칭성
- Tanh 함수는 원점(0, 0)을 중심으로 대칭이다.
- 즉, tanh ( − 𝑥 ) = − tanh ( 𝑥 ) tanh(−x)=−tanh(x)라는 특성을 가진다.
- 이로 인해 입력 값이 양수와 음수일 때의 출력 값 변화가 대칭적으로 나타나므로, 신경망 학습 시 데이터의 평균이 0에 가까운 경우 더 효율적으로 작동할 수 있다.
- 비선형성
- Tanh 함수는 비선형 함수이기 때문에 신경망에서 입력 값을 비선형적으로 변환하여 복잡한 패턴을 학습할 수 있도록 한다. 이는 여러 층의 신경망을 쌓아도 전체 네트워크가 단순한 선형 변환으로 축약되지 않게 만든다.
- Gradient 소실 문제
- Tanh 함수는 Sigmoid 함수와 마찬가지로 기울기 소실(Vanishing Gradient) 문제를 일으킬 수 있다.
- 입력 값이 너무 크거나 너무 작을 경우, 함수의 출력이 -1이나 1에 가까워지면서 기울기가 0에 수렴하게 된다. 이로 인해 역전파 과정에서 기울기가 사라져 학습이 잘 되지 않을 수 있다.
- 식: a(x) = tanh(x)
- ReLU(Rectified Linear Unit)
- 식
- ReLU(x)=max(0,x)
- 출력값 범위
- 입력 값이 0보다 작으면 출력 값이 0이 되고, 입력 값이 0보다 크거나 같으면 그대로 출력 값이 된다.
- 비선형성
- ReLU 함수는 수식적으로는 간단하지만, 비선형적 특성을 가지고 있다. 입력 값이 0 이상일 때는 선형적이지만, 0 미만일 때는 출력을 0으로 제한하기 때문에 전체적으로 비선형 활성화 함수로 분류된다. 이로 인해 신경망의 여러 층을 쌓더라도 각 층의 출력이 단순히 선형 함수로 축약되지 않으며, 복잡한 비선형 패턴을 학습할 수 있다.
- 희소성(Sparsity)
- ReLU 함수는 입력 값이 0보다 작을 때 출력을 0으로 고정시키므로, 많은 뉴런의 출력 값이 0이 될 수 있다. 이를 통해 신경망의 뉴런들이 더 희소한 표현(Sparse Representation)을 학습할 수 있게 한다. 이는 학습 속도를 높이고, 과적합(overfitting)을 방지하는 데 도움을 줄 수 있다.
- 기울기 소실 문제 완화
- ReLU 함수는 입력 값이 양수일 때, 기울기(Gradient)가 1로 일정하게 유지된다. 이는 Sigmoid나 Tanh 함수와 달리, 입력 값이 커져도 기울기가 급격히 작아지지 않으므로 기울기 소실(Vanishing Gradient) 문제를 완화할 수 있다. 이러한 특성 덕분에 ReLU 함수는 깊은 신경망(Deep Neural Network)에서 효과적으로 사용된다.
- 식
- Leaky ReLU (Leaky Rectified Linear Unit)
- Leaky ReLU는 ReLU 함수의 단점을 보완하기 위해 제안된 변형 활성화 함수이다. Leaky ReLU 함수는 ReLU 함수와 유사하지만, ReLU 함수의 단점인 Dying ReLU 문제를 해결하기 위해 입력 값이 0보다 작을 때도 작은 기울기를 갖도록 설계되었다.
- 식
- Leaky ReLU(x) = { x if x ≥ 0
αx if x < 0
- Leaky ReLU(x) = { x if x ≥ 0
- 입력 값이 0보다 작을 때도 작은 기울기 유지
- Leaky ReLU는 입력 값이 0보다 작을 때도 𝛼 𝑥 αx라는 값으로 출력을 제공하므로, 기울기(Gradient)가 완전히 0이 되지 않는다. ReLU 함수는 입력 값이 0보다 작을 때 항상 0을 출력하므로, 역전파 시 기울기가 0이 되어 해당 뉴런이 학습에 기여하지 않게 되는 Dying ReLU 문제가 발생할 수 있다. 반면, Leaky ReLU는 입력이 음수일 때도 작은 기울기(보통 0.01)를 유지하므로, Dying ReLU 문제를 완화할 수 있다.
- 출력 값 범위
- Leaky ReLU의 출력 값은 음의 무한대에서 양의 무한대까지 가능하다. 이는 ReLU와 동일한 특성을 가진다. ReLU는 음수 입력에서 항상 0을 출력하지만, Leaky ReLU는 음수 입력에서도 𝛼 𝑥 αx와 같은 작은 음수 값을 출력한다.
- 비선형성
- Leaky ReLU는 비선형 활성화 함수로, 신경망의 여러 층을 쌓더라도 전체 모델이 단순한 선형 모델로 축약되지 않게 만들어 준다. 이를 통해 신경망이 더 복잡한 패턴을 학습하고, 비선형적 관계를 모델링할 수 있다.
- 계산 효율성
- Leaky ReLU는 ReLU와 마찬가지로 계산이 간단하다. 입력 값이 0 이상일 때는 그대로 출력하고, 0보다 작을 때는 𝛼 α와 입력 값을 곱하여 출력하기 때문에, 매우 빠르고 효율적이다.
- 파라미터 α
- α는 음수 입력에 대한 기울기를 결정하는 값으로, 보통 0.01을 사용하지만, 상황에 따라 사용자가 적절히 조절할 수 있다. 만약 α=0으로 설정하면, Leaky ReLU는 ReLU와 동일한 함수가 된다.
참고 자료
'AI > 개념' 카테고리의 다른 글
최적화 (Optimization)와 목적 함수(Objective Function)과 하강법 (Descent Method) (1) | 2024.10.14 |
---|---|
손실 함수와 회귀(Regression) (0) | 2024.10.07 |
퍼셉트론 구조와 학습 규칙 (3) | 2024.10.03 |
MCP 뉴런 (0) | 2024.10.02 |