机器学习与数据挖掘机器学习

3正则化方法

2018-10-14  本文已影响4人  Rooooooooong

1 Dropout问题

Dropout
思想:
  1. 删除隐藏层随机选取的一半的神经元
  2. 在剩余神经元基础上正向,反向更新w,b(mini-batch)
  3. 恢复之前删除的神经元,重新随机选择删除一半神经元,正向,反向更新w,b
  4. 重复此过程
  5. 恢复所有的神经元,将所有的权重减半

为什么Dropout可以降低过拟合
每次随机选择一部分的神经元训练,
(1)降低神经元对特征的依赖性,使得神经元组合起来效果更加鲁棒。
(2)压缩系数(类似于L2正则化)
(因为每个特征都有可能在下次迭代中被删除,所以模型不会给每个特征赋予过高的权重)
(3)keepout类似于L2正则化中的\lambda。但相反的是:keepout越小,则dropout越能防止过拟合。当keepout取1,相当于不采用dropout。

python实现

import numpy as np
import pandas as pd
import scipy
a_i = np.random.chisquare(12,10)
keep_ratio = 0.5
d_i = np.random.rand(10)
d_i = d_i < keep_ratio
a_i = np.multiply(a_i,d_i)
a_i /= keep_ratio
print(a_i)
>>>[29.16678503  0.         42.79623661  0.          0.          0.
  0.         12.74798392  0.         30.05003551]

2 L1,L2正则

L1,L2正则可以解决过拟合问题,另外,L1正则可以使得解具有稀疏性。

3 如何权衡偏差和方差

一个可能的解决方案是:做一个过拟合程度和错误率曲线图,选择拐点。

上一篇下一篇

猜你喜欢

热点阅读