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

输过败过不曾怕过 输过败过不曾怕过     2022-09-03     376

关键词:

回归与梯度下降:

回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲。

用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka。大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积、房间的数量(几室几厅)、地 段、朝向等等,这些影响房屋价值的变量被称为特征(feature),feature在机器学习中是一个很重要的概念,有很多的论文专门探讨这个东西。在 此处,为了简单,假设我们的房屋就是一个变量影响的,就是房屋的面积。

假设有一个房屋销售的数据如下:

面积(m^2)  销售价钱(万元)

123            250

150            320

87              160

102            220

…               …

这个表类似于帝都5环左右的房屋价钱,我们可以做出一个图,x轴是房屋的面积。y轴是房屋的售价,如下:

 

如果来了一个新的面积,假设在销售价钱的记录中没有的,我们怎么办呢?

我们可以用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

绿色的点就是我们想要预测的点。

首先给出一些概念和常用的符号,在不同的机器学习书籍中可能有一定的差别。

房屋销售记录表 - 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x

房屋销售价钱 - 输出数据,一般称为y

拟合的函数(或者称为假设或者模型),一般写做 y = h(x)

训练数据的条目数(#training set), 一条训练数据是由一对输入数据和输出数据组成的

输入数据的维度(特征的个数,#features),n

梯度下降法是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。

下面是一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型。就如同上面的线性回归函数。

我们用X1,X2..Xn 去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数:

θ在这儿称为参数,在这儿的意思是调整feature中每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要。我们令X0 = 1,就可以用向量的方式来表示了:

我们程序也需要一个机制去评估我们θ是否比较好,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function),描述h函数不好的程度,在下面,我们称这个函数为J函数

在这儿我们可以做出下面的一个错误函数:

这个错误估计函数是去对x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了在求导的时候,这个系数就不见了。

如何调整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一种完全是数学描述的方法,在stanford机器学习开放课最后的部分会推导最小二乘法的公式的来源,这个在很多的机器学习和数学书上都可以找到,这里就不提最小二乘法,而谈谈梯度下降法。

梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。

2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。

为了更清楚,给出下面的图:

这是一个表示参数θ与误差函数J(θ)的关系图,红色的部分是表示J(θ)有着比较高的取值,我们需要的是,能够让J(θ)的值尽量的低。也就是深蓝色的部分。θ0,θ1表示θ向量的两个维度。

在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上的十字点。

然后我们将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。

image

当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:

 

上面这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的,看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点

下面我将用一个例子描述一下梯度减少的过程,对于我们的函数J(θ)求偏导J:(求导的过程如果不明白,可以温习一下微积分)

下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,-后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。

一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。

用更简单的数学语言进行描述步骤2)是这样的:

倒三角形表示梯度,按这种方式来表示,θi就不见了,看看用好向量和矩阵,真的会大大的简化数学的描述啊。

 

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达andrewng)(代码片段)

