线性代数|机器学习-P22逐步最小化一个函数
文章目录
- 1. 概述
- 2. 泰勒公式
- 3. 雅可比矩阵
- 4. 经典牛顿法
- 4.1 经典牛顿法理论
- 4.2 牛顿迭代法解求方程根
- 4.3 牛顿迭代法解求方程根 Python
- 5. 梯度下降和经典牛顿法
- 5.1 线搜索方法
- 5.2 经典牛顿法
- 6. 凸优化问题
- 6.1 约束问题
- 6.1 凸集组合
Mit麻省理工教授视频如下:逐步最小化一个函数
1. 概述
主要讲的是无约束情况下的最小值问题。涉及到如下:
- 矩阵求导
- 泰勒公式,函数到向量的转换
- 梯度下降
- 牛顿法梯度下降
2. 泰勒公式
我们之前在高等数学中学过关于f(x)的泰勒展开如下:
定义:
lim
x
→
a
h
k
(
x
)
=
0
\lim\limits_{x\to a}h_k(x)=0
x→alimhk(x)=0
f
(
x
)
=
f
(
a
)
+
f
′
(
a
)
(
x
−
a
)
+
f
′
′
(
a
)
2
!
(
x
−
a
)
2
+
⋯
+
f
(
k
)
(
a
)
k
!
(
x
−
a
)
k
+
h
k
(
x
)
(
x
−
a
)
k
\begin{equation} f(x)=f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2+\cdots+\frac{f^{(k)}(a)}{k!}(x-a)^k+h_k(x)(x-a)^k \end{equation}
f(x)=f(a)+f′(a)(x−a)+2!f′′(a)(x−a)2+⋯+k!f(k)(a)(x−a)k+hk(x)(x−a)k
- 那么我们只提取二次项,
x
+
Δ
x
→
x
;
x
→
a
x+\Delta x \rightarrow x;x\rightarrow a
x+Δx→x;x→a 可得如下:
f ( x + Δ x ) ≈ f ( x ) + f ′ ( x ) Δ x + f ′ ′ ( x ) 2 ! Δ x 2 \begin{equation} f(x+\Delta x)\approx f(x)+f'(x)\Delta x+\frac{f''(x)}{2!}\Delta x^2 \end{equation} f(x+Δx)≈f(x)+f′(x)Δx+2!f′′(x)Δx2 - 上面的公式中x为标量,现在我们需要用到向量 x
-
a
,
b
a,b
a,b均为1维列向量,S为对称矩阵时,我们可得得到如下:
a T b = c , x T S x = d → c , d 均为标量 \begin{equation} a^Tb=c,x^TSx=d\rightarrow c,d均为标量 \end{equation} aTb=c,xTSx=d→c,d均为标量 - 定义如下:
x = [ x 1 x 2 ⋯ x n ] T , f = [ f 1 f 2 ⋯ f n ] T \begin{equation} x=\begin{bmatrix}x_1&x_2&\cdots&x_n\end{bmatrix}^T,f=\begin{bmatrix}f_1&f_2&\cdots&f_n\end{bmatrix}^T \end{equation} x=[x1x2⋯xn]T,f=[f1f2⋯fn]T
f ′ ( x ) = ∇ F = [ ∂ f ∂ x 1 ∂ f ∂ x 1 ⋯ ∂ f ∂ x n ] T → f ′ ( x ) Δ x = ( Δ x ) T ∇ F ( x ) \begin{equation} f'(x)=\nabla F=\begin{bmatrix}\frac{\partial f}{\partial x_1}&\frac{\partial f}{\partial x_1}&\cdots&\frac{\partial f}{\partial x_n}\end{bmatrix}^T \rightarrow f'(x)\Delta x=(\Delta x)^T \nabla F(x) \end{equation} f′(x)=∇F=[∂x1∂f∂x1∂f⋯∂xn∂f]T→f′(x)Δx=(Δx)T∇F(x) -
H
j
k
H_{jk}
Hjk为
hessian matrix
具有对称性
f ′ ′ ( x ) = H j k = ∂ 2 F ∂ x j ⋅ ∂ x k → f ′ ′ ( x ) 2 ! Δ x 2 = 1 2 ( Δ x ) T H j k ( Δ x ) \begin{equation} f''(x)=H_{jk}=\frac{\partial^2F}{\partial x_j\cdot \partial x_k}\rightarrow \frac{f''(x)}{2!}\Delta x^2=\frac{1}{2}(\Delta x)^T H_{jk}(\Delta x) \end{equation} f′′(x)
推荐阅读
-
OpenCV 高级图形用户界面 (21) 暂停程序执行并等待用户按键进入,使用函数 waitKey - 参数
-
python 机器人编程 - 使用 python API 调用控制 wifi 小车的示例程序
-
OpeneBayes 教程 | LLaVA-OneVision,一个强大的开源多模态宏模型,可击败 GPT-4V,现已上线!
-
C]字符和字符串函数
-
[机器学习和神经网络荣获诺贝尔奖] 科学边界的扩展与技术创新 - IV.个人对机器学习和神经网络的看法
-
Spark 数据源读写、自定义函数
-
SSM 框架学习(七、MyBatis-Plus 高级用法:优化持久层开发)
-
【论文阅读】分离与联合:用于少量学习的简单元传输-摘要
-
机器学习捷径:自动特征工程综合分析(附代码示例)
-
ROS 理论与实践学习笔记 - 5 ROS 机器人系统模拟 URDF 集成 Gazebo