机器学习のせかい-01逻辑回归(下)

3.5 对梯度下降中学习率的探讨

其中 α-----学习率或者步长。

 

假设现在的损失函数如图所示,定点

沿B的方向走一步。

则:

所以说,a控制水平方向的改变大小,当a越大时,BC的长度就越大,水平方向就大;越小时,BC的长度就越小。可以类似的理解为水平方向上跨了多大一步,并且a不是什么距离长度或者单位啥的,只能说是梯度大小值得比例,影响着参数得每一次迭代得改变部分。

因此可以很清楚的看到a的大小值对梯度的影响:

 

 

(1).a很大时,水平方向垮了一大步,损失函数下降太快,导致无法获取最优值。

(2).a很小时,水平方向跨了一小步,迭代速度慢,更新次数多。

因此,只有合适的a值才能有效的保障迭代进行,就好比如马克思主义哲学中的观点一样,任何事物都有度,超过这个度就会发生量变到质变。

3.6 最大化似然函数的另一种方法----牛顿法(Newton’smethod)

牛顿法的主要应用时求解方程的根,具体的做法为:

(几何直观解释)

则:

……

因此,回到刚才的逻辑回归中:

由基本的微积分知识得到:

此时的更新参数的公式为:

通过简单的案例看出牛顿法的基本原理:

求解方程的根:

牛顿迭代公式:

其中

故有

因此很快的达到了收敛。

故此时的f(0.5614)= 0.

这里的计算用了Python代码:



3.6.1 牛顿法的一般形式
(1).海塞矩阵(Hesse)
对于n元函数y= f(x)而言,有:
 


第一眼看可能有点吓人,仔细理解下可以发现不都是偏导吗,而且还是对称矩阵。
还是通过简单的例子来理解海塞矩阵。
多元函数


先看对角线上发现都是函数f对各个变量的偏导:


再看对角线右侧的部分可以看到每行都是f先对x求两次偏导,然后下个元素就是先对x求偏导,在对其他变量求偏导。


故此时的海塞矩阵为:


即为:


(2).泰勒公式
泰勒展开公式:


还是通过简单的例子来说明它的具体用法:

求出点

处的搜索方向。

先求出海塞矩阵:


具体的Python运算过程为

3.6.2 总结
学习了梯度下降法和牛顿法,它两的过程如图:

可以清楚的看到红色线(牛顿法)的收敛速度比梯度下降法快,但是随着特征维数的增加,牛顿法中需要计算海塞矩阵,比较繁琐,于是会有其他改进的方法诞生,拟牛顿法(quasiNewtonmethod),不再直接计算海塞矩阵,而是每一步的时候使用梯度向量更新hessian矩阵的近似。这些都属于《最优化理论》的内容,以后学到在回来补充完整。

Tuesday,May 21, 2019
校园宽带小王子

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值