dropout正则化

除了 L2L_2 正则化外,还有一种常用的正则化方法 — dropout (随机失活)

dropout 通过遍历网络的每一层, 并设置消除节点的概率来实现正则化.

最常用的是 inverted dropout(反向随机失活) 来实施 dropout

下面以三层神经网络为例:


在这里插入图片描述 -w10

Illustrate with layer=3:Illustrate \ with \ layer=3:

keep_prob = 0.8 # keep probability = 0.8

# 生成一个标准正态分布的随机数矩阵(此处是一个向量),和 keep_prob 进行比较,返回布尔值
d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep_prob

a3 = np.multiply(a3, d3) # python自动把 True 和 False 翻译为为 1 和 0
a3 /= keep_prob #  确保 a3 期望值不变, inverted dropout 精髓

注意: 测试阶段不适用 dropout

posted @ 2019-09-16 09:08  larkii  阅读(324)  评论(0编辑  收藏  举报