关于神经网络中的代价函数——交叉熵的由来

        这段时间一直在看有关于神经网络的教程,在之前看过的其他一些机器学习算法,例如logistics回归等都是用C =(y− a)2/2函数做cost function,但是在神经网络算法中,有些教程是使用交叉熵作为代价函数的(关于斯坦福大学的深度学习教程依旧使用的是C =(y− a)2/2函数做cost function),这个让我很郁闷,于是我就问了师兄,然后没有然后。。。没有搞懂。我就在网上找了些讲解资料,写得都OK可是都没有深入的阐述一下几个问题:

        a、为什么使用交叉熵,二次代价函数不好吗(毕竟斯坦福的深度学习教程就是用的二次代价函数)?

         b、交叉熵为什么可以作为cost function?这个想法来自于哪里???

        在我看完神经网络与深度学习之后,这些问题迎刃而解了。下面对于以上几个问题进行详细的解答。

二次代价函数的缺陷

        理想情况下,我们都希望和期待神经网络可以从错误中快速地学习,但是在实践过程中并不是很理想。在使用函数C =(y− a)2/2表示的二次代价函数,假设a是神经元的输入,训练输入为x = 1, y = 0为目标输出。使用权重和偏置来表达这个,有a = σ(z),其中z = wx + b。使用链式法则来求权重和偏置的偏导数得:


         其中已经将x = 1y = 0代入。最后权重和偏置的偏导数只与σ

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值