文章目录1线性代数(linearalgebra)1-1符号(Notation)1-2例子——房价预测1-3假设函数(hypothesis)1-3-3用`线性代数-非齐次方程`解释参数**1-普通梯度下降算法****2-批梯度下降算法(batchgradientdescentalgo... 查看详情

斯坦福公开课-机器学习2.监督学习应用-梯度下降(吴恩达andrewng)(代码片段)

文章目录1线性代数(linearalgebra)1-1符号(Notation)1-2例子——房价预测1-3假设函数(hypothesis)1-3-3用`线性代数-非齐次方程`解释参数**1-普通梯度下降算法****2-批梯度下降算法(batchgradientdescentalgo... 查看详情

1.监督学习的应用与梯度下降

监督学习的应用与梯度下降 监督学习 如上图所示,监督学习:对于给定的训练集合,按照某一学习算法学习之后,得到一种好的假设(Hypotheses)用于预测新的数据。 梯度下降 已知m组数据(x1,y1)…(xm,ym),其中xi是具有n维特... 查看详情

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

监督学习应用例子:以房屋大小和价格为例,本次采用47个样本。m:trainingexamples,训练样本集x:"input",variables/features变量,x为输入变量,在本次例子中,表示房屋大小y:"output",variable/"target"variable,y为输出变量,在本次例子中,表示... 查看详情

02-监督学习应用.梯度下降

约定符号:m=训练样本数X=输入变量(特征)Y=输出变量(目标变量)(X,Y)=表示一个样本$left(X^(i),Y^(i)ight)$=第i个样本(上标i不是指数) 用线性表示则是:$hleft(Xight)=Theta_0+Theta_1X$如果有2个特征则写成:$hleft(Xight)=Theta_0+Theta_1X_1... 查看详情

第二集监督学习的应用梯度下降

一:线性回归:例:上一节课的房屋大小与价格数据集 本例中:m:数据个数,x:房屋大小,y:价格通用符号:m=训练样本数x=输入变量(特征)y=输出变量(目标变量)(x,y)–一个样本 –第i个训练样本=对假设进行线性... 查看详情

吴恩达-coursera-机器学习-week1

一、引言(Introduction)1.1欢迎1.2机器学习是什么?1.3监督学习1.4无监督学习二、单变量线性回归(LinearRegressionwithOneVariable)2.1模型表示2.2代价函数2.3代价函数的直观理解I2.4代价函数的直观理解II2.5梯度下降2.6梯度下降的直观理解2.7梯... 查看详情

机器学习八大算法

机器学习入门知识机器学习是什么?机器学习的定义有很多,我自己的理解是,机器学习是使机器拥有解决实际问题的能力,他能够根据经验数据分析现有的问题,进行分类和预测有监督学习和无监督学习面对要解决的问题首先... 查看详情

ng机器学习视频笔记——线性回归代价函数梯度下降基础

ng机器学习视频笔记(一)——线性回归、代价函数、梯度下降基础 (转载请附上本文链接——linhxx) 一、线性回归        线性回归是监督学习中的重要算法,其主要目的在于用一个函数表... 查看详情

机器学习算法(优化)之一:梯度下降算法随机梯度下降(应用于线性回归logistic回归等等)

本文介绍了机器学习中基本的优化算法—梯度下降算法和随机梯度下降算法,以及实际应用到线性回归、Logistic回归、矩阵分解推荐算法等ML中。梯度下降算法基本公式常见的符号说明和损失函数X :所有样本的特征向量组成的... 查看详情

02_有监督学习--简单线性回归模型(梯度下降法代码实现)(代码片段)

有监督学习--简单线性回归模型(梯度下降法代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.定义模型的超参数4.定义核心梯度下降模型函数5.测试:运行梯度下降算法,计算最优的w和b6.画出拟合曲线7.附录-测试数据... 查看详情

机器学习模型和算法(代码片段)

文章目录python简介python基本语法监督学习--回归模型线性回归模型一元线性回归线性回归最小二乘代码实现多元线性回归梯度下降法和最小二乘法相比线性回归梯度下降代码实现非线性回归python简介略python基本语法文件开头加上#... 查看详情

机器学习:随机梯度下降法(线性回归中的应用)(代码片段)

一、随机梯度下降法基础 #梯度中的每一项计算:,要计算所有样本(共m个); #批量梯度下降法的思路:计算损失函数的梯度,找到优化损失函数的最近距离,或者称最直接的方向;  #批量梯度下降法的梯度计算:... 查看详情

机器学习梯度下降法应用波士顿房价预测(代码片段)

...实现2.4.1正规方程2.4.2梯度下降法2.5小结1线性回归api介绍机器学习梯度下降算法:https://blog.csdn.net/ZGL_cyy/article/details/127037949sklearn.linear_model.LinearRegression(f 查看详情

机器学习-梯度下降参数调优小结

在机器学习领域,通过对特征的参数调优可以让模型的预测值更接近真实值的常见的两种方法包括最小二乘法和梯度下降方法。目前梯度下降更成为了一种解决问题的方法和思路,在集成学习和深度学习领域都有较多的应用。定... 查看详情

面试题:如何开展监督学习

更多题目请看公众号“机器学习算法面试”步骤1:数据集的创建和分类。步骤2:数据增强(DataAugmentation)步骤3:特征工程(FeatureEngineering)步骤4:构建预测模型和损失步骤5:训练步骤6:... 查看详情

机器学习(监督学习)基础,强推!!!

机器学习在没有明确设置的情况下,使计算机具有学习能力的研究领域。计算机程序从经验E中学习解决某一任务T进行某一性能度量P,通过P测定在T上的表现因经验E而提高。如跳棋游戏:E就是计算机与自己下几万次... 查看详情

0a03无监督学习:梯度下降(代码片段)

---恢复内容开始---梯度下降的定义:  梯度下降是一种因为计算机储存及能力有限,采取逐步逼近,迭代求解的方法.梯度下降的步骤:  任取一点作为起始点  查看在当前点向那个方向移动能得到最小的z值,并向该方向移动. ... 查看详情