12.2 Iškilumas

Iškilumas atlieka esminį vaidmenį projektuojant optimizavimo algoritmus. Tai iš esmės lemia faktas, kad tokiame kontekste daug lengviau analizuoti ir testuoti algoritmus. Kitaip tariant, jei algoritmas prastai veikia net iškiliojoje aplinkoje, paprastai neturėtume tikėtis puikių rezultatų ir kitais atvejais. Be to, nors giliojo mokymosi optimizavimo uždaviniai paprastai yra neiškilieji, netoli lokaliųjų minimumų jie dažnai pasižymi kai kuriomis iškiliųjų uždavinių savybėmis. Tai gali lemti įdomius naujus optimizavimo variantus, tokius kaip (Izmailov ir kt., 2018).

%matplotlib inline
from d2l import mxnet as d2l
from mpl_toolkits import mplot3d
from mxnet import np, npx
npx.set_np()
%matplotlib inline
from d2l import torch as d2l
import numpy as np
from mpl_toolkits import mplot3d
import torch
%matplotlib inline
from d2l import tensorflow as d2l
import numpy as np
from mpl_toolkits import mplot3d
import tensorflow as tf

12.2.1 Apibrėžimai

Prieš iškilumo analizę turime apibrėžti iškiliąsias aibes ir iškiliąsias funkcijas. Jos veda prie matematinių įrankių, kurie įprastai taikomi mašininiam mokymuisi.

12.2.1.1 Iškiliosios aibės

Aibės yra iškilumo pagrindas. Paprasčiau tariant, vektorinės erdvės aibė X\mathcal{X} yra iškiloji, jei bet kuriems a,b∈Xa, b \in \mathcal{X} atkarpa, jungianti aa ir bb, taip pat yra X\mathcal{X}. Matematiškai tai reiškia, kad visiems λ∈[0,1]\lambda \in [0, 1] turime

λa+(1−λ)b∈X whenever a,b∈X.\lambda a + (1-\lambda) b \in \mathcal{X} \textrm{ whenever } a, b \in \mathcal{X}.

Tai skamba šiek tiek abstrakčiai. Panagrinėkime 12.2.1 pav.. Pirmoji aibė nėra iškiloji, nes yra atkarpų, kurios joje nesitelpa. Kitos dvi aibės tokios problemos neturi.

Pirmoji aibė yra neiškiloji, o kitos dvi yra iškilosios.

12.2.1 pav. Pirmoji aibė yra neiškiloji, o kitos dvi yra iškilosios.

Patys apibrėžimai nėra ypač naudingi, nebent galite su jais ką nors padaryti. Šiuo atveju galime pažvelgti į sankirtas, kaip parodyta 12.2.2 pav.. Tarkime, kad X\mathcal{X} ir Y\mathcal{Y} yra iškilosios aibės. Tada X∩Y\mathcal{X} \cap \mathcal{Y} taip pat yra iškiloji. Kad tai pamatytume, panagrinėkime bet kuriuos a,b∈X∩Ya, b \in \mathcal{X} \cap \mathcal{Y}. Kadangi X\mathcal{X} ir Y\mathcal{Y} yra iškilosios, atkarpos, jungiančios aa ir bb, yra ir X\mathcal{X}, ir Y\mathcal{Y}. Tai reiškia, kad jos taip pat turi būti X∩Y\mathcal{X} \cap \mathcal{Y}, taigi įrodome savo teoremą.

Dviejų iškiliųjų aibių sankirta yra iškiloji.

12.2.2 pav. Dviejų iškiliųjų aibių sankirta yra iškiloji.

Šį rezultatą galime sustiprinti be didelių pastangų: turint iškiliąsias aibes Xi\mathcal{X}_i, jų sankirta ∩iXi\cap_{i} \mathcal{X}_i yra iškiloji. Kad pamatytume, jog atvirkštinis teiginys nėra teisingas, panagrinėkime dvi nesikertančias aibes X∩Y=∅\mathcal{X} \cap \mathcal{Y} = \emptyset. Dabar pasirinkime a∈Xa \in \mathcal{X} ir b∈Yb \in \mathcal{Y}. Atkarpa 12.2.3 pav., jungianti aa ir bb, turi turėti tam tikrą dalį, kuri nėra nei X\mathcal{X}, nei Y\mathcal{Y}, nes darėme prielaidą, kad X∩Y=∅\mathcal{X} \cap \mathcal{Y} = \emptyset. Todėl atkarpa nėra ir X∪Y\mathcal{X} \cup \mathcal{Y}, taigi įrodome, kad apskritai iškiliųjų aibių sąjungos nebūtinai yra iškilosios.

