cross-entropy函数

我们理想情况是让神经网络学习更快

假设简单模型: 只有一个输入,一个神经元,一个输出

简单模型: 输入为1时, 输出为0


初始 w = 0.6, b = 0.9   初始预测的输出 a = 0.82, 需要学习
学习率: 0.15

演示: 




初始: w = 2.0, b = 2.0, 初始预测输出: 0.98, 和理想输出0差点很远
演示:



神经网络的学习行为和人脑差的很多, 开始学习很慢, 后来逐渐增快.

为什么?

学习慢 => 偏导数 ∂C/∂w 和 ∂C/∂b 值小

计算偏导数:

回顾之前学习的Cost函数:
对于一个x, y 和单个神经元:
分别对w和b求偏导数:

  x = 1, y = 0


回顾sigmoid函数

 当神经元输出接近1时, 曲线很平缓, 
=>
 很小, 所以学习很慢

如何增快学习?

介绍cross-entropy cost 函数

假设一个稍微复杂一些的神经网络


    
定义cross-entropy函数:


为什么可以用来做cost函数?
1.  函数值大于等于0 (验证)
2.  当a=y时, cost = 0





用sigmoid函数定义

推出:


 代入 上面的偏导, 得到:


学习的快慢取决于 

也就是输出的error

好处: 错误大时,更新多,学得快. 错误小时,学习慢


对于偏向也类似:

用cross-entropy 演示:

w = 0.6, b = 0.9


w = 2.0, b = 2.0

与之前的二次cost比较
学习率=0.005, 但是不是重点, 主要是速度的变化率, 也就是曲线的形状不同. 

以上是对于一个单个神经元的cost, 对于多层:

以上把输出层所有的神经元的值加起来

总结:

cross-entropy cost几乎总是比二次cost函数好

如果神经元的方程是线性的, 用二次cost函数 (不会有学习慢的问题)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值