softmax 分类

技术softmax 分类 softmax 分类为什么softmax 里面要用交叉熵这个问题之前困扰我挺久的,但这两篇博文完美解答了我的疑惑。交叉熵、相对熵和负对数似然的理解 - 最大的梦想家的文章 -

最大分类

为什么要在softmax中使用交叉熵这个问题困扰了我很久,但这两篇博文完美地回答了我的疑问。

对交叉熵、相对熵和负对数似然的理解——最伟大的dreamer-https://zhuanlan.zhihu.com/p/268171298,之虎的文章

库尔巴克-莱布勒散度-灰色Articles-https://zhuanlan.zhihu.com/p/100676922,知乎简介

KL散度

KL散度是原始分布和近似分布(即学习分布)之间差异的度量。如果差异较大,则意味着学习到的近似分布不太拟合。

\[d _ { KL }(p \ parallel q)=\sum_{i=1}^n p _ I(log(p _ I)-log(q _ I))\ \

S(P)=\sum_{i=1}^K p_i\log p_i\\

交叉熵=-\sum_{i=1}^K p_i \log q_i \\

交叉熵(y_{true},y _ { pred })=-\sum_{i=1}^k y _ { true }(I)\ log y _ { pred }(I)\

\】可以看出,KL散度实际上是实际分布的熵s,加上预测分布和实际分布的交叉熵,机器学习的目的是最小化KL散度,因为KL散度越小,两个分布越接近,这意味着我们从学习中得到的分布越接近实际分布。

对数似然

假设我们观察了一系列样本,包括A情况下的A,B情况下的B,c情况下的c,我们的目标是什么?找出一组分布(p(a) p(b) p(c))使这种状态的概率最高。

因为机器学习是一种分布。

那么我们的目标是最大化

对数是\(a\log p(a) b\log p(b) c \log p(c)\)

其实我们会这样表达:\(\ sum _ { I=1 } n _ I \ log p _ I \)

我们的目标是最大化这个似然函数。在某些情况下,它有一个解决方案。比如在前面的概率论中,我们取导数求极值点,然后得到分布函数。但是在机器学习中,我们通过学习得到分布,没有精确的函数。

还记得之前的交叉熵吗?

对数似然\(\ sum _ { I=1 } n n _ I \ log p _ I \)可以除以\(\ sum _ { I=1 } n n _ I \),因为这个值是一个常数,那么你得到3360。

\(\sum_{i=1}^n p _ { true }(I)\ log p _ { pred }(I)\)

哇哦!

这不就是之前交叉熵的负数吗?

因此,从另一个角度来考虑对数似然性,最大化对数似然性实际上就是最小化KL散度,因为我们的目标是找到一组最接近真实分布的预测分布。

在这一点上,我们得出结论,负对数似然是交叉熵。

为什么我们可以用交叉熵来作为损失函数

在之前的KL散度中,有——个具有两个分量的自熵S和交叉熵。

在深度学习分类中,我们使用一组onehot向量,(0,0,0,1,0,0)作为标签,这意味着$ p _ j=1 \ quad和\ quad p _ {I | I \ neq j}=0 $,所以,\ s(p(交叉熵=-\sum_{i=1}^k p _ I \ log q _ I=-p _ j \ log q _ j=-\ log q _ j \)

这个交叉熵与前面提到的负对数似然一致。

这就是为什么交叉熵可以用作损失函数。

SoftMax 梯度下降

等着填坑.

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77292.html

(0)

相关推荐

  • jointJS怎么用

    技术jointJS怎么用这篇文章主要为大家展示了“jointJS怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jointJS怎么用”这篇文章吧。最近由于项目需要,开始接

    攻略 2021年11月16日
  • 酒可以快递吗,快递有权拒绝酒类邮寄吗

    技术酒可以快递吗,快递有权拒绝酒类邮寄吗快递可以寄烟吗酒可以快递吗?可以的,但是用数量的限制。
    根据《烟草专卖法》二十三条规定,邮寄烟草制品不得超过国务院有关部门的规定的限量,那么在这个方面我们国家(烟草)局规定,邮寄卷

    生活 2021年10月31日
  • Oracle FGA的示例分析

    技术Oracle FGA的示例分析小编给大家分享一下Oracle FGA的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle

    攻略 2021年12月13日
  • oraclehashjoin怎么使用(oracle创建hash索引语句)

    技术Oracle数据库中hash join和nested loop怎么用这篇文章主要为大家展示了“Oracle数据库中hash join和nested loop怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,

    攻略 2021年12月13日
  • spring security中的默认登录页源码分析

    技术spring security中的默认登录页源码分析这篇文章主要讲解了“spring security中的默认登录页源码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月8日
  • python怎么取固定格式文件

    技术python怎么取固定格式文件python怎么取固定格式文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。环境:这几天在使用python开发程序的过程中

    攻略 2021年10月27日