Dviejų iškiliųjų aibių sąjunga nebūtinai yra iškiloji.

12.2.3 pav. Dviejų iškiliųjų aibių sąjunga nebūtinai yra iškiloji.

Paprastai giliojo mokymosi uždaviniai apibrėžiami iškiliosiose aibėse. Pavyzdžiui, Rd\mathbb{R}^d, dd dimensijų realiųjų skaičių vektorių aibė, yra iškiloji aibė (juk atkarpa tarp bet kurių dviejų taškų Rd\mathbb{R}^d lieka Rd\mathbb{R}^d). Kai kuriais atvejais dirbame su aprėžto ilgio kintamaisiais, pavyzdžiui, rr spindulio rutuliais, apibrėžtais kaip {x∣x∈Rd ir ∥x∥≤r}\{\mathbf{x} | \mathbf{x} \in \mathbb{R}^d \textrm{ ir } \|\mathbf{x}\| \leq r\}.

12.2.1.2 Iškiliosios funkcijos

Dabar, kai turime iškiliąsias aibes, galime pristatyti iškiliąsias funkcijas ff. Duota iškilioji aibė X\mathcal{X}, funkcija f:X→Rf: \mathcal{X} \to \mathbb{R} yra iškiloji, jei visiems x,x′∈Xx, x' \in \mathcal{X} ir visiems λ∈[0,1]\lambda \in [0, 1] turime

λf(x)+(1−λ)f(x′)≥f(λx+(1−λ)x′).\lambda f(x) + (1-\lambda) f(x') \geq f(\lambda x + (1-\lambda) x').

Kad tai iliustruotume, nubraižykime kelias funkcijas ir patikrinkime, kurios tenkina šį reikalavimą. Toliau apibrėžiame kelias funkcijas, tiek iškiliąsias, tiek neiškiliąsias.

f = lambda x: 0.5 * x**2  # Convex
g = lambda x: d2l.cos(np.pi * x)  # Nonconvex
h = lambda x: d2l.exp(0.5 * x)  # Convex

x, segment = d2l.arange(-2, 2, 0.01), d2l.tensor([-1.5, 1])
d2l.use_svg_display()
_, axes = d2l.plt.subplots(1, 3, figsize=(9, 3))
for ax, func in zip(axes, [f, g, h]):
    d2l.plot([x, segment], [func(x), func(segment)], axes=ax)

