深度学习基础(二):神经网络参数初始化、Batch size和Optimization

1.神经网络初始化

初识化神经网络权重 w w w

1.1固定方差

1)高斯分布

E = 0 E=0 E=0,参数分布符合 N ( 0 , σ 2 ) N(0,\sigma^2) N(0,σ2) σ \sigma σ过小会导致输出神经元过小,经过多层后会慢慢消失,也可能会造成sigmoid函数丢失非线性的能力。

2)均匀分布

1.2基于方差缩放

1)Xavier初始化(Glorot)

glorot_uniform,根据每层神经元数量调整参数方差。

self.gru = tf.keras.layers.GRU(self.dec_units,
                               return_sequences=True,
                               return_state=True,
                               recurrent_initializer='glorot_uniform')

2)He初始化

适合Relu激活函数的何恺明初始化

2.Batch size

1)Batch size是用于在每次迭代中训练模型的数据数量。一般的设置是32,64,128,256,512。
2)选择正确的Batch size对于确保cost function和参数值的收敛,以及模型的泛化能力。
3)Batch size决定更新的频率。Batch size越小,更新就越快。
4)Batch size越大,梯度越精确。也就是说,在迭代计算的时候更容易跳过局部区域。
5)比较大Batch size,往往GPU memory是不够用的,就需要通过并行计算的方式解决。

3.Optimization优化器

常用(Stochastic) Gradient Descent、Momentum、RMSprop和Adam

参考资料
[1]Initializing neural networks
[2]Parameter optimization in neural networks

你可能感兴趣的:(机器学习,#,深度学习基础,神经网络,深度学习,人工智能,tensorflow)