[딥러닝] 소프트맥스 (Softmax) 의 미분
softmax (소프트맥스) 함수의 미분을 구해보도록 하겠습니다. softmax (소프트맥스)는 딥러닝에서 굉장히 중요한 역할을 하지요. 중요한 것은 알지만 pytorch 로 구현이 잘되어있어서 softmax의 메커니즘을 잘 잊고 살지요. 중요한 것을 되새기기 위해 소프트맥스 함수의 미분을 알아보겠습니다. softmax 함수의 미분? softmax 함수란? K차원을 갖은 벡터 $\mathbf{x} = (x_1,…,x_K)$가 있다고 합시다. 이 변수 $\mathbf{x}$가 입력들어가는 softmax 함수 $S(\mathbf{x})=(s_1 (\mathbf{x}),s_2 (\mathbf{x}),…, s_K (\mathbf{x}))$는 아래와 같이 정의됩니다. $$s_i(\mathbf{x}) = \frac{\exp{x_i} }{ \sum_{j=1}^K \exp{x_j} }$$ softmax 함수의 미분해보자 여기서 $x_k$에 대해 미분을 해보겠습니다. $$\frac{\partial}{\partial x_k} s_i(\mathbf{x}) $$을 구해보겠다는 의미인데요. $s_i(\mathbf{x})$의 분자에 있는 $\exp{x_i}$는 $i = k$이면 관 $x_k$와 관련있는 term 이고 $i \neq k$이면 … Read more