-
Activation Functions: Sigmoid & Softmax | 패스트캠퍼스 챌린지 02일차딥러닝 2022. 1. 25. 18:50
Sigmoid와 Softmax는 활성화함수로, 주로 이미지 분류에 쓴다고 수업에서 말했지만, 자연어처리에서도 LSTM 안에서 등 이곳저곳에서 활약하기 때문에 친숙한 함수들이다. Sigmoid라는 함수가 활성화함수로 쓰이는 배경을 이해하기 위해서는 logit이라는 개념이 필요하다. Logit은 odds에 로그를 취한 값인데, odds는 확률과 상관 있는 개념으로, 정확히는 '사건이 일어날 확률과 그렇지 않을 확률의 비'를 뜻한다. Odds는 p=0.5를 기준으로 대칭적이지 않고, 선형 계산도 어려운 반면, log를 취한 logit은 p=0.5를 기준으로 대칭적인 그래프를 보이며, -무한대에서 무한대의 범위를 가지고, 선형 연산이 좀 더 용이하다.
이러한 logit 값을 p에 대해서 정리하면 p = 1/(1 + e^-l)이라는 식으로 정리할 수 있는데, 이는 Sigmoid의 식과 같은 식이다. 즉, z에 대한 Sigmoid값은 z가 logit이라고 한다면 확률 p에 해당하는 값을 뜻한다. 즉, 이진분류 문제에서 Sigmoid에 들어갈 affine function의 결과 z를 logit이라고 해석한다면, Sigmoid의 결과는 확률이라고 볼 근거가 생기는 것이다. 단순이 Sigmoid의 값이 0에서 1사이라서 확률인게 아니다.
Sigmoid가 이진분류에서 사용된다면, Softmax는 다항분류에서 사용된다. Softmax의 수식은 복잡하지만, 궁극적으로 K개의 logit을 K개의 확률 p_i로 변환한다 (자세한 수식들은 위 노트필기 참고). 이 때, Softmax의 값은 확률이기 때문에 p_i를 모두 합하면 1이 된다 (이는 수식을 조금만 생각해 보면 알 수 있었다). 물론 이진분류를 K=2인 다항분류라고 생각해 Softmax를 통한 연산을 진행할 수 있고, 실제로 웹에 돌아다니는 RNN 기반 감성분석코드는 Sigmoid 기반의 이진분류 및 긍정, 부정을 원-핫 인코딩해 Softmax로 계산하는 방법으로 나뉘어 진다.
이번 기회에 수학적으로 Sigmoid 함수가 확률인 이유를 배우면서 느낀 점은 딥러닝은 모델링 하기 나름이라는 것이다. 딥러닝은 '확률'이라던지, 실제와 '가까운' 예측값과 같은 전산적으로 추상적인 개념들을 다루게 된다. 이 때 추상적인 것을 구체화 하는 것은 모델링 하기 나름인 것이다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXiC
'딥러닝' 카테고리의 다른 글
Convolution Layers with Multiple Channel | Pooling, Striding, Padding | 패스트캠퍼스 챌린지 05일차 (0) 2022.01.28 Convolution Layers | 패스트캠퍼스 챌린지 04일차 (0) 2022.01.27 Loss functions: MSE, BCE, CCE | BLAS 문제를 만나다 | 패스트캠퍼스 챌린지 03일차 (0) 2022.01.26 인공 뉴런과 Dense Layer | 패스트캠퍼스 챌린지 01일차 (0) 2022.01.24 딥러닝 강의를 수강하기 앞서 : 컴퓨터 환경 구축하기 (0) 2022.01.23