机器学习-斯坦福:学习笔记2-监督学习应用与梯度下降

监督学习应用与梯度下降

本课内容:

1、  线性回归

2、  梯度下降

3、  正规方程组

(复习)监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案

1、 线性回归

例:Alvin汽车,先让人开车,Alvin摄像头观看(训练),而后实现自动驾驶。

本质是一个回归问题,汽车尝试预测行驶方向。

例:上一节课的房屋大小与价格数据集

引入通用符号:

m = 训练样本数

x = 输入变量(特征)

y = 输出变量(目标变量)

(x,y) – 一个样本

 –第i个训练样本 =

本例中:m:数据个数,x:房屋大小,y:价格

监督学习过程:

1)       将训练样本提供给学习算法

2)       算法生成一个输出函数(一般用h表示,成为假设)

3)       这个函数接收输入,输出结果。(本例中为,接收房屋面积,输出房价)将x映射到y。

如下图所示:

对假设进行线性表示: 

通常来说,回归问题有多个输入特征。如上例中,我们还已知房屋的卧室数,即有个第二个特征。即表示大小,表示卧室数,则可将假设写成:

为了将公式写整洁,定义,则h可写成:

n = 特征数目, :参数

选择的目的,是使h(x)与y的平方差尽量小。又由于有m个训练样本,需要计算每个样本的平方差,最后为了简化结果乘以1/2,即:

我们要做的就是求:min(J())

求min(J())方法:梯度下降和正规方程组

2、 梯度下降

梯度下降是一种搜索算法,基本思想:先给出参数向量一个初始值,比如0向量;不断改变,使得J()不断缩小。

改变 的方法:梯度下降

如图所示,水平坐标轴表示,垂直坐标表示J()

一开始选择0向量作为初始值,假设该三维图为一个三维地表,0向量的点位于一座“山”上。梯度下降的方法是,你环视一周,寻找下降最快的路径,即为梯度的方向,每次下降一小步,再环视四周,继续下降,以此类推。结果到达一个局部最小值,如下图:

当然,若初始点不同,则结果可能为另一个完全不同的局部最小值,如下:

表明梯度下降的结果依赖于参数初始值。

梯度下降算法的数学表示:

为赋值运算符,即表示程序中的的赋值语句。

每一次将减去求偏导的结果,即沿最陡峭的“山坡”下降

将偏导数展开分析:

代入上式:

:学习速度,即决定你下山时每一步迈多大。设的过小,收敛时间长,设的过大,可能会超过最小值

(1)      批梯度下降算法:

上述为处理一个训练样本的公式,将其派生成包含m个训练样本的算法,循环下式直至收敛:

复杂度分析:

对于每个的每次迭代,即上式所示,时间为O(m)

每次迭代(走一步)需要计算n个特征的梯度值,复杂度为O(mn)

一般来说,这种二次函数的的三维图形为一个碗状,有一个唯一的全局最小值。其等高线为一个套一个的椭圆形,运用梯度下降会快速收敛到圆心。

梯度下降性质:接近收敛时,每次的步子会越来越小。其原因是每次减去乘以梯度,但是梯度会越来越小,所以步子会越来越小。

下图为使用梯度下降拟合的上例房屋大小和价格的曲线

检测是否收敛的方法:

1)       检测两次迭代的改变量,若不再变化,则判定收敛

2)       更常用的方法:检验,若不再变化,判定收敛

批梯度下降算法的优点是能找到局部最优解,但是若训练样本m很大的话,其每次迭代都要计算所有样本的偏导数的和,时间过慢,于是采用下述另一种梯度下降方法。

(2)      随机梯度下降算法(增量梯度下降算法):

每次计算不需要再遍历所有数据,而是只需计算样本i即可。

批梯度下降中,走一步为考虑m个样本;随机梯度下降中,走一步只考虑1个样本

每次迭代复杂度为O(n)。当m个样本用完时,继续循环到第1个样本。

上述使用了迭代的方法求最小值,实际上对于这类特定的最小二乘回归问题,或者普通最小二乘问题,存在其他方法给出最小值,接下来这种方法可以给出参数向量的解析表达式,如此一来就不需要迭代求解了。

3、 正规方程组

给定一个函数J,J是一个关于参数数组的函数,定义J的梯度关于的导数,它自己也是一个向量。向量大小为n+1维(从0到n),如下:

所以,梯度下降算法可写成:

更普遍的讲,对于一个函数f,f的功能是将一个m*n的矩阵映射到实数空间上,即:

假设输入为m*n大小的矩阵A,定义f关于矩阵A的导数为:

导数本身也是个矩阵,包含了f关于A的每个元素的偏导数。

如果A是一个方阵,即n*n的矩阵,则将A的迹定义为A的对角元素之和,即:

trA即为tr(A)的简化。

一些关于迹运算符和导数的定理:

1)       trAB = trBA

2)       trABC = trCAB = trBCA

3)       

4)       

5)       若 ,tra = a

6)       

有了上述性质,可以开始推导了:

