bn

tf.layers.batch_normalization large test error

匿名 (未验证) 提交于 2019-12-03 01:27:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I'm trying to use batch normalization. I tried to use tf.layers.batch_normalization on a simple conv net for mnist. I get high accuracy for train step (>98%) but very low test accuracy ( my code # Input placeholders x = tf . placeholder ( tf . float32 , [ None , 784 ], name = 'x-input' ) y_ = tf . placeholder ( tf . float32 , [ None , 10 ], name = 'y-input' ) is_training = tf . placeholder ( tf . bool ) # inut layer input_layer = tf . reshape ( x , [- 1 , 28 , 28 , 1 ]) with tf . name_scope ( 'conv1' ): #Convlution #1 ([5,5] :

BN层学习

匿名 (未验证) 提交于 2019-12-03 00:18:01
u B = 1 m ∑ m i = 1 x i . . . ( 1 ) u B = 1 m ∑ i = 1 m x i . . . ( 1 ) σ 2 B = 1 m ∑ m i = 1 ( x i u B ) 2 . . . ( 2 ) σ B 2 = 1 m ∑ i = 1 m ( x i u B ) 2 . . . ( 2 ) x i = ( x i u B ) 2 σ 2 B + √ . . . ( 3 ) x i = ( x i u B ) 2 σ B 2 + . . . ( 3 ) y i = γ x i + β = B N γ β ( x i ) . . . ( 4 ) y i = γ x i + β = B N γ β ( x i ) . . . ( 4 ) γ γ 和偏移系数 β β ,从而使网络去学习输出的特征分布.在实际测试中,我们只输入一个测试样本时,此时没有mini batch这个概念了,其他参数如均值和标准差都是固定不变的,即测试时均值和标准差的公式为: E [ x ] = E B [ u B ] . . . ( 5 ) E [ x ] = E B [ u B ] . . . ( 5 ) V a r [ x ] = m m 1 E B [ σ 2 B ] . . . ( 6 ) V a r [ x ] = m m 1 E B [ σ B 2 ] . .

Batch Normalization

可紊 提交于 2019-12-01 23:30:59
转自 https://blog.csdn.net/qq_42823043/article/details/89765194 简介 Batch Normalization简称BN,是2015年提出的一种方法《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好。 原论文地址:https://arxiv.org/abs/1502.03167 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。而BN就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。 为什么深度神经网络随着网络深度加深,训练起来越困难,收敛越来越慢?这是个在DL领域很接近本质的好问题。很多论文都是解决这个问题的,比如ReLU激活函数,再比如ResNet等,BN本质上也是解释并从某个不同的角度来解决这个问题的。 一、Internal Covariate Shift 现象: 从论文名字可以看出,BN是用来解决“Internal Covariate Shift”问题的

【学习笔记】Devils in BatchNorm

喜夏-厌秋 提交于 2019-11-27 22:57:29
Devils in BatchNorm Facebook人工智能实验室研究工程师吴育昕 该视频主要讨论Batch Normalization的一些坑。 Batch Norm后还有一个channel-wise仿射,是一个退化的卷积层,这里不讨论。 Batch Norm的训练和测试具有不一致性,测试时vanilla BN方法是更新一个exponential moving average,也就是图中的 \(u_{EMA}\) 为什么可以训练和测试不一致? DropOut和Data Augmentation也是这样——可以理解为训练是在测试的基础上加噪声,测试是训练的平均。 不过噪声本身也是一种正则化。 BN什么时候会失败? 当 \(\mu_{EMA}\) , \(\sigma_{EMA}\) 不接近 \(\mu_{B}\) 时, \(\sigma_{B}\) 当EMA计算不合理 当$ \mu_{B} \(,\) \sigma_{B}$不稳定时 - 不能很好地近似 a)数据不稳定 b)不稳定的模型 EMA计算不合理的情况 \[\mu_{E M A} \leftarrow \lambda \mu_{E M A}+(1-\lambda) \mu_{B}, \sigma_{E M A}^{2} \leftarrow \cdots \] \(\lambda\) 过小,EMA \(\lambda\)

MobileNet V2深入理解

大城市里の小女人 提交于 2019-11-26 13:51:57
转载: https://zhuanlan.zhihu.com/p/33075914 MobileNet V2 论文初读 转载: https://blog.csdn.net/wfei101/article/details/79334659 网络模型压缩和优化:MobileNet V2网络结构理解 转载: https://zhuanlan.zhihu.com/p/50045821 mobilenetv1和mobilenetv2的区别 MobileNetV2: Inverted Residuals and Linear Bottlenecks:连接: https://128.84.21.199/pdf/1801.04381.pdf MobileNet v1 中使用的 Depthwise Separable Convolution是模型压缩的一个最为经典的策略,它是通过将跨通道的 卷积换成单通道的 卷积+跨通道的 卷积来达到此目的 的。 MobileNet V2主要的改进有两点 : 1、Linear Bottlenecks。因为ReLU的在通道数较少的Feature Map上有非常严重信息损失问题,所以 去掉了小维度输出层后面的非线性激活层ReLU,保留更多的特征信息 ,目的是为了保证模型的表达能力。 2、Inverted Residual block。该结构和传统residual