Processing math: 100%
728x90
반응형

Softmax function

Softmax 함수는 아래와 같이 정의된다.

pi=exp(zi)nj=1exp(zj)

  • pi : class i에 대한 Softmax output
  • zi : class i에 대한 logit
  • n : class의 총 개수

Softmax function derivative

1. i=k인 경우

이때, zi=zk이다.

pkzk=zk(exp(zk)nj=1exp(zj))

곱의 미분 규칙과 합성 함수의 미분을 사용하여,

pkzk=exp(zk)nj=1exp(zj)exp(zk)exp(zk)(nj=1exp(zj))2

위 식을 정리하면,

pkzk=exp(zk)(nj=1exp(zj)exp(zk))(nj=1exp(zj))2

nj=1exp(zj)은 Softmax의 분모이므로, 이를 pk로 대체할 수 있다.

pkzk=pk(1pk)

즉, i=k인 경우, Softmax 함수의 미분은 출력 확률 pk에 대해 아래와 같이 정리된다.

pkzk=pk(1pk)

2. ik인 경우

이때, zizk이다.

pizk=zk(exp(zi)nj=1exp(zj))

분자의 미분은 0이 되므로, 분모의 미분을 계산하면,

pizk=exp(zi)exp(zk)(nj=1exp(zj))2

이를 다시 Softmax 출력 확률 pipk로 표현하면 Softmax 함수의 미분은 아래와 같이 정리된다.

pizk=pipk

정리하면, 아래와 같이 표현할 수 있다.

pizk={pi(1pi)if i=kpipkif ik

728x90
반응형

'Deep Learning' 카테고리의 다른 글

Posterior collapse  (0) 2024.10.26
Coupling Layer  (0) 2024.09.25
Norm,L1,L2  (0) 2024.08.17
AUROC Random Detector  (0) 2024.08.09
Cross Entropy Loss and gradient  (0) 2024.08.08