惩罚因子(penalty term)与损失函数(loss function)

penalty term和loss function看起来很相似,但其实二者完全不同。

惩罚因子

penalty term的作用就是把约束优化问题转化为非受限优化问题。
比如我们要优化:
m i n f ( x ) = x 2 − 10 x min\quad f(x) = x^2 - 10x minf(x)=x210x s . t . g ( x ) = x − 3 ⩽ 0 s.t.\quad g(x) = x -3 \leqslant 0 s.t.g(x)=x30

我们可以利用惩罚因子,将上述问题转化为非约束优化问题,也就是拿掉 g ( x ) g(x) g(x)的限制。
则函数变为:
m i n P ( x , s , r ) = x 2 − 10 x + s r ϕ ( x − 3 ) min\quad P(x, s, r) = x^2 - 10x + sr\phi(x -3) minP(x,s,r)=x210x+srϕ(x3)
其中, s = s = s= 1或-1; r r r是控制变量,单调增或减; ϕ \phi ϕ是惩罚函数。

如果我们令 s = 1 , r = 1 s = 1, r = 1 s=1,r=1 ϕ = x 2 \phi = x^2 ϕ=x2, 则:
m i n P ( x , s , r ) = x 2 − 10 x + ( x − 3 ) 2 min\quad P(x, s, r) = x^2 - 10x + (x-3)^2 minP(x,s,r)=x210x+(x3)2
最终得到的结果是错的,原因是r太小,如果我们将r=100,最终就能得到对的结果。也就是说,在迭代优化过程中,r是单调变量,如果优化结果不满足约束条件,那么可调节r的值,继续迭代,直至满足为止。

你可能感兴趣的:(优化)