首页 / 💻 技术交流 / (不全)深度学习基础之二阶优化算法
💻 技术交流

(不全)深度学习基础之二阶优化算法

二阶优化问题

前面说的算法都是使用梯度 g,属于一阶方法。二阶方法则需要求海森矩阵(或部分二阶偏导)。

牛顿法

给出一个函数 f,用二阶泰勒展开来近似 x(0) 附近的 f(x)

f(x)f(x(0))+(xx(0))xf(x(0))+12(xx(0))(H(f)(x(0)))(xx(0))

得到临界点:

x=x(0)H(f)(x(0))1xf(x(0))

如果目标函数 f 是有最小值的二次函数,牛顿法可以直接跑到最小值点,如果不是,牛顿法反复迭代多次可以很快接近附近的临界点。如果附近的临界点不是最小点牛顿法不适用。

牛顿法每次迭代计算量很大:参数数量设为 n,需要在内存中储存 n×n 的海森矩阵,还要算它的逆矩阵(速度是 O(n3))。所以深度学习一般不直接使用牛顿法。

共轭梯度法

待补充!

线性共轭梯度

最初,共轭梯度法用于求解 N 维线性方程 Ax=b

构造目标函数 ϕ(x)=12xAxbx(二次型),ϕ(x)=0 等价于 Axb=0

我们只考虑 A 对称正定的情况,这样 ϕ 有唯一最小值。

给出 N 个向量 p1,,pN,如果其中任意两个向量都有 piApjij),则称这组向量与 A 共轭。

可以证明,依次沿着这些向量优化,可以在 N 次迭代后到达最小值。

💬 全部评论 0

共 0 条 · 按楼层排序
登录 注册 后即可发表评论
💬
还没有评论,快来抢沙发吧