Kaip ir tikėtasi, kosinuso funkcija yra neiškiloji, o parabolė ir eksponentinė funkcija yra iškilosios. Atkreipkite dėmesį, kad reikalavimas, jog X\mathcal{X} yra iškilioji aibė, yra būtinas, kad sąlyga turėtų prasmę. Priešingu atveju f(λx+(1−λ)x′)f(\lambda x + (1-\lambda) x') rezultatas gali būti nepakankamai apibrėžtas.

12.2.1.3 Jenseno nelygybė

Turint iškiliąją funkciją ff, vienas naudingiausių matematinių įrankių yra Jenseno nelygybė. Ji reiškia iškilumo apibrėžimo apibendrinimą:

∑iαif(xi)≥f(∑iαixi) and EX[f(X)]≥f(EX[X]),(12.2.1)\sum_i \alpha_i f(x_i) \geq f\left(\sum_i \alpha_i x_i\right) \textrm{ and } E_X[f(X)] \geq f\left(E_X[X]\right), \tag{12.2.1}

kur αi\alpha_i yra neneigiami realieji skaičiai, kad ∑iαi=1\sum_i \alpha_i = 1, o XX yra atsitiktinis kintamasis. Kitaip tariant, iškiliosios funkcijos vidurkis yra ne mažesnis už iškiliąją vidurkio funkciją, kur pastaroji paprastai yra paprastesnė išraiška. Kad įrodytume pirmąją nelygybę, pakartotinai taikome iškilumo apibrėžimą vienam sumos nariui vienu metu.

Vienas įprastų Jenseno nelygybės taikymų yra sudėtingesnę išraišką aprėžti paprastesne. Pavyzdžiui, ją galima taikyti iš dalies stebėtų atsitiktinių kintamųjų logaritminiam tikėtinumui. Tai yra, naudojame

EY∼P(Y)[−log⁡P(X∣Y)]≥−log⁡P(X),E_{Y \sim P(Y)}[-\log P(X \mid Y)] \geq -\log P(X),

nes ∫P(Y)P(X∣Y)dY=P(X)\int P(Y) P(X \mid Y) dY = P(X). Tai galima naudoti variaciniuose metoduose. Čia YY paprastai yra nestebimas atsitiktinis kintamasis, P(Y)P(Y) yra geriausias spėjimas, kaip jis gali būti pasiskirstęs, o P(X)P(X) yra skirstinys, iš kurio YY suintegruotas. Pavyzdžiui, klasterizavime YY gali būti klasterių žymenys, o P(X∣Y)P(X \mid Y) yra generatyvinis modelis taikant klasterių žymenis.

12.2.2 Savybės

Iškiliosios funkcijos turi daug naudingų savybių. Toliau aprašome kelias dažniausiai naudojamas.

12.2.2.1 Lokalieji minimumai yra globalieji minimumai

Pirmiausia, iškiliųjų funkcijų lokalieji minimumai yra ir globalieji minimumai. Tai galime įrodyti prieštaros metodu taip.

Panagrinėkime iškiliąją funkciją ff, apibrėžtą iškiliojoje aibėje X\mathcal{X}. Tarkime, kad x∗∈Xx^{\ast} \in \mathcal{X} yra lokalusis minimumas: egzistuoja nedidelė teigiama reikšmė pp, kad x∈Xx \in \mathcal{X}, tenkinantiems 0<∣x−x∗∣≤p0 < |x - x^{\ast}| \leq p, turime f(x∗)<f(x)f(x^{\ast}) < f(x).

Tarkime, kad lokalusis minimumas x∗x^{\ast} nėra globalusis ff minimumas: egzistuoja x′∈Xx' \in \mathcal{X}, kuriam f(x′)<f(x∗)f(x') < f(x^{\ast}). Taip pat egzistuoja λ∈[0,1)\lambda \in [0, 1), pavyzdžiui, λ=1−p∣x∗−x′∣\lambda = 1 - \frac{p}{|x^{\ast} - x'|}, kad 0<∣λx∗+(1−λ)x′−x∗∣≤p0 < |\lambda x^{\ast} + (1-\lambda) x' - x^{\ast}| \leq p.

Tačiau pagal iškiliųjų funkcijų apibrėžimą turime

f(λx∗+(1−λ)x′)≤λf(x∗)+(1−λ)f(x′)<λf(x∗)+(1−λ)f(x∗)=f(x∗),\begin{aligned} f(\lambda x^{\ast} + (1-\lambda) x') &\leq \lambda f(x^{\ast}) + (1-\lambda) f(x') \\ &< \lambda f(x^{\ast}) + (1-\lambda) f(x^{\ast}) \\ &= f(x^{\ast}), \end{aligned}

o tai prieštarauja mūsų teiginiui, kad x∗x^{\ast} yra lokalusis minimumas. Todėl neegzistuoja x′∈Xx' \in \mathcal{X}, kuriam f(x′)<f(x∗)f(x') < f(x^{\ast}). Lokalusis minimumas x∗x^{\ast} taip pat yra globalusis minimumas.

Pavyzdžiui, iškilioji funkcija f(x)=(x−1)2f(x) = (x-1)^2 turi lokalųjį minimumą ties x=1x=1, kuris taip pat yra globalusis minimumas.

f = lambda x: (x - 1) ** 2
d2l.set_figsize()
d2l.plot([x, segment], [f(x), f(segment)], 'x', 'f(x)')

