밑바닥부터 시작하는 딥러닝을 교재로 한 유튜브 강좌와 파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다.
▶ 활성화함수
활성화 함수는 신호가 전달되고 전달된 값이 일정 임계값을 넘길 때 다음 뉴런을 활성화 시킬 수 있도록 하는 함수이기 때문에 "활성화"함수로 불린다.
활성화 함수는 데이터가 학습이 가능하게(= 미분이 가능하게) 만들어주는 함수로 여러가지 함수가 존재한다.
해당 포스팅과 다음 포스팅들에선 여러 활성화 함수 중 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 사이에 조금 존재하는 그래디언트조차 최상위층에서부터 역전파가 진행되면서 점차 약해지고 아래층에 도달하면 그래디언트가 거의 소실되어 있는 그레디언트 소실문제를 발생시킬 수 있다.
그레디언트 소실 또는 폭주 문제는 잘못된 훈련으로 이어질 수 있다. 이를 조금이나마 완화할 수 있는 활성화함수가 하이퍼볼릭 탄젠트이다.
해당 함수에 대해선 다음 포스팅에서 알아보자.
'Data > 머신러닝 & 딥러닝' 카테고리의 다른 글
신경망의 기본 구성 요소(6)/ 손실함수 (2) | 2021.07.20 |
---|---|
신경망의 구성요소(5)/ 활성화 함수- 소프트맥스 (0) | 2021.07.20 |
신경망의 구성요소 (4)/ 활성화 함수- ReLU (0) | 2021.07.20 |
신경망의 기본 구성요소(3)/ 활성화 함수- 하이퍼볼릭 탄젠트 (0) | 2021.07.19 |
신경망의 기본 구성요소 (1)/ 퍼셉트론과 논리게이트, 파이토치 구현 (2) | 2021.07.19 |