这是一个简单的神经网络,输出层的激活函数为SoftMax,根据定义,输出层各节点的输出值为:
其中是该节点的输入
是上一层节点的输出值,是权重,所以:
再来看损失函数:
是训练实例的标签值:
显然,只有一个是正确分类,所以向量里只有一个分量值为1,其余都是0:
t是正确类别的下标,所以:
例如一个三分类的任务, 正确分类是第二个,输出结果是[0.3,0.5,0.2],所以这里的误差为:
再比如输出为[0.4,0.15,0.45]:
显然,输出是[0,1,0]时误差是0,现在要根据误差来求得的梯度:
这里求的是关于的梯度,所以要分两种情况讨论,第一种是当时:
所以:
而当时,并不影响,所以:
网友评论