Faktas, kad iškiliųjų funkcijų lokalieji minimumai yra ir globalieji minimumai, yra labai patogus. Tai reiškia, kad minimizuodami funkcijas negalime „įstrigti“. Vis dėlto atkreipkite dėmesį, kad tai nereiškia, jog negali būti daugiau nei vieno globaliojo minimumo ar kad jis apskritai egzistuoja. Pavyzdžiui, funkcija f(x)=max(∣x∣−1,0)f(x) = \mathrm{max}(|x|-1, 0) pasiekia savo minimalią reikšmę intervale [−1,1][-1, 1]. Ir atvirkščiai, funkcija f(x)=exp⁡(x)f(x) = \exp(x) nepasiekia minimalios reikšmės R\mathbb{R}: kai x→−∞x \to -\infty, ji asimptotiškai artėja prie 00, bet nėra xx, kuriam f(x)=0f(x) = 0.

12.2.2.2 Iškiliųjų funkcijų žemutinės aibės yra iškilosios

Iškiliąsias aibes galime patogiai apibrėžti per iškiliųjų funkcijų žemutines aibes. Konkrečiai, turint iškiliąją funkciją ff, apibrėžtą iškiliojoje aibėje X\mathcal{X}, bet kuri žemutinė aibė

Sb=def{x∣x∈X and f(x)≤b}\mathcal{S}_b \stackrel{\textrm{def}}{=} \{x | x \in \mathcal{X} \textrm{ and } f(x) \leq b\}

yra iškiloji.

Greitai tai įrodykime. Prisiminkite, kad bet kuriems x,x′∈Sbx, x' \in \mathcal{S}_b turime parodyti, kad λx+(1−λ)x′∈Sb\lambda x + (1-\lambda) x' \in \mathcal{S}_b, kol λ∈[0,1]\lambda \in [0, 1]. Kadangi f(x)≤bf(x) \leq b ir f(x′)≤bf(x') \leq b, pagal iškilumo apibrėžimą turime

f(λx+(1−λ)x′)≤λf(x)+(1−λ)f(x′)≤b.f(\lambda x + (1-\lambda) x') \leq \lambda f(x) + (1-\lambda) f(x') \leq b.

12.2.2.3 Iškilumas ir antrosios išvestinės

Kai tik egzistuoja funkcijos f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R} antroji išvestinė, labai lengva patikrinti, ar ff yra iškiloji. Tereikia patikrinti, ar ff Hesės matrica yra teigiamai pusiau apibrėžta: ∇2f⪰0\nabla^2f \succeq 0, t. y., Hesės matricą ∇2f\nabla^2f pažymėjus H\mathbf{H}, x⊤Hx≥0\mathbf{x}^\top \mathbf{H} \mathbf{x} \geq 0 visiems x∈Rn\mathbf{x} \in \mathbb{R}^n. Pavyzdžiui, funkcija f(x)=12∥x∥2f(\mathbf{x}) = \frac{1}{2} \|\mathbf{x}\|^2 yra iškilioji, nes ∇2f=1\nabla^2 f = \mathbf{1}, t. y. jos Hesės matrica yra vienetinė matrica.

Formaliai, du kartus diferencijuojama vienmatė funkcija f:R→Rf: \mathbb{R} \rightarrow \mathbb{R} yra iškilioji tada ir tik tada, kai jos antroji išvestinė f′′≥0f'' \geq 0. Bet kuri du kartus diferencijuojama daugiamatė funkcija f:Rn→Rf: \mathbb{R}^{n} \rightarrow \mathbb{R} yra iškilioji tada ir tik tada, kai jos Hesės matrica ∇2f⪰0\nabla^2f \succeq 0.

Pirmiausia turime įrodyti vienmatį atvejį. Kad pamatytume, jog ff iškilumas implikuoja f′′≥0f'' \geq 0, naudojame faktą, kad

12f(x+ϵ)+12f(x−ϵ)≥f(x+ϵ2+x−ϵ2)=f(x).\frac{1}{2} f(x + \epsilon) + \frac{1}{2} f(x - \epsilon) \geq f\left(\frac{x + \epsilon}{2} + \frac{x - \epsilon}{2}\right) = f(x).

Kadangi antroji išvestinė yra baigtinių skirtumų riba, išplaukia, kad

