3.9 训练一个 Softmax 分类器(Training a Softmax classifier)

C=4,某个样本的预测输出y^\hat y和真实输出yy

y^=[0.30.20.10.4]\hat y=\left[ \begin{matrix} 0.3 \\ 0.2 \\ 0.1 \\ 0.4 \end{matrix} \right]
y=[0100]y=\left[ \begin{matrix} 0 \\ 1 \\ 0 \\ 0 \end{matrix} \right]

y^\hat y值来看,P(y=4x)=0.4P(y=4|x)=0.4,概率最大,而真实样本属于第2类,该预测效果不佳

定义softmax classifier的loss function为:

L(y^,y)=j=14yjlog y^jL(\hat y,y)=-\sum_{j=1}^4y_j\cdot log\ \hat y_j

L(y^,y)L(\hat y,y)简化为:

L(y^,y)=y2log y^2=log y^2L(\hat y,y)=-y_2\cdot log\ \hat y_2=-log\ \hat y_2

L(y^,y)L(\hat y,y)更小,就应该让y^2\hat y_2越大越好。y^2\hat y_2反映的是概率

m个样本的cost function为:

J=1mi=1mL(y^,y)J=\frac{1}{m}\sum_{i=1}^mL(\hat y,y)

预测输出向量A[L]A^{[L]}Y^\hat Y的维度为(4, m)

softmax classifier的反向传播过程:

先推导dZ[L]dZ^{[L]}

da[L]=1a[L]da^{[L]}=-\frac{1}{a^{[L]}}
a[L]z[L]=z[L](ezi[L]i=1Cezi[L])=a[L](1a[L])\frac{\partial a^{[L]}}{\partial z^{[L]}}=\frac{\partial}{\partial z^{[L]}}\cdot (\frac{e^{z^{[L]}_i}}{\sum_{i=1}^Ce^{z^{[L]}_i}})=a^{[L]}\cdot (1-a^{[L]})

所有m个训练样本:

dZ[L]=A[L]YdZ^{[L]}=A^{[L]}-Y

Last updated