활성화 함수란 무엇인가?
🎯 활성화 함수의 정의
- 저번시간에 설명하였던 퍼셉트론(단층, 다층), 아달린 알고리즘 등에서 입력층 및 은닉층에서 계산 되었던 임계값의 실제 출력 여부를 판단하여 출력 시키기 위한 딥러닝 내에서 가장 중요한 역할을 가짐
비선형성?
- 활성화 함수는 기본적으로 비선형성을 띈다. 그러므로 모델이 복잡한 데이터 패턴을 학습할 수 있도록 돕는데, 이는 만약 활성화 함수가 선형구조라면, 각 계층은 선형 변환만 수행하게 되면서 여러 층을 쌓게 되어도 결국 단일 선형 변환과 동일해질 수 밖에 없기 때문
선형성과 비선형성은 활성화 함수의 종류를 설명이 끝난 다음 자세하게 정리할 예정
활성화 함수의 종류
| 함수 이름 | 수식 | 특징 | 주요 장단점 |
|---|---|---|---|
| 계단 함수 | $$ f(x) = \begin{cases} 1 & \text{if } x \geq 0 \ 0 & \text{if } x < 0 \end{cases} $$ | 이진 출력(0 또는 1), 단순한 분류 | 단순하고 직관적이나 미분 불가능, 다층 신경망에서는 잘 사용되지 않음. |
| 시그모이드 함수 | $$ f(x) = \frac{1}{1 + e^{-x}} $$ | 출력 값이 \(0\)과 \(1\) 사이, 연속적이고 매끄러운 변화 | 기울기 소실 문제 발생 가능, 출력 값이 항상 양수로 편향(bias) 초기화에 영향. |
| Tanh 함수 | $$ f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} $$ | 출력 값이 \(-1\)과 \(1\) 사이, 시그모이드와 유사하지만 중심값이 \(0\) | 기울기 소실 문제는 여전히 존재하나, 출력 중심이 \(0\)이어서 더 빠르게 수렴 가능. |
| ReLU 함수 | $$ f(x) = \begin{cases} x & \text{if } x > 0 \ 0 & \text{if } x \leq 0 \end{cases} $$ | 입력이 양수일 때 선형, 음수일 때 \(0\), 간단하고 계산 효율성 좋음 | 음수 영역에서 뉴런이 죽는 문제(Vanishing Neuron). |
| Leaky ReLU | $$ f(x) = \begin{cases} x & \text{if } x > 0 \ \alpha x & \text{if } x \leq 0 \end{cases} $$ | ReLU를 개선한 함수, 음수 영역에서 작은 기울기를 부여 | 뉴런 죽음 문제를 완화, 그러나 \(\alpha\)값의 선택이 중요. |
| ELU (Exponential Linear Unit) | $$ f(x) = \begin{cases} x & \text{if } x > 0 \ \alpha (e^x - 1) & \text{if } x \leq 0 \end{cases} $$ | Leaky ReLU와 유사하나, 음수 영역에서 더 부드러운 변화를 제공 | 학습이 더 안정적이나 계산 비용 증가. |
| Softmax 함수 | $$ f(x_i) = \frac{e^{x_i}}{\sum_{j=1}^n e^{x_j}} $$ | 다중 클래스 분류에 사용, 출력 값이 각 클래스의 확률로 해석 가능 | 계산 비용이 크며, 다른 활성화 함수와 함께 사용됨. |
계단 함수 (Step Function)
1. 계단 함수란?
- 계단 함수(Step Function)는 입력 값이 특정 임계값(Threshold)을 기준으로 출력 값을 0 또는 1로 변환하는 함수.
- 단순한 활성화 함수로, 주로 퍼셉트론과 같은 초기 신경망 모델에서 사용되었다.
- 수학적으로 다음과 같이 정의한다:
$$
f(x) =
\begin{cases}
1, & \text{if } x \geq 0 \\
0, & \text{if } x < 0
\end{cases}
$$
그래프
- 계단 함수의 그래프는 \(x = 0\)을 기준으로 출력 값이 갑자기 0에서 1로 변합니다.
- 그래프는 아래와 같은 비연속적 형태를 가진다:


