一.优化问题
1.梯度下降
在我们以前学过的lr模型,线性模型中我们使用梯度下降方法去寻找代价函数的最优解,找到一个初始点去不断地向梯度的反方向move直到到达梯度为0的情况。这是一个无约束的优化问题,我们通过对代价函数求偏导就可以得出。
今天要说的问题是有约束条件的优化问题。
2.最优化问题
我们先来区分下各种优化问题
min
f
(
x
)
x
∈
R
\min f(x)\quad x\in\mathbb R
minf(x)x∈R
\quad
无条件优化
s
.
t
.
h
i
(
x
)
=
0
s.t.\quad hi(x) = 0
s.t.hi(x)=0
\quad
有条件优化
\quad
i = 1,2…n.
保证在
h
i
(
x
)
=
0
hi(x) = 0
hi(x)=0的情况下来优化
m
i
n
f
(
x
)
minf(x)
minf(x)达到最小。
s
.
t
.
g
i
(
x
)
<
=
0
s.t.\quad gi(x) <= 0
s.t.gi(x)<=0
\quad
非等式优化
\quad
i = 1,2…n.
为什么是小于等于0:因为总可以通过负号变成小于等于0。
给定很多的条件下去优化
f
(
x
)
f(x)
f(x)
所以今天的思路是:
从无条件优化开始,到等式优化,到不等式优化。
1. 无条件优化
min
f
(
x
)
x
∈
R
\min f(x)\quad x\in\mathbb R
minf(x)x∈R
example:
f
(
x
)
=
x
2
x
∈
R
\ f(x) = x^2\quad x\in\mathbb R
f(x)=x2x∈R
画出图像:
求解无条件的优化问题我们只需另
f
(
x
)
f(x)\quad
f(x)对x的偏导等于0即可,求得x = 0为此函数最小值点。
2.有条件优化
constraint
h
i
(
x
)
=
0
\quad hi(x) = 0
hi(x)=0
example:
min
f
(
x
)
=
x
1
+
x
2
\min f(x) = x1 + x2
minf(x)=x1+x2
s
.
t
.
h
i
(
x
)
=
x
1
2
+
x
2
2
−
2
=
0
s.t.\quad hi(x) = x1^2+x2^2-2 = 0
s.t.hi(x)=x12+x22−2=0
假设这个例子我们是如何求解
f
(
x
)
f(x)
f(x)最小值的。
画图:
在黑色的圆上的点都是我们合理的取值范围,我们需要找到一个点使得
f
(
x
)
f(x)
f(x)最小即可。
为了求解问题我们需要在圆上构造一个小的
δ
x
δx
δx
在圆的一个小范围里我们需要去移动一块,
δ
x
δx
δx就是移动的一小块距离,但是要乘以一个
μ
μ
μ的步长,意思是
δ
x
δx
δx是一个为分出来的很小很小的量,我们需要乘一个步长去使得它移动大一些。
δ
x
δx
δx满足的条件:
-
h
(
x
F
)
+
μ
δ
x
=
0
h(xF)+μδx = 0
h(xF)+μδx=0
\quad
移动一小块距离后我们的点仍然在
h
i
(
x
)
=
0
hi(x) = 0
hi(x)=0上。
h i ( x ) = 0 hi(x) = 0 hi(x)=0为 Feasible Regieon -
f
(
x
F
+
μ
δ
x
)
<
f
(
x
F
)
f(xF+μδx) < f(xF)
f(xF+μδx)<f(xF)
当前移动后位置的点对于 f ( x ) f(x) f(x)上的映射要比之前没移动的位置小。(沿着梯度下降的方向去移动的)
总结:就是在可行域内,每次移动
μ
δ
x
μδx
μδx个单位长度,每次移动后
f
(
x
F
+
μ
δ
x
)
f(xF+μδx)
f(xF+μδx)的值要比
f
(
x
F
)
f(xF)
f(xF)小,迭代到最后就是最好的结果。
移动的这一小块距离就是再算方向上的梯度。
δ
x
δx
δx与
−
∇
f
(
x
)
-∇f(x)
−∇f(x)要有什么关系才行。
要保证
f
(
x
F
+
μ
δ
x
)
<
f
(
x
F
)
f(xF+μδx) < f(xF)
f(xF+μδx)<f(xF)
我们默认
δ
x
∗
(
−
∇
f
(
x
)
)
>
0
δx*(-∇f(x))>0
δx∗(−∇f(x))>0的,代表大致的方向是往一个方向走的。
为什么大于0,因为假如有两个向量a,b他们之间成锐角ab>0,直角ab=0,钝角a*b<0,因此要想方向大致相同不是相反和不动就要相乘>0。
什么时候移动停止:
当
δ
x
δx
δx移动到与
(
−
∇
f
(
x
)
)
(-∇f(x))
(−∇f(x))垂直时停止。梯度等于0,此时我们仔细地看一看约束条件的梯度方向与我们要优化的函数的负梯度方向,就在停止迭代的那个点上,我们会发现,他们两个平行??
因为此时约束条件的梯度方向与
δ
x
δx
δx垂直,
δ
x
δx
δx与
(
−
∇
f
(
x
)
)
(-∇f(x))
(−∇f(x))垂直,因此,他俩平行。
这样我们就可以推出拉格朗日的那个等式,将优化条件用拉格朗日乘子相乘加到目标函数里面去那个等式!!!**这两段是重点。**这样一求偏导不就是我们上面所说的那两个方向相同的表达吗,只不过我们乘了一个拉格朗日乘子,这个怎么解释呢,你想啊,两个方向相同的向量,那就把其中一个伸缩变换一个值,他俩不就相等了,那个值就是拉格朗日乘子啊,还有就是,负号代表方向,我们的方向是确定的,约束条件梯度方向,与目标函数的负梯度方向,这是相同的方向,不可变的,那所以拉格朗日乘子要大于0啊,负了方向就变了,为社么还有等于零,那是后面要说的事。
这样等式就ok了,再加上不等式优化就是kkt问题了。
公式编辑太难编辑了。。。。。。。
后面的整理之后再写啦。
自己看书和视频的一些想法,有不对的地方大家一定要批评指正,不胜感激。