李宏毅课程:SELU 激活函数
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文: https://www.cnblogs.com/makefile/p/dropout.html © 康行天下
Alpha Dropout是一种保持输入均值和方差不变的Dropout,该层的作用是通过缩放和平移使得在dropout时也保持数据的自规范性。Alpha Dropout与SELU激活函数配合较好。更多细节参考论文Self-Normalizing Neural Networks.
李宏毅课程:SELU 激活函数
刚刚发现超可爱的台湾李宏毅老师早在去年就对 SELU
做了介绍,跟着视频学习一下好了,至于实验效果等我成功复现那篇 未开源 的论文后再来补充。
B站视频地址: 【戳我】
课件地址: 【戳我】
SELU论文地址:【Self-Normalizing Neural Networks】.
1. ReLu 变体
- Leaky ReLU
- Parametric ReLU
- Exponential Linear
2 SELU
- 形式
其中超参 α
和 λ
的值是 证明得到 的(而非训练学习得到):
α
= 1.6732632423543772848170429916717
λ
= 1.0507009873554804934193349852946
- 特点
即:
不存在死区
存在饱和区(负无穷时, 趋于 -
αλ
)输入大于零时,激活输出对输入进行了放大
证明
记输入 [ a1..ak...aK]
各维独立同分布, 每一维的分布均值为零,方差为 1
, 注意: 该分部不一定是高斯分布,只需满足均值为零,方差为 1
即可。
我们的目标是: 寻找一个激活函数,使得神经元输出的激活值 a
也满足均值为零,方差为 1
.
后续的证明视频里跳过去了,很遗憾。
根据 ppt
得出一个不严谨的观察:为了满足输出 a
符合 均值为 0
, 标准差为 1
, 权重向量 [w1, w2,...wk, wK]
需满足均值为 0
, 标准差为 1/K
.
3. 老师做的实验
老师搭了一个包含 50
层隐含层的全连接网络。
input
不做标准化 +relu
函数
训练 3
个 epoch
后, 发现准确率没有提升。
input
不做标准化 +selu
函数
keras
已内建 selu
函数 ,训练 3
个 epoch
后, 发现准确率依然没有明显提升(只比 relu
好一点)。
input
标准化 +selu
函数
使用 selu
时,我们假设上一层的神经元输出符合均值为 0
, 方差为 1
的分布 ,所以需要将输入进行标准化。
训练 3
个 epoch
后, 发现网络仍然没有 train
起来:
weight
标准化 +selu
函数
前面我们有一个不严谨的观察 : 权重需要满足均值为零,方差为 1/K
, 在训练过程中我们无法保证权重满足这一条件, 但是我们可以让初始化时的权重满足这一条件,使用 lecunNorm
即可。
训练 3
个 epoch
后, 发现效果惊人!
weight
标准化 +relu
函数
我们可能有疑问: 训练效果的提升可能应该归功于 lecunNorm
, 而非 selu
, 所以老师做了一组对照实验:
训练 3
个 epoch
后, 发现网络没有 train
起来。说明 selu
+ weight lecunNorm
才是真正的大杀器!!(李老师上课真的非常逗比)
4. Pytorch 实现 SELU
实现链接:【戳我】
import torch.nn.functional as F
def selu(x):alpha = 1.6732632423543772848170429916717scale = 1.0507009873554804934193349852946return scale * F.elu(x, alpha)
李宏毅课程:SELU 激活函数相关推荐
- 【转载】SELU 激活函数
说明 本文非本人所著,转载自 https://www.jianshu.com/p/3a43a6a860ef. 主要内容为李宏毅老师深度学习课程某次讲的 SELU 激活函数课程.由于课堂效果极好(实验部 ...
- 李宏毅 课程打包_按功能而不是按层打包课程
李宏毅 课程打包 大多数企业Java应用程序在设计上都有一些相似之处. 这些应用程序的打包通常由它们使用的框架(如Spring,EJB或Hibernate等)驱动.或者,您可以按功能对打包进行分组. ...
- SELU︱在keras、tensorflow中使用SELU激活函数
arXiv 上公开的一篇 NIPS 投稿论文<Self-Normalizing Neural Networks>引起了圈内极大的关注,它提出了缩放指数型线性单元(SELU)而引进了自归一化 ...
- 台大李宏毅课程笔记3——New Optimization for Deep Learning深度学习新优化
台大李宏毅课程笔记3 SGD with Momentum(SGDM) RMSProp Adam SWATS AdaXXX Adam分析 AMSGrad AdaBound SGDM分析 Cyclical ...
- ARTS-23(35. 搜索插入位置,SELU激活函数,本周几个问题, 招商银行财报分析)
Algorithm https://leetcode-cn.com/problems/search-insert-position/ 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目 ...
- R语言使用自定义函数编写深度学习Scaled Exponential Linear Unit (SELU)激活函数、并可视化SELU激活函数
R语言使用自定义函数编写深度学习Scaled Exponential Linear Unit (SELU)激活函数.并可视化SELU激活函数 目录
- SELU激活函数,scaled exponential linear units
SELU.ReLU.leaky ReLU对比: https://github.com/shaohua0116/Activation-Visualization-Histogram 关于SELU激活函数 ...
- selu激活函数和自归一化网络(SNN)
最近出现了一个新的激活函数:缩放指数线性单元(scaled exponential linear units,selu),根据该激活函数得到的网络具有自归一化功能. 首先给出文章地址:https:// ...
- 机器学习2020台大李宏毅课程网站、视频以及PPT连接
课程内容:请访问李宏毅老师个人网站中的achine Learning (2020,Spring)连接:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20. ...
最新文章
- 掌握Redis分布式锁的正确姿势
- 实现entity、dao 、service 、serviceImpl自动生成
- hive工作记录-20180513
- 华为P30Pro国外采用4根天线设计,为何国内却只有2根?
- Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)
- matplotlib - 极坐标上的散点图
- 如何选择基于 Kubernetes 的 PaaS?
- java url转成pdf_java URL转PDF文件
- Kotlin入门(31)JSON字符串的解析
- 读取properties文件方式
- id长度 雪花算法_GitHub - cloudyan/snowflake: Twitter的雪花算法(snowflake)分布式自增ID...
- Adodb CS3(DW、FW、PS、FLASH)安装序列号
- Python爬虫采集网易云音乐热评实战
- 【T+】取消记账提示入库失败,请至少选择两个字
- linux搭建steam服务器吗,如何在Linux系统服务器中安装steam play
- [转][职业导航]作为初涉销售的年轻人,你是否具备核心竞争力?
- 《华为区块链白皮书》重磅发布 华为云区块链服务BCS专注4大类9小类应用场景
- eclipse注释字体大小显示不一样大
- 有限元基础及ANSYS应用 - 第3节 - 平面桁架结构有限元分析 - PPT
- 修改android 开机画面
热门文章
- MathType 使用的解决方案
- oracle的安装实验报告,Oracle实验报告Oracle实验报告.doc
- 对utf-8字符串计算长度
- IP地址查询对应的域名在线网址分享
- 网页的横向打印的三种方案(print your page landscape)
- 17.如何免费获取已发表SCI论文数据库
- MVC模式 三层架构
- app mysql图片存储空间不足,光影魔术手处理照片时提示存储空间不足的解决办法介绍...
- filter: grayscale(1); | 网页变灰
- 变形金刚登陆成都太古里3D大屏首秀远超所见;中国高尔夫球员何沐妮成为FILA高尔夫形象大使 | 知消...