笔记 - 神经网络:参数初始化方式

服从均匀分布的初始化

  • random_uniform
    • 自定义区间的均匀分布
tf.random_uniform(shape = (n_input, n_output), 
					minval=start, maxval=end, dtype=tf.float32)
  • rand
    • [0,1)区间的均匀分布
# 10行一列
X = np.random.rand(10,1)
"""
 Create an array of the given shape and populate it with
 random samples from a uniform distribution
 over ``[0, 1)``.
"""

服从正态分布的初始化

  • random_normal
    • 生成正态分布随机数
    • 定义均值与方差,shape可以用 () 表示,也可以用 [] 表示
def random_normal(shape,
                  mean=0.0,
                  stddev=1.0,
                  dtype=dtypes.float32,
                  seed=None,
                  name=None):
------------------------------------------------------------------------
initial = tf.random_normal(shape=shape, stddev=stddev, dtype=tf.float32)


tf.Variable(initial, dtype=tf.float32, name=name_str)
  • truncated_normal
    • 产生截断正态分布随机数
    • 取值范围为 [ mean - 2 * stddev, mean + 2 * stddev ]
def truncated_normal(
    shape,
    mean=0.0,
    stddev=1.0,
    dtype=tf.float32,
    seed=None,
    name=None
)
--------------------------------------------------------------------------
initial = tf.truncated_normal(shape=shape, stddev=stddev, dtype=tf.float32)

  • randn
    • 均值为0方差为1的正态分布
# 10行一列
Y = np.random.randn(10,1)

Xavier均匀初始化

def xavier_init(n_input, n_output, constant=1):
    start = -constant * np.sqrt(6.0/(n_input + n_output))
    end = constant * np.sqrt(6.0/(n_input + n_output))
    return tf.random_uniform((n_input, n_output), minval=start, maxval=end, dtype=tf.float32)

正态分布 与 均匀分布有什么不同

  • 概率计算的方式不一样

不同初始化方式分别对训练结果有什么影响

均匀分布 与 正态分布

在这里插入图片描述
在这里插入图片描述

选择均匀分布的场景

  • 分类的训练集太大,使用均匀分布随机抽取样本
    • 如果使用正态分布,则会导致分类样本不均匀,比如学小猫的特征比较多,学小狗的特征比较少

------------------------------更新------------------------------

权重w 初始化方式

笔记 - 神经网络:参数初始化方式_第1张图片
究竟什么东西影响着不同随机方式带来的效果
笔记 - 神经网络:参数初始化方式_第2张图片
如何理解权重参数初始化不能近似于 0
笔记 - 神经网络:参数初始化方式_第3张图片
笔记 - 神经网络:参数初始化方式_第4张图片
笔记 - 神经网络:参数初始化方式_第5张图片
笔记 - 神经网络:参数初始化方式_第6张图片

  • 感觉稀疏初始化不太好

偏执bias 初始化方式

笔记 - 神经网络:参数初始化方式_第7张图片


总结

在这里插入图片描述


参考

神经网络之权重初始化方法

你可能感兴趣的:(AI,编程,模型训练)