课时2 线性回归 代价函数 梯度下降
2.1模型描述
线性回归
这是一个监督学习预测房价的例子。之所以是监督学习,是因为每一个输入都有一个正确的输出与之对应,也就是每当我们给出房子的大小就知道房子的价格。同样这也是一个回归问题,回归是指我们预测一个具体的数值输出,也就是价格。另一种常见的监督学习问题被称为分类问题,我们用它来预测离散值的输出,例如我们观察肿瘤并试图判断它是良性的还是恶行的,即只有01两个离散值作为输出。
在监督学习里,我们有一个数据集,也就是一个训练集。
我们用(x,y)表示一个训练集,用x和y加一个上标表示训练集中某个具体的项。
通常我们将一个训练集给学习算法,然后学习算法输出一个h,我们称为假设函数
假设函数的作用是给每一个输入的x,得到一个输出y
接下来的问题是如何表示假设函数h
上图的例子是一个单变量线性回归
2.2代价函数
代价函数的数学定义:
有时也被称为平方误差代价函数 (应该就是求得假设函数h预测的数据与实际数据的误差)
该函数是解决回归问题的最常用手段
当我们需要找到一条与数据拟合的直线,构造了假设函数h,有两个参数θ0和θ1。随着所选参数的不同我们会得到不同的直线,直到找到一条大致与数据相符的直线,在这个过程中不断的优化参数,计算出代价函数,并找到最小值即为优化目标。为了使代价函数J可视化,我们现在将两个参数化简为一个参数,即假设拟合出的直线一定是过(0,0)点的
左图中有三个点(0,0)(1,1)(2,2),显然最优的代价函数的参数θ1=1,此时h=x是最拟合的直线。右图是这个参数取得不同值时的代价函数J的值,显然在参数=1时,代价函数值J取得最小值。
当我们同时保留代价函数中的两个参数时,再将代价函数的值可视化,即得到这样的三维图形。或将其表示为等高线图形,横轴和纵轴各表示一个参数,等高线上的点即为J值相同的点,中心是最小值。我们在等高线的图上选一个点并在左面画出这个点的参数形成的图像,我们可以看到这条直线拟合的并不好,所以其参数在右图中里最小值较远。
2.5梯度下降
图为一个含有两个参数的代价函数J可视化图。梯度下降的步骤是任意选择一点,然后环顾四周,选择下降最快的方向移动一小步,然后重复上述步骤,就可以找到一个局部最低点。但此方法有一个特点,如图当我们的初始点改变,甚至可能只改变一点的时候,会得到另外一个不同的最低点。
上面是梯度下降算法的公式。
:=是赋值符号。
α称为学习率,控制每次迈出的步长。以下为α不同取值的影响:
当α太小时,收敛速度就会非常慢,需要很多步才能到达最小值。而当其太大时,有可能无法收敛甚至发散。
左下为正确的参数更新顺序,两个参数应当同时更新,而不应为右下的顺序。
这个公式其实就是逐个参数修改,使更新后的参数为下降最快的方向上的下一步。
当参数收敛到最低点或起始点就已经是最低点时下一步怎么办?:当参数到达最低点时,公式中减去的那一项中导数为0(极值点导数为0),即参数会不变。同时导数这一项也解释了为什么学习率α不变,最终也可以收敛至最低点而不会越过最小值。因为当参数逐渐走向最小值时,斜率也逐渐趋于0,公式中减去的那一项越来越小,也就是步长越来越趋近于0。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!