특징
- 이진 출력:
- 입력 값이 임계값을 넘으면 \(1\), 넘지 못하면 \(0\)을 출력한다.
- 이진 분류 문제에서 사용된다.
- 단순성:
- 계산이 매우 간단하여 퍼셉트론과 같은 초기 신경망 모델에서 널리 사용된다.
- 비연속성:
- 입력 값이 임계값에서 갑자기 변화하기 때문에, 함수가 미분 불가능하다(가장 치명적).
- 이는 신경망 학습 과정에서 역전파(Backpropagation)를 사용할 수 없게 만든다.
장단점
장점
- 단순하고 직관적인 계산 방식.
- 이진 출력으로 참/거짓 판별에 적합.
단점
- 미분 불가능:
- 비연속적인 형태로 인해 기울기(Gradient)를 계산할 수 없다.
- 이는 학습 과정에서 사용하기 어렵게 만든다.
- 복잡한 문제 해결 불가:
- 비선형 문제(XOR 문제 등)를 해결할 수 없으며, 선형적으로 구분 가능한 문제에만 사용 가능하다.
- 현대 신경망에서 사용되지 않음:
- ReLU, 시그모이드 등의 비선형 활성화 함수가 발전함에 따라 계단 함수는 잘 사용되지 않는다.
수학적 표현
계단 함수는 Heaviside 함수라고도 불리며, 다음과 같이 표현할 수 있다:
$$
H(x) =
\begin{cases}
1, & \text{if } x \geq 0 \\
0, & \text{if } x < 0
\end{cases}
$$
시그모이드 함수 (Sigmoid Function)
1. 시그모이드 함수란?
시그모이드 함수(Sigmoid Function)는 입력 값을 \(0\)과 \(1\) 사이의 연속적인 실수 값으로 변환하는 활성화 함수이다. 출력 값이 확률처럼 해석될 수 있어, 이진 분류(Binary Classification) 문제에서 자주 사용되었다.
수학적으로는 다음과 같이 정의할 수 있다:
$$
f(x) = \frac{1}{1 + e^{-x}}
$$
여기서, \(x\)가 클수록 \(f(x)\)는 1에 가까워지고, \(x\)가 작을수록 \(f(x)\)는 0에 가까워진다.
2. 그래프
시그모이드 함수는 (S)-자 형태의 곡선을 그린다. 그래프는 아래와 같다:
3. 특징
3-1. 연속성과 매끄러운 변화:
- 출력 값이 \(0\)과 \(1\) 사이에서 매끄럽게 변하며, 확률적 해석이 가능하다.
3-2. 중심 값:
- \(x = 0\)일 때, \(f(x) = 0.5\)로 중심을 가진다.
3-3. 미분 가능:
- 시그모이드 함수는 모든 영역에서 미분 가능하다.
- 미분 공식은 다음과 같다:
$$
f'(x) = f(x)(1 - f(x))
$$
4. 장단점
장점:
- 출력 값이 확률로 해석 가능하여 이진 분류 문제에서 직관적이다.
- 연속적이고 매끄러운 출력 값으로 계산이 용이하다.
단점:
- 기울기 소실(Vanishing Gradient) 문제:
- \(x \to \pm \infty\)일 때, 기울기 \(f'(x)\)가 0에 가까워져 학습이 느려질 수 있다.
- 출력 값의 편향:
- 출력 값이 항상 양수이므로, 기울기 계산에서 편향(bias)이 발생할 가능성이 있다.
하이퍼볼릭 탄젠트 함수 (Hyperbolic Tangent, Tanh Function)
1. 하이퍼볼릭 탄젠트 함수란?
하이퍼볼릭 탄젠트 함수(Tanh 함수)는 시그모이드 함수의 변형으로, 출력 값을 \(-1\)과 \(1\) 사이의 연속적인 실수 값으로 변환하는 활성화 함수이다. 중심이 0에 있기 때문에 시그모이드 함수보다 학습 속도가 더 빠르다는 장점이 있다.
- 수학적으로 다음과 같이 정의할 수 있다:
$$
f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
$$
2. 그래프
하이퍼볼릭 탄젠트 함수는 \(S\)자 형태의 곡선을 그리며, 출력 값이 \(-1\)과 \(1\) 사이에 분포한다. \(x = 0\)일 때 함수의 출력은 \(0\)이다.


3. 특징
- 중심 값이 0:
- 시그모이드 함수와 달리 출력 값의 중심이 \(0\)에 위치하여 학습에 유리하다.
- 출력 값이 양수와 음수로 나뉘므로, 기울기 소실 문제를 일부 완화한다.
- 연속성과 매끄러운 변화:
- 입력 값이 클수록 출력 값은 \(1\)에 가까워지고, 입력 값이 작을수록 출력 값은 \(-1\)에 가까워진다.
- 미분 가능:
- 하이퍼볼릭 탄젠트 함수는 모든 영역에서 미분 가능하며, 미분 공식은 다음과 같다:
$$
f'(x) = 1 - (\tanh(x))^2
$$
- 하이퍼볼릭 탄젠트 함수는 모든 영역에서 미분 가능하며, 미분 공식은 다음과 같다:
4. 장단점
장점:
- 중심이 0:
- 시그모이드 함수보다 출력 값의 분포가 균형적이어서 학습이 더 빠르게 이루어진다.
- 기울기 소실 문제 완화:
- 출력 값의 범위가 더 넓기 때문에, 시그모이드 함수에 비해 기울기 소실 문제가 덜 발생한다.
단점:
- 기울기 소실 문제:
- 출력 값이 \(-1\) 또는 \(1\) 에 가까운 극단 영역에서는 여전히 기울기가 작아져 학습 속도가 느려질 수 있다.
- 계산 비용:
- 지수 연산 (\(e^x\), \(e^{-x}\)) 이 포함되어 있어 ReLU와 같은 간단한 함수에 비해 계산 비용이 높다.
하이퍼볼릭 탄젠트(Tahn) 추가 정보
- 보통 RNN 연산시 활성화 함수로 사용되곤 하는데, 그 이유는/ Tahn 함수는 \(-1,1\)로 출력 범위가 정해져 있어 음수와 양수 값 모두 포함하는데
- RNN은 구조상(순환구조) 입력값과 이전 상태의 은닉층이 곱해져 순환되므로 음수 값 또한 정보 흐름에 있어 중요한 역할을 하기에 RNN에서 사용한다.
RNN에 대해서도 자세하게 정리하여 작성할 예정
ReLU 함수 (Rectified Linear Unit)
1. ReLU 함수란?
ReLU(Rectified Linear Unit) 함수는 신경망에서 가장 널리 사용되는 활성화 함수 중 하나로, 입력 값이 양수인 경우 그대로 출력하고, 음수인 경우 0으로 출력하는 함수이다. 간단한 구조와 효율성으로 인해 현대 신경망에서 기본 활성화 함수로 자주 사용된다.
수학적으로 다음과 같이 정의할 수 있다:
$$
f(x) =
\begin{cases}
x, & \text{if } x > 0 \
0, & \text{if } x \leq 0
\end{cases}
$$
2. 그래프
ReLU 함수의 그래프는 다음과 같다:
- \(x > 0\): 출력 값은 입력 값과 동일.
- \(x \leq 0\): 출력 값은 항상 0.

3. 특징
(1) 비선형성
- ReLU는 부분적으로 선형이지만, 음수 영역에서 0으로 출력되므로 전체적으로 비선형 함수이다.
- 이 비선형성 덕분에 신경망이 복잡한 패턴과 관계를 학습할 수 있다.
(2) 단순성과 효율성
- ReLU는 시그모이드나 Tanh와 달리 지수 연산이 필요하지 않아 계산이 매우 효율적이다.
(3) 기울기 문제 완화
- \(x > 0\) 영역에서는 기울기 값이 1로 일정하므로, 기울기 소실 문제(Vanishing Gradient)가 발생하지 않는다.
4. 장단점
장점:
- 계산 효율성:
- 단순한 구조로 인해 계산 속도가 빠르며, 대규모 신경망에 적합하다.
- 기울기 소실 문제 해결:
- 양수 영역에서 기울기가 일정하므로, 역전파(Backpropagation) 과정에서 기울기 소실 문제를 완화한다.
- 희소 표현(Sparse Activation):
- 음수 영역에서 출력이 0이므로, 일부 뉴런이 비활성화 상태가 되어 희소 표현을 유도한다.
단점:
- 죽은 뉴런 문제(Vanishing Neuron):
- 입력 값이 음수일 경우, 기울기가 0이 되어 해당 뉴런이 학습되지 않는 죽은 뉴런 문제가 발생할 수 있다.
- 출력 값의 폭발 가능성:
- 양수 영역에서 출력 값이 제한되지 않으므로, 가중치가 너무 커질 경우 출력 값이 폭발할 위험이 있다.
5. ReLU의 변형
(1) Leaky ReLU
- 음수 영역에서도 작은 기울기를 부여하여 죽은 뉴런 문제를 완화.
- 정의:
$$
f(x) =
\begin{cases}
x, & \text{if } x > 0 \
\alpha x, & \text{if } x \leq 0
\end{cases}
$$
여기서 \(\alpha\)는 작은 양수(예: 0.01).
(2) Parametric ReLU (PReLU)
- Leaky ReLU의 개선으로, 음수 영역의 기울기 \(\alpha\)를 학습 가능하도록 만든 함수.
(3) Exponential Linear Unit (ELU)
- 음수 영역에서 지수 함수를 사용하여 부드러운 출력 값을 제공.
- 정의:
$$
f(x) =
\begin{cases}
x, & \text{if } x > 0 \
\alpha (e^x - 1), & \text{if } x \leq 0
\end{cases}
$$
소프트맥스 함수 (Softmax Function)
1. 소프트맥스 함수란?
소프트맥스 함수(Softmax Function)는 입력 값을 확률 분포로 변환하는 활성화 함수이다. 각 입력 값의 크기를 기준으로 확률을 계산하며, 출력 값의 총합은 항상 1이 된다. 주로 다중 클래스 분류(Multi-Class Classification) 문제에서 출력층 활성화 함수로 사용된다.
수학적으로는 다음과 같이 정의된다:
$$
f(x_i) = \frac{e^{x_i}}{\sum_{j=1}^n e^{x_j}}
$$
여기서:
- \(x_i\): \(i\)-번째 입력 값.
- \(n\): 입력 값의 총 개수.
- \(f(x_i)\): \(i\)-번째 클래스에 대한 확률 값.
2. 특징
출력의 특징:
- 소프트맥스 함수는 입력 값들을 확률로 변환하여 출력한다.
- 모든 출력 값의 합은 항상 1이다:
$$
\sum_{i=1}^n f(x_i) = 1
$$ - 각 입력 값이 클수록 해당 값의 확률이 증가하며, 나머지 값들의 확률은 상대적으로 감소한다.
예시:
입력 값이 \([2, 1, 0.1]\)이라면, 소프트맥스 출력 값은 다음과 같다:
\[
f([2, 1, 0.1]) = \left[ \frac{e^2}{e^2 + e^1 + e^{0.1}}, \frac{e^1}{e^2 + e^1 + e^{0.1}}, \frac{e^{0.1}}{e^2 + e^1 + e^{0.1}} \right]
\]
3. 특징
(1) 확률 분포 생성
- 소프트맥스 함수는 입력 값의 상대적 크기를 고려하여, 각 클래스에 대한 확률을 생성한다.
- 가장 큰 입력 값을 가진 클래스가 가장 높은 확률을 갖는다.
(2) 출력 값의 상호 의존성
- 모든 클래스의 확률은 상호 의존적이다. 즉, 하나의 입력 값이 증가하면 나머지 클래스의 확률은 상대적으로 감소한다.
(3) 지수적 성장
- 입력 값이 큰 경우, 해당 클래스의 확률이 지수적으로 증가한다. 반대로, 입력 값이 작은 경우 해당 클래스의 확률이 급격히 감소한다.
4. 장단점
장점:
- 확률적 해석 가능:
- 출력 값이 확률로 해석 가능하여 직관적이다.
- 다중 클래스 분류에 적합:
- 소프트맥스는 다중 클래스 분류 문제에서 클래스별 확률을 계산하기에 적합하다.
단점:
- 계산 비용:
- 지수 연산(\(e^{x_i}\))이 포함되어 있어 계산 비용이 높다.
- 극단적 출력:
- 입력 값의 차이가 클 경우, 특정 클래스에 대한 확률이 매우 높아지고 나머지 값이 거의 0에 수렴할 수 있다.
5. 소프트맥스 함수의 사용
(1) 다중 클래스 분류
- 소프트맥스 함수는 신경망의 출력층에서 사용되며, 각 클래스에 대한 확률 값을 계산한다.
- 분류 작업에서는 가장 높은 확률을 가진 클래스를 최종 예측 값으로 선택한다:
$$
\text{예측 클래스} = \arg\max f(x_i)
$$
(2) 로스 함수와의 결합
- 소프트맥스 함수는 크로스 엔트로피 손실 함수(Cross-Entropy Loss)와 함께 사용된다.
- 크로스 엔트로피는 모델이 예측한 확률 분포와 실제 라벨의 원-핫 인코딩 간의 차이를 계산한다.
6. 결론
소프트맥스 함수는 입력 값들을 확률 분포로 변환하여 다중 클래스 분류 문제를 해결하는 데 중요한 역할을 한다. 직관적인 확률 해석과 더불어, 크로스 엔트로피 손실 함수와의 결합으로 강력한 성능을 제공한다. 다만, 계산 비용과 극단적 출력 값 문제를 고려해야 한다.
'딥러닝, 논문 리뷰' 카테고리의 다른 글
| [딥러닝] RNN, LSTM, GRU Sequence - 1 (2) | 2024.12.27 |
|---|---|
| [딥러닝] AutoEncoder란? - 신경망 아키텍처 (1) | 2024.12.20 |
| [딥러닝, 논문리뷰] BERT모델과 HuggingFace Trainer를 이용한 KoBERT 감정분석 (7) | 2024.12.20 |
| [딥러닝] 손실함수의 종류 및 정의(Loss Function) (5) | 2024.12.16 |
| [딥러닝] 분류모델 성능 평가지표 (5) | 2024.12.12 |