博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PRML读书笔记(一)第一章:多项式曲线拟合
阅读量:6209 次
发布时间:2019-06-21

本文共 1210 字,大约阅读时间需要 4 分钟。

知识要点:

1、通过多项式曲线拟合引出线性模型;

2、介绍多项式的阶数与模型复杂度的关系;

3、什么是过拟合、欠拟合;

4、解决过拟合、欠拟合的方法;

5、最小化误差平方和可以使用最大似然估计解释,并且过拟合问题是最大似然估计的一个必然结果。

读书笔记:

上图中N=10个蓝色样本点是函数sin(2*pi*x)加上一个随机噪声生成的样本点,曲线拟合的目标是在给定的10点的基础上,找出目标函数sin(2*pi*x),并且对给定一个新的输入x,预测对应的输出y。

使用如下(1-1)多项式函数来拟合样本点。

 

其中M是多项式的阶数(order),xj表示x的j次幂。多项式系数w0,w1,...,wM整体记作向量w。多项式函数y(x,w)是关于x的非线性函数,但是它是关于参数w线性的。类似这种关于未知参数的线性函数,称为线性模型。

定义误差平方和为损失函数:

目标是最小化(1.2)损失函数。该目标函数是关于w的二次函数,存在使得目标函数取得最小值的解w*

其中多项式中的M是需要选择的一个超参数,它控制着模型的复杂度,M值过大,模型自由度越高,容易出现过拟合现象,相反M值过小则不能表达复杂的模型,最后建立的模型是欠拟合的。如下图表明了不同的M对样本点进行拟合的结果。

 

上图结果表明,M=1,2时对sin(2*pi*x)的拟合效果特别差,似乎当M=3的拟合效果是最好的,然后M=9的红色曲线虽然经过每一个样本点(10个样本点,w0,w1,..,w9十个自由度,一定可以经过所有样本点,根据范德蒙德行列式可以证明),但是范化能力差。

首先回到我们的目标:根据十个样本点,找出隐藏的函数sin(2*pi*x)后对新的样本数据进行预测。下面定量考查模型的范化能力与M的关系,假设我们有100个测试集数据用于模型范化能力的测试。定义均方根误差为:

其中N的样本个数,除以N是为了使得均方根误差和样本数量无关,开根是为了与目标变量t有相同的尺度。下图是不同M值在测试集上的均方根误差。

 

 上图结果表明,过小的M在训练集上的误差较大,这可以归因于对应的多项式函数相当不灵活,不能够反映出sin(2pix)的震荡,当M=3,4,5,6,7,8时建立的模型范化能力都可以,但是当m=9时虽然在训练集上的误差为0,但是在测试集上的误差很大。

  通过上图可知,对于简单的模型出现欠拟合问题,而过于复杂的模型则会出现过拟合现象,即模型被调节成与目标值的噪声想符号。

  在本例中的欠拟合问题比较容易解决,可以增加模型的复杂度解决欠拟合问题;而对于过拟合问题则比较难解决。解决办法有:1、增加训练集数据规模。2、添加正则项。

  方法一,增加训练集数据规模:如下图所示。

  方法二:在损失函数中添加正则项是解决过拟合问题的另一种方法,具体公式1.4所示。

 

转载于:https://www.cnblogs.com/ming-zi/p/7020052.html

你可能感兴趣的文章
tcl使用笔记
查看>>
退役前留帖
查看>>
二叉树的遍历
查看>>
C入门语言基础一[可移植性、涉及的三种文件、编程7个步骤、编译器、链接器]...
查看>>
Python3抓取 深圳房地产均价数据,通过真实数据为购置不动产做决策分析(一)...
查看>>
Rotating an array in place
查看>>
PL/SQL实现JAVA中的split()方法的小例子
查看>>
SOFARPC源码解析-搭建环境
查看>>
FreeBSd ports 安装软件
查看>>
Fast inverse square root
查看>>
FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly
查看>>
判断一个坐标点是否在不规则多边形内部的算法
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
不用Connectify,让win7分WiFi玩手机!
查看>>
[转]设置好ftp后用xftp连接提示无法打开,无法显示远程文件夹
查看>>
DIR - matlab函数
查看>>
Qt笔记-QAxContainer
查看>>
[Qt初级] 解决 中QMainWindow和QDockWidget添加布局失败问题
查看>>
设计模式:迭代器模式(Iterator Pattern)
查看>>
jQuery
查看>>