由于工作的原因没有在学校里那么多学习的时间,对于很多基础知识纠结好久还是觉得应该记录下来,于是就打开了好多年没用的csdn,开始记录下自己的偶尔的学习过程,希望能以此勉励自己。当然第一篇博客,自然逼格不能低,先来谈谈自己一直很好奇的,大牛们熟的不能再熟的sigmod函数究竟是怎么得来的。

很多人可能会说,懵的?那你怕是石乐志,其实很多地方都有解释这个函数为什么好,但始终没有给出这个玩意儿到底是怎么出来的。话不多说,先给结论:最大熵原理

对于最大熵原理,首先给出一个定理:对于概率模型而言,在缺乏先验的情况下,条件熵最大的模型是最好的模型。很好理解,熵最大意味着不确定度最高,在没有先验知识情况下,自然这是最好的假设(注意和决策树中特征选择时的熵区分)

好,下面开始装逼(推导主要参考了统计学习方法)

首先,明确我们的目标:条件熵最大:

这里上面波浪号可以理解为是联合概率密度和样本特征分布已知(根据样本先验可知),最终我们的目标就是求出让H函数最大的P(Y|X)。

在这里定义一个特征函数的概念,这个不太好理解,我个人理解为在样本特征与Label之间满足一定关系下,对于样本特征的描述,这个描述自己定,因此个数也不定(不一定对),这里先定义为:

由贝叶斯相关定理,对于每个特征函数i而言,其期望值显然有:

而对于最终的条件概率而言,所有lable取值概率和为1:

好了,接下来,我们综合上面的信息,得到了一个等式约束下的拉格朗日最优化问题(这里不太明白为啥书上会用到KKT条件,等式约束按理说直接导数即可解决,求纠正,我就按自己想法来了):

由拉格朗日乘子法,问题转化为求如下式子的最小值:

此时,我们对L求P(y|x)的导数(指定x和y,去掉求和符号,方便求解),并让导数值为0:

注意,w是拉格朗日参数,主要不和变量相关,加减乘除运算后,他还是w。进一步可以得到:

显而易见,直接求出:

由所有lable概率和为1:

上面两式合并可得(w0参数可以任意+-1):

看到这里,想必大家已经开始感觉有点熟悉了,这是不是和大名鼎鼎的softmax函数十分相似????

好了,之前说过,在最大熵模型中,特征函数是自己定的,这个时候,定义:

注意,这里的x和接下来的特征函数一样,都是指向量x的第i维分量。那么,直接给出softmax函数:

好了,写到这里,其实问题基本已经解决,因为从分类角度考虑,sigmod函数其实就是softmax的二分类特例。当然,装逼要装完,还是给出sigmod再跑路:假定y取值为0和1,且定义

此时,我们来看这个函数:

so,这里我们就给出了所谓的sigmod函数,当然,自己加个负号就行,毕竟w是随意的,装逼结束。

sigmoid函数是如何诞生的(最大熵原理)相关推荐

  1. sigmoid函数原理及饱和后梯度消失的问题

    sigmoid函数原理及饱和后梯度消失的问题 sigmoid函数结构 sigmoid函数,是神经网络中的一种激活函数,其输出范围在(0,1)之间.主要运动于: 1. 作为激活函数,利用输出范围(0,1 ...

  2. 细讲逻辑斯蒂回归与朴素贝叶斯、最大熵原理的爱恨交织(长文)

    好早之前就发现逻辑斯蒂回归好像和朴素贝叶斯里面的后验概率公式还有最大似然.信息熵.交叉熵.伯努利分布.回归分析.几率(odds)等等有着千丝万缕CZFZ(错综复杂).PSML(扑朔迷离)的关系.一直感 ...

  3. 从【为什么要用sigmoid函数】到真的懂【逻辑回归】

    1.逻辑回归是广义线性回归(GLM)的一种特殊形式 2.GLM有三个要素构成:响应变量服从指数族分布,系统分量是预测变量x的线性模型,通过连接函数联系前两者 2.逻辑回归建立在0-1分布上,而0-1分 ...

  4. matlab 最大熵谱估计,最大熵原理

    最大熵原理 最大熵原理是在1957 年由E.T.Jaynes 提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布.因为在这种情况下,符合已知知识的概率分布 ...

  5. sigmoid函数解决溢出_梯度消失和梯度爆炸及解决方法

    一.为什么会产生梯度消失和梯度爆炸? 目前优化神经网络的方法都是基于BP,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化.其中将误差从末层往前传递的过程需要链式法则(Cha ...

  6. sigmoid函数_深度学习中激活函数总结

    一.前言 前段时间通过引入新的激活函数Dice,带来了指标的提升,借着这个机会,今天总结下常用的一些激活函数. 激活函数在深度学习中起着非常重要的作用,本文主要介绍下常用的激活函数及其优缺点.主要分为 ...

  7. 神经网络中的sigmoid函数

    1.weights.bias 参数学习 我们希望有一种学习算法,它能够自动地调整网络中的权重因子和偏置. 但是,我们怎样才能设计出这样的算法神经网络?可以通过学习来解决一些问题.假如,网络的输入是从扫 ...

  8. 机器学习笔记之指数族分布——最大熵原理与softmax激活函数的关系

    机器学习笔记之指数族分布--最大熵原理与softmax激活函数的关系 引言 符号定义 基于多维数据集合的经验概率分布 回顾:经验概率分布 多维数据的经验概率分布 Softmax\mathcal Sof ...

  9. 图解最大熵原理(The Maximum Entropy Principle)

    这个"熵"并不是指热力学上熵的概念,而是由信息论男神克劳德·艾尔伍德·香农(Claude Elwood Shannon)在1948年提出的"信息熵",用来描述信 ...

最新文章

  1. Jvm 系列(八):Jvm 知识点总览
  2. Linux命令 crontab的理解和使用方法
  3. Java总结篇系列:Java多线程(三)
  4. “CoreCLR is now Open Source”阅读笔记
  5. rabbitmq集群报错
  6. jquery之仿京东菜单
  7. Android ble covana,I’m A Lie
  8. sap idoc生成文件传到别的服务器,IDOC 实例详解
  9. ATK - Accessibility Toolkit - 辅助功能工具包
  10. 关于神经网络的调参经验技巧和调参顺序
  11. python程序写诗_pytorch下使用LSTM神经网络写诗实例
  12. 原生安卓10怎么打开面部识别_安卓手机运行慢怎么办?只需简单一步立即提速翻倍...
  13. win7电脑怎么录屏?如何使用电脑录屏软件
  14. 狗狗的年龄的python编程_狗狗与人年龄换算表,终于知道狗狗多大了!
  15. 仙剑游戏系列..感想
  16. HttpProxy网络请求代理
  17. 虚拟摄像头该如何实现
  18. python 加法代码_python运行加法
  19. 【linux进阶2】linux的高级存储管理(lvm卷的扩展和缩减)
  20. 制作基于vhdx启动的wtg

热门文章

  1. Pandoc——Pandoc安装、使用
  2. 图片转base64跨域问题
  3. 【百科】中药指纹图谱研究是什么
  4. 单机版MongoDB插入了亿万条数据之后...
  5. 实用Word使用技巧大全
  6. 巨头们的短视频梦,做到哪了?
  7. linux debug (DOS模拟器,模拟debug)
  8. 计算机一级考试 安装打印机,Windows如何安装打印机?
  9. 深入java虚拟机-JVM (java virture mechine)
  10. 超轻量级的Gow,替代cgwin