极大似然和交叉熵 | 深度学习

接触ML接近一年, 虽有数字信号+统计检测基础知识, 对极大似然仍然一知半解, get不到贝叶斯的思想. DL仍处于探索阶段, 只知道些名词堆砌, 今天开始读<深度学习> 这本书, 着实相见恨晚. 博客将记录个人点滴见解, 聊以备忘.
欢迎交流指正!

极大似然

因时间有限+latex技能尚未习得, 下述公式很少很难看

概率论中常讲极大似然, 基本任务是对于未知参数theta的指定分布, 通过一些data估计theta. 不结合实际来用, 还是有些晦涩.
ML中做预测的基本流程通常是: 有数据集(data), 建模(model), 训练(学theta). 极大似然(条件概率)的思路就是, 应该确定怎样的theta, 使得model预测的y’ 最符合给定的data. 从这个角度来看, 就是使模型分布尽可能和data所指定的经验分布相匹配, 深度学习书本中还指出了KL散度方面的等价解释.

thetaML=argmaxP(Y|X;theta)

如果独立同分布, 上式P可以写为 pi 连乘形式, 连乘形式等价于log求和形式;
数值上来看, 只有train data情况下, 最理想的情况下是 pi=1 , 似然函数P=1. 也就是学好的theta参数对应的这个model再用于train data的预测y都是正确(且给很高置信度: 1)的, logP=0. 故小样本情况下, 倾向于出现过拟合, 过拟合也与模型复杂度, 即theta数目有直接关系.

交叉熵

任何一个由负对数似然组成的损失都是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵. 例如, 均方误差是经验分布和高斯模型之间的交叉熵.

神经网络分类问题通常采用交叉熵作为损失(loss), 除了可消除指数饱和等附带优点原因, 实际上是从似然角度给出的优化目标. 神经网络是一个复杂的model, 其参数theta待学习, 优化目标仍旧是学得一个概率分布去匹配已有data, 也就是最大化似然函数, 也就是max logP, 也就是min 交叉熵.
P取值范围是[0,1], logP就是(-无穷, 0], -logP为[0, 无穷), 故分类器采用交叉熵作为loss时, loss最小为0, 也存在较大(大于1)情况. 通常训练初始阶段, 预测不至于让概率为0, loss也就不至于是无穷.
另外sigmoid用于二分类, 以及softmax用于多分类, 因为输出层具有概率意义, 故可以直接采用交叉熵作为loss, 这时也是在极大似然角度进行train.

参考

  • <深度学习> 人民邮电出版社, 第一版, p82 5.5, p111 6.2
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值