f′′(x)=lim⁡ϵ→0f(x+ϵ)+f(x−ϵ)−2f(x)ϵ2≥0.f''(x) = \lim_{\epsilon \to 0} \frac{f(x+\epsilon) + f(x - \epsilon) - 2f(x)}{\epsilon^2} \geq 0.

Kad pamatytume, jog f′′≥0f'' \geq 0 implikuoja, kad ff yra iškilioji, naudojame faktą, kad f′′≥0f'' \geq 0 implikuoja, jog f′f' yra monotoniškai nemažėjanti funkcija. Tegul a<x<ba < x < b yra trys R\mathbb{R} taškai, kur x=(1−λ)a+λbx = (1-\lambda)a + \lambda b ir λ∈(0,1)\lambda \in (0, 1). Pagal vidutinės reikšmės teoremą egzistuoja α∈[a,x]\alpha \in [a, x] ir β∈[x,b]\beta \in [x, b], kad

f′(α)=f(x)−f(a)x−a and f′(β)=f(b)−f(x)b−x.f'(\alpha) = \frac{f(x) - f(a)}{x-a} \textrm{ and } f'(\beta) = \frac{f(b) - f(x)}{b-x}.

Pagal monotoniškumą f′(β)≥f′(α)f'(\beta) \geq f'(\alpha), taigi

x−ab−af(b)+b−xb−af(a)≥f(x).\frac{x-a}{b-a}f(b) + \frac{b-x}{b-a}f(a) \geq f(x).

Kadangi x=(1−λ)a+λbx = (1-\lambda)a + \lambda b, turime

λf(b)+(1−λ)f(a)≥f((1−λ)a+λb),\lambda f(b) + (1-\lambda)f(a) \geq f((1-\lambda)a + \lambda b),

taigi įrodome iškilumą.

Antra, prieš įrodant daugiamatį atvejį mums reikia lemos: f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R} yra iškilioji tada ir tik tada, kai visiems x,y∈Rn\mathbf{x}, \mathbf{y} \in \mathbb{R}^n

g(z)=deff(zx+(1−z)y) where z∈[0,1]g(z) \stackrel{\textrm{def}}{=} f(z \mathbf{x} + (1-z) \mathbf{y}) \textrm{ where } z \in [0,1]

yra iškilioji.

Kad įrodytume, jog ff iškilumas implikuoja, kad gg yra iškilioji, galime parodyti, kad visiems a,b,λ∈[0,1]a, b, \lambda \in [0, 1] (taigi 0≤λa+(1−λ)b≤10 \leq \lambda a + (1-\lambda) b \leq 1)

g(λa+(1−λ)b)=f((λa+(1−λ)b)x+(1−λa−(1−λ)b)y)=f(λ(ax+(1−a)y)+(1−λ)(bx+(1−b)y))≤λf(ax+(1−a)y)+(1−λ)f(bx+(1−b)y)=λg(a)+(1−λ)g(b).\begin{aligned} &g(\lambda a + (1-\lambda) b)\\ =&f\left(\left(\lambda a + (1-\lambda) b\right)\mathbf{x} + \left(1-\lambda a - (1-\lambda) b\right)\mathbf{y} \right)\\ =&f\left(\lambda \left(a \mathbf{x} + (1-a) \mathbf{y}\right) + (1-\lambda) \left(b \mathbf{x} + (1-b) \mathbf{y}\right) \right)\\ \leq& \lambda f\left(a \mathbf{x} + (1-a) \mathbf{y}\right) + (1-\lambda) f\left(b \mathbf{x} + (1-b) \mathbf{y}\right) \\ =& \lambda g(a) + (1-\lambda) g(b). \end{aligned}

Kad įrodytume atvirkštinį teiginį, galime parodyti, kad visiems λ∈[0,1]\lambda \in [0, 1]

f(λx+(1−λ)y)=g(λ⋅1+(1−λ)⋅0)≤λg(1)+(1−λ)g(0)=λf(x)+(1−λ)f(y).\begin{aligned} &f(\lambda \mathbf{x} + (1-\lambda) \mathbf{y})\\ =&g(\lambda \cdot 1 + (1-\lambda) \cdot 0)\\ \leq& \lambda g(1) + (1-\lambda) g(0) \\ =& \lambda f(\mathbf{x}) + (1-\lambda) f(\mathbf{y}). \end{aligned}

