example:
f
(
x
)
=
1
2
∥
A
x
−
b
∥
2
2
f(x) = \frac{1}{2}\parallel Ax - b \parallel_2^2
f(x)=21∥Ax−b∥22
最小化下式时x的值。首先计算:
▽
x
f
(
x
)
=
A
T
(
A
x
−
b
)
=
A
T
A
x
−
A
T
b
\bigtriangledown_xf(x) = A^T(Ax - b) =A^TAx - A^Tb
▽xf(x)=AT(Ax−b)=ATAx−ATb
可以选择采用小的步长,并按照上述梯度下降:
algorithm: 从任意点x开始,使用梯度下降关于x做小化
f
(
x
)
=
1
2
∥
A
x
−
b
∥
2
2
f(x) = \frac{1}{2}\parallel Ax - b \parallel_2^2
f(x)=21∥Ax−b∥22的算法
将步长(
ϵ
\epsilon
ϵ和容差(
α
\alpha
α)设置为小的正数)。
w
h
i
l
e
∥
A
T
A
x
−
A
T
b
∥
2
>
α
d
o
:
x
←
x
−
ϵ
(
A
T
A
x
−
A
T
b
)
e
n
d
w
h
i
l
e
while \parallel A^TAx-A^Tb\parallel_2>\alpha do: \\ x \leftarrow x - \epsilon(A^TAx-A^Tb) \\ end while
while∥ATAx−ATb∥2>αdo:x←x−ϵ(ATAx−ATb)endwhile
使用牛顿法解决这个问题
现在假设我们希望最小化同样的函数,但受
x
T
x
<
=
1
x^Tx <= 1
xTx<=1的约束,要做到这一点,我们引入Lagrangin
L
(
x
,
λ
)
=
f
(
x
)
+
λ
(
x
T
x
−
1
)
L(x, \lambda) = f(x) + \lambda(x^Tx - 1)
L(x,λ)=f(x)+λ(xTx−1)
将问题转化为:
m
i
n
x
m
a
x
λ
,
λ
>
=
0
L
(
x
,
λ
)
min_x max_{\lambda, \lambda>=0}L(x, \lambda)
minxmaxλ,λ>=0L(x,λ)
我们可以使用Moore-Penrose伪逆:
x
=
A
+
b
x = A^+b
x=A+b找到无约束最小二乘问题的最小范数解关于x对Lagrangian微分,我们得到方程:
A
T
A
x
−
A
T
b
+
2
λ
x
=
0
A^TAx - A^Tb +2\lambda x= 0
ATAx−ATb+2λx=0
方程的解为:
x
=
(
A
T
A
+
2
λ
I
)
−
1
A
T
b
x = (A^TA + 2\lambda I)^{-1}A^Tb
x=(ATA+2λI)−1ATb
λ
\lambda
λ的选择必须使结果服从约束,我们可以关于
λ
\lambda
λ上升找到这个值,为了做到这一点,观察
∂
L
(
x
,
λ
)
∂
λ
=
x
T
x
−
1
\frac{\partial L(x, \lambda)}{\partial \lambda} = x^Tx - 1
∂λ∂L(x,λ)=xTx−1
当x的范数超过1时,该导数是正的,所以为了跟导数上坡并相对
λ
\lambda
λ增加Largnian,我们需要增加
λ
\lambda
λ,因为
x
T
x
x^Tx
xTx的惩罚系数增加了,求解关于x的线性方程现在将得到具有较小范数的解,求解线性方程和调整
λ
\lambda
λ的过程一直持续x具有正确的范数,并且关于
λ
\lambda
λ的导数是0.
线性最小二乘法
最新推荐文章于 2024-04-22 23:15:52 发布