深度学习中的各种tricks_2.0_maxout
来源:互联网 发布:anaconda的linux安装 编辑:程序博客网 时间:2024/06/05 17:41
深度学习中的各种tricks_2.0_maxout
2017/11/18 - Saturday - 第一次修改
[ 用于整理遇到的NN设计中使用的不同结构和trick的原理与实现 ]
maxout (最大输出激活函数)
2017/11/18 以下内容主要根据 ref.2 中的 slide 以及 ref.1 中的 Abstract 和 Introduction。
maxout 简介
maxout 得名时因为它的 out put 是输入集合中的 max ,而且一般和dropout一起使用。论文作者提出 maxout 的本意就是设计一个 model 让它可以 leverage 作为 model averaging tech 的 dropout。而且论文作者经验性的证明了 maxout 和 dropout 一起可以对于优化和 model averaging 有效果。
maxout 作为新的激活函数
maxout 可以被视为一种新的激活函数。如图所示,一般的NN都是先对输入(x)进行加权求和(得到z)再输入进一个非线性函数h中,输出即为激活函数的值(h(z))。而 maxout 不同,它去掉了后面的非线性函数,并且对于后一层的每个值,都相当于在前面加了一个 hidden layer,而且时没有 activation 的 hidden layer , 而且从 hidden layer 到后一层的值之间并不是加权求和,而是取 max 。(这样看来其实也不能算作 hidden layer … 只是可能几何结构上有些类似,更应该看作 hidden layer 中的每一个 node 都相当于一个可能的 output ,如果只看某一种可能性的话,模型就退化成普通的 FC 层了。而最后的输出只不过是在所有可能的输出中取最大值)
maxout 的表达能力
对于每一个 x–>z 的映射,都是一个线性函数,因此最后取 max 实际上是对所有可能的线性函数取最大,因此会得到一个分段线性的激活函数,而且由于是取max,则分段函数必然是凸的,而且由于我们认为激活函数是凸的,那么如果给定足够多的分段,那么原则上 maxout 是可以拟合任意的激活函数的。下面展示的就是 maxout 拟合 ReLu 和 二次函数 的情形
下面是定理,用来说明 maxout 的表达能力,首先,定理一说明,只要隐节点足够多,任何凸函数都可以用 maxout 来近似,而后说明如果 f 和 g 时凸的,那么任意函数都能由 f - g 来近似。所以得到定理二,即 maxout 相减可以拟合任意函数。 所以多层的 maxout 具有很强的表现力。
由于 maxout 是 PWL (Piecewise Linear) 的,因此可以用BP更新。
reference:
- Goodfellow I J, Wardefarley D, Mirza M, et al. Maxout Networks[J]. Computer Science, 2013:1319-1327.
- 論文紹介 Maxout Network 斎藤淳哉
- 深度学习中的各种tricks_2.0_maxout
- 深度学习中的各种tricks_1.0_label_smoothing
- 深度学习中的 Batch_Size
- 深度学习中的初始化
- 深度学习中的初始化
- 深度学习中的可视化
- 深度学习中的 Batch_Size
- 深度学习中的panda
- 深度学习中的Numpy
- 自然语言处理、深度学习的各种资源
- 各种编程语言的深度学习库
- 深度学习各种优化函数详解
- 深度学习之各种优化算法
- 深度学习之各种优化算法
- 深度学习各种常见的Net
- 深度学习各种优化方法比较
- 深度 | 理解深度学习中的卷积
- 深度学习中的一些理解
- 垃圾收集器(Garbage Collectors)
- 欢迎使用CSDN-markdown编辑器
- 机器学习笔记之R语言6(抽样和假设检测(t检测1))
- Tensorflow学习笔记(二):利用CNN实现手写数字(mnist)识别
- 第三章 SpringMVC之HandlerMapping解析
- 深度学习中的各种tricks_2.0_maxout
- 遇坑小记之Mariadb
- ROS入门--基于激光的避障
- .sha1 .pom .pom.sha1文件
- ubuntu下不显示共享文件夹hgfs
- spring-boot干货
- 指针和引用的区别
- VS中弹出窗口不运行原因
- 第四章 SpringMVC之HandlerAdapter解析