Galiausiai, naudodami aukščiau pateiktą lemą ir vienmačio atvejo rezultatą, daugiamatį atvejį galime įrodyti taip. Daugiamatė funkcija f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R} yra iškilioji tada ir tik tada, kai visiems x,y∈Rn\mathbf{x}, \mathbf{y} \in \mathbb{R}^n funkcija g(z)=deff(zx+(1−z)y)g(z) \stackrel{\textrm{def}}{=} f(z \mathbf{x} + (1-z) \mathbf{y}), kur z∈[0,1]z \in [0,1], yra iškilioji. Pagal vienmatį atvejį tai galioja tada ir tik tada, kai g′′=(x−y)⊤H(x−y)≥0g'' = (\mathbf{x} - \mathbf{y})^\top \mathbf{H}(\mathbf{x} - \mathbf{y}) \geq 0 (H=def∇2f\mathbf{H} \stackrel{\textrm{def}}{=} \nabla^2f) visiems x,y∈Rn\mathbf{x}, \mathbf{y} \in \mathbb{R}^n, o tai ekvivalentu H⪰0\mathbf{H} \succeq 0 pagal teigiamai pusiau apibrėžtų matricų apibrėžimą.

12.2.3 Apribojimai

Viena iš gerų iškiliojo optimizavimo savybių yra ta, kad jis leidžia efektyviai tvarkyti apribojimus. Tai yra, jis leidžia spręsti optimizavimo su apribojimais uždavinius tokios formos:

minimize xf(x) subject to ci(x)≤0 for all i∈{1,…,n},\begin{aligned} \mathop{\textrm{minimize~}}_{\mathbf{x}} & f(\mathbf{x}) \\ \textrm{ subject to } & c_i(\mathbf{x}) \leq 0 \textrm{ for all } i \in \{1, \ldots, n\}, \end{aligned}

kur ff yra tikslas, o funkcijos cic_i yra apribojimų funkcijos. Kad pamatytume, ką tai reiškia, panagrinėkime atvejį, kai c1(x)=∥x∥2−1c_1(\mathbf{x}) = \|\mathbf{x}\|_2 - 1. Šiuo atveju parametrai x\mathbf{x} apriboti vienetiniu rutuliu. Jei antrasis apribojimas yra c2(x)=v⊤x+bc_2(\mathbf{x}) = \mathbf{v}^\top \mathbf{x} + b, tai atitinka visus x\mathbf{x}, esančius pusiaerdvėje. Abiejų apribojimų tenkinimas vienu metu reiškia rutulio skiltelės pasirinkimą.

12.2.3.1 Lagranžianas

Apskritai spręsti optimizavimo su apribojimais uždavinį sunku. Vienas būdas jį spręsti kyla iš fizikos su gana paprasta intuicija. Įsivaizduokite rutulį dėžėje. Rutulys nuriedės į žemiausią vietą, o sunkio jėgos bus subalansuotos su jėgomis, kurias dėžės sienelės gali veikti rutulį. Trumpai tariant, tikslo funkcijos gradientą (t. y. sunkį) atsvers apribojimų funkcijos gradientas (rutulys turi likti dėžėje, nes sienelės „stumia atgal“). Atkreipkite dėmesį, kad kai kurie apribojimai gali būti neaktyvūs: sienelės, kurių rutulys neliečia, negalės veikti rutulio jokia jėga.

Praleidžiant Lagranžiano LL išvedimą, aukščiau pateiktą samprotavimą galima išreikšti šiuo balno taško optimizavimo uždaviniu:

L(x,α1,…,αn)=f(x)+∑i=1nαici(x) where αi≥0.L(\mathbf{x}, \alpha_1, \ldots, \alpha_n) = f(\mathbf{x}) + \sum_{i=1}^n \alpha_i c_i(\mathbf{x}) \textrm{ where } \alpha_i \geq 0.

