http://blog.csdn.net/pipisorry/article/details/7781662

Logistic/Softmax变换

sigmoid函数/Logistic 函数

取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。

sigmoid 的导数表达式为:

sigmoid 原函数及导数图形如下:


Note: 从导数表达式可知,logit梯度最大为0.25。

logistic函数用于数据归一化

新数据=1/(1+e^(-原数据))

P(i)=11+exp(−θTix)

这个函数的作用就是使得P(i)在负无穷到0的区间趋向于0,在0到正无穷的区间趋向于1。同样,函数(包括下面的softmax)加入了e的幂函数正是为了两极化:正样本的结果将趋近于1,而负样本的结果趋近于0。这样为多类别分类提供了方便(可以把P(i)看作是样本属于类别i的概率)。

logit(P) = log(P / (1-P)) = a + b*x 以及 probit(P) = a + b*x

这两个连接函数的性质使得P的取值被放大到整个实数轴上。

事实上可以把上面的公式改写一下:

P = exp(a + b*x) / (1 + exp(a + b*x)) 或者 P = pnorm(a + b*x)(这个是标准正态分布的分布函数)

Note: 上半部分图形显示了概率P随着自变量变化而变化的情况,下半部分图形显示了这种变化的速度的变化。可以看得出来,概率P与自变量仍然存在或多或少的线性关系,主要是在头尾两端被连接函数扭曲了,从而实现了[0,1]限制。同时,自变量取值靠近中间的时候,概率P变化比较快,自变量取值靠近两端的时候,概率P基本不再变化。这就跟我们的直观理解相符合了,似乎是某种边际效用递减的特点。

[logistic回归的一些直观理解(1.连接函数 logit probit)]

神经网络中的激活函数:sigmoid函数/Logistic 函数-软饱和和硬饱和

[神经网络中的激活函数 ]

逻辑回归中的sigmod函数

[Machine Learning - VI. Logistic Regression逻辑回归 (Week 3) ]

数据的标准化(normalization)和归一化中的应用

[数据标准化/归一化normalization ]

某小皮

Softmax函数

Softmax函数是logistic函数的一种泛化。Softmax - 用于多分类神经网络输出。二类分类当然也可以用,但是如果只输出一个神经元可以使用sigmod函数。

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的Softmax值就是

也就是说,是该元素的指数,与所有元素指数和的比值。

举个例子来看公式的意思:

就是如果某一个 zj 大过其他 z, 那这个映射的分量就逼近于 1,其他就逼近于 0,主要应用就是多分类。

为什么要取指数?

第一个原因是要模拟 max 的行为,所以要让大的更大;第二个原因是需要一个可导的函数。

被称为 softmax 函数,因为它表示“ max ”函数的一个平滑版本。这是因为,如果对于所有的 j != k 都有 a_k ≫ a_j ,那么 p(C k | x) ≃ 1 且 p(C j | x) ≃ 0 。

通过softmax函数,可以使得P(i)的范围在[0,1]之间。在回归和分类问题中,通常θ是待求参数,通过寻找使得P(i)最大的θi作为最佳参数。

此外Softmax函数同样可用于非线性估计,此时参数θ可根据现实意义使用其他列向量替代。

Softmax函数得到的是一个[0,1]之间的值,且∑Kk=1P(i)=1,这个softmax求出的概率就是真正的概率,换句话说,这个概率等于期望。

带温度T的softmax概率

比之前的softmax多了一个参数T(temperature),T越大产生的概率分布越平滑。

[深度学习:蒸馏Distill]

Sigmoid 和 Softmax 区别

sigmoid将一个real value映射到(0,1)的区间,用来做二分类。

而 softmax 把一个 k 维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….)其中 bi 是一个 0~1 的常数,输出神经元之和为 1.0,所以相当于概率值,然后可以根据 bi 的概率大小来进行多分类的任务。

二分类问题时 sigmoid 和 softmax 是一样的,求的都是 cross entropy loss,而 softmax 可以用于多分类问题

softmax建模使用的分布是多项式分布,而logistic则基于伯努利分布
多个logistic回归通过叠加也同样可以实现多分类的效果,但是 softmax回归进行的多分类,类与类之间是互斥的,即一个输入只能被归为一类;多个logistic回归进行多分类,输出的类别并不是互斥的,即"苹果"这个词语既属于"水果"类也属于"3C"类别。

[Softmax 函数及其作用(含推导)]

[常用激活函数比较]

softmax代码实现

最新版的scipy中有这个函数及其示例

from scipy.special import softmax

a = [1,2,3,4,-3,-4,-2, -10000]
b = softmax(a)
print(b)

[scipy.special.softmax¶]

当然tensorflow中也有这个函数,只是输入输出是tensor。

