博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度学习中为什么要使用零均值化(zero-mean)处理
阅读量:3904 次
发布时间:2019-05-23

本文共 507 字,大约阅读时间需要 1 分钟。

深度学习中为什么要使用零均值化(zero-mean)处理

    在深度学习中,一般我们会把喂给网络模型的训练图片进行预处理,使用最多的方法就是零均值化(zero-mean) / 中心化,即让所有训练图片中每个位置的像素均值为0,使得像素值范围变为[-128,127],以0为中心。
这样做的优点是为了
在反向传播中加快网络中每一层权重参数的收敛

原因

    常用的激活函数(例如ReLu或者Sigmoid)输出和导数都是大于等于0的。如果神经网络输入样本被预处理在0-1之间,如果没有batchnorm,那么经过激活函数后,每一层结构的输入和输出都大于等于零,那么该层权重的各维的梯度也一定是同符号的,就导致梯度下降的方向只能在第一或者第三象限

因此,如果局部极小相较初始值位于第二或者第四象限,梯度下降只能以ZigZag的方式靠近极小值,收敛速度就会非常的慢。如下图:
在这里插入图片描述
    不过因为有了batchnorm之后,或者用LeakyReLu这种激活函数,无论样本预处理为均值为0还是0-1之间,顶多影响第一层的收敛速度,所以差距不大。样本的方差更无所谓,毕竟只是相当于在第一层权重上乘以一个系数。

参考链接

转载地址:http://oloen.baihongyu.com/

你可能感兴趣的文章
转载)保护眼睛,把电脑窗口背景设置成绿颜色
查看>>
FireFox 的强大Web开发插件
查看>>
MIME相关
查看>>
WAP1.0与WAP2.0页面的DTD
查看>>
如何学好C++语言
查看>>
包的设计原则
查看>>
回顾时光 详解HTML的发展史
查看>>
用移动硬盘安装win7
查看>>
MinGW与Cygwin
查看>>
用WEB标准进行开发
查看>>
[译]关于Android图形系统的一些事实真相
查看>>
J2ME下的Zlib/Gzip/Zip压缩相关
查看>>
Android 模拟器中AVD路径的修改(WIN7)
查看>>
Cygwin 的安装配置
查看>>
Cygwin基本命令的使用方法
查看>>
Java本地接口(JNI)编程指南和规范(第二章)
查看>>
有关使用xsl输出csv格式文档的实践小结
查看>>
在Ubuntu 12.04 为 Eclipse 添加快速启动项
查看>>
GCC强大背后
查看>>
Android x86模拟器Intel Atom x86 System Image配置与使用方法
查看>>