代价函数和梯度下降

机器学习


提示:该文是基于吴恩达老师机器学习视频总结


1. 代价函数

房屋价格预测问题

在这里插入图片描述

m 代表训练集中实例的数量(上面显示了四个训练集m=4)
x 代表特征/输入变量(左边的就是x)
y 代表目标变量/输出变量(右边的是y)
(x,y) 代表训练集中的实例
(x ⁽ⁱ⁾ ,y ⁽ⁱ⁾ ) 代表第 i 个观察实例(当i=1时,x⁽¹⁾是2104,x⁽¹⁾是460)
h 代表学习算法的解决方案或函数也称为假设(hypothesis)


其中 hθ(x)=θ01x1 表示预测函数,我们可以通过改变θ0θ1 来使预测函数更好的与这些数据集拟合。

在这里插入图片描述
横轴代表房子面积,纵轴代表房子价格,我们要选择合理的参数值,使得在数据集中给出的数据x值,可以更接近得到预测y值。所给出的标准就是在线性回归问题中,我们要解决的是一个最小化问题。即写出关于θ0 θ1 最小化,从而引出代价函数这一定义。
hθ (x(i))代表预测函数的输出值,y(i)代表真实数值,其两者之差的平方的m个数据集的和,1/2m则是为了减少平均误差。为了目标明确,我们定义J(θ0 ,θ1)来代表代价函数

在这里插入图片描述

简化代价函数 (令θ0 =0)

通过使θ0 =0来简化代价函数可以使我们更好的理解代价函数的定义。代价函数最重要的作用就是是用来度量预测错误的程度,通常来说,模型越准确,越接近真实,其cost function的值就越小。
在这里插入图片描述

左边是猜测的几条函数,右边是上面定义的代价函数(cost function),横轴是
左边函数的斜率,纵轴是代价函数的值

比如说θ1=1,代价函数的结果是0。在右边(1,0)的位置。
θ1=0.5,代价函数J(θ1)的结果是0.5。在右边(0.5,0.5)的位置。θ1=0.5,代价函数J(θ1)的结果是0.5。在右边(0.5,0.5)的位置。θ1=0,代价函数J(θ1)的结果是2.33333。在右边(0,2.33333)的位置。

把这些点连起来就获得了右边的图,左边每一条线都对应着右边的一个点。
比如浅蓝色的点代表左边浅蓝色的线,紫色的点代表左边紫色的线,深蓝色的点代表左边深蓝色的线。代价函数的值越小就越接近正确。

以上是令θ0时所得到的图像,接下来是当θ0不为0时所得到的图像
在这里插入图片描述

则可以看出在三维空间中存在一个使得J(θ01)最小的点。
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。

2. 梯度下降

梯度下降可以将代价函数J最小化,不仅应用于线性回归上,还广泛应用于机器学习的众多领域。

梯度下降的思路:
给定θ0, θ1的初始值,通常将θ0设为0,θ1也设为0,通过不断的改变θ01,使得J(θ01)变小,直到找到J最小值或者局部最小值。

在这里插入图片描述
将梯度下降问题想象成下山问题,我们随机初始化一点,我们想要以最快的速度下山,当我们环顾四周,找到一个坡度最大的方向前进一步,以此类推,找到一个局部最小值。
在这里插入图片描述
当我们一开始选择与之前的点右边的的点时,我们使用梯度下降,则会得到一个不同的局部最小值。
在这里插入图片描述

接下来我们要学习梯度下降背后的数学原理
上面函数时关于梯度下降的定义。我们将反复做θj之后的那一步,为θj减去α乘以的那部分。
这个公式的细节部分,对于符号 := 这是赋值的意思,而 = 是判断两个值是否相等。即我们可以说 a := a + 1,但不能说 a = a + 1。
另外 对于α,这个代表控制下降的速度,当 α变大时,我们将大步的下山,α变小时,我们就小碎步下山。α之后的那部分是一个导数项,之后会学习。
对于这个更新方程,我们需要同时更新θ0和θ1,同时计算出temp0和temp1,并将其赋值给θ0和θ1。上图右边则是一个错误示范,我们更新完θ0时,便把更新的θ0带入到接下来的θ1更新。

在这里插入图片描述
上图是梯度下降最小化代价函数的过程(简化θ0=0)
下降速率α始终为正数,第一幅中的函数J(θ)偏导为整数,所以θ1减去一个整数,新的θ1会减小,不断向J(θ)最小值靠近,而且随着斜率的下降,偏导趋于0,每一次下降的步幅会越来越小。
同理,第二幅图导数为负,减去一个负数,使得θ1不断增加。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值