【机器猫说机器学习】如何避免机器学习中的过拟合-FISTA

举报
hulu可爱多 发表于 2020/11/28 11:51:07 2020/11/28
【摘要】 为什么叫【机器猫说机器学习】呢?机器猫最强大的功能就是变换各种神奇的东西,而机器学习里,最常用的理论就是线性变换。刚接触机器学习的时候,就和看机器猫漫画书一样,神奇又实用。这是一个新系列,和【CV炼丹炉系列】不一样,这里的算法都有严格的数学推导,可解释,介绍机器学习底层算法,偏向统计、概率、优化。

【什么是过拟合】

Ref: 维基百科-过拟合

【要解决什么问题】

首先看看这是一个什么问题?

o_1ehadbvlhsp215rg1ctkj711n220.png

其中y和A是已知的,b是噪声,目的是求x。m是样本量,n是特征维度。通常的做法是设计一个目标函数square loss,使这个目标函数最小化。当前,我们可以设计不同的loss函数,loss如果是square loss,那就是最小二乘;如果是hinge loss,那就是svm;如果是exp-loss,那就是boosting;如果是log-loss,那就是logistic regression;不同的loss函数,具有不同的拟合特性。

捕获.PNG

用square loss举个栗子,当m=n,并且A是非奇异的时候,方程是有解的。但是更多情况,是m<n 或者m=n 但是rank(A)<n,这种情况下,A就是ill-conditioned,方程往往有无穷解或者无解,失去了生活的意义。

【怎么解决呢】

我们的目标是求解x,而且x是稀疏的,那为什么不利用这个条件呢?最easy的方法,在loss后面加一个正则化项。正则化项可以是2范数,也可以是1范数,甚至可以是q范数(0<q<1)。[知识点] 当q<1,就能得到稀疏解,q越小效果越好;当0<q<0.5,得到的稀疏解效果差不多;所以,q=0.5可以得到比q=1更好的稀疏解,具体可以去查下西交徐宗本院士的工作。这里我们仅介绍L1的情况。

通俗的说,loss函数目的是在训练集上最小化empirical risk error,但是当我们学习一个model,希望具备良好的泛化性能。因此,增加一个正则化项,用来平衡模型的structural risk 和 exmpirical risk。

【ISTA和FISTA】

ok, 回顾下我们要解决的是什么问题:

捕获.PNG

要解决这个问题,我们先要了解下什么是 soft thresholding:

其中S是问题P的最优解。博客写公式真的很麻烦,证明过程请参考下图:

好,现在的问题是,如何把L1正则化问题写成soft thresholding function:

求解的迭代过程可以写成:xk = soft(x k-1)

FISTA和ISTA的不同在于每次迭代中,approximate function的starting point不一样

上式具体的推导过程,请参考Appendix2

这样,我们就求解得到了稀疏解。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。