Data/머신러닝 & 딥러닝

신경망의 기본 구성요소(2)/ 활성화함수- 시그모이드

빛날희- 2021. 7. 19. 20:40

밑바닥부터 시작하는 딥러닝을 교재로 한 유튜브 강좌와 파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다.


 

 

▶ 활성화함수

활성화 함수는 신호가 전달되고 전달된 값이 일정 임계값을 넘길 때 다음 뉴런을 활성화 시킬 수 있도록 하는 함수이기 때문에 "활성화"함수로 불린다.  

활성화 함수는 데이터가 학습이 가능하게(= 미분이 가능하게) 만들어주는 함수로 여러가지 함수가 존재한다.

해당 포스팅과 다음 포스팅들에선 여러 활성화 함수 중 sigmoid, hyperbolic tangent, Recified Linear unit(RELU), softmax함수에 대해 알아보고자한다. 이번 포스팅에선 sigmoid 함수에 대해 알아보자.

 

 

▶ 시그모이드 함수

시그모이드는 신경망 분야 초창기 부터 사용한 활성화 함수로 0과 1로 나눠져 신호를 전달하는 신경망을 본따 미분가능하도록(데이터를 학습시킬 수 있는)  만든 그래프이다. 

시그모이드 함수의 공식은 다음과 같다. 

 

그렇다면 함수가 어떤 형태로 생겼을지 다음 과정을 거쳐 보자. 

 

▷ 공식에서 보는 그래프 형태

 

1. 함수에서 x를 각각 무한대로 보내면 함수식은 1에 수렴하고 -무한대로 보내면 0에 수렴한다.

 

 

2. 이번에는 함수를 미분해보자.

 

 

 

3. 함수를 한번 더 미분해보자. 

 

따라서 해당 함수의 모양은 다음과 같다. 

 

 

▷ 구현

파이토치를 활용해 구현해보았다. 

x에 -5부터 5까지의 값을 넣고 x에 시그모이드함수를 적용해 y에 넣은 후 그래프로 출력해보았다. y값이 0부터 1까지 미분 가능한 곡선으로 분포해있는 것을 볼 수 있다. 

 

 

시그모이드 함수는 위의 그래프에서 볼 수 있다 싶이 입력이 양수나 음수로 커지면 값이 0이나 1로 수렴하여 기울기가 0에 가까워진다. 또한 x축 범위 내에서 그래프가 매우 빠르게 포화되는 것을 볼 수 있다. 따라서 역전파가 돌때 신경망으로 전파하는 그레디언트가 거의 없고, 0과 1 사이에 조금 존재하는 그래디언트조차 최상위층에서부터 역전파가 진행되면서 점차 약해지고 아래층에 도달하면 그래디언트가 거의 소실되어 있는 그레디언트 소실문제를 발생시킬 수 있다.

 

그레디언트 소실 또는 폭주 문제는 잘못된 훈련으로 이어질 수 있다. 이를 조금이나마 완화할 수 있는 활성화함수가 하이퍼볼릭 탄젠트이다. 

해당 함수에 대해선 다음 포스팅에서 알아보자.