AI의 전체 로직
NonLinear 함수(ReLU)를 이용해서 NonLinear한 문제를 해결할 수 있게 되었고 적절한 정답값이 나오게 끔 $\theta$ (파라미터)를 최적화(Gradient Based Learning - SGD, Gradient Descent)기법을 사용해 찾는다.
$\theta$를 찾기 위해서 우리는 Loss Function을 정의해야한다.
⇒ 이 Loss Function을 어떤 출력값으로 내보내어야 할 것인가?
⇒ 1. 가우시안 분포를 따르는 값을 내보내어야한다.
⇒ 2. Sigmoid와 같이 0 ~ 1 사이를 따르는 값을 내보내어야한다.
⇒ 3. Softmax를 이용해서 확률값으로 내보내어야 한다.
Softmax는 분류 Task에서 굉장히 많이 쓰이고 있다.
그만큼 매우 중요하다 !
$P_i = \frac{exp(z_i)}{\sum_j exp(z_j)}$ 는 아래와 같이 해석이 된다.
$p^Ts (=E_{i \sim p}s_i) + H(p) (=-\sum_ip_ilogp_i)$ ⇒ Softmax maximize expected score + Shannon Entropy
s는 Logit
$p^Ts$는 입력값의 기대값이라고 생각할 수 있고 $H(p)$는 Shannon Entropy이다.
$H(p)$를 바꾸면 Softmax가 달라진다. example) Tsallis $a$-Entropies
소프트 맥스를 변형해서 많이 쓰인다.
SparseSoftmax($z$)$i$ = $[z_i - \tau(z)]+$
Multinoulli output Distribution이란 단일 샘플에 대해 여러 개의 가능한 범주 중 하나를 선택하는 확률 분포, (한 번의 시행에서 오직 하나의 클래스를 선택하는 경우)
$n$ possible values, $softmax(z)_i = \frac{exp(z_i)}{\sum_j exp(z_j)}$
We wish to maximize $log P(y=i;z) = logsoftmax(z)_i$