[딥러닝]활성화 함수(Sigmoid, Softmax, ReLU)

Jaewon Lim·2024년 10월 28일

회사에서 주어진 테스크 모델을 만들던 도중 각기 다른 분류모델을 만들 때 다른 활성화 함수가 사용된다. 이론을 알고 코드화 시키는데는 문제 없지만, 정확히 내부적으로 어떤 방식으로 돌아가는지 그리고 어떤 결과값을 위한 과정인지를 알기 위해 짚고 넘어가본다.

시그모이드(Sigmoid)

  • 간단하게 말해, 두 가지 정답지 중에 하나의 결과값을 선택하는 이진분류(Binary Classification)에서 사용되는 함수이다.
  • 시그모이드(Sigmoid) 함수의 식과 모양은 다음과 같다. 입력값이 커지면 커질수록 1에 수렴하고, 작아지면 작아질수록 0에 수렴한다. 함수를 미분하면 양 쪽으로 향할수록 변화값이 거의 없다. 따라서, 오류역전파를 할 때, Vanishing Gradient 현상이 발견될 수 있다.

.

소프트맥스(Softmax)

  • 3개 이상의 선택지에서 가장 적절한 답을 고르는 문제인 다중 클래스 분류(Multi Class Classification)에서 사용된다.

  • 소프트맥스(Softmax) 함수의 식과 모양은 다음과 같다. 시그모이드 함수와 비슷하게, 0~1 사이로 변환하여 출력하지만 출력값들의 합이 1이 되도록 하는 함수이다.

  • 각 클래스의 속할 확률(p)을 각 클래스들에 속할 확률들의 합으로 나눠서, 0부터 1사이로 normalization한 형태이다.

  • 크로스 엔트로피(Cross entropy) 손실 함수를 계산할 때 소프트맥스 함수를 내부적으로 사용한다.

  • 다중 Logistic Regression의 학습을 위해서는 크로스 엔트로피(Cross Entorpy)함수를 사용하여, 목적 함수를 정의한다. 이 학습을 위해서 정답을 one-hot vector 형식으로 나타내야 한다.

  • 다중 Logistic Regression의 학습을 위해서 최대우도방법 (MLE, Maximum Likelihood Estimation)을 사용한다.

  • 두 확률 분포가 얼마나 다른지를 측정하는 방법이다. 예측 확률 q가 실제 확률 p와 동일한 지점에서 최솟값을 타나냄을 확인할 수 있다. 즉, 크로스 앤트로피가 최솟값을 가지는 구간이 실제 확률과 가장 비슷한 예측을 하였다고 할 수 있다.

  • LR 이용한 분류 문제의 목적은 실제 데이터가 속한 클래스와 비슷한 분포를 예측하는 모델을 만드는 것이다. 크로스 엔트로피 식에서 p를 실제 데이터의 분포를 One-Hot vector로 변환한 값, q를 모델이 예측한 분포라고 하면, 크로스 엔트로피 값이 최소인 지점이 모델이 실제 데이터를 가장 잘 예측하였을 때라고 생각할 수 있다.

  • 소프트맥스 함수와 크로스 엔트로피 손실 함수의 관계 : 소프트맥스 함수는 모델의 출력 로짓(logits)을 확률 분포로 변환한다. 크로스 엔트로피 손실 함수는 예측된 확률 분포와 실제 레이블(one-hot vector)간의 차이를 측정한다. 파이토치에서 'nn.CrossEntropyLoss()'를 사용하면 두 개가 결합된 형태로 사용된다. 내부적 순서는 1.소프트맥스 함수 적용 2.크로스 엔트로피 손실 계산.

ReLU

결론

  • 이진분류의 LR은 시그모이드
  • 다중분류의 LR은 소프트맥스

0개의 댓글