当前位置: 首页 > news >正文

【PRML读书笔记-Chapter1-Introduction】1.1 Example:Polynomial Curve Fitting

image

书中给出了一个典型的曲线拟合的例子,给定一定量的x以及对应的t值,要你判断新的x对应的t值多少.

任务就是要我们去发现潜在的曲线方程:sin(2πx)

这时就需要概率论的帮忙,对于这种不确定给t赋何值的情况,它可以通过一种精确和量化的方式来提供一种框架,

而对于决策理论,为了根据适当的度量方式来获取最优的预测,它允许我们挖掘一种概率模型.


下面对于上面的例子展开讨论:

假设曲线的多项式方程为:image

系数怎么求?

通过把多项式去拟合训练数据,我们需要设定一个error function,通过最小化这个error functions,可以求的系数.

errorfunctions有很多种定义,书中给出一种:

image

(1/2是为了后面计算方便设定的)

image

当error functions为0时,说明最小,也就是说这个函数用在训练集中的所有数据点上都是准确的.在这里,如果这个error functions是一个二次函数的话,要最小化这个函数,也就是说这个函数具有唯一解.假设为w*(这是一个向量),那么最终的多项式就是y(x,w*).

多项式的幂M设为多少合适?

书中 以M=0,1,3,9来计算:

image

可以观察到,M=3时表现的最好.M=9的时候,过拟合了,显然不是我们想要的.

因此对于M的选择,我们可以采用其他一些量化的方法,采用100个数据点:

新的指标:image——均方根

我们可以发现,这里有除以N这一项,通过除以N,我们可以把100个数据点的数据和10个数据点的数据平等地对待.平方根确保Erms是在相同的规模内,单元内测量得到的.

对于不同的M,Erms被测的:

image

可以发现,对于M=9(w0,w1,…,w8,w9)的时候,对训练集的拟合度很高,但对于测试集的拟合度很差.

随着M的增大,多项式的幂不断增大,尽管多项式变得更灵活,但是它所带来的随机噪声也在随机增大;

其次,数据点的数量不能少于参数的数量.

利用最小二乘法来找出模型的参数是极大似然法的一个特例.过拟合可以理解为是极大似然估计法的一般属性.通过贝叶斯方法,可以避免过拟合问题(

避免过拟合问题

避免过拟合问题有一个常用的方法就是正则化,

对于正则化的理解,知乎上有一段:

-------------------------------------------------------正则化----------------------------------------------------------

正则化的目的:避免出现过拟合(over-fitting)
经验风险最小化 + 正则化项 = 结构风险最小化
经验风险最小化(ERM),是为了让拟合的误差足够小,即:对训练数据的预测误差很小。
但是,我们学习得到的模型,当然是希望对未知数据有很好的预测能力(泛化能力),这样才更有意义。
当拟合的误差足够小的时候,可能是模型参数较多,模型比较复杂,此时模型的泛化能力一般。于是,我们增加一个正则化项,它是一个正的常数乘以模型复杂度的函数,aJ(f),a>=0 用于调整ERM与模型复杂度的关系。
结构风险最小化(SRM),相当于是要求拟合的误差足够小,同时模型不要太复杂(正则化项的极小化),这样得到的模型具有较强的泛化能力。
可以去了解奥卡姆剃刀原理(Occam's razor),帮助你理解正则化,实际上是一个道理。

-------------------------------------------------------正则化----------------------------------------------------------

在从书中了解一下正则化的表达式:

image

其中,image

λ 用于控制最小二乘法和惩罚函数之间的关系.

还是刚才那个例子,看一下当M=9+正则化之后的曲线:

image

显然,通过正则化,更加接近sin(2πx).

总结:

       λ是用于有效地控制模型的复杂度,避免过拟合,在上例中,我们通过不断地尝多种不同的M和λ来确定他们的最优值.显然,这不是最好的方法,必须寻求一些更加复杂的方法.

转载于:https://www.cnblogs.com/XBWer/p/4517756.html

相关文章:

  • Cocos2D for iPhone的Mac版本程序创建
  • ASI 的 使用
  • 国内首款安全软件开源,金山卫士源码共享
  • 经典问题和算法
  • jquery中ajax的用法
  • Q3中国网游业观察:腾讯网易春风得意
  • adb安装和卸载apk的方式
  • Adobe Flash Player 10.2测试版发布 全新播放引擎
  • Bootstarp--全局CSS样式之表格
  • MyEclipse快捷键
  • TCP三次握手原理与SYN攻击
  • Flash和HTML5那点事:后者拿什么取代Flash?
  • 23种设计模式的C++实现
  • Flash game中关于碰撞检测之Rectangle篇
  • Android教程-Java基础1 变量和数据类型
  • __proto__ 和 prototype的关系
  • chrome扩展demo1-小时钟
  • Django 博客开发教程 16 - 统计文章阅读量
  • django开发-定时任务的使用
  • HashMap ConcurrentHashMap
  • javascript面向对象之创建对象
  • Vue 2.3、2.4 知识点小结
  • 回顾2016
  • 三分钟教你同步 Visual Studio Code 设置
  • 无服务器化是企业 IT 架构的未来吗?
  • 小程序开发中的那些坑
  • Prometheus VS InfluxDB
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 数据库巡检项
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (二)windows配置JDK环境
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (三)uboot源码分析
  • (推荐)叮当——中文语音对话机器人
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)认识微服务
  • .NET 表达式计算:Expression Evaluator
  • .net访问oracle数据库性能问题
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET学习教程二——.net基础定义+VS常用设置
  • .net知识和学习方法系列(二十一)CLR-枚举
  • [CISCN 2023 初赛]go_session
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [go] 迭代器模式
  • [HarmonyOS]第一课:从简单的页面开始
  • [hdu2196]Computer树的直径
  • [LeetCode 127] - 单词梯(Word Ladder)
  • [LWC小知识] 标准lightning-input-field怎么取得变更值(onchange)
  • [office] 在Excel2010中设定某些单元格数据不参与排序的方法介绍 #其他#知识分享#笔记
  • [openGL]在ubuntu20.06上搭建openGL环境
  • [Python设计模式] 第27章 正则表达式——解释器模式
  • [Quest ActiveRoles Management Shell for Active Directory] QADProxyAddress命令相关的bug。
  • [uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝
  • [VS2005 Tip] 自动生成Property。
  • [Winodows Phone 7控件详解]Map-2