卖小孩的咖啡 2020-05-30
正则化的目的是为了防止过拟合,降低模型的复杂度。
正则化的打开方式:
在目标函数后面添加一个系数的“惩罚项”。
式中, 是一个常数, 为样本个数, 是一个超参数,用于控制正则化程度。
1、L1正则化:在目标函数后面加了所有特征系数的绝对值之和。L1正则化更适用于特征选择,每次更新过程中会减去或加上一个常数,容易产生特征系数为 0 的情况,因此会让特征变得稀疏。
2、L2正则化: 在目标函数后加上了所有特征系数的平方和。L2正则化更适用于防止模型过拟合,每次更新时对特征系数进行一个比例的缩放,这会让系数趋向变小而不会变为 0,因此L2正则化会让模型变得更简单,防止过拟合,而不会起到特征选择的作用。
3、dropout:每一次的迭代中都会随机删除,只训练剩下的节点,每次迭代删除的节点不一样,相当于每次迭代训练的都是不一样的网络。
设置一个超参数 keep_prob,比如将 keep_prob 设置为 0.7,那么就会随机30%的节点消失,消失这个动作其实很简单,只是将这一层的参数矩阵与根据 keep_prob 生成的 {0, 1} 矩阵做 逐点乘积,
https://www.jianshu.com/p/569efedf6985