机器学习 学习总结 第四章 提高逻辑回归梯度下降效率的高级优先算法

高级优先算法

梯度下降法回顾

我们有个代价函数J(θ)而我们想要使其最小化,那么我们需要做的是编写代码来当输入参数θ时,代码会计算出两杨对象,J(θ)以及J(θ)等于0到n时的偏导数项,假设我们以及完成了可以实现这两件事的代码,那么梯度下降法要做的就是反复执行更新迭代θ值

简单的讲就是我们需要写代码来计算出代价函数J(θ)以及J(θ)的各项偏导数。再带入到梯度下降法的θ迭代公式中,然后最小化代价函数。
如图:
代价函数

高级优先算法

先假设有一个例子:
有一个含有两个参数的问题,分别是θ1和θ2 。那么代价函数以及偏导数如图:
举例
可以用梯度下降法计算**J(θ)**的最小值,也可以用更高级的算法,不如调用一个函数,如下:

在这里插入图片描述
这个函数会返回两个值,一个是jVal, gradient 第二个返回值返回的梯度值,是一个2*1的向量。分别对应了两个偏导数项。

然后就可以调用高级优先算法来计算。代码如下:
高级优先算法
GradObj 和on 设置梯度目标参数为打开(on)。 MaxIter 100为迭代次数。 @costFunction @表示的是一个指向costFunction的指针。
这个算法就可以自己选择学习效率α

在Octave中的代码如图所示:
Octave
exitFlag = 1 表示已经收敛了,并且得到了θ值。

对于多元时的代价函数

只用吴恩达老师课上的一张图解释:
在这里插入图片描述

关于本节的课程,建议观看吴恩达老师的课程:
https://www.bilibili.com/video/av9912938?p=38

————————————————

发布了43 篇原创文章 · 获赞 3 · 访问量 4945

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104057120
今日推荐