Softmax Regression

 

$C$ : 클래스 개수 -> 네 개의 클래스라고 하면 (0, 1, 2, 3)

*3은 어디에도 속하지 않는 경우

output layer의 유닛 개수는 클래스 개수와 일치해야 함 ($n^{[L]}=C)$

 

$\hat{y}$ 는 (4, 1) 차원 -> 하나로 합해야 함

 

Softmax Layer

 

마지막 레이어 $L$의 입장에서 생각했을 때, $Z^{[L]} = W^{[L]}a^{[L-1]} + b^{[L]}$로 z값을 구했으면 "softmax activation function"에 통과시켜야 한다

 

임의의 변수 $t$ 를 설정

$$t = e^{z^{[L]}}$$

* element-wise exponentiation

* $z^{L}$는 $(4, 1)$ 차원이므로, $t$도 $(4, 1)$의 벡터가 됨

 

그 다음 $t$는 합이 1이 되도록 normalize 됨

$$a^{[L]} = \frac{e^{z^{[L]}}}{\sum_{j=1}^{C}t_{j}}$$

$$a^{[L]}_{i} = \frac{t_{i}}{\sum_{j=1}^{C}t_{j}}$$

 

더 구체적인 예시로 살펴보기

$$z^{L} = \begin{bmatrix}5 \\ 2 \\ -1 \\ 3\end{bmatrix} $$

$$t = \begin{bmatrix}e^{5} \\ e^{2} \\ e^{-1} \\ e^{3}\end{bmatrix} = \begin{bmatrix}148.4 \\ 7.4 \\ 0.4 \\ 20.1\end{bmatrix} $$

$$\sum_{j=1}^{4}t_{j} = 176.3$$

$$\hat{y} = a^{[L]} = \frac{t}{176.3} = \begin{bmatrix}0.842 \\ 0.042 \\ 0.002 \\ 0.114\end{bmatrix}$$

*합이 1이 되는 확률로 계산됨

 

 위 과정을 softmax activation function 이라고 부르며 $ a^{[L]} = g^{[L]}(z ^{[L]} ) $

이 활성화 함수 $g(z)$ 는 $(4,1)$ 벡터를 입력으로 받아 $(4,1)$ 벡터를 출력한다

 

히든레이어 없이 softmax 활성화 함수만 있다고 쳤을 때의 에시

 

Training a Softmax Classifier

$$ z^{L} = \begin{bmatrix}5 \\ 2 \\ -1 \\ 3\end{bmatrix} $$

$$ t = \begin{bmatrix}e^{5} \\ e^{2} \\ e^{-1} \\ e^{3}\end{bmatrix}$$

$$ a^{[L]} = g^{[L]}(z ^{[L]} ) = \begin{bmatrix}0.842 \\ 0.042 \\ 0.002 \\ 0.114\end{bmatrix}$$

 

cf) 'hard max'는 가장 큰 요소가 있는 자리에 1을 두고 나머지를 0으로 채운다 --> $ \begin{bmatrix}1 \\ 0 \\ 0 \\ 0\end{bmatrix} $

 

Softmax regression generalizes logistic regression to C classes rather than just two classes

if C == 2 : softmax reduces to logistic regression

 

[Loss function]

 

ground truth $y = \begin{bmatrix} 0 \\ 1 \\ 0 \\ 0\end{bmatrix}$ : 정답은 고양이

predicted $a^{[L]} = \hat{y} = \begin{bmatrix} 0.3 \\ 0.2 \\ 0.1 \\ 0.4\end{bmatrix}$ : 고양이일 확률 20%로 예측함

 

$$L(\hat{y}, y) = - \sum_{j=1}^{4} y_{j} \log{\hat{y}_j}$$

 

그런데 ground truth 를 보면 $y_{2}$ 제외한 나머지가 모두 $0$ 이므로, $ L(\hat{y}, y) = -y^{2} \log{\hat{y}_2}$ 밖에 남지 않음

그리고 $y_{2}$ 은 $1$이므로, $- \log{\hat{y}_2}$가 됨

$L(\hat{y}, y)$ 를 최소화하기 위해서는 $\hat{y}_2$를 최대화해야 함 (당연함. 고양이가 정답일 때 고양이의 확률을 최대화해야 함)

"maximum likelihood estimation"

 

Cost function은 동일. loss function 합의 평균

 

*$Y$의 차원

$$Y = [y^{(1)},\ y^{(2)},\ y^{(3)},\ \ldots,\ y^{(m)}]$$

$$= \begin{bmatrix}0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 & \ldots \\ 0 & 0 & 0\end{bmatrix} $$

*첫번째 샘플은 고양이, 두번째 샘플은 강아지, ...

 

따라서 $Y$는 $(4, m)$ 차원! $\hat{Y}$도 $(4, m)$ 차원!  (대신 0, 1로 이루어진 게 아니라 softmax 값)

 

 

[Gradient descent with softmax]

back prop : $dz^{[L]}  = \frac{\partial J}{\partial z^{[L]}}= \hat{y}- y$

*$dz^{[L]}$ 도 $(4, 1)$ 차원

'인공지능 > DLS' 카테고리의 다른 글

[3.1.] Introduction to ML Strategy  (0) 2022.07.17
[2.3.] Introduction to Programming Frameworks  (0) 2022.07.13
[2.3.] Batch Normalization  (0) 2022.07.12
[2.3.] Hyperparameter Tuning  (0) 2022.07.12
[2.2.] Optimization Algorithms(2)  (0) 2022.07.12
복사했습니다!