基础概念【softmax|normalizatoin|standardization】
目录
一、softmax
二、normalization
三、standardization
一、softmax
为什么使用softmax,不用normalization?
“max” because amplifies probability of largest
“soft” because still assigns some probability to smaller
softmax层是一种归一化的方式,常应用在多分类的最后一阶段,对于网络产生的结果 xi 执行 softmax(X)i = exp(xi) / ∑jn exp(xj)
作用:
1、将原来的输入归一到[0,1]区间
2、使用exp的意义是 exp是单调递增函数且函数值为正数,这样可以保证根据输出大小得出概率,也是为了之后求导方便,exp的导数为exp
3、上溢和下溢问题
假设所有的xi都等于某个常数c, 我们可以发现所有的输出都是 1/n。从数值上来说,当c的量级很大时,exp(c)就会出现上溢的问题,当c是很小的负数时,exp(c)就会下溢,这意味着softmax的分母会变成0,所以最后的结果是未定义的。
这两个问题能通过计算softmax(z)同时解决,其中 z = x - maxi xi , 因为softmax解析上的函数值不会因为从输入向量减去或者加上标量而改变即softmax( X - c ) = softmax(X),通过减去maxi xi
导致exp的参数最大为0,这排除了上溢的可能,另外对于分母来说至少会有一项是1,这样避免了下溢
二、Normalization
1、含义: 将数据的值压缩到[0,1]区间,便于不同单位或者量级的指标能够进行比较和加权
2、好处:
1 提高迭代求解的收敛速度
归一化在梯度下降求解中的作用
在梯度下降中多数时候原始数据若没经过特征处理,数据的各个维度是存在着量级的差别,假如线性函数Ax+By+b=C,X维度数量级是十,Y的数量级是万,那么求出的A就比B大,那么在用梯度下降求解最优解过程中,对A求偏导每次变化是和X成线性的(结果只和x相关),对B求偏导是和B成线性的(结果只与y相关),这样就造成两个维度下降速度不一致的问题,在图像上面显示就是A每次走的step很小,B的step很大,可能导致某一个维度由于数量级较大已经到达最低点,而其他维度由于数量级的差异未到达最低点,先到达最低点的维度需要等待其他维度,走出的曲线是震荡性较大图像:
---------------------
作者:golden_xuhaifeng
来源:CSDN
原文:https://blog.csdn.net/golden_xuhaifeng/article/details/79742581
版权声明:本文为博主原创文章,转载请附上博文链接!
如左图所示,x1的取值范围大,所以θ1 只需经过少量几步就可以到达 极值点,但是由于x2的取值范围小,所以θ2要经过许多步才能到达极值点,经过归一化之后,如右图,θ1和θ2
可以同时经过相同的步数到达极值点,因此归一化可以提高迭代收敛的速度。
2 提高迭代求解的精度
比如计算欧式距离:由于x1的取值范围 大于 x2的取值范围,因此最后x1对距离结果的影响要大于x2,这就会造成精精度的损失
3、归一化方法:
1、归一到【0,1】区间
2、归一到【-1,1】
3、归一到【a,b】
(1)首先找到原本样本数据X的最小值Min及最大值Max
(2)计算系数:k=(b-a)/(Max-Min)
(3)得到归一化到[a,b]区间的数据:Y=a+k(X-Min) 或者 Y=b+k(X-Max)
三、Standardization
对每个特征的数据值变成 均值为0,方差为1
好处:
1 使得不同度量之间的特征具有可比性,对目标函数的影响体现在几何分布上,而不是数值上
2 不改变数据原始分布
归一化和标准化区别:
归一化特点:使各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布的数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。
标准化特点:通过一系列的平移压缩操作,不改变原始数据的分布
引于https://www.zhihu.com/question/20467170
从采用大单位的身高和体重这两个特征来看,如果采用标准化,不改变样本在这两个维度上的分布,则左图还是会保持二维分布的一个扁平性;而采用归一化则会在不同维度上对数据进行不同的伸缩变化(归一区间,会改变数据的原始距离,分布,信息),使得其呈类圆形。
虽然这样样本会失去原始的信息,但这防止了归一化前直接对原始数据进行梯度下降类似的优化算法时最终解被数值大的特征所主导。归一化之后,各个特征对目标函数的影响权重是一致的。这样的好处是在提高迭代求解的精度。
基础概念【softmax|normalizatoin|standardization】的更多相关文章
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- Jmeter基础之---jmeter基础概念
Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
- 理解 angular2 基础概念和结构 ----angular2系列(二)
前言: angular2官方将框架按以下结构划分: Module Component Template Metadata Data Binding Directive Service Dependen ...
- JavaBean 基础概念、使用实例及代码分析
JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...
- RabbitMQ基础概念详细介绍
http://blog.csdn.net/column/details/rabbitmq.html 转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多 ...
- linux设备驱动归纳总结(二):模块的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...
- linux设备驱动归纳总结(一)内核的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...
随机推荐
- rocketmq延时消息
rocketmq提供一种延时消息的解决方案,就是在特定的时间到了,消息才会被投递出去供consumer消费. 总体来是简单的场景是满足了,但是需要注意的是延时的时间是需要按照默认配置的延时级别去配置的 ...
- idea Maven项目找不到相关依赖包(红色波浪线)
前两天做项目的时候,把团队其他人的代码从git同步到自己电脑上,出现了冲突.发现是maven依赖出现了问题,之前的截图找不到了,我就简单描述一下.就是下图箭头所示位置出现了红色波浪线. 在网上找了很多 ...
- Docker-镜像源加速配置
Docker官网镜像服务在境外,拉取速度很比较慢,所以我们安装完Docker后一般会切换镜像源,将镜像源切换到国内以此达到加速的目的. 国内比较常用的Docker Hub镜像服务:1.阿里云2.Dao ...
- 利用WSUS部署更新程序
WSUS概述 为了让用户的windows系统与其他microsoft产品能够更安全,更稳定,因此microsoft会不定期在网站上推出最新的更新程序供用户下载与安装,而用户可以通过以下方式来取得这些程 ...
- 记录Javascript的数据方法参考
concat >>连接2个或更多数组,并返回结果 var arr1 = [1,2,3]; var arr2 = [-1,-2,-3]; console.log(arr1.concat(ar ...
- master公式 ------ 求递归情况下的时间复杂度
剖析递归行为和递归行为时间复杂度的估算一个递归行为的例子T(N) = a*T(N/b) + O(N^d)1) log(b,a) > d -> 复杂度为O(N^log(b,a))2) log ...
- JavaScript判断对象是否是NULL
这个方法是我踩了很多坑之后找到的,对数组等类型的对象都很好使,果断收藏! function isEmpty(obj) { // 检验 undefined 和 null if (!obj &&a ...
- 云计算openstack介绍
一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...
- Git使用(积累一些常用的命令)
1. 取消某一次合并 git merge --abort 可以参考的教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248 ...
- python中使用redis发布订阅者模型
redis发布订阅者模型: Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel.发布者和订阅者都是Redis客户端,Channel则 ...