当前位置:网站首页>机器学习与深度学习 --- 激活函数(未完待续)
机器学习与深度学习 --- 激活函数(未完待续)
2022-06-22 11:32:00 【地瓜没有花】
1. Hard Sigmoid 函数和 Sigmoid 函数的区别

1.1 sigmoid函数
表达式如下:
图像如下:
Sigmoid 非线性激活函数的形式是σ(x)=1/(1+e−x),其图形如上图左所示。之前我们说过,sigmoid函数输入一个实值的数,然后将其压缩到0~1的范围内。特别地,大的负数被映射成0,大的正数被映射成1。sigmoid function在历史上流行过一段时间因为它能够很好的表达“激活”的意思,未激活就是0,完全饱和的激活则是1。而现在sigmoid已经不怎么常用了,主要是因为它有两个缺点:
Sigmoids saturate and kill gradients.
Sigmoid容易饱和,并且当输入非常大或者非常小的时候,神经元的梯度就接近于0了,从图中可以看出梯度的趋势。这就使得我们在反向传播算法中反向传播接近于0的梯度,导致最终权重基本没什么更新,我们就无法递归地学习到输入数据了。另外,你需要尤其注意参数的初始值来尽量避免saturation的情况。如果你的初始值很大的话,大部分神经元可能都会处在saturation的状态而把gradient kill掉,这会导致网络变的很难学习。Sigmoid outputs are not zero-centered.
Sigmoid的输出不是0均值的,这是我们不希望的,因为这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响:假设后层神经元的输入都为正(e.g. x>0 elementwise in f=wTx+b),那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。
当然了,如果你是按batch去训练,那么每个batch可能得到不同的符号(正或负),那么相加一下这个问题还是可以缓解。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的
kill gradients 问题相比还是要好很多的。
边栏推荐
猜你喜欢

Foreign lead needs energy, interest, research, diligence and is indispensable

APM flight mode switching -- source code explanation

How many of the eight classic MySQL errors did you encounter?

APM set pitch four rotor control mode

配置GPU版本的pytorch和torchvision,初学GPU版本torch踩坑

关于缓存异常:缓存雪崩、击穿、穿透的解决方案

《梦华录》成吸金王:广告主投500万排不上队,腾讯视频赢麻了?

Authenticated cookies, sessions, JWT
![[CISCN2019 总决赛 Day1 Web4]Laravel1](/img/99/4eb4d9447ac191fb9320cd8135f019.png)
[CISCN2019 总决赛 Day1 Web4]Laravel1

【软工】获取需求
随机推荐
Foreign lead needs energy, interest, research, diligence and is indispensable
Solution to 54e of Niuke challenge
Set up OpenPGP key server
CF751E Phys Ed Online
Redis - 3、发布和订阅
IO之ByteStream案例
NOI使用案例
Struggle, programmer -- Chapter 36 the falling flower man is independent and the tiny swift flies
NFT交易平台数字藏品系统开发技术
Niuke challenge 53c
Idr Display function obtains the summary statistical information of Poisson regression Poisson model (initial event density ratio IDR value, adjusted event density ratio IDR value and its confidence i
Haas506 2.0 development tutorial - Advanced Component Library -modem Info (only supports versions above 2.2)
Summary of SQL injection bypass methods
The R language dplyr package mutate function divides two numeric variables in the dataframe to create a new data column (create a new variable)
【软工】 概论 & 过程和生命周期建模
奋斗吧,程序员——第四十五章 柔情似水,佳期如梦
Redis - 11. Cluster
Matlab的KNN分类使用(附源码),实现像素分类(自己设置训练集比例),打印测试精度
两两交换链表中的节点[单向链表不断链原则]
Kruskal reconstruction tree