Logistic回归Cost函数和J(θ)的推导(二)----梯度降低算法求解最小值

前言算法

在上一篇随笔里,咱们讲了Logistic回归cost函数的推导过程。接下来的算法求解使用以下的cost函数形式:机器学习

简单回顾一下几个变量的含义:函数

表1 cost函数解释
x(i) 每一个样本数据点在某一个特征上的值,即特征向量x的某个值
y(i) 每一个样本数据的所属类别标签
m 样本数据点的个数
hθ(x) 样本数据的几率密度函数,即某个数据属于1类(二分类问题)的几率
J(θ) 代价函数,估计样本属于某类的风险程度,越小表明越有可能属于这类

 

咱们的目标是求出θ,使得这个代价函数J(θ)的值最小,这里就须要用到梯度降低算法。学习

 

梯度降低算法同步

对于一个函数,咱们要找它的最小值,有多种算法,这里咱们选择比较容易用代码实现和符合机器学习步骤的梯度降低算法。数学

先来看看梯度降低算法中,自变量的迭代过程。表示以下table

  

能够看到,这是一个θ值不断迭代的过程,其中α是学习速率,就是θ的移动“步幅”,后面的偏导数数就是梯度,能够理解为cost函数在θ当前位置,对于j位置特征的降低速度。变量

  对于二维空间,梯度能够理解为函数图像的切线斜率。即:特征是一维的方法

  对于多维特征,cost函数的图像就应该是这样的,下面举个例子:im

  

                            图1 cost函数举例

 

 

  这是一个二维特征的cost函数的图像,这个时候,梯度有无限多个,咱们不能只说cost函数的梯度,应该说,cost函数在某个方向上的梯度。例如,cost函数在θ0方向上,在(θ0=m,θ1=n)上的梯度就是cost函数与θ1=n这个平面的交线在(m,n)处的斜率。

  上面的描述比较抽象,简单说来,假设图像就是一个小山坡(有点像吧),你站在图像的(m,n)点处,朝θ0的方向看过去,看到的“山坡”的“坡度”就是上面所说的梯度了。

  这个迭代过程,用形象化的语言描述,就是:

    我站在山坡上,找到一个初始点θj,每次我沿着某一个方向走α这么长的路,因为老是朝着梯度的方向走,我总会走到山坡底(也就是cost函数的极小值)。

  然而,这样的“盆地”可能有多个,咱们不一样的走法,可能会走到不一样的山底,如图:

 

                           图2 多“山谷”cost函数

 

  这里的两条路线分别走向不一样的山谷,这就说明:梯度降低算法只能求出一个局部最小值,不必定是全局最小值,但这不影响它是一个好的方法。

 

这样,θ的迭代过程就讲清楚了。接下来讲一下迭代的终止条件。

  迭代确定不是无限下去的,咱们不妨想一下:当咱们走到了山谷,再想往某个方向走的时候,发现都不能再往下走了,那么咱们的旅行就终止了。

  一样,当θ迭代了n次后(就如图2的黑线同样),发现接下来走α这么长的路,降低的高度很小很小(临界值),或者再也不降低,甚至反而往上走了,因此咱们的迭代终止条件就是cost函数的减小值小于某个值。

  咱们再来回顾一下迭代公式(1):其中α是经验设定,称之为learning rate,初始值也是随机选定,那么后面的那个梯度呢?

  梯度就是cost函数对于特征向量某一维的偏导数。咱们来看看这个怎么推导和简化。

  【梯度的求解】

  先来写一下大体的推导过程:

  稍微解释一下推导流程,便于理解。

  (1)--->(2):使用sigmoid函数的形式g(z)替换hθ(x)、提出公因子,放在式子尾

  (2)--->(3):这一步具体推导以下(使用了复合函数的求导公式)

 

  后面的几步较为简单,就不另做说明了。

  【算法运行】

  到了这里,咱们推出了迭代公式的最终形式:

  更通常的形式就是把j去掉,表示对特征的每一维都如此迭代

  注意,在迭代过程当中,θ的全部特征是同步更新的,因此根据给定的数据集,就能使用梯度降低算法来求解θ了,迭代终止条件便是将当前θ带入cost函数,求出代价值,与上一个代价值相减,结果小于阈值,当即中止迭代。

结语

  公式推导用的也就是偏导数的求解等少许数学公式,关键是体会局部最优的思想

相关文章
相关标签/搜索