交叉熵代价函数(作用及公式推导)

转载:https://blog.csdn.net/u014313009/article/details/51043064

https://blog.csdn.net/lanchunhui/article/details/50086025

1.交叉熵代价函数的作用?

 交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式。与二次代价函数相比,它能更有效地促进ANN的训练(我们希望:ANN在训练时,如果预测值与实际值的误差越大,那么在反向传播训练的过程中,各种参数调整的幅度就要更大,从而使训练更快收敛。)。

2.以二次平方做代价函数

 目前训练ANN最有效的算法是反向传播算法。简而言之,训练ANN就是通过反向传播代价,以减少代价为导向,调整参数。参数主要有:神经元之间的连接权重w,以及每个神经元本身的偏置b。调参的方式是采用梯度下降算法(Gradient descent),沿着梯度方向调整参数大小。w和b的梯度推导如下:

交叉熵代价函数(作用及公式推导)_第1张图片

交叉熵代价函数(作用及公式推导)_第2张图片

 

 

        其中,z表示神经元的输入,表示激活函数。从以上公式可以看出,w和b的梯度跟激活函数的梯度成正比。激活函数的梯度越大,w和b的大小调整得越快,训练收敛得就越快。

2.以 交叉熵为代价函数

 

换个思路,我们不换激活函数,而是换掉二次代价函数,改用交叉熵代价函数:

 

        其中,x表示样本,n表示样本的总数。那么,重新计算参数w的梯度:

 

  因此,w的梯度公式中原来的被消掉了;另外,该梯度公式中的表示输出值与实际值之间的误差。所以,当误差越大,梯度就越大,参数w调整得越快,训练速度也就越快。同理可得,b的梯度为:

 

     3.结论   实际情况证明,交叉熵代价函数带来的训练效果往往比二次代价函数要好。

 

你可能感兴趣的:(ML)