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ė yra iškiloji, jei bet kuriems atkarpa, jungianti ir , taip pat yra . Matematiškai tai reiškia, kad visiems turime
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.
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 ir yra iškilosios aibės. Tada taip pat yra iškiloji. Kad tai pamatytume, panagrinėkime bet kuriuos . Kadangi ir yra iškilosios, atkarpos, jungiančios ir , yra ir , ir . Tai reiškia, kad jos taip pat turi būti , taigi įrodome savo teoremą.
12.2.2 pav. Dviejų iškiliųjų aibių sankirta yra iškiloji.
Šį rezultatą galime sustiprinti be didelių pastangų: turint iškiliąsias aibes , jų sankirta yra iškiloji. Kad pamatytume, jog atvirkštinis teiginys nėra teisingas, panagrinėkime dvi nesikertančias aibes . Dabar pasirinkime ir . Atkarpa 12.2.3 pav., jungianti ir , turi turėti tam tikrą dalį, kuri nėra nei , nei , nes darėme prielaidą, kad . Todėl atkarpa nėra ir , taigi įrodome, kad apskritai iškiliųjų aibių sąjungos nebūtinai yra iškilosios.
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, , dimensijų realiųjų skaičių vektorių aibė, yra iškiloji aibė (juk atkarpa tarp bet kurių dviejų taškų lieka ). Kai kuriais atvejais dirbame su aprėžto ilgio kintamaisiais, pavyzdžiui, spindulio rutuliais, apibrėžtais kaip .
12.2.1.2 Iškiliosios funkcijos
Dabar, kai turime iškiliąsias aibes, galime pristatyti iškiliąsias funkcijas . Duota iškilioji aibė , funkcija yra iškiloji, jei visiems ir visiems turime
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 yra iškilioji aibė, yra būtinas, kad sąlyga turėtų prasmę. Priešingu atveju rezultatas gali būti nepakankamai apibrėžtas.
12.2.1.3 Jenseno nelygybė
Turint iškiliąją funkciją , vienas naudingiausių matematinių įrankių yra Jenseno nelygybė. Ji reiškia iškilumo apibrėžimo apibendrinimą:
kur yra neneigiami realieji skaičiai, kad , o 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
nes . Tai galima naudoti variaciniuose metoduose. Čia paprastai yra nestebimas atsitiktinis kintamasis, yra geriausias spėjimas, kaip jis gali būti pasiskirstęs, o yra skirstinys, iš kurio suintegruotas. Pavyzdžiui, klasterizavime gali būti klasterių žymenys, o 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ą , apibrėžtą iškiliojoje aibėje . Tarkime, kad yra lokalusis minimumas: egzistuoja nedidelė teigiama reikšmė , kad , tenkinantiems , turime .
Tarkime, kad lokalusis minimumas nėra globalusis minimumas: egzistuoja , kuriam . Taip pat egzistuoja , pavyzdžiui, , kad .
Tačiau pagal iškiliųjų funkcijų apibrėžimą turime
o tai prieštarauja mūsų teiginiui, kad yra lokalusis minimumas. Todėl neegzistuoja , kuriam . Lokalusis minimumas taip pat yra globalusis minimumas.
Pavyzdžiui, iškilioji funkcija turi lokalųjį minimumą ties , 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 pasiekia savo minimalią reikšmę intervale . Ir atvirkščiai, funkcija nepasiekia minimalios reikšmės : kai , ji asimptotiškai artėja prie , bet nėra , kuriam .
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ą , apibrėžtą iškiliojoje aibėje , bet kuri žemutinė aibė
yra iškiloji.
Greitai tai įrodykime. Prisiminkite, kad bet kuriems turime parodyti, kad , kol . Kadangi ir , pagal iškilumo apibrėžimą turime
12.2.2.3 Iškilumas ir antrosios išvestinės
Kai tik egzistuoja funkcijos antroji išvestinė, labai lengva patikrinti, ar yra iškiloji. Tereikia patikrinti, ar Hesės matrica yra teigiamai pusiau apibrėžta: , t. y., Hesės matricą pažymėjus , visiems . Pavyzdžiui, funkcija yra iškilioji, nes , t. y. jos Hesės matrica yra vienetinė matrica.
Formaliai, du kartus diferencijuojama vienmatė funkcija yra iškilioji tada ir tik tada, kai jos antroji išvestinė . Bet kuri du kartus diferencijuojama daugiamatė funkcija yra iškilioji tada ir tik tada, kai jos Hesės matrica .
Pirmiausia turime įrodyti vienmatį atvejį. Kad pamatytume, jog iškilumas implikuoja , naudojame faktą, kad
Kadangi antroji išvestinė yra baigtinių skirtumų riba, išplaukia, kad
Kad pamatytume, jog implikuoja, kad yra iškilioji, naudojame faktą, kad implikuoja, jog yra monotoniškai nemažėjanti funkcija. Tegul yra trys taškai, kur ir . Pagal vidutinės reikšmės teoremą egzistuoja ir , kad
Pagal monotoniškumą , taigi
Kadangi , turime
taigi įrodome iškilumą.
Antra, prieš įrodant daugiamatį atvejį mums reikia lemos: yra iškilioji tada ir tik tada, kai visiems
yra iškilioji.
Kad įrodytume, jog iškilumas implikuoja, kad yra iškilioji, galime parodyti, kad visiems (taigi )
Kad įrodytume atvirkštinį teiginį, galime parodyti, kad visiems
Galiausiai, naudodami aukščiau pateiktą lemą ir vienmačio atvejo rezultatą, daugiamatį atvejį galime įrodyti taip. Daugiamatė funkcija yra iškilioji tada ir tik tada, kai visiems funkcija , kur , yra iškilioji. Pagal vienmatį atvejį tai galioja tada ir tik tada, kai () visiems , o tai ekvivalentu 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:
kur yra tikslas, o funkcijos yra apribojimų funkcijos. Kad pamatytume, ką tai reiškia, panagrinėkime atvejį, kai . Šiuo atveju parametrai apriboti vienetiniu rutuliu. Jei antrasis apribojimas yra , tai atitinka visus , 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 išvedimą, aukščiau pateiktą samprotavimą galima išreikšti šiuo balno taško optimizavimo uždaviniu:
Čia kintamieji () yra vadinamieji Lagranžo daugikliai, kurie užtikrina, kad apribojimai būtų tinkamai vykdomi. Jie parenkami tik pakankamai dideli, kad visiems . Pavyzdžiui, bet kuriam , kur natūraliai, galiausiai pasirinktume . Be to, tai yra balno taško optimizavimo uždavinys, kur norima maksimizuoti visų atžvilgiu ir kartu minimizuoti jį atžvilgiu. Yra gausi literatūra, aiškinanti, kaip gauti funkciją . Mūsų tikslams pakanka žinoti, kad 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ą . Užuot tenkinę , tiesiog pridedame prie tikslo funkcijos . 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 , kad užtikrintume, jog neišaugs per daug. Iš optimizavimo su apribojimais požiūrio matome, kad tai užtikrins tam tikram spinduliui . Keisdami reikšmę, galime keisti 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 , taip:
Paaiškėja, kad tai yra projekcija į spindulio rutulį. Bendriau, projekcija į iškiliąją aibę apibrėžiama kaip
tai yra artimiausias taškas taškui .
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 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 į 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
- Tarkime, kad norime patikrinti aibės iškilumą nubrėždami visas linijas tarp aibės taškų ir patikrindami, ar linijos yra aibėje.
- Įrodykite, kad pakanka patikrinti tik ribos taškus.
- Įrodykite, kad pakanka patikrinti tik aibės viršūnes.
- Pažymėkime spindulio rutulį, naudojantį -normą. Įrodykite, kad yra iškiloji visiems .
- Turint iškiliąsias funkcijas ir , parodykite, kad taip pat yra iškilioji. Įrodykite, kad nėra iškilioji.
- Įrodykite, kad softmax funkcijos normalizavimas yra iškilioji funkcija. Konkrečiau, įrodykite iškilumą.
- Įrodykite, kad tiesiniai poerdviai, t. y. , yra iškilosios aibės.
- Įrodykite, kad tiesinių poerdvių su atveju projekciją galima užrašyti kaip su tam tikra matrica .
- Parodykite, kad du kartus diferencijuojamoms iškiliosioms funkcijoms galime rašyti su tam tikru .
- Turint iškiliąją aibę ir du vektorius ir , įrodykite, kad projekcijos niekada nepadidina atstumų, t. y. .