from: http://blog.csdn.net/pipisorry/article/details/77816624

ref:

Sigmod/Softmax变换相关推荐

  1. DataScience:深入探讨与分析机器学习中的数据处理之非线性变换—log对数变换、sigmoid/softmax变换

    DataScience:深入探讨与分析机器学习中的数据处理之非线性变换-log对数变换.sigmoid/softmax变换 目录 深入探讨与分析机器学习中的数据处理之非线性变换 log对数变换 sig ...

  2. 【线性代数】矩阵的基本概念和运算性质

    矩阵的基本概念及其意义以及常见的 特殊矩阵 什么是矩阵 m行n列矩阵 方阵 当m=n时,成为方阵 列向量 一行数,即m=1 行向量 一列数,即n=1 两个矩阵相等 1.两个矩阵的行和列都相同 2.对应 ...

  3. 深度学习:神经网络中的激活函数

    http://blog.csdn.net/pipisorry/article/details/71157037 激活函数 神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数, ...

  4. 机器学习之数据的偏态分布和数据的标准化

    目录 一.偏态分布 1.何为数据的偏态分布? 2.构建模型时为什么要尽量将偏态数据转换为正态分布数据? 3.如何检验样本是否服从正态分布? 4 .如果不是正态分布怎么办? 5.采用库函数skew进行数 ...

  5. 标准化和归一化,请勿混为一谈,透彻理解数据变换

    标准化与归一化 1.标准化(Standardization)和归一化(Normalization)概念 1.1.定义 1.2.联系和差异 一.联系 二.差异 1.3.标准化和归一化的多种方式 2.标准 ...

  6. A.深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  7. 从0到1详解推荐系统中的嵌入方法,原理、算法到应用都讲明白了

    (图片由AI科技大本营付费下载自视觉中国) 作者丨gongyouliu 编辑丨lily 来源 | 大数据与人工智能(ID:) 前言 作者曾在这篇文章中提到,矩阵分解算法是一类嵌入方法,通过将用户行为矩 ...

  8. Metapath2vec:Scalable Representation Learning for Heterogeneous Networks(结构化深度网络特征表示)

    目录 1.图嵌入背景介绍 1.1 什么是图嵌入 1.2 为什么要使用图嵌入 2.论文背景介绍 2.1 同质网络 & 异质网络 2.2 异质网络与Metapath2vec 3.Metapath2 ...

  9. 唐宇迪机器学习实战课程笔记(全)

    1. 线性回归 1.1线性回归理论 1.2线性回归实战 2.训练调参基本功(线性回归.岭回归.Lasso回归) 2.1 线性回归模型实现 2.2不同GD策略对比 2.3多项式曲线回归 2.4过拟合和欠 ...

  10. 「构建企业级推荐系统系列」嵌入方法在推荐系统中的应用

    点击上方"数据与智能","星标或置顶公众号" 第一时间获取好内容 作者 | gongyouliu 编辑 | auroral-L 作者在<矩阵分解推荐算法& ...

最新文章

  1. GET 和 POST请求的本质区别是什么?原来我一直理解错了
  2. Mybatis的select方法
  3. Ubuntu Server 16.04 LTS上使用Docker部署Tomcat
  4. 用session实现html登录页面跳转页面跳转页面跳转,js判断登录与否并确定跳转页面的方法...
  5. java 多层异常_Java多层嵌套异常处理的基本流程
  6. linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
  7. Selenium select-下拉列表处理
  8. Deep Learning快速学习方法
  9. java继承小程序_Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)...
  10. BZOJ-2768: [JLOI2010]冠军调查(超级裸的最小割)
  11. 数据源、元数据、数据元
  12. 怎样添加图片到黑莓7290手机里?
  13. 用O(lgn)时间求出两个已排序数组的中位数
  14. 服装业成本核算方法大全
  15. Flipped (怦然心动)
  16. 网页证书错误怎么回事? 证书错误如何解决
  17. [ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号
  18. Spring Boot Redis 实现分布式锁,真香
  19. MATLAB学习笔记:行列式及其应用
  20. 浙江大学发布四足机器人“绝影”,爬坡踏雪稳定性令人惊艳

热门文章

  1. 转:PyDev for Eclipse 简介
  2. 为tomcat分配内存
  3. BZOJ 2434 阿狸的打字机(ac自动机+dfs序+树状数组)
  4. adb命令获取app布局文件xml
  5. java开发异常Exception集锦
  6. Ubantu 安装SSH
  7. day69-oracle 22-DBCA
  8. centos虚拟机克隆
  9. MOSS 2007 / WSS 3.0 运行在Windows Server 2008上不能上传大于28M的文件【续】
  10. [转载]在vim中针对c++自动补全