深度学习网络基础解析(二)

引言

前一篇文章我们提到了损失函数,并且我们谈到了一个很有意思的问题,即虽然通常来说我们进行迭代的目的是减小loss的值,但loss函数的值并不一定是越小越好。

损失与风险

损失函数就像上节我们所讲的一样,是表征模型输出值和期望值相近程度的函数,这个函数不只是深度学习,在整个机器学习领域都有应用,而通常来说我们会在模型里使用到均方误差来衡量这个值,就像下式:

但是我们可以看出来,这个函数仅仅只是衡量某一个样本的误差,当样本不止一个的时候(通常情况下皆是如此),我们就需要引入风险函数。风险函数可以认为是平均意义下的损失。有三个概念,一个是经验风险,一个是期望风险,还有一个是结构风险。

(1) 经验风险(Empirical Risk)

给定一个数据集,模型f(x)关于训练集的平均损失被称为经验风险,或者叫做经验损失。

其中N是样本数量。
这个公式的含义就是模型关于训练集的平均损失(每个样本的损失加起来,然后平均一下)。 而关于模型最优解的问题还有一个理论,就是经验风险最小的模型是最优的模型,即经验风险最小化(ERM)。因为在训练集上面的经验风险最小,也就是平均损失越小,意味着模型得到结果和“真实值”尽可能接近,表明模型越好。
经验风险最小化可以总结为:

(2) 期望风险(Expected Risk)

经验风险的问题在于只计算了训练集的损失,对于未知样本分布的损失束手无策,那么怎样才能计算出已知和未知样本的损失呢?自然是期望值,就像下式(其中 P(x,y) P ( x , y ) x,y x , y 的联合分布):

但是世间自无万全法,考虑到所有的因素就往往代表着想的太多——在实际情况中,我们很难能拿到 x,y x , y 的联合分布,所以使全局风险(在深度学习中就是训练集和测试集的总风险)最小化是空谈,因此我们只能用局部风险代替全局风险,经验风险代替期望风险,这也是我们在实际应用中让经验风险最小化的思想基础。

(3) 结构风险(Structural Risk)

虽然我们经常使用经验风险,但当样本容量不大的时候,经验风险最小化模型容易产生“过拟合”的问题。为了“减缓”过拟合问题,就提出了结构风险最小(SRM)的理论。
结构风险的定义也很简单,就是在经验风险上加上一个正则化项(regularizer)或者叫做罚项(penalty term),即

其中 λ λ 是一个大于 0 的常数。而这个 J(f) J ( f ) 是模型的复杂度,这个名字乍一听很莫名其妙,但其实模型的复杂程度的确会影响到模型最后是否会过拟合,因此加上这个罚项是基于一个比式子本身更加简单的考量——在尽可能减少经验风险的同时,也同时尽可能减少发生过拟合的可能性。

模型的拟合

上面我们提到了一个新名词“过拟合”,这在机器学习中是个很重要的概念,而且它常与“欠拟合”这个词成对出现。不过,在讲他们之前,我们要先了解下面两个词。

(1) 拟合与泛化

所谓拟合,在统计学中是指某一函数逼近目标函数的远近程度。这个术语在机器学习中,是指模型的输出分布逼近我们期望的未知的潜在分布的远近,而量化描述这种远近的函数就是上节提到的损失函数,当损失函数的值较小时,我们称之为模型拟合较好,反之我们称为模型拟合不好。

所谓泛化是指对于已知分布拟合较好的规律(或者模型),对于未知的分布同样有较好拟合的能力,在机器学习,尤其是有监督的机器学习中(至于有监督的概念我的另一篇文章会仔细讲解),通常特指一个模型在训练集上拟合较好后,在测试集上也能较好拟合。好的机器学习模型的目标就是从问题领域内的训练数据到任意的数据上泛化性能良好。这让我们的模型可以在未来没有见过的数据上进行预测。

但是并不是一个模型在训练集上拟合优异,就一定能在测试集上拟合较好,通常会出现问题的原因有两种:过拟合、欠拟合(其实还有第三种叫做“网络退化”,但是这个问题比较复杂,而我在《深度神经网络优化策略之——残差学习》也提到过)。

(2) 欠拟合与过拟合

其实欠拟合和过拟合是一个很简单的问题,简单到你只要会看图就能理解,所以在这一节我并不打算用数学术语或者公式,你只要跟随我的节奏就好啦。

首先,我们要看懂上面这幅图的含义:图片的上半部分描述了模型的任务是用一条曲线尽可能分开红蓝两种颜色的点,而且不仅是在训练数据上,在测试数据上也要能完成,并且对比上下三组图片,我们能看出来训练集和测试集的数据分布有一定差异。

第一组图片(img1和img4)展现的是欠拟合情况,此刻的分类曲线为简单的一次直线,无论从视觉效果上还是损失率的数值上,都能明显发现这种模型在训练集和测试集上都拟合较差。

第三组图片(img3和img6)展现的是过拟合情况,此刻的分类曲线是一种极度复杂的曲线,在训练集上,该模型展现出了惊人的百分之百的拟合能力,但在测试集上,该模型的正确率却只比欠拟合情况稍好一点点,与训练集产生了鲜明对比。

第二组图片则是该问题的最优模型及最优拟合情况,分类的曲线是一种较为复杂的二次曲线,而最终的结果是训练集正确率稍低于过拟合情况,但是测试集正确率却最高,这也达到了我们让模型“学习”的目的。

图片的下半部分则是着重表现了我刚刚所描述的趋势:随着模型的复杂度增大,模型的训练集和测试集正确率都会稳步下降,但在在经过中间某处的阈值后训练集正确率依旧下降,测试集正确率却突然上升,直到两者产生无法令人忽视的差异。

造成这种情况的直接原因图上也有标注,就是欠拟合的模型有低方差(low variance)和高偏差(high bias),过拟合的模型有高方差和低偏差,而方差可以简单认为是决定模型灵活度的因素,偏差则是直接影响模型能否拟合的因素。至于出现这种问题的深层次原因则是在有监督的机器学习中,训练集和测试集总是默认的有着相似之处(虽然听着挺玄妙,但这却是一个简单的道理,因为不会有人拿着标注人的数据集训练模型之后,却希望模型能识别出猫狗),可以理解为测试集的分布只是在训练集的分布基础上做了平移,所以在训练集上都拟合不好的模型,自然不能拟合测试集,这便是欠拟合;而过分追求于拟合训练集分布的模型自然会在“平移”过位置的测试集上跌跟头,这便是过拟合;而能抓住测试集和训练集共同的分布部分的模型才是我们真正想要的模型,即是最优解。

下一章我们则会从解决模型过拟合问题上扩展,讲解一些新的有趣的概念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值