Softmax与Sigmoid函数的联系
译自:http://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/
本文的原始目标是探索softmax函数与sigmoid函数的关系。事实上,两者的关系看起来已经是遥不可及:一个是分子中有指数!一个有求和!一个分母中有1!。当然,最重要的是两个的名称不一样。
推导一下,很快就可以意识到,两者的关系可以回溯到更为泛化的条件慨率原理的建模框架(back out into a more general modeling framework motivated by the conditional probability axiom)。本文首先探索了sigmoid函数是一种特殊的softmax函数,以及各自在Gibbs distribution, factor products和概率图模型方面的理论支撑。接下来,我们继续展示概框架如何自然的扩展到canonical model class,如softmax回归,条件随机场(Conditional Random Fields),朴素贝叶斯(Naive Bayes)以及隐马尔科夫模型(Hidden Markov Model)。
目标(Our Goal)
下图是一个预测模型(predictive model),其中菱形表示接收输入,并产生输出。输入向量,有3种可能的输出
:。模型的目标在于在输入的条件下产生各种输出的概率:
。概率是位于闭区间[0,1]的一个实数值。
输入对输出的影响(How does the input affect the output?)
每个输入是4个数的列表(输入向量是4维),每一维度对各个可能的输出影响程度不同,这里我们称它为权重(weight)。4个输入数据乘以3个输出,代表了12个不同的权重。可能如下表所示:
生成输出(Producing an Output)
给定一个输入向量,我们的模型将使用上述权重来生成输出
。这里假设每个输入元素的影响是加性的(The effect of each input element will be additive.)。至于原因留待后续解释。
这些求和公式会对模型的输出结果产生贡献。最大的数将会胜出。例如,若上式得到的结果是,则我们的模型会得到结论:最大可能产生c。
转换为概率(Converting to Probabilities)
之前说过,我们的目标在于获得概率:。其中
为黑体,为了表示任意的输入向量。当给定一个具体的输入向量时,我们用花体
表示,这样我们的目标可以更精确的表示为:
。至此,我们已经获得
。为了将这些值转换成一个概率,也就是闭区间[0,1]之间的一个实数值,我们只需要用这些值的和去除原始值。
最后我们得到一个合理的概率分布,所有值的和相加为1.
如果我们得到的值是负数怎么办?(What if our values are negative?)
如果其中的一个未经正则化的概率的值为负数,例如,,那么所有的都会被破坏。该值对应的概率值也不会是一个合理的概率,
因为
它不能落在[0,1]闭区间之内。
为了保证所有没有正则化的概率值为正数,我们必须用一个函数对这些值进行处理,以保证能够产生一个严格的正实数。简单来说,就是指数函数,我们选额欧拉数e作为底。这种选择的原理有待后续解释。
这样我们正则化后的概率,也就是合法的概率,如下式所示:
泛化表示为:,也就是softmax函数。
与Sigmoid函数的联系(Relationship to the sigmoid)
如果说Softmax可以得到在多于两个()不同的输出上的一个合理的概率分布,那么sigmoid可以得到针对两种输出(
)的一个合理的概率分布。也就是说,sigmoid仅仅是softmax的一个特例。用定义来表示,假设模型只能产生两种不同的输出:
和
,给定输入
,我们可以写出sigmoid函数如下:
然而,值得注意的是,我们只需要计算一种结果的产生概率,因为另外一种结果
的产生概率可以由概率分布的性质得到:
。接下来,我们对
的产生概率的表示进行扩展:
然后,对该分式的分子和分母都同时除以,得到:
最后,我们可以用该式代入求另一种结果的产生概率的式子中得到:
该等式是欠定的(underdetermined),由于等式中有多于1个的未知变量。如此说来,我们的系统可以有无穷多组解。因此,我们对上式进行简单的修改,直接固定其中一个值。例如:
这就是sigmoid函数,最终,我们得到:
为什么这些未正则化概率值是求和得到(影响是加性的)?(Why is the unnormalized probability a summation?)
我们理所当然的认为canonical线性组合的语义是。但是为什么先求和?
为了回答这个问题, 我们先复述一下我们的目标:给定输入,预测各种可能结果的产生概率,即。接下来,我们重新看一下条件概率的定义式:
发现这个式子很难解释,我们对这个式子重新变化一下,以或则某些直觉:
得到的信息是:同时观测到A与B的值的概率,也就是A与B的联合概率,等于观测到A的概率乘以给定A观测到B的概率。
例如,假设生一个女孩的概率是0.55,而女孩喜欢数学的概率是0.88,因此,我们得到:
现在,我们对原始的模型输出,利用条件概率的定义式,进行重写:
值得注意的是,这里采用指数函数,以保证将每个未正则的概率值转换为一个严格概率值。技术上来讲,这个数字称为,因为可能大于1,所以并非一个严格的概率,我们需要引入另一个项到我们的等式链中:
例如,我们的算术等式:
等式左边的项:
分子是一个严格的联合概率分布。
分母为观测到任意一个x值的概率,为1
等式右边的项:
分子是一个严格的正的未经归一化的概率值
分母是某个常数,以保证和为1。这里归一化项称为partition function。
知道了这些,我们可以对softmax等式中的分子进一步分解:
Lemma:若我们的输出函数softmax函数通过指数函数得到一个多个可能结果上的合理的条件概率分布,那么下述结论肯定成立:该softmax函数的输入()必须是原始输入元素
的加权求和模型。
上述Lemma成立的前提是我们首先接收这样的事实:。从而引出来Gibbs distribution。
(二)Gibbs Distribution
Gibbs Distribution给出了一个结果集合上的未归一化的联合概率分布,类似于,定义如下:
其中定义了一个factor的集合。
Factor本质为满足下面两个条件的函数:(1)将随机变量作为输入,所有输入随机变量构成的列表称为scope;(2)针对每个可能的随机变量的组合值(即scope的叉积空间中的点),返回一个值。例如,scope为的factor可能如下所示:
(三)Softmax regression
未完待续
Softmax与Sigmoid函数的联系的更多相关文章
- sigmoid 函数与 softmax 函数
sigmoid 函数与 softmax 函数 1. sigmoid 函数 sigmoid 函数又称:logistic函数,逻辑斯谛函数.其几何形状即为一条sigmoid曲线. lo ...
- Sigmoid函数与Softmax函数的理解
1. Sigmod 函数 1.1 函数性质以及优点 其实logistic函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线(S型曲线). 其中z ...
- 交叉熵代价函数——当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数,以避免训练过程太慢
交叉熵代价函数 machine learning算法中用得很多的交叉熵代价函数. 1.从方差代价函数说起 代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigm ...
- softmax回归---sigmoid(1)
介绍softmax之前先讲讲sigmoid: 逻辑回归模型常用的函数:sigmoid函数(用来做二分类) 表达式:f(x)=L/(1+exp-k(x-x0)) 其图像: 本质:将一个真值映射到(0,1 ...
- 机器学习之sigmoid函数
先说一下,ML小白. 这是第一次写个人博客类似东西, 主要来说说看 sigmoid 函数,sigmoid函数是机器学习中的一个比较常用的函数,与之类似的还有softplus和softmax等函数, ...
- Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率
(手机的颜色,大小,用户体验来加权统计总体的值)极大似然估计MLE 1.Logistic回归 Logistic regression (逻辑回归),是一种分类方法,用于二分类问题(即输出只有两种).如 ...
- Sigmoid函数
Sigmoid函数是一个S型函数. Sigmoid函数的数学公式为: 它是常微分方程 的一个解. Sigmoid函数具有如下基本性质: 定义域为 值域为, 为有界函数 函数在定义域内为连续和光滑函数 ...
- 笔记+R︱Logistics建模简述(logit值、sigmoid函数)
本笔记源于CDA-DSC课程,由常国珍老师主讲.该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营 ---------------------------------- ...
- Logstic回归采用sigmoid函数的原因
##Logstic回归采用sigmoid函数的原因(sigmoid函数能表示二项分布概率的原因) sigmoid函数:  和 无值(None)-->Some和None是Option的子类 val myMap:Ma ...
- 2019-11-29-win10-uwp-关联文件
原文:2019-11-29-win10-uwp-关联文件 title author date CreateTime categories win10 uwp 关联文件 lindexi 2019-11- ...
- oracle中如何生成awr【性能调优】报告
1.进入数据库 sqlplus / as sysdba 2.查看用户 show parameter db_name 3.开始压测后执行 exec DBMS_WORKLOAD_REPOSITORY.CR ...
- WPF布局介绍(1)
开局一张图,内容全靠...,本系列的文章, 主要针对刚入门.亦或是从 winform/bs转过来的开发人员快速入门的指南, 相对于其它一些文章中会详细的从项目如何建立到其实现的原理及组成部分, 本系列 ...
- Java面试必问通信框架NIO,原理详解
NIO 流与块 通道与缓冲区 缓冲区状态变量 文件 NIO 实例 选择器 套接字 NIO 实例 内存映射文件 NIO与IO对比 Path Files NIO 新的输入/输出 (NIO) 库是在 JDK ...
- pom.xml管理jar包——安全性框架配置文件
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...
- 2019 识装java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.识装等公司offer,岗位是Java后端开发,因为发展原因最终选择去了识装,入职一年时间了,也成为了面试官,之 ...
- Vue.js最佳实践--VueRouter的beforeEnter与beforeRouteLeave冲突解决
用Vue做应用管理系统,通常会在离开某个页面的时候,需要检测用户是否有修改,询问用户需要不需要保存之类的需求 这时候,在读VueRouter文档:组件内的守卫 的时候,发现beforeRouteLea ...
- Clang交叉编译初识
最近工作中要编译一个第三方的C库用于iOS端使用,我直接在Mac OS的终端中./configure & make & make install常规走下来,却无法在真机iOS上使用,提 ...
- 无线安全审计工具FruityWifi初体验
FruityWIfi是一款有名的无线安全审计的开源工具,其灵感来自于wifipineapple,目前该工具已经更新到2.4.它能够让用户通过web界面来控制和管理模块,十分方便.FriutyWifi最 ...