본문 바로가기
Study (Data Science)/DL

활성화함수 종류

by 콜라찡 2022. 12. 29.

  • vanishing gradient 현상이 발생한다. (0과 1에 결과값이 포화 saturate 된다. 포화된다는 말 자체가 kill the gradient. 기울기가 죽어버리면 에포크를 많이 돌려도 더이상 학습되지 않는다. )
  • exp 함수 사용 시 비용이 크다.
  • 요즘은 ReLU를 더 많이 사용한다.

  • Hyperbolic Tangent : 쌍곡선 함수 중 하나. (쌍곡선함수 hyperbolic tuction : 일반 삼각함수와 유사한 성질을 갖는 함수지만 삼각함수와 달리 주기함수는 아니다. 
  • tanh 함수는 함수의 중심값을 0으로 옮겨 sigmoid의 최적화 과정이 느려지는 문제를 해결.
  • vanishing gradient 문제 존재. (값이 1, -1에 포화됨)

  • sigmoid, tanh 함수에 비해 학습이 빠름. 에포크당 훈련비율이 7배정도 빨라진다고 AlexNet 논문에 기술됨.
  • 연산 비용이 크지 않고, 구현이 매우 간단.
  • x = 0 일 때만 제외하고 모든 구간에서 미분이 가능. 음수면 0, 양수면 1로 값을 정제함.
  • 하지만 x = 0이면, 즉 그래디언트를 구하는 과정 중 0이 주어지면 무작위하게 0 혹은 1을 출력하게 됨. 
  • 이전 훈련 스텝 가중치가 업데이트 되면서 한번 0이하로 떨어지만, 그 이후의 그래디언트도 모두 0으로밖에 나오지 않는 Dying ReLU 문제가 있음. 이렇게 되면 기울기가 0이 되면서 학습이 되지 않음. 하지만 이는 학습률을 크게 잡을 때 발생하는 문제로 lr을 줄여주면 해결할 수 있음.

ReLU의 단점을 해결하고자 했던 다른 함수들

  • PReLU(parametric ReLU) : Leaky ReLU와 유사하지만 새로운 파라미터를 추가하여 0 미만일때도 기울기가 훈련되기 하였음.

  • ELU(Exponential Linear Unit) : 0일때에도 계산되게 하면서 (알파를 추가함)  Dying ReLU를 해결하였음. 하지만 exponential연산이 들어가면서 계산비용이 높아짐

https://reniew.github.io/12/

 

딥러닝에서 사용하는 활성화함수

An Ed edition

reniew.github.io

https://pozalabs.github.io/Activation_Function/

 

Activation Function

Activation Function summary

pozalabs.github.io

 

https://wikidocs.net/60683

 

06. 비선형 활성화 함수(Activation function)

비선형 활성화 함수(Activation function)는 입력을 받아 수학적 변환을 수행하고 출력을 생성하는 함수입니다. 앞서 배운 시그모이드 함수나 소프트맥스 함수는 대표적인…

wikidocs.net

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=handuelly&logNo=221824080339 

 

딥러닝 - 활성화 함수(Activation) 종류 및 비교

# 활성화 함수 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달...

blog.naver.com

https://hyeonji-ryu.github.io/2020/05/02/DeeplearningJulia/Deeplearning-10/

 

10. ReLU vs. Sigmoid 성능 비교

해당 시리즈는 프로그래밍 언어 중 하나인 줄리아(Julia)로 딥러닝(Deep learning)을 구현하면서 원리를 설명합니다.

hyeonji-ryu.github.io

 

728x90

댓글