Dropout

2018-12-06 15:01:54

Dropout:临时的抹去随机的神经元及其进行的关联计算。如下图所示 :

Dropout的实现:Inverted Dropout

训练:假设每个神经元以keep_prop的概率被保留

A0 = X
A1 = np.dot(W1, A0) + b1  
A1 = relu(A1)
D1 = np.random.rand(A1.shape[0],A2.shape[1]) < keep_prop
A1 = np.multiply(A1,D1) 
A1 = A1 / keep_prop # 确保A1期望不变,这样测试阶段,没有dropout也没有影响
A2 = np.dot(W2, A1) + b2

预测:keep_prop设置为1,也就是不使用drop_out

Dropout理解:网络不能单一依赖某个特征或者说神经元,因为每个神经元都有概率被抹去,因此整个网络会将weights的权重进行平摊化处理,起到了和L2正则项同样的收束权值的功效。

原文地址:https://www.cnblogs.com/hyserendipity/p/10077120.html