📌활성화 함수란?
- 입력 신호의 총합을 출력 신호로 변환하는 함수
- 앞 뉴런에서 자극이 들어왔을 때 다음 뉴런을 활성화 할지 여부를 판단해 준다.
📌다양한 활성화 함수

✔️언제 어떤 활성화 함수를 사용해야 하는지 한 눈에 확인해 보자.
| 사용되는 층 | 활성화 함수 | 용도 |
|---|
| 은닉층 | ReLu, Leaky ReLu | 기울기 소실(Gradient vanishing) 문제를 줄이고 다음 층으로 신호를 전달한다. |
| 출력층 | Sigmoid | 이진 분류 |
| SoftMax | 다중 분류 |
| X | 회귀 |
✔️각 활성화 함수의 차이를 알아보자.
➰Sigmoid
1. 특징
- 여러 뉴런의 신호 값이 0보다 크면 1에 가까운 숫자로, 0보다 작으면 0에 가까운 숫자로 변환한다.
➡️ 0보다 크고 1보다 작은 임의의 값으로 출력되어 확률 표현이 가능하다.
- 미분 가능하다.
- 현업에서는 기울기 소실(Gradient vanishing) 문제로 사용하지 않지만 입문 과정에서는 반드시 다룬다.
2. 장점
- 출력값의 범위가 0~1 사이고, 매끄러운 곡선을 가지기 때문에 기울기가 급변하여 발생하는 기울기 폭주(Gradient Exploding) 문제가 발생하지 않는다.
3. 단점
- 은닉층에서 사용하지 않는 게 좋다.
- 함수값이 0이나 1이 가까울수록 출력값이 0에 가까워진다. 이때, 이진분류 문제에서 사용된다.
4. 사용되는 경우
- 신경망, 로지스틱 회귀, 이진 분류의 경우 출력층
➰Tanh (하이퍼볼릭탄젠트)
1. 특징
- 시그모이드 함수의 한계를 보완하고 크기와 위치를 조정한 함수
- -1~1 사이의 비선형 형태로 변경하기 위하여 사용된다.
2. 장점
- 시그모이드 함수보다 범위가 넓기 때문에 출력값의 변화 폭이 크고, 기울기 소실(Gradient vanishing) 증상이 적다.
- 출력값 데이터의 평균이 0으로, 시그모이드 함수보다 대부분의 경우 학습이 잘 된다.
3. 단점
- 기울기 소실(Gradient vanishing)이 여전히 일어난다.
- 은닉층에 사용할 때 여전히 조심해야 한다.
4. 사용하는 경우
➰ReLU (렐루)
1. 특징
- 입력이 0 이상이면 입력을 그대로 출력하고, 0 이하이면 0을 출력하는 함수
2. 장점
- 다른 함수보다 학습이 빠르다.
- 기울기 소실(Gradient vanishing) 문제가 발생하지 않는다. (은닉층에 많이 사용된다.)
- 가장 많이 사용하는 활성화 함수이다.
3. 단점
- 음수 값을 입력 받으면 항상 0으로 반환하고, 기울기가 0이 되어 가중치 업데이트가 안될 수가 있다.(이 현상을 뉴런 또는 죽어가는 렐루라고 한다.)
4. 사용하는 경우
➰Leaky ReLU
1. 특징
- 렐루와 유사하지만 가중치 곱의 합이 0보다 작을 때 값도 조금은 고려한다.
2. 장점
- 층이 아무리 깊어져도 손실 없이 정보 전달이 가능하다.
- 미분값이 항상 0과 1이기 때문에 연산이 빠르다.
- 음수일 경우, 기울기가 0이 아닌 0.01의 값을 갖는다.
- 일반적으로 많이 쓰이지는 않지만 ReLU보다 학습이 잘된다.
3. 사용하는 경우
➰Maxout
1. 특징
- Maxout Layer로 들어온 입력값 중에서 가장 큰 값을 선택하여 사용하는 방식
2. 장점
- 비선형성: Maxout 함수는 비선형성을 갖기 때문에 다양한 유형의 데이터를 모델링하는 데 유용하다.
- ReLU와 같은 함수에 비해 더 큰 그라디언트를 갖기 때문에 기울기 소실(Gradient vanishing) 문제를 완화할 수 있다.
3. 단점
- Maxout 함수는 입력값 중 최대값을 선택하는데, 이는 더 많은 계산 비용을 요구할 수 있다.
- 다른 활성화 함수보다 더 많은 파라미터를 갖기 때문에 모델의 크기를 증가시킬 수 있다.
4. 사용하는 경우
➰ELU
1. 장점
- 입력값이 음수일 때 활성화 함수가 부드럽게 0에 가까운 값으로 수렴한다. 이는 학습이 안정적으로 이루어지고 기울기 소실(Gradient vanishing) 문제를 완화하는 데 도움이 된다.
2. 단점
- exponential 함수를 사용하므로 계산이 느린 편이다.
➰Softmax (소프트맥스)
1. 특징
- 세 개 이상으로 분류하는 다중 클래스 분류에서 출력층에 사용되는 활성화 함수
- 입력 받은 값을 출력으로 0과 1사이의 값으로 모두 정규화하며, 출력 값들의 총합은 항상 1이 되는 특성을 가진 함수
2. 사용하는 경우
📖참고자료
https://pgnv.tistory.com/17