一. 在机器学习(ML)中,正则化是什么?
• 正则化是一种解决机器学习中过拟合问题的方法。
• 过拟合的模型无法对测试数据做出良好的泛化估计。
• 当潜在的学习模型具有低偏差/高方差特征,或者当我们只有少量的数据时,所估计的模型容易发生过拟合。
• 正则化可以减少模型的方差。
二. 正则化的类型:
1. 修改损失函数:
• L2 正则化: 防止权重变得过大(由 L2 范数定义)。权重越大,模型越复杂,过拟合的可能性越高。
l o s s = e r r o r ( y , y ^ ) + λ ∑ j β j 2 where λ ≥ 0 , λ ∝ m o d e l _ b i a s , λ ∝ 1 m o d e l _ v a r i a n c e loss = error(y,\hat{y}) + \lambda\sum_{j}^{}\beta_j^2 \quad \text{where } \lambda \geq 0, \; \lambda \propto model\_bias, \; \lambda \propto \frac{1}{model\_variance} loss=error(y,y^)+λj∑βj2where λ≥0,λ∝model_bias,λ∝model_variance1
• L1 正则化: 防止权重变得过大(由 L1 范数定义)。权重越大,模型越复杂,过拟合的可能性越高。L1 正则化引入了权重的稀疏性。它迫使更多的权重变为零,而不是简单地减小所有权重的平均大小。
l o s s = e r r o r ( y , y ^ ) + λ ∑ j ∣ β j ∣ where λ ≥ 0 , λ ∝ m o d e l _ b i a s , λ ∝ 1 m o d e l _ v a r i a n c e loss = error(y,\hat{y}) + \lambda\sum_{j}^{}|\beta_j| \quad \text{where } \lambda \geq 0, \; \lambda \propto model\_bias, \; \lambda \propto \frac{1}{model\_variance} loss=error(y,y^)+λj∑∣βj∣where λ≥0,λ∝model_bias,λ∝model_variance1
• 熵: 用于输出概率的模型。迫使概率分布趋向于均匀分布。
l o s s = e r r o r ( p , p ^ ) − λ ∑ i n p ^ i l o g ( p ^ i ) where λ ≥ 0 , λ ∝ m o d e l _ b i a s , λ ∝ 1 m o d e l _ v a r i a n c e loss = error(p,\hat{p}) - \lambda\sum_{i}^{n}\hat{p}_ilog(\hat{p}_i) \quad \text{where } \lambda \geq 0, \; \lambda \propto model\_bias, \; \lambda \propto \frac{1}{model\_variance} loss=error(p,p^)−λi∑np^ilog(p^i)where λ≥0,λ∝model_bias,λ∝model_variance1
2. 修改数据采样:
• 数据增强: 通过随机裁剪、膨胀、旋转、添加少量噪声等方式从现有数据中创建更多数据。
• K-fold 交叉验证: 将数据分为 K 组。在 K-1 组上训练,在剩余的一组上进行测试。尝试所有 K 种可能的组合。
3. 改变训练方法:
• 注入噪声: 在学习权重时向其添加随机噪声。这促使模型对于权重的小幅变化相对不敏感,从而实现正则化。
• Dropout: 通常用于神经网络。根据一定的丢弃率随机丢弃连续层之间的连接,并在当前迭代中训练剩余的网络。在下一个迭代中,再随机丢弃另一组连接。
🚀 获取更多详细资料可点击链接进群领取,谢谢支持👇
点击免费领取更多资料