활성화 함수
활성화 함수는 인공신경망에서 입력 값에 대해서 가중치를 곱한 뒤 적용하는 함수를 의미한다.
예를 들어,
- 계단 함수(Step Function)
- 시그모이드(Sigmoid)
- tanh 함수(Hyperbolic tangent function)
- ReLU(Rectified Linear Unit)
- Leakly ReLU
- PReLU
- ELU(Exponential Linear Unit)
- Maxout 함수
- 항등 함수(Identity Function)
- 소프트맥스 함수(Softmax Function)
등이 있다.
신경망은 입력층, 은닉층, 출력층으로 구성되는데, 선형함수를 사용할 경우에는 은닉층을 사용할 수 X.
즉, 선형함수를 여러층으로 구성하더라도 결국은 선형함수를 그저 여러번 반복한 것에 지나지 않다.
위 사진을 보면 2개의 층으로 구성했지만 X에 곱해지는 항들은 W로 치환이 가능하고 입력과 무관한 상수들은 전체를 B로 치환가능하기 때문에 WX+B라는 초기와 동일한 형태를 띄게 된다. 그렇기 때문에 비선형함수를 사용해야한다.
위 활성화 함수의 예시들 중에서 시그모이드, Tanh, ReLU, leakyReLU 함수에 대한 그래프는 다음과 같다.
(1) 시그모이드(Sigmoid) 함수
시그모이드 함수는 0에 가까운 작은 값에서 일정한 유한값에 점근하는 함수로, 신경망에서 자주 이용된다. 신경망에서는 입력신호를 받아서 변환하여 전달한다.
위 그래프에서 파란색 선은 시그모이드 함수를 나타내고, 주황색 선은 미분한 시그모이드 함수의 그래프를 나타낸다.
시그모이드 함수 미분 과정 :
(2) Tanh 함수
Tanh 함수는 시그모이드 함수의 대체제로 자주 사용된다. 형태도 시그모이드와 매우 비슷하다. 시그모이드와 다른 점이 있다면 시그모이드 함수는 출력 범위가 0부터 1의 사이인 반면 Tanh 함수의 출력 범위는 –1부터 1의 사이이다. 그런데 Tanh함수는 시그모이드의 vanishing gradient 문제라는 단점을 그대로 갖고 있다.
Tanh 함수 미분 과정 :
(3) ReLU 함수
ReLU(Rectified Linear Unit)는 입력값이 0보다 작으면 0을 출력하고, 입력값이 0보다 크면 입력값 그대로 출력하는 함수이다. ReLU는 최근 가장 많이 사용되고 있는 활성화 함수이다.
위 파란색 그래프를 보면 x > 0 일 때, 출력값은 선분의 기울기는 1인 직선의 값이다. 그리고 x < 0 일 때, 선분의 기울기가 0이고 출력값은 모두 0이다. 그렇기 때문에 ReLU 함수는 이전의 함수들에 비해 미분 값이 매우 간단하다. x > 0 일 때 ReLU 함수의 미분값은 1이고, x < 0 일 때 ReLU 함수의 미분값은 0 이다. 이렇게 ReLU 함수는 앞의 활성화 함수들에 비해서는 학습이 매우 빠르고, 연산 비용이 저렴하고, 구현이 간단하다는 장점이 있다. 하지만 입력값이 x < 0 일 때 기울기가 0이므로 뉴런이 죽을 수 있다는 단점이 있다.
(4) leakyReLU 함수
leakyReLU 함수는 입력값이 x < 0 일 때 기울기가 0이어서 뉴런이 죽을 수 있다는 ReLU 함수의 단점을 해결하기 위한 함수이다. ReLU 함수와 거의 비슷한 형태이다. 아래 식에서 0.01 대신 다른 작은 값을 사용해도 되는데 대부분 0.01로 설정한다.
※ 공식 정리 :
※ 앤드류 응 교수의 딥러닝 강의를 듣고 정리했습니다.
'자습 > 딥러닝' 카테고리의 다른 글
[딥러닝] 벡터화2 (0) | 2021.02.06 |
---|---|
[딥러닝] 비지도학습 (0) | 2021.02.06 |
[딥러닝] 순환신경망(RNN) (0) | 2021.02.06 |
[딥러닝] 벡터화 (0) | 2021.02.06 |
[딥러닝] 딥러닝을 위한 자주 쓰이는 파이썬 문법 참고 (0) | 2021.02.06 |