NLP学习笔记22-逻辑回归3:模型复杂度、过拟合、交叉验证

本文探讨了在数据线性可分时,逻辑回归模型参数为何趋向无穷大导致过拟合的问题。通过引入L1和L2正则化项,尤其是L1正则化带来的稀疏性,可以有效地避免过拟合,选择重要的特征。正则化的目的是限制模型复杂度,提高泛化能力。同时,介绍了超参数的选择,如λ的确定,以及交叉验证在选择最佳超参数中的作用。
摘要由CSDN通过智能技术生成

一 序

  本文属于贪心NLP训练营学习笔记,接着上一篇 NLP学习笔记21-逻辑回归2:决策边界,目标函数,凸函数,梯度下降

二 当数据是线性可分

When Data is Linearly Separable,上节课老师留的问题

  考虑以下情况,当数据是线性可分的时候,参数w为什么会趋向无穷大?以二分类为例。

这样的两堆点,可能有很多条线能区分,在线性回归的情况下哪条线能更好。

 

p(y=1|x,w)=\frac{1}{ 1+e^-(w^Tx+b)},对于逻辑回归来说,就是期望概率越大越好。

对于正样本趋向于1,负样本趋向于0.

对于p(y=1)当w趋向无穷大的时候,e^-(w^Tx+b)趋向于0,分母趋向于1,整体概率趋向于1

同理p(y=0)当w趋向无穷大的时候,分子趋向于0,整体概率趋向0.

所以,上面呢三条绿线里面,会选择垂直的线,特征是W非常大。(这种现象称为过拟合现象)

为了解决这个问题。让w更加合理,通常加上正则项,使得w不能变大。

Adding a Term-L2 Norm

解决的问题:避免W太大。   

\hat{w}_{MLE}, \hat{b}_{MLE}=argmax_{w,b}\prod_{i=1}^{N}p(y_i|x_i,w,b)+\lambda ||w||^2

\hat{w}_{MLE},\hat{b}_{MLE}=-argmin_{w,b}\prod_{i=1}^{N} p(y_i|x_i,w,b)+\lambda||w||^2_2

这个式子前面是目标函数,后面\lambda ||w||^2 是正则项。

其中\bg_white w=(w_1,w_2,...,w_d )^T, ||w||^2_2=w_1^2+w_2^2+...+w_d^2

 

λ 也叫超参数,起到了平衡做用(通常会选择交叉验证的方式选择)。

下面看加入正则项之后,对于梯度下降法的影响:只是加了2\lambda w

三 模型复杂度和过拟合

之前说的过拟合与模型的复杂度有关,接下来学习模型复杂度与要素的关系

  (1)模型复杂度

下面截图的点都是训练数据

模型训练数据表现好,应用在场景不好,就是过拟合的问题。这里模型非常重要的泛化能力。

模型的价值在于对未来数据的预测。

通常来说:复杂的模型准确率高,凡是泛化能力差。简单模型准确率比较低,但是泛化能力强。这需要做平衡。

过拟合--》泛化--》模型复杂度  三者相互影响

2模型复杂度影响因素

  •   模型本身的选择 :简单的模型--》简单的环境。复杂的模型---》复杂的环境
  •  模型的参数个数
  • 模型的参数空间选择
  • 模型拟合过少的样本

3 避免过拟合

1 模型本身的选择--》选择简单的模型

2 模型的参数个数:减少参数的个数

3.模型的参数空间选择:就是上面截图的,正则作用就是控制参数的范围,过滤掉复杂的参数。

4模型拟合过少的样本:获取更多样本。

接下来,重点看下第3点:模型的参数空间选择

上面讲过为了避免w很大,加了L2-norm 正则,(也叫范式)常用的还有:L0-norm、L1-norm、

L1-norm  :||w||_1=w_1+w_2+...+w_d=\sum_{i=1}^{d}|w_i|

L1-norm 可以让很多参数=0,就是能解决数据稀疏性的问题。

L0-norm:不太常用。

除此之外,还有核范数 Nuclear Norm (矩阵奇异值的和,用于约束矩阵的低秩low rank)。

 Nuclear Norm 可以过滤掉矩阵秩比较大的(如》50),还有其他的norm。

L1-norm:\hat{w}_{MLE},\hat{b}_{MLE}=-argmin_{w,b}\prod_{i=1}^{N} p(y_i|x_i,w,b)+\lambda||w||_1

L1-norm 跟L2-norm 共同点: 就会使得w变小。不同点,L1-norm会把L2-norm  里面非常小的\theta变成0.

L1-norm 可以用来做一些选择性问题,不重要的变量可以过滤掉(0对应的变量就不重要)。

从几何上理解L1-norm,L2-norm 的区别:L1是菱形的等高线,L2是圆。f(\theta )是圆

L1与参数函数相交点倾向于x=0的y轴上,而L2则相交于点在x<>0的点上。

当有些时候我们需要过滤掉参数中不起作用的,就要用L1。老师举例:大脑神经元的例子,筛选出一小部分。

L2的特点是W更小。还可以把L1和L2一起用。老师推荐看论文:

假设f(\theta ) 是线性回归。假设有几十个参数,这些参数里面有θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3θ1​,θ2​,θ3​三个参数是有很强的相关性的,那么我们在做特征工程的时候就要考虑只选择其中一个,L1正则项可以帮忙做到这一点,但是它只会随机的挑一个,不会去选那个最好的。如果结合上L2,那么就可以实现挑选出最好那个。

超参数的选择(交叉验证)

关于超参数可以这样理解,就是在模型之外的参数。

测试数据:不能用来训练,只是为了评估。选择在验证数据里最好的超参数组合。

为了选择\lambda,取不同的值,然后做以下循环,分别在下图中的绿色部分进行训练,然后在蓝色部分进行验证,然后求平均(这里是除以5),看λ 取哪个值最好。

整个过程:绝对不能用测试数据来引导(guide)模型的训练,否则就是作弊。

参数搜索策略:

一个超参数,例如逻辑回归中的λ ,我们先要给定一个候选值,再用上面交叉验证的方法来进行筛选。本节介绍这个值怎么选?

grid search:网格搜索(最笨最有效)

 按照固定区间去进行设置候选值。举例是要求(\lambda _1,\lambda _2)组合的最佳。

优点: 可以并发 

缺点:计算量大

随机搜索(Random Search):随机找

遗传算法(Genetic/Evolutionary Algorithm):

贝叶斯优化(Bayesian Optimization):

这些内容老师没有展开讲。需要自行查资料学习补充。

总结

·好的模型拥有高的泛化能力
·越复杂的模型越容易过拟合
·添加正则项是防止过拟合的一种手段
·L1正则会带来稀疏特性
·选择超参数时使用交叉验证
·参数搜索过程最耗费资源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值