본문 바로가기

카테고리 없음

[딥러닝] #3 활성화 함수

딥러닝 모델의 한 층에서 그 다음 층으로 넘어갈 때, 대부분의 은닉층에서는 활성화 함수를 거칩니다.
활성화 함수를 사용하는 이유는 다양하지만, 가장 근본적인 이유는 모델에 '비선형성(NonLinearity)'를 부여해주기 때문입니다.

활성화 함수의 종류는 매우 다양하고, 각 함수의 수학적인 특성에 따라 그 쓰임새가 나뉩니다.

 

조원 최종혁 군이 정리해준 팀 과제 이미지.

시그모이드 함수(Sigmoid Function) / logistic 함수

시그모이드 함수의 원함수와 미분 버전.

딥러닝 초기에 주로 사용됐던 활성화 함수로, 0과 1 사이의 값을 반환하기에 확률로 해석 가능, 출력층에 사용되어 이진 분류에 사용되기도 하지만, 기울기 소실 가능성이 높고 학습 속도가 느리다. 

- 기울기 소실 가능성이 높다는 게 뭘까? 극단으로 갈수록 미분값이 0이 되어서, 가중치가 업데이트 되지 않는 상황. (포화: 극단적인 출력값을 만듦.)

시그모이드의 미분함수(오른쪽 그림)를 보면 x=0 에서 최대값 1/4를 가지고, 입력값이 일정 이상 올라가면 미분한 값이 거의 0에 수렴하게 된다. 이는 역전파(Backpropagation)되는 과정에서 출력값이 현저하게 감소되는 결과를 낳는다(0에 가까운 값끼리 곱하면 0에 계속 가까워지듯이).
- [출처] 활성화 함수_시그모이드 함수(Sigmoid Function)|작성자 봄이

- 편향 이동이 발생한다?

출력 값의 중앙값이 0이 아닌 0.5이며 모두 양수기 때문에 출력의 가중치 합이 입력의 가중치 합보다 커지게 된다.
이를 편향 이동(Bias Gradient)라 하고, 신호가 각 레이어를 통과할 때마다 분산이 계속 커지게 되어 활성화 함수의 출력이 최댓값과 최솟값인 0과 1에 수렴하게 된다.
- [출처] 활성화 함수_시그모이드 함수(Sigmoid Function)|작성자 봄이

 

하이퍼볼릭 탄젠트 함수(tanh Function) 

출처: 하이퍼볼릭탄젠트 함수 : 네이버 포스트 (naver.com)

시그모이드 함수의 단점 개선. 범위를 -1~1로 개선함으로써 편향 이동은 덜 하지만, 기울기 소실 문제는 여전히 존재함.

 

렐루 함수(ReLU Function) 

출처: 다층퍼셉트론 : 네이버 블로그 (naver.com)

가장 많이 사용됨.

장점) 시그모이드와 다르게 양수 부분에서 포화 문제 발생하지 않음(기울기 소실 문제 해결)

          exp 없어서 계산 빠름. 

단점) 기울기가 0 or 1이니까 가중치 업데이트 시 > 지그재그 현상(지그재그로 최적의 가중치를 찾아가는 현상),

         음수이면 0이 되어버림 > dying ReLU (가중치 업데이트하다가 음수가 되는 순간 0을 반환 -> 그 뉴런은 이제부터 0만 반환) > 죽은 뉴런   

         

>> 개선 예시 1) 리키 렐루(Leaky ReLU, LReLU) : 음수일 때 죽이진 말자. 숨만 붙여놓자

리키 렐루


                               2) 파라미터 렐루(Parameter RelU, PReLU):  0 미만일때 내가 원하는 값을 줄 수 있도록 

PReLU. 출처: [딥러닝 기본지식] 활성화 함수(Activat.. : 네이버블로그 (naver.com)

                          3)  ELU(Exponential Linear Unit) : 각져 있는 렐루를 exp를 사용해, 부드럽게(Smooth) 만듦. 하지만 느림.

ELU

                           

소프트맥스 함수(softmax function) 

softmax function

다중 클래스 분류 문제에 활용, 출력층에서 주로 사용되는 함수

확률로 해석 가능

- 지수 함수 사용 > 입력값 중 큰 값은 더 크게 작은 값은 더 작게 만들어 입력 벡터를 더 잘 구분할수 있다. 미분도 용이. 

 

* ReLU(Rectified Linear Uni.. : 네이버블로그 (naver.com) 참고