机器学习数学基础(1)

博文以学习PRML为主,并尽力把其主要内容记录下来,希望大家多多指点。

多项式拟合

首先我们来看一个使用多项式拟合数据的例子,观测集由函数 sin(2πx) 产生, 为了是数据显得更接近真实,通常会对产生的数据加上随机扰动。这里提下,在真实情况下我们搜集到的数据都是有噪声的,所以使模型对观测数据拟合的过分精确反而会造成其泛化能力下降。
绿线是真实函数图像,蓝色小圆圈则是观测到的数据
我们的目标是从给定的有限个点拟合出一条曲线使之尽可能的接近图示真实曲线。
其中一个解决办法是使用多项式进行拟合:

y(x,w)=w0+w1x+w2x2++wMxM=j=0Mwjxj

注意该多项式函数 y(x,w) 是关于 w 的线性函数。有了基本的模型,我们只需要调节参数 w 使结果尽可能的接近观测数据,这一想法可以通过定义误差函数来表示:
E(w)=12n=1N{y(xn,w)tn}2

图示中的绿色垂直线表示拟合曲线与观测值之间的误差
观查表达式可以看出误差函数是关于 w 的二次函数,可以通过求导得到 w 的最优解记为 w ,最终拟合出的多项式函数由 y=(x,w) 给出。

那么该如何选择多项式的阶数 M 呢? 我们先通过一个图直观的理解下 M 与拟合出多项式效果的关系:
这里写图片描述
可以看出 M 实际 上在控制模型的复杂度,直观的来看,当 M=0,1 时,拟合出的曲线处于欠拟合状态,而当 M=9 时,拟合曲线又处于过拟合状态,这两者都使模型的泛化能力差,那么问题来了,我们如何定量的考察泛化能力与 M 的关系呢? 一个显见的方法是针对不同的 M 计算出对应的拟合函数 y=(x,w) ,然后比较训练集和测试集的误差大小,如果两者较为一致,则说明泛化能力较强。而由于训练集和测试集的数据规模不同,为了确保公平可以使用根均方误差度量:

ERMS=2E(w)/N

下图展示了不同大小的 M 的泛化能力的强弱。
这里写图片描述

为什么 M 越大泛化能力就越差呢? 而这里的理想函数原型 sin(2πx) 的幂级数展开也是包含了所有含 M 的项呀,注意这里不能忽略的一个事实是:更大的 M 使模型更尽力的拟合含有噪声的数据。一个实践的经验是当我们给定足够多的数据时,模型会显得不那么的过拟合:
这里写图片描述
因此我们得到一个粗浅的启发:训练集的数据规模不应低于模型参数的若干倍(5-10倍),但这样会有一个弊端,就是我们不得不根据训练集的规模调整参数的个数。
那么我们如何在有限数据集规模的前提下限制模型的复杂度呢? 一种常用的方法是给误差函数加上一个惩罚项:

E(w)=12n=1N{y(xn,w)tn}2+λ2w2

系数 λ 则控制着正则化项与误差的平方项之间的比重
这里写图片描述
可以看出,同是 M=9 的情况下,加入合适的正则化因子后,模型复杂度得到了很好的控制。类似的,我们可以通过比较模型在训练集和验证集上的表现来选择最优的 λ 值。
这里写图片描述

小结

上面的讨论简单给出了一种拟合模型:多项式模型,衡量误差的方法,选择最优参数 w 和最优模型复杂度 M λ 的方法。将给定的数据集划分为训练集和测试集,用训练集找到最优参数 w ,再通过测试集比较选取控制最优模型复杂度的参数 M λ, 但是有些情况下这种通过分割训练集的方法会造成浪费,更优的方案在后续会有探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值