当前位置:网站首页>softmax和最大熵
softmax和最大熵
2022-08-03 05:23:00 【白小李】
目录
梯度下降优化
梯度下降法计算量十分庞大,其中的一个优化方法就是在隐藏层中将激活函数换掉,将sigmoid函数换成ReLU函数。在sigmoid函数中,梯度方向传播,传播到前面几层,会产生梯度消失现象。当换成ReLU函数时,在函数图像上这是一条直线,各个方向梯度保持一致,避免梯度消失问题。
sigmoid函数解决的是一个感知机的输出结果归一,不能保证多个感知机加起来的结果也归一,此时可以使用softmax函数。
softmax函数
softmax函数的公式和sigmod函数的公式
如公式中所见,sigmod就是只有一种分类情况下的softmax。其中包含两个概率,其中一个t1为分子,一个以t2为分子。sofmax对应多个分类的情况,sigmod是针对一种分类的情况。
两个分类情况
前者是只有一个分类的情况,后者是两个分类的情况。
前者的t2是不会变化的,对于后者来说t1和t2都会变化,这表示只有一个分类的时候,当p1、p2发生改变的时候,一定是t1发生了变化。对于两个分类的情况时,p1、p2发生了改变,对于的情况都会对神经网络进行训练。
在交叉熵部分,虽然在后者的y2肯定等于1-y1,但意义已经全然不同。前者代表是或者不是的概率,后者代表是什么东西的概率(是猫或者是狗的概率)。
最大熵原理
本质:系统中事件发生的概率满足一切已知约束条件,不对任何未知信息做假设,也就是对于未知的,当作等概率处理。
以投掷硬币为例,假设硬币正面出现的概率是0.6,背面是0.4,但是这种假设中就包含了你的个人假设,并不是完全客观的,当然你可以通过后续实验验证你的观点,但是在一开始,在你没有得到任何信息的前提下,假设正面和背面出现的概率各是0.5才是最客观的。总的来说这就是为客观假设提供一个代名词的说法。
概率分布
一个概率分布是一定可以表达成一个特征函数。
特征函数用泰勒公式展开后,一定含有一阶矩、二阶矩等等到n阶矩。因此。因此想知道两个数据的概率分布是不是一样的话,只需要去比较它们的一阶矩、二阶矩、三阶矩等是不是相同。这样可以无需计算具体的概率分布大小,就可以确定这两个数据的概率分布是否是一样的。
条件熵
条件熵的表达
简单来说就是x取具体值时它的熵,再对这个熵求期望。外面那个括号就是当x取不同的值时的期望值是多少。求条件概率的熵最大其实就是在求这个计算结果最大。
求条件熵最大
在求的过程中,应当满足两个条件。首先保证经验概率的值与目标概率p相等。其次就是在已发生x事件的情况下,所以y事件发生的概率相加为1。在满足这两个条件的情况下求最小值。
用拉格朗日乘数法。
将整个过程类比下面一个图片。
将x看作是一个图片,图片经过某一个过程后会进行分类,有多少个分类对应y有多少个分量,每一个分量都可以计算出一个在x条件下的y的概率。在学习和训练的时候就是要取找这一个分类的概率和标签的差别,然后进行学习训练。
经过代换,上述计算的条件熵就是softmax,即softmax就是在求最大熵的时候求出来的。其中e是在考虑熵的时候引入进来的,熵是要求求log,它的逆就是e。
当在激活函数方面选择了sofmax或者sigmod函数,则默认选择了最大熵的方式进行机器学习。
机器学习本质就是希望将适用范围扩大,大致过程如下。
可以通过最大熵、极大似然估计法、交叉熵三种方法调整参数。
边栏推荐
猜你喜欢
随机推荐
速来围观,17个运维实用技巧
Execute the mysql script file in the docker mysql container and solve the garbled characters
mysql 客户端SSL错误2026 (HY000)
ASP.NET MVC:自定义 Route
arm64麒麟安装paddlehub(国产化)注意事项
Qlik Sense 判空详解(IsNull)
3588. 排列与二进制
request.getParameter的结果为on
opencv目标检测
HANA 常用数据类型详解
理论上的嵌入式跑马灯
动态调整web系统主题? 看这一篇就够了
vivado遇到的问题
动漫 吞噬星空
布尔盲注需简化代码
MySQL 排序
玩转Markdown(2) —— 抽象语法树的提取与操纵
The result of request.getParameter is on
Mysql 预准备语句详解(prepare、execute、deallocate)
中国水煤浆行业“十四五”规划与运营模式分析报告2022~2028年