既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
公式可能大家会比较熟悉,一阶泰勒展式,f′(a) 表示 f(x) 在 x0 点的斜率 (这个很好理解),当X方向增量(Δx)比较小时,Y方向增量(Δy)可以近似表示为 斜率(导数)*X方向增量(f′(x0) Δx) ,令 f(x) = 0,我们能够得到 迭代公式:
x = x0 - f(x0) / f′(x0) => xn+1 = xn - f(xn) / f′(n)
通过逐次迭代,牛顿法 将逐步逼近最优值,也就是方程的解。
二. 扩展到最优化问题
这里的最优化 是指非线性最优化,解非线性最优化的方法有很多,比如 梯度下降法、共轭梯度法、变尺度法和步长加速法 等,这里我们只讲 牛顿法。
针对上面问题进行扩展:
解决 f(x) = 0 的问题,我们用了一阶泰勒展开:
f(x) = f(x0) + f’(x0)*(x-x0) + o( (x-x0)^2 )
去掉末位高阶展开项,代入x = x0+Δx,得到:
f(x) = f(x0+Δx) = f(x0) + f′(x0) Δx
那么 要解决 f′(x) = 0 的问题,我们就需要二阶泰勒展开:
f(x) = f(x0) + f’(x0)*(x-x0) + 0.5*f’'(x0)*(x-x0)^2 + o( (x-x0)^3 )
去掉末位高阶展开项,代入x = x0+Δx,得到:
f(x) = f(x0+Δx) = f(x0) + f′(x0)Δx + 0.5 * f′′(x0) (Δx)^2
求导计算: f′(x) = f’(x0+Δx) = 0,得到:
[ f(x0) + f′(x0)(x−x0) + 0.5 f′′(x0)(x−x0)^2 ]′ = 0
整理:
f′(x0) + f′′(x0)(x−x0) = 0
x = x0 − f′(x0) / f′′(x0) => xn+1 = xn - f’(xn) / f’′(xn)
牛顿法 一图总结为:
三. 牛顿法 与 Hessian矩阵的关系
以上牛顿法的推导 是针对 单变量问题,对于多变量的情况,牛顿法 演变为:
与上面的单变量表示方式类似,需要用到变量的 一阶导数 和 二阶导数。
其中 J 定义为雅克比矩阵,对应一阶偏导数。
H 为 Hessian矩阵,对应二阶偏导数。
网上也能搜到类似的公式表达,也列出来:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**