机器学习优化问题

误差

误差:方差 , 偏差  和  噪声之和

偏差(bias):描述的是偏离正确值的程度。高偏差指的是: 训练集损失值 和 交叉验证集 损失值都很大,欠拟合。

方差(variance): 描述的是预测值的波动情况。高方差指的是:训练集损失值很小,但是交叉验证集 损失值很大,过拟合。

噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界。

高方差(过拟合)的优化方法:

1. 获取更多的训练样本

2. 尝试减少特征的数量

3. 尝试增加正则化程度lamda

高偏差(欠拟合)的优化方法:

1. 尝试获取更多的特征

2. 尝试增加多项式特征

3. 尝试减少正则化程度lamda

 

归一化(Normalization)

用以解决 梯度消失/爆炸 的问题。

vanishing/exploding gradients have been largely addressed by normalized initialization and intermediate normalization layers.

归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据(特别大或特别小的样本数据)导致的不良影响。

归一化工具:scikit-learn 包,里面有很多可选的归一化方法

# Xtrain 是numpy数组
from sklearn.preprocessing import StandardScaler
Xtrain = StandardScaler.transform(Xtrain)
    
from sklearn.preprocessing import Normalizer
Xtrain = Normalizer.transform(Xtrain)

正则化(Regularization)

Regularization:减小方差(防止过拟合)的策略。

实现方法

1. pytorch中,在SGD, Adam等优化器中有L2正则项-weight decay(权值衰减)参数

2. paddlepaddle中,在SGD, Adam等优化器中有 regularization 参数

3. tensorflow中,

正则化效果图

Dropout

(一般方法中设置值为[0.5, 0.8])

dropout效果图

 

动量(Momentum),应用与SGD中。

动量加快代价函数快速收敛,提升收敛速度。

一般取值为:0.5, 0.9, 0.99。 和学习率一样,Momentum也会随着时间不断调整,一开始是一个较小的值,后来慢慢变大。

Momentum 对步长的 影响为:(learning_rate*grad) / (1- Momentum)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值