Čia kintamieji αi\alpha_i (i=1,…,ni=1,\ldots,n) yra vadinamieji Lagranžo daugikliai, kurie užtikrina, kad apribojimai būtų tinkamai vykdomi. Jie parenkami tik pakankamai dideli, kad ci(x)≤0c_i(\mathbf{x}) \leq 0 visiems ii. Pavyzdžiui, bet kuriam x\mathbf{x}, kur ci(x)<0c_i(\mathbf{x}) < 0 natūraliai, galiausiai pasirinktume αi=0\alpha_i = 0. Be to, tai yra balno taško optimizavimo uždavinys, kur norima maksimizuoti LL visų αi\alpha_i atžvilgiu ir kartu minimizuoti jį x\mathbf{x} atžvilgiu. Yra gausi literatūra, aiškinanti, kaip gauti funkciją L(x,α1,…,αn)L(\mathbf{x}, \alpha_1, \ldots, \alpha_n). Mūsų tikslams pakanka žinoti, kad LL balno taškas yra ten, kur pradinis optimizavimo su apribojimais uždavinys išsprendžiamas optimaliai.

12.2.3.2 Baudos

Vienas būdas tenkinti optimizavimo su apribojimais uždavinius bent apytiksliai yra pritaikyti Lagranžianą LL. Užuot tenkinę ci(x)≤0c_i(\mathbf{x}) \leq 0, tiesiog pridedame αici(x)\alpha_i c_i(\mathbf{x}) prie tikslo funkcijos f(x)f(x). Tai užtikrina, kad apribojimai nebus pažeisti per daug.

Iš tikrųjų visą laiką naudojome šį triuką. Panagrinėkime svorių nykimą 3.7 skyrelis. Jame prie tikslo funkcijos pridedame λ2∥w∥2\frac{\lambda}{2} \|\mathbf{w}\|^2, kad užtikrintume, jog w\mathbf{w} neišaugs per daug. Iš optimizavimo su apribojimais požiūrio matome, kad tai užtikrins ∥w∥2−r2≤0\|\mathbf{w}\|^2 - r^2 \leq 0 tam tikram spinduliui rr. Keisdami λ\lambda reikšmę, galime keisti w\mathbf{w} dydį.

Apskritai baudų pridėjimas yra geras būdas užtikrinti apytikslį apribojimų tenkinimą. Praktikoje tai pasirodo esąs daug patikimesnis nei tikslus tenkinimas. Be to, neiškiliesiems uždaviniams daugelis savybių, dėl kurių tikslus metodas iškiliuoju atveju yra toks patrauklus (pvz., optimalumas), nebegalioja.

12.2.3.3 Projekcijos

Alternatyvi apribojimų tenkinimo strategija yra projekcijos. Su jomis taip pat susidūrėme anksčiau, pavyzdžiui, nagrinėdami gradientų apkarpymą 9.5 skyrelis. Ten užtikrinome, kad gradiento ilgis būtų aprėžtas θ\theta, taip:

g←g⋅min(1,θ/∥g∥).\mathbf{g} \leftarrow \mathbf{g} \cdot \mathrm{min}(1, \theta/\|\mathbf{g}\|).

Paaiškėja, kad tai yra g\mathbf{g} projekcija į θ\theta spindulio rutulį. Bendriau, projekcija į iškiliąją aibę X\mathcal{X} apibrėžiama kaip

