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 |