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正则项同样的收束权值的功效。