深度学习maxout单元
今天学习深度学习看到整流线性单元及其扩展里的maxout单元,感觉这个有点东西,书中讲的不是特别详细,在此记录一下学习到的东西。参考了http://www.cnblogs.com/tornadomeet
一、相关理论
maxout出现在ICML2013上:《Maxout Networks》,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。从论文中可以看出,maxout其实一种激发函数形式。本文主要介绍这个函数的具体算法。
二、Maxout函数
假设输入的特征向量为,Maxout隐藏层每个神经元的计算公式如下:
W是3维的,d表示输入层节点数,m表示隐含层节点数,k表示每个隐含层节点对应了k个"隐隐含层"节点,b是一个大小为(m,k)的二维矩阵,这是我们需要学习的参数。这个公式就是Maxout隐藏层神经元i的计算 公式。k就是maxout层需要的参数。像dropout一样,也有参数p(每个神经元dropout的概率)。如果我们设定参数k=1,那么这个时候,网络就类似于以前我们所学普通的MLP网络。我们可以这么理解,本来传统的MLP算法在第i层到第i+1层,参数只有一组,然而现在我们不怎么干了,我们在这一层同时训练n组参数,然后选择激活值最大的作为下一层神经元的激活值。模型参考一张图片:
假设我们网络第i层有2个神经元x1、x2,第i+1层的神经元个数为1个:
(1)以前MLP的方法。我们要计算第i+1层,那个神经元的激活值的时候,传统的MLP计算公式就是:
f是我们熟悉的激活函数,sigmoid,Relu,Tanh等。
(2)Maxout 的方法。如果我们设置maxout的参数k=5,maxout层就如上图中所示,相当于在每个输出神经元前面又多了一层“隐隐含层”。这一层有5个神经元,此时maxout网络的输出计算公式为:
,,...,,
所以这就是为什么采用maxout的时候,参数个数成k倍增加的原因。本来我们只需要一组参数就够了,采用maxout后,就需要有k组参数。
maxout的拟合能力是非常强的,它可以拟合任意的的凸函数。最直观的解释就是任意的凸函数都可以由分段线性函数以任意精度拟合(学过高等数学应该能明白),而maxout又是取k个隐隐含层节点的最大值,这些”隐隐含层"节点也是线性的,所以在不同的取值范围下,最大值也可以看做是分段线性的(分段的个数与k值有关)。论文中的图1如下(它表达的意思就是可以拟合任意凸函数,当然也包括了ReLU了):
作者从数学的角度上也证明了这个结论,即只需2个maxout节点就可以拟合任意的凸函数了(相减),前提是”隐隐含层”节点的个数可以任意多,如下图所示:
深度学习maxout单元相关推荐
- 春花送远香——深度学习之单元设计
基于对深度学习概念.内涵以及本质的解读,提出如何将深度学习更好地实施到教学活动当中,是实现思维型教学的本质. 朱教授 4月14日晚7点---9点,我校教研员.教研组长及骨干教师们在教务处的带领下,聆听 ...
- 深度学习——GRU单元
GRU单元(Gated Recurrent Unit) 带有神经网络的梯度消失 Q:为什么引入GRU单元? A:其实,基本的 RNN 算法还有一个很大的问题,就是梯度消失的问题.现在我们举个语言模型的 ...
- 深度学习常见问题整理
问题列表 如何设置网络的初始值?* 梯度爆炸的解决办法*** 神经网络(MLP)的万能近似定理* 神经网络中,深度与宽度的关系,及其表示能力的差异** 在深度神经网络中,引入了隐藏层(非线性单元),放 ...
- 深度学习:神经网络中的激活函数
http://blog.csdn.net/pipisorry/article/details/71157037 激活函数 神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数, ...
- 深度学习入门及深度学习学习路线
最近一段老师逼着搞论文,都没啥时间刷题和更新博客了.前段时间无意间看到一些深度学习方面的资料,个人觉得写的实在是太精彩了,必须得推荐给他大家.目前只更新了7篇博客,里面包含了原理(即数学推导)和实践( ...
- 花书+吴恩达深度学习(二)非线性激活函数(ReLU, maxout, sigmoid, tanh)
目录 0. 前言 1. ReLU 整流线性单元 2. 绝对值整流线性单元 3. 渗漏整流线性单元 4. 参数化整流线性单元 5. maxout 单元 6. logistic sigmoid 单元 7. ...
- 深度学习(二十三)Maxout网络学习-ICML 2013
Maxout网络学习 原文地址:http://blog.csdn.net/hjimce/article/details/50414467 作者:hjimce 一.相关理论 本篇博文主要讲解2013年, ...
- 零基础入门深度学习 | 第二章:线性单元和梯度下降
北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作 ...
- 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU
目录 0. 前言 1. 长短期记忆 LSTM 2. 门控循环单元 GRU 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十五)序列模型之循环神经网络 ...
最新文章
- 3星|《数据思维:从数据分析到商业价值》:有趣的数据分析案例
- Docker(三):镜像导入与导出、保存与加载、在Docker容器中安装软件
- python中*args和**args的不同
- 西电开源社区Ubuntu 10.04软件源
- git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
- 华为云TaurusDB性能挑战赛-java赛题mvn编译时报错:不支持 diamond 运算符
- 网络聊天室的技术与发展
- 带你深挖Java泛型类型擦除以及类型擦除带来的问题
- 有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代
- 优质城市宣传片方案怎样写?
- W3Cschool凯撒(Caesar cipher)位移密码算法,通俗易懂,已知最佳,不服来战!
- matlab 判断 正态分布,用MATLAB判断一组数据是否符合正态分布
- Java实现压缩图片
- 反击!紫光集团怒斥赵伟国
- MAC macOS更新后git无法使用
- 魅族手机TOF摄像头搭载奥比中光解决方案,看看到底有哪些功能?
- Javascript实现数字转中文大写
- 一些应急响应教学视频笔记
- 如何区分寒咳嗽和热咳嗽
- [Android踩坑]解决百度定位无法自动定位的问题
热门文章
- 简单理解Tomasulo算法与重加载缓冲区
- 北京邮电大学c语言按要求输出_C语言经典100例004-统计各个年龄阶段的人数
- 计算机有什么知识,计算机基础知识有什么
- 使用HTML5 details,summary实现,展开,下拉,树的效果
- windows开启smnp服务
- 【PC端vue ui框架学习】vue项目如何使用基于vue的UI框架Element
- 无法访问‘/dev/ttyUSB: usb 基站,即显示端口被占用
- 三维建模:方法之CSG与B-Rep比较
- windows下看端口占用
- CentOS7 编译 Gradle