Учебники

Выпуклая оптимизация — дифференцируемая функция

Пусть S — непустое открытое множество в  mathbbRn, тогда f:S rightarrow mathbbR называется дифференцируемым в  hatx inS, если существует вектор  bigtriangledownf left( hatx right), называемый вектором градиента, и функция  alpha: mathbbRn rightarrow mathbbR такая, что

$ f \ left (x \ right) = f \ left (\ hat {x} \ right) + \ bigtriangledown f \ left (\ hat {x} \ right) ^ T \ left (x- \ hat {x} \ правый) + \ левый \ | x = \ hat {x} \ right \ | \ alpha \ left (\ hat {x}, x- \ hat {x} \ right), \ forall x \ in S $, где

 alpha left( hatx,x hatx right) rightarrow0 bigtriangledownf left( hatx right)= left[ frac частичныйf частичныйx1 frac частичныйf частичныйx2... frac частичныйf частичныйxn right]Tx= hatx

теорема

пусть S — непустое открытое выпуклое множество в  mathbbRn, и пусть f:S rightarrow mathbbR дифференцируемо на S. Тогда f выпукло тогда и только тогда, когда для x1,x2 inS, bigtriangledownf left(x2 right)T left(x1x2 right) leqf left(x1 right)f left(x2 right)

доказательство

Пусть f — выпуклая функция. то есть для x1,x2 inS, lambda in left(0,1 right)

f left[ lambdax1+ left(1 lambda right)x2 right] leq lambdaf left(x1 right)+ left(1 lambda right)f left(x2 право)

 Rightarrowf left[ lambdax1+ left(1 lambda right)x2 right] leq lambda left(f left(x1 right)f left(x2 right) right)+f left(x2 right)

 Rightarrow lambda left(f left(x1 right)f left(x2 right) right) geqf left(x2+ lambda left(x1x2 right) right)f left(x2 right)

 Rightarrow lambda left(f left(x1 right)f left(x2 right) right) geqf left(x2 right)+ bigtriangledownf left(x2 right)T left(x1x2 right) лямбда+

$ \ left \ | \ lambda \ left (x_1-x_2 \ right) \ right \ | \ alpha \ left (x_2, \ lambda \ left (x_1 — x_2 \ right) -f \ left (x_2 \ right) \ right) $

где  alpha left(x2, lambda left(x1x2 right) right) rightarrow0 как  lambda rightarrow0

Разделив  lambda на обе стороны, получим —

f left(x1 right)f left(x2 right) geq bigtriangledownf left(x2 right)T left(x1x2 right)

обратный

Пусть для x1,x2 inS, bigtriangledownf left(x2 right)T left(x1x2 right) leqf left(x1 right)f left(x2 right)

Чтобы показать, что f выпуклая.

Поскольку S выпуклый, x3= lambdax1+ left(1 lambda right)x2 inS, lambda in left(0,1 right)

Так как x1,x3 inS, следовательно,

f left(x1 right)f left(x3 right) geq bigtriangledownf left(x3 right)T left(x1x3 right)

 Rightarrowf left(x1 right)f left(x3 right) geq bigtriangledownf left(x3 right)T left(x1 lambdax1 left(1 lambda) right)x2 right)

 Rightarrowf left(x1 right)f left(x3 right) geq left(1 lambda right) bigtriangledownf left(x3 right)T left(x1x2 право)

Так как, x2,x3 inS, следовательно,

f left(x2 right)f left(x3 right) geq bigtriangledownf left(x3 right)T left(x2x3 right)

 Rightarrowf left(x2 right)f left(x3 right) geq bigtriangledownf left(x3 right)T left(x2 lambdax1 left(1 lambda) right)x2 right)

 Rightarrowf left(x2 right)f left(x3 right) geq left( lambda right) bigtriangledownf left(x3 right)T left(x1x2 верно)

Таким образом, объединяя приведенные выше уравнения, получаем —

 lambda left(f left(x1 right)f left(x3 right) right)+ left(1 lambda right) left(f left(x2 right)f left(x3 right) right) geq0

 Rightarrowf left(x3 right) leq lambdaf left(x1 right)+ left(1 lambda right)f left(x2 right)

теорема

пусть S — непустое открытое выпуклое множество в  mathbbRn, и пусть f:S rightarrow mathbbR дифференцируемо на S, тогда f выпукло на S тогда и только тогда, когда для любой x1,x2 inS, left( bigtriangledownf left(x2 right) bigtriangledownf left(x1 right) right)T left(x2x1 right) geq0

доказательство

пусть f — выпуклая функция, тогда используя предыдущую теорему —

 bigtriangledownf left(x2 right)T left(x1x2 right) leqf left(x1 right)f left(x2 right) и

 bigtriangledownf left(x1 right)T left(x2x1 right) leqf left(x2 right)f left(x1 right)

Сложив два приведенных выше уравнения, получим —

 bigtriangledownf left(x2 right)T left(x1x2 right)+ bigtriangledownf left(x1 right)T left(x2x1 right) leq0

 Rightarrow left( bigtriangledownf left(x2 right) bigtriangledownf left(x1 right) right)T left(x1x2 right) leq0

 Rightarrow left( bigtriangledownf left(x2 right) bigtriangledownf left(x1 right) right)T left(x2x1 right) geq0

обратный

Пусть для любого x1,x2 inS, left( bigtriangledownf left(x2 right) bigtriangledownf left(x1 right) right)T left(x2x1 right) geq0

Чтобы показать, что f выпуклая.

Пусть x1,x2 inS, то есть по теореме о среднем значении  fracf left(x1 right)f left(x2 right)x1x2= bigtriangledownf left(x right),x in left(x1x2 right) Rightarrowx= lambdax1+ left(1 lambda right)x2, поскольку S — выпуклое множество.

 Rightarrowf left(x1 right)f left(x2 right)= left( bigtriangledownf left(x right)T right) left(x1x2 right)

за x,x1 мы знаем —

 left( bigtriangledownf left(x right) bigtriangledownf left(x1 right) right)T left(xx1 right) geq0

 Rightarrow left( bigtriangledownf left(x right) bigtriangledownf left(x1 right) right)T left( lambdax1+ left(1 lambda right)x2x1 right) geq0

 Rightarrow left( bigtriangledownf left(x right) bigtriangledownf left(x1 right) right)T left(1 lambda right) left(x2x1 right)) geq0

 Rightarrow bigtriangledownf left(x right)T left(x2x1 right) geq bigtriangledownf left(x1 right)T left(x2x1 right)

Комбинируя вышеприведенные уравнения, получим —

 Rightarrow bigtriangledownf left(x1 right)T left(x2x1 right) leqf left(x2 right)f left(x1 right)

Следовательно, используя последнюю теорему, f является выпуклой функцией.

Дважды дифференцируемая функция

Пусть S — непустое подмножество в  mathbbRn, и пусть f:S rightarrow mathbbR, тогда f называется дважды дифференцируемым в  barx inS, если существует вектор  bigtriangledownf left( barx right),матрицаnXn H left(x right) (называемая гессианской матрицей) и функция  alpha: mathbbRn rightarrow mathbbR такой, что f left(x right)=f left( barx+x barx right)=f left( barx right)+ bigtriangledownf left( barx right)T left(x barx right)+ frac12 left(x barx right)H left( barx right) left(x barx right)

где  alpha left( barx,x barx right) rightarrowOasx rightarrow barx