🖥️ 활성화 함수란?
딥러닝에서 활성화 함수는 신경망의 각 층에서 입력 값을 처리한 후, 비선형 변환을 적용해주는 함수입니다. 이를 통해 신경망은 단순한 선형 관계를 넘어 복잡한 패턴을 학습할 수 있습니다.
- 활성화 함수의 역할: 입력 값들을 선형 결합한 후에 비선형 변환을 적용함으로써 신경망이 비선형적인 문제도 해결할 수 있도록 돕습니다.
- 수식으로 표현하면, 입력 값 ( x )에 대해 가중치 ( w )와 편향 ( b )를 적용한 후, 활성화 함수 ( f )를 통해 다음과 같은 계산이 이루어집니다.
- 여기서 f는 활성화 함수입니다.
- 수식으로 표현하면, 입력 값 ( x )에 대해 가중치 ( w )와 편향 ( b )를 적용한 후, 활성화 함수 ( f )를 통해 다음과 같은 계산이 이루어집니다.
🖥️ 활성화 함수의 종류
✅ 시그모이드 함수 (Sigmoid)
시그모이드 함수는 출력 값이 항상 0과 1 사이에 위치하도록 하는 활성화 함수입니다. 이진 분류 문제에서 자주 사용되며, 입력이 클수록 1에 가까운 값을, 작을수록 0에 가까운 값을 출력합니다.
- 특징:
- 출력이 항상 양수(0과 1 사이)로 제한됩니다.
- 기울기 소실 문제가 발생할 수 있습니다. 입력 값이 매우 크거나 작을 때 기울기(미분 값)가 0에 가까워지기 때문에, 역전파 시 가중치 업데이트가 거의 이루어지지 않습니다.
✅ 하이퍼볼릭 탄젠트 함수 (Tanh)
Tanh 함수는 시그모이드 함수와 유사하지만, 출력 값이 -1에서 1 사이에 위치합니다. 0 중심으로 출력되므로, 시그모이드 함수보다 학습이 더 빠를 수 있지만, 여전히 기울기 소실 문제를 겪을 수 있습니다.
- 특징:
- 출력 값이 -1에서 1 사이에 있기 때문에, 시그모이드보다 출력이 더 균형 잡힌 값을 제공합니다.
- 그러나 여전히 기울기 소실 문제가 발생할 수 있습니다. 입력 값이 크거나 작을 때 기울기가 0에 가까워지면, 학습이 느려지거나 멈추는 현상이 생깁니다.
✅ ReLU (Rectified Linear Unit)
ReLU는 최근 딥러닝 모델에서 가장 많이 사용되는 활성화 함수 중 하나입니다. ReLU는 입력 값이 양수일 때는 그대로 출력하고, 음수일 때는 0을 반환합니다.
- 특징:
- 계산이 간단하며, 양수 값에서 기울기가 항상 1로 유지되기 때문에 기울기 소실 문제가 크게 줄어듭니다.
- ReLU 함수를 활성화함수로 사용하기 시작하면서 딥러닝이 크게 발전했다고 해도 과언이 아닙니다!
- 하지만, 입력 값이 음수일 때는 항상 0을 출력하기 때문에, 일부 뉴런들이 죽어버리는 문제(Dead Neuron)가 발생할 수 있습니다.
- 계산이 간단하며, 양수 값에서 기울기가 항상 1로 유지되기 때문에 기울기 소실 문제가 크게 줄어듭니다.
✅ Softmax 함수
Softmax 함수는 다중 클래스 분류에서 주로 사용됩니다. 입력 값들을 확률 분포로 변환하며, 각 출력 값이 0과 1 사이에 위치하고, 모든 출력 값들의 합이 1이 되도록 만듭니다. exponential을 씌워 정규화했다고 생각하면 편합니다.
- 특징:
- 각 출력 값은 해당 클래스에 속할 확률로 해석됩니다.
- 모든 출력 값들의 합은 1이 됩니다.
- 다중 클래스 분류 문제의 출력층에서 가장 많이 사용됩니다.
✅ 기울기 소실 문제 (Vanishing Gradient Problem)
기울기 소실 문제는 시그모이드나 Tanh와 같은 S자형 함수에서 발생하는 대표적인 문제입니다. 신경망의 깊은 층에서 역전파가 진행될 때, 기울기가 0에 가까워져 가중치 업데이트가 거의 이루어지지 않는 현상입니다.
- 기울기 소실 문제 발생 원인:
- 시그모이드나 Tanh 함수는 입력 값이 매우 크거나 작을 때 기울기가 0에 가까워지기 때문에, 역전파 과정에서 기울기 값이 사라집니다.
- 층이 깊어질수록, 기울기 값이 여러 층을 거치면서 0에 가까운 작은 값을 곱하면 그 값은 점점 작아지기 때문에 초반 층들이 학습되지 않는 문제가 발생합니다. 결국 앞쪽 층들은 제대로 학습되지 않고 오직 마지막 몇 개의 층들만 학습이 이루어지는 문제가 발생합니다.
- 해결 방법
- ReLU와 같은 활성화 함수를 사용하면, 기울기가 1로 유지되기 때문에 기울기 소실 문제를 완화할 수 있습니다.
- 또 다른 방법으로는 배치 정규화(Batch Normalization), 잔차 학습(Residual Learning) 등이 있습니다.
🖥️ 결론
딥러닝에서 활성화 함수는 신경망이 단순한 선형 모델을 넘어서 복잡한 패턴을 학습하는 데 매우 중요한 역할을 합니다. 하지만, 시그모이드나 Tanh 같은 함수는 기울기 소실 문제를 일으킬 수 있으며, 이를 해결하기 위해 ReLU 같은 함수를 사용할 수 있습니다.
도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!