这篇文章写一下能否对cost function进行一些优化,目标方程:cross-entropy函数
我们的理想情况是让神经网络学习更快
假设简单模型:只有一个输入,一个神经元,一个输出
深度学习进阶课程08---cross-entropy损失函数
简单模型:输入为1时,输出为0
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
神经网络的学习行为和人脑差的很多,开始学习很慢,后来逐渐增快
为什么?
学习慢可以推出偏导数
深度学习进阶课程08---cross-entropy损失函数
值很小
计算偏导数:
回顾之前学习的Cost函数:
深度学习进阶课程08---cross-entropy损失函数
对于一个x,y和单个神经元:
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
分别对w和b求偏导数:
深度学习进阶课程08---cross-entropy损失函数
回顾sigmoid函数:
深度学习进阶课程08---cross-entropy损失函数
可以看到当神经元输出接近0和1时,曲线非常平缓,可以推出
深度学习进阶课程08---cross-entropy损失函数
很小,所以学习很慢
那么我们如何增快学习?
引入cross-entropy cost函数
假设有一个稍微复杂一些的神经网络
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
定义一个新的cost函数:cross-entropy函数:
深度学习进阶课程08---cross-entropy损失函数
为什么这个函数可以用来做cost函数呢?
(1)函数值大于等于0(经过验证)
(2)当a=y时,cost=0
深度学习进阶课程08---cross-entropy损失函数
深度学习进阶课程08---cross-entropy损失函数
用sigmoid函数定义:
深度学习进阶课程08---cross-entropy损失函数
推出:
深度学习进阶课程08---cross-entropy损失函数
带入上面的偏导,得到:
深度学习进阶课程08---cross-entropy损失函数
学习的快慢取决于:
深度学习进阶课程08---cross-entropy损失函数
也就是输出的error
好处:错误大时,更新多,学得快;错误小时,学习慢
对于偏向也类似:
深度学习进阶课程08---cross-entropy损失函数
对于多层:
深度学习进阶课程08---cross-entropy损失函数
以上把输出层所有的神经元的值加起来
总结:
cross-entropy cost 几乎总是比二次cost函数好
如果神经元的方程是线性的,用二次cost函数不会有学习慢的问题

相关文章: