当前位置:网站首页>为什么交叉熵代价函数能够取代均方误差函数
为什么交叉熵代价函数能够取代均方误差函数
2022-04-22 06:02:00 【愤逗】
我们设计神经网络的目的是为了实现一种模型,这个模型能够对数据做出合适的处理。比如分类问题,网络能够 以尽可能高的准确率对样本分类。
那么如何评价网络的性能?
这就需要使用代价函数(Cost function)。代价函数能够体现网络的处理结果和实际数据差别程度。
下面介绍为什么现在的神经网络要使用交叉熵代价函数。
首先,先说一下MSE,均方误差函数,这个函数在很多地方(常见于线性回归问题上,针对不同的问题会使用不同的代价函数)都会用,用来评价算法性能。
MSE的表达式是

一般的神经网络结构如下

根据梯度下降算法更新网络权重的公式是

其中J代表代价函数,使用均方误差函数即


--------------------------------------------------------------------------------------下面符号进行统一
为了方便,仅看w1的更新,根据权值更新公式

代表α学习率, 代表J代价函数, 代表第k次更新后的第i个权值


a代表激活函数(一定记住,数据在经过每层输出时一般要经过一个激活函数)根据链式法则,偏微分表达式可以看成如下形式

第一部分是

第二部分是

第三部分是

整合三部分可得

观察(7),其大小与激活函数的导数有关
以sigmoid激活函数为例,演示为什么二次均方误差不用来当做代价函数
Sigmoid函数图像

Sigmoid函数的导数图像


解决这个问题的办法,可从以下几个方面入手
1.改变激活函数
2.改变代价函数
3.不使用上面那个权值更新公式
此处,只讨论2途径,即使用交叉熵代价函数。
交叉熵代价函数

利用

此时激活函数仍用sigmoid函数。




可见上面的表达式中,不含导数项,也就解决了梯度更新缓慢的问题。
版权声明
本文为[愤逗]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42703127/article/details/99681893
边栏推荐
- sqoop连接MySQL失败解决案例
- JS, JQ single line text scrolling up and down
- 从零开始学安卓(kotlin)一 ——入门
- Wechat applet interface encapsulation (uniapp)
- Uniapp wechat applet user authorization to obtain current location information Tencent map
- ApplicationContext注入Bean
- 负载平衡的意义什么
- uniapp 微信小程序用户授权获取当前位置信息 腾讯地图
- nodejs+Express+mongodb
- Wechat applet uses color font icon (transcript)
猜你喜欢
随机推荐
Flink必知必会的重要基本知识
The difference between watch and computed
(4种)实现垂直居中的方法总结
EXCEL VLOOKUP函数的使用
Generate order write off QR code and scan the code to complete write off
Pure JS chain animation and simultaneous motion
正则验证
spark小案例——RDD,broadcast
Spent four days painstakingly writing all the notes of MySQL, which is very suitable for beginners.
创新实训(五)中期检查
The installation of redis is started and used by rookies (Windows)
Mobile end touch bottom loading animation (UNI)
Regular verification
使用RecyclerView实现左右并排分类选择
Two-stage目标检测技术发展(二)Fast R-CNN和Faster R-CNN
如何清除浮动?
美团设置渠道包 walle 方式
Uniapp web View example (wechat applet)
阿里巴巴提示:手动创建线程效果更好
pixel手机救砖教程