定义矩阵X,称为设计矩阵,包含了训练集中所有输入的矩阵,第i行为第i组输入数据,即:

则由于,所以可得:

又因为对于向量z,有,则有:

由上述最后一个性质可得:

通过上述6个性质,推导:

倒数第三行中,运用最后一个性质

置为0,则有:

称为正规方程组

可得:

时间: 2024-10-25 04:55:20

机器学习-斯坦福:学习笔记2-监督学习应用与梯度下降的相关文章

《机器学习》学习笔记(一)

今天看了两集Stanford 的Machine Learning,先说说感受,在看的过程中,脑海里冒出来一个念头:在中国的大学里,教授们都是好像在做研究,而学生们都是好像在上课,到头来不知道学到了什么,我在屏幕的这边都能感受到他们和我们的不一样. 其实对于机器学习,我是真心不懂,也不知道为什么忽然就想学习一下了,然后看了第一集就觉得实在是太牛X了,他们做的那个爬越障碍物的狗和快速避障的小车,都不是我们能搞出来的,说来也奇怪,我们不是也有他们一样的课程体系吗?照理说在大学里能做出来的东西,我们也应

机器学习实战学习笔记(一)

1.k-近邻算法 算法原理: 存在一个样本数据集(训练样本集),并且我们知道样本集中的每个数据与其所属分类的对应关系.输入未知类别的数据后将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似(最近邻)的k组数据.然后将k组数据中出现次数最多的分类,来作为新数据的分类. 算法步骤: 计算已知类别数据集中的每一个点与当前点之前的距离.(相似度度量) 按照距离递增次序排序 选取与当前点距离最小的k个点 确定k个点所在类别的出现频率 返回频率最高的类别作为当前点的分类 py

机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

机器学习技法--学习笔记04--Soft SVM

背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开.但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的.所以,需要在hard SVM上添加容错机制,使得可以容忍少量噪声数据. ? "软"化问题 软化SVM的思路有点类似正规化,在目标函数添加错误累加项,然后加一个系数,控制对错误的容忍度,并且在约束中添加错误容忍度的约束,形式如下: ? 现在问题就变成了(d+1+N)个变量和2N个约束.ξ用来描述错误的容忍度.C是常量,用来控制容忍度.C越大,由

【stanford 机器学习】学习笔记(1)--单变量线性回归

课程来自斯坦福大学吴恩达教授 machine learning: https://www.coursera.org/learn/machine-learning/home/welcome 1) Model representation(模型表示) 回到房屋价格预测问题, 首先它是一个有监督学习的问题(对于每个样本的输入,都有正确的输出或者答案),同时它也是一个回归问题(预测一个实值输出).训练集表示如下: 其中: m = 训练样本的数目 x’s = “输入”变量,也称之为特征 y’s = “输出

【stanford 机器学习】学习笔记(2)--多变量线性回归(Linear Regression with Multiple Variables)

课程来自斯坦福大学吴恩达教授 machine learning: https://www.coursera.org/learn/machine-learning/home/welcome 多变量线性回归主要包括以下部分: 1) Multiple features(多维特征) 2) Gradient descent for multiple variables(梯度下降在多变量线性回归中的应用) 3) Gradient descent in practice I: Feature Scaling(

Stanford大学机器学习公开课(二):监督学习应用与梯度下降

本课内容: 1.线性回归 2.梯度下降 3.正规方程组 监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案 1.线性回归 问题引入:假设有一房屋销售的数据如下: 引入通用符号: m =训练样本数 x =输入变量(特征) y =输出变量(目标变量) (x,y)—一个样本 ith—第i个训练样本=(x(i),y(i)) 本例中:m:数据个数,x:房屋大小,y:价格 监督学习过程: 1) 将训练样本提供给学习算法 2) 算法生成一个输出函数(一般用h表示,成为假设) 3)

【机器学习】1 监督学习应用与梯度下降

监督学习 简单来说监督学习模型如图所示 其中 x是输入变量 又叫特征向量  y是输出变量 又叫目标向量 通常的我们用(x,y)表示一个样本  而第i个样本 用(x(i),y(i))表示 h是输出函数 监督学习的任务是学习一个模型,使模型能够对任意的输入,做出很好的预测. 习惯的样本训练数目用m表示 梯度下降算法 h(x) = Θ0 +Θ1x1+...+Θixi J(Θ)= 1/2 *∑(i from 1 to m) (h(Θ)(x (i) - y(i))^2 Θ(i) := Θ(i) - α *

斯坦福大学公开课:监督学习应用,梯度下降

监督学习应用例子:以房屋大小和价格为例,本次采用47个样本. m: training examples,训练样本集 x: "input",variables/features变量,x为输入变量,在本次例子中,表示房屋大小 y: "output", variable/"target" variable,y为输出变量,在本次例子中,表示房屋价格 (x,y): training examples 表示训练样本 监督学习的流程如下(以房子为例): tra

机器学习-监督学习应用:梯度下降

回归与梯度下降: 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲. 用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka.大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积.房间的数量(几室几厅).地 段.朝向等等