ReLU函数进行Batch Normalization意义分析
2017-08-25 00:27
267 查看
我们都知道,正则化是一种防止训练参数过拟合的一种极为有效的方式。激活函数的主要作用是提升圣经网络的非线性性。之前常用的激活函数,如Sigmoid, tanh函数,由于其饱和区的接近于0,因此需要将其进行正则化,转换为正态分布,将数据大部分规范到线性范围之内,然后通过两个额外的线性转换参数来进行微调,从而避免后续梯度消失问题的产生。
那么就有一个问题了,ReLU这一函数并没有上界,也就是其导数不存在趋近于0的情况,那么为什么在进行图像处理相关的神经网络的时候还是需要将其进行正则化呢?
这是因为,我们前面的讨论过程中,忽略了一个很重要的问题,那就是输入变量的分布。理论上而言,如果输入的数据是不同分布的,那么相当于我们的神经网络还要针对这种不同分布去提升网络参数的适应性,从而使得网络变得难以训练。实践表明,将输入数据规范化为正态分布确实有利于提升网络的整体效果。因此在ReLU函数之后接上了一个Batch Normalization层。
那么就有一个问题了,ReLU这一函数并没有上界,也就是其导数不存在趋近于0的情况,那么为什么在进行图像处理相关的神经网络的时候还是需要将其进行正则化呢?
这是因为,我们前面的讨论过程中,忽略了一个很重要的问题,那就是输入变量的分布。理论上而言,如果输入的数据是不同分布的,那么相当于我们的神经网络还要针对这种不同分布去提升网络参数的适应性,从而使得网络变得难以训练。实践表明,将输入数据规范化为正态分布确实有利于提升网络的整体效果。因此在ReLU函数之后接上了一个Batch Normalization层。
相关文章推荐
- 如何进行UML需求分析及其意义解析
- 在某种意义上说,数据分析应该是个杂家
- 读书笔记:利用Python进行数据分析【第一章:准备工作】
- 实验-使用VisualVM或JConsole进行对程序进行性能分析
- Objective-C内存管理:从源码进行分析(二)
- 值得一看:利用对标帮助客户进行GAP分析,找到业务发展方向!
- Android中使用tcpdump、wireshark进行抓包并分析技术介绍
- 使用Linux top命令进行性能分析
- 利用matlab怎样进行频谱分析
- Flume源码分析—利用Eclipse对Flume源码进行远程调试分析环境搭建(一)
- 利用Pandas进行数据分析(1)——pandas数据结构
- R包 randomForest 进行随机森林分析
- STM32--对原子哥USART实验中printf重定向进行分析
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- 对110W知乎用户信息进行分析,使用echarts+servlet+jsp可视化展示
- 使用UMDH进行内心泄露分析
- TPLINK进行不同mac拨号结果分析-任意输入一个mac地址.jpg
- 【纯技术帖】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?
- 编制三个程序,分别调用三个版本的swap交换函数,观察结果,并对结果进行分析。
- 爬取某在线恶意软件仓库病毒文件进行分析