-
Keras 지원하는 활성 함수(1)딥러닝/Keras 2019. 11. 19. 00:52
이 포스팅에서는 Keras에서 지원하는 활성 함수 종류들을 소개한다.
1) sigmoid
활성함수 Sigmoid는 예전 신경망 모델에서 많이 사용되어진 활성 함수이다.
출력 범위는 0 < x < 1 값을 가진다.
Sigmoid gradient vanishing 문제점
- Sigmoid를 이용한 출력 값이 0 또는 1사이에 값으로 매우 작다. 딥러닝 모델은 뉴런의 잘못된 가중치 값을 고치기 위하여 역전파 알고리즘 사용한다. 하지만 Sigmoid를 사용하는 경우 역전파 알고리즘 값을 구하는 중 미분된 기울기 값이 너무 작아져서 학습이 안되는 상황이 발생한다.
Keras 사용 예
Dense(7, activation='sigmoid')
2) tanh
비선형 함수의 종류로써 sigmoid와 비슷한 모형을 가지고 있다.
tanh 함수는 그림에서 볼 수 있듯이, 값을 범위를 -1 < x < 1 값을 가진다.
sigmoid와 유사 성질을 가지면, gradient vanishing 문제를 가진다는 단점이 있다.
Keras 사용 예
LSTM(20, input_shape=(3, 12), activation='tanh', batch_size=batch_size, stateful=stateful)
3) Relu
활성 함수는 Relu는 현재 가장 많이 사용되고 있는 활성 함수로써, 연산이 빠르고 위에서 가지고 있던 gradient vanishing 문제를 어느정도 해결하였다.
0 밑에 값은 0 값을 가짐으로써, 학습이 안된다는 문제점을 가진다. 하지만 계산식 매우 간단함으로써 연산 속도가 빨라질 수 있고, 구현하기 편하다.
Keras 사용 예
Dense(5, activation='relu')
'딥러닝 > Keras' 카테고리의 다른 글
Keras RNN 모델 생성 방법 (0) 2019.11.14 Keras Multi(input, output) 모델 생성 방법 (0) 2019.11.13 Keras 모델 생성 방법 (0) 2019.11.13 Ubuntu Keras 설치 (0) 2019.11.12