ProjX(x)=argminx′∈X∥x−x′∥,\textrm{Proj}_\mathcal{X}(\mathbf{x}) = \mathop{\mathrm{argmin}}_{\mathbf{x}' \in \mathcal{X}} \|\mathbf{x} - \mathbf{x}'\|,

tai yra artimiausias X\mathcal{X} taškas taškui x\mathbf{x}.

Iškiliosios projekcijos.

12.2.4 pav. Iškiliosios projekcijos.

Matematinis projekcijų apibrėžimas gali skambėti šiek tiek abstrakčiai. 12.2.4 pav. paaiškina jį kiek aiškiau. Jame turime dvi iškiliąsias aibes – apskritimą ir rombą. Taškai abiejose aibėse viduje (geltoni) projekcijų metu nesikeičia. Taškai už abiejų aibių ribų (juodi) projektuojami į aibių viduje esančius taškus (raudonus), kurie yra artimiausi pradiniams taškams (juodiems). Nors ℓ2\ell_2 rutuliams tai palieka kryptį nepakeistą, apskritai taip būti nebūtinai, kaip matyti rombo atveju.

Vienas iškiliųjų projekcijų panaudojimo būdų yra retų svorių vektorių skaičiavimas. Tokiu atveju svorių vektorius projektuojame į ℓ1\ell_1 rutulį, kuris yra apibendrinta rombo atvejo 12.2.4 pav. versija.

12.2.4 Santrauka

Giliojo mokymosi kontekste pagrindinis iškiliųjų funkcijų tikslas yra motyvuoti optimizavimo algoritmus ir padėti mums juos suprasti išsamiai. Toliau pamatysime, kaip atitinkamai galima išvesti gradientinį nusileidimą ir stochastinį gradientinį nusileidimą.

  • Iškiliųjų aibių sankirtos yra iškilosios. Sąjungos – ne.
  • Iškiliosios funkcijos vidurkis yra ne mažesnis už iškiliąją vidurkio funkciją (Jenseno nelygybė).
  • Du kartus diferencijuojama funkcija yra iškilioji tada ir tik tada, kai jos Hesės matrica (antrųjų išvestinių matrica) yra teigiamai pusiau apibrėžta.
  • Iškiliuosius apribojimus galima pridėti per Lagranžianą. Praktikoje galime juos tiesiog pridėti su bauda prie tikslo funkcijos.
  • Projekcijos atvaizduoja į iškiliosios aibės taškus, artimiausius pradiniams taškams.

12.2.5 Pratimai

  1. Tarkime, kad norime patikrinti aibės iškilumą nubrėždami visas linijas tarp aibės taškų ir patikrindami, ar linijos yra aibėje.
    1. Įrodykite, kad pakanka patikrinti tik ribos taškus.
    2. Įrodykite, kad pakanka patikrinti tik aibės viršūnes.
  2. Pažymėkime Bp[r]=def{x∣x∈Rd ir ∥x∥p≤r}\mathcal{B}_p[r] \stackrel{\textrm{def}}{=} \{\mathbf{x} | \mathbf{x} \in \mathbb{R}^d \textrm{ ir } \|\mathbf{x}\|_p \leq r\} rr spindulio rutulį, naudojantį pp-normą. Įrodykite, kad Bp[r]\mathcal{B}_p[r] yra iškiloji visiems p≥1p \geq 1.
  3. Turint iškiliąsias funkcijas ff ir gg, parodykite, kad max(f,g)\mathrm{max}(f, g) taip pat yra iškilioji. Įrodykite, kad min(f,g)\mathrm{min}(f, g) nėra iškilioji.
  4. Įrodykite, kad softmax funkcijos normalizavimas yra iškilioji funkcija. Konkrečiau, įrodykite f(x)=log⁡∑iexp⁡(xi)f(x) = \log \sum_i \exp(x_i) iškilumą.
  5. Įrodykite, kad tiesiniai poerdviai, t. y. X={x∣Wx=b}\mathcal{X} = \{\mathbf{x} | \mathbf{W} \mathbf{x} = \mathbf{b}\}, yra iškilosios aibės.
  6. Įrodykite, kad tiesinių poerdvių su b=0\mathbf{b} = \mathbf{0} atveju projekciją ProjX\textrm{Proj}_\mathcal{X} galima užrašyti kaip Mx\mathbf{M} \mathbf{x} su tam tikra matrica M\mathbf{M}.
  7. Parodykite, kad du kartus diferencijuojamoms iškiliosioms funkcijoms ff galime rašyti f(x+ϵ)=f(x)+ϵf′(x)+12ϵ2f′′(x+ξ)f(x + \epsilon) = f(x) + \epsilon f'(x) + \frac{1}{2} \epsilon^2 f''(x + \xi) su tam tikru ξ∈[0,ϵ]\xi \in [0, \epsilon].
  8. Turint iškiliąją aibę X\mathcal{X} ir du vektorius x\mathbf{x} ir y\mathbf{y}, įrodykite, kad projekcijos niekada nepadidina atstumų, t. y. ∥x−y∥≥∥ProjX(x)−ProjX(y)∥\|\mathbf{x} - \mathbf{y}\| \geq \|\textrm{Proj}_\mathcal{X}(\mathbf{x}) - \textrm{Proj}_\mathcal{X}(\mathbf{y})\|.

Diskusijos