台湾大学机器学习基石Lecture9
来源:互联网 发布:mac mini 固态 编辑:程序博客网 时间:2024/05/22 03:17
9-1:Linear Regress Problem
线性回归问题
再次谈到第二章发银行信用卡的问题,给你
线性回归的假设公式如下:
线性回归问题图形化描述:
左边的图片是在一维中找寻一条直线,右边的图片是在二维中找到一个平面,依次类推…线性回归问题就是找到一条线/一个平面/一个超平面来拟合数据,使这条线/这个平面/这个超平面与已知的数据点之间的总剩余误差(residual)最小,从而进行预测。其中residual(剩余误差)就如图中所示的红线,代表各个点和分离的线或面的距离(即方程计算得到
那么我们首先要对这个误差进行衡量,常用的误差衡量方式也就是Squared error(平方误差),这里要区分一下最小二乘。如下式所示:
那么对应的利用Squared error得到
因为h和w总是一 一对应的关系,那么将从现在开始用w替换h,也就是上面的
VC限制对回归问题同样适用,那么接下来的问题就是如何最小化
9-2:Linear Regress Algorithm
线性回归算法
针对上一节得到的
其中x是
现在我们的目标就变成了:
这个函数的长相类似于二次函数,如下图所示:
从图中可以看出,它是光滑的、可微分的、连续的,最重要对的一点是它是凸函数(convex)(这里好像和大学我自己学的凸函数的定义完全反了,大学是上凸下凹,这边是上凹下凸,就好好记住吧!),对于凸函数,那么它的最小化所得到的w就是图中最低点(黑点),如何求这个最低点呢?
如何计算w,我们可以利用偏导数为0来计算w,为什么呢?例如一个小球放在山上,偏导数不为0相当于小球不是在最低点的时候,那么小球肯定还可以向其他方向滚,什么时候小球不滚了呢,那就是到达最低点,也就是山谷,所以我们的目标就是寻找偏导数为0的点。
偏导数的定义矩阵如下所示:
下面对
这个式子求偏导数可能一下子看不出来,我们考虑一个简单的式子:
假设
那么它的偏导数
用这个套路,算上面的偏导数,令
令
(xTx) 可逆:令Ein(w)=0 ,即(xTxw−xTy)=0 ,稍微变换一下得到w=(xTx)−1xTy ,并且令x+=(xTx)−1xT 称为矩阵x的伪逆。(xTx) 不可逆:那么存在不止一组解,用其他的方式求出伪逆x+ ,选择其中一个进行w=x+y 求解y就可以了。
总结下线性回归的求解步骤:
1. 通过数据集D构建输入矩阵X和输出矩阵y,它们对应的维度分别如下图所示。
2. 利用
3. 返回
9-3:Generalization issue
泛化问题
现在有一个问题就是上一节求解出来的最优解过程有没有在学习,也就是是不是机器学习算法,因为上一节用的是解析解的形式,不像PLA,一步一步迭代求出的
对于泛化问题,即
首次给出
其中noise level表示数据D中存在的噪声数据,(d+1)是参数个数,N是样本总数。
接下来证明为什么求出的
上一节中我们得到了如下式子:
我们把
光从式子我们很难得到结论,我们考虑以下矩阵H的物理意义,如下图所示:
因为
对应的,若考虑(
和上面图片不同的地方在于加了noise(noise不在平面上的原因,个人认为是如果在平面上,那么完全可以用x来表示,那么也就不存在噪声了),那么从图中可以看出,我们可以假设
也就得出了最开始写出的式子,类似的也可以写出
即
9-4:Linear Regression for Binary Classification
线性回归作二分类
之前作线性分类的时候,如果数据D中存在noise,即数据不是线性可分的时候,假设
pocket中错误用
从图中可以发现,
本来
但是我们也可以使用
- 台湾大学机器学习基石Lecture9
- 台湾大学机器学习基石Lecture2
- 台湾大学机器学习基石Lecture3
- 台湾大学机器学习基石Lecture4
- 台湾大学机器学习基石Lecture5
- 台湾大学机器学习基石Lecture6
- 台湾大学机器学习基石Lecture7
- 台湾大学机器学习基石Lecture8
- 台湾大学机器学习基石Lecture10
- 台湾大学机器学习基石Lecture11
- 台湾大学机器学习基石Lecture12
- 台湾大学林轩田老师机器学习基石:内容简介
- 台湾大学机器学习基石笔记整理
- 台湾大学机器学习基石lecture1小结
- 台湾大学林轩田机器学习基石课程学习笔记14 -- Regularization
- 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation
- 台湾大学林轩田机器学习基石课程学习笔记
- 台湾大学林轩田机器学习基石笔记(一)
- Linux setup Java
- Android开发mapbox使用及部分功能实现
- lombok注解为java类生成Getter/Setter方法
- mongod 启动参数
- R语言进行文件管理
- 台湾大学机器学习基石Lecture9
- python模块
- UE4:27启动虚幻引擎的步骤崩溃课程4
- 设计模式小记(三)
- 自用创建Samba服务器
- beyond Compare 破解办法(不需补丁)
- 10.15 c语言基础
- tensorflow安装问题:No module named '_pywrap_tensorflow_internal'
- js中const,var,let区别