cs231n作业——softmax
1.基础知识
Inputs:
- W: A numpy array of shape (D, C) containing weights.
- X: A numpy array of shape (N, D) containing a minibatch of data.
- y: A numpy array of shape (N,) containing training labels; y[i] = c means
that X[i] has label c, where 0 <= c < C.
- reg: (float) regularization strength
Returns a tuple of:
- loss as single float
- gradient with respect to weights W; an array of same shape as W
“”"
输入的w是d个属性和c个类别,x是n给样本和d个属性,输出loss和梯度
softmax公式如上所示,可以把所有的输出y值,进行变成概率,且都是正概率,相加的概率和为1
2.使用循环进行求loss和求导
求loss,我们一般使用交叉熵进行验证损失,交叉熵
计算两个概率之间的距离。因为yi为标签值,只有为真实标签时yi才wei1,其他为0.,所以这个就可以简化为-lnai。
求导是链式求导法则,-lnai求导就是 -1/ai。
z4 = w41o1+w42o2+w43*o3
下面应该是ez4
接下来就是对z4进行求导
z4在上下都有,那么我们使用导数进行求导,上下求导。
可以发现就是aj(1-aj)
如果是对z5进行求导,那么就是-aj*ai。剩下