딥러닝

Activation Function - Sigmoid, Tanh, ReLU

토킹감쟈 2022. 12. 24. 13:51

활성화 함수(Activation Function)란?

인공신경망의 은닉층에 사용되는 함수.

인공신경망에서는 이전 레이어에서 출력된 값을 입력으로 받아서 어떠한 함수를 통과시킨 후 그 결과를 다음 레이어로 출력하는 것,

이때 "어떠한 함수"를 "활성화 함수"라고 함.

 

활성화 함수 종류

  • 비선형 활성화 함수
  • 선형 활성화 함수
  • 이진 활성화 함수

위의 세가지 활성화 함수 종류가 있지만, 비선형 활성화 함수를 사용하는 것이 바람직함.

그 이유는,

  • 선형의 경우 → 역전파가 불가능하고, 레이어를 깊게 쌓는것의 의미가 사라짐
  • 이진의 경우 → 다중 출력이 불가능함

따라서 어디선가 다 들어본 함수들은 거의 대부분 비선형. 예를들어,

  • Sigmoid
  • Softmax
  • tanh(하이퍼볼릭탄젠트)
  • ReLU
  • Leaky ReLU

등등등

 

 

 

※직접 쓰면서 공부한 내용들을 다시 정리하는 글이기에 직접 쓰고 그린 내용들이 첨부됩니다※


1. Sigmoid 

특징

  • 0~1 사이의 값으로 출력함
  • zero-centered되지 않음 = 중심값이 0이 아님 = 중심값이 1/2임
  • input이 커질수록 output은 1에 가까워지고, input이 작아질수록 output은 0에 가까워짐
  • input이 커지거나 작아질수록 gradient(기울기)는 0에 가까워짐

문제점

  • gradient가 사라짐(gradient vanishing문제) → 학습성능이 떨어짐
  • output값의 중심이 0이 아니기 때문에 학습속도가 느려질 수 있음
  • exp() 사용시 연산비용이 커짐

 

2.Tanh

 

위의 식은 다음과 같은 간단한 계산으로 유도되는 것

특징

  • output값이 -1 ~ 1 사이 값
  • output의 중심이 0 = zero-centered
  • input값이 작아질수록/커질수록 gradient가 0에 가까워짐
  • Sigmoid보다는 학습 성능이 좋음 ← zero-centered하게 만들면서 sigmoid의 최적화 과정이 느려지는 문제를 해결함

문제점

  • 기울기 소실 문제가 해결되지 않음(gradient vanishing 문제)

 

3.ReLU

특징

  • input이 0보다 작으면 output값은 0이고, input이 0보다 크면 output값은 x.
  • sigmoid와 tanh에 배해 상대적으로 학습속도가 빠름
  • 연산비용이 크지 않음

문제점

  • output의 중심이 0이 아 = not zero-centered
  • x가 0보다 작을때 gradient가 0이 됨