• No results found

ˇReˇsen´ı optimalizaˇcn´ı ´ulohy LASSO pomoc´ı proxim´aln´ıch algoritm˚u

N/A
N/A
Protected

Academic year: 2022

Share "ˇReˇsen´ı optimalizaˇcn´ı ´ulohy LASSO pomoc´ı proxim´aln´ıch algoritm˚u"

Copied!
52
0
0

Loading.... (view fulltext now)

Full text

(1)

Reˇ ˇ sen´ı optimalizaˇ cn´ı ´ ulohy LASSO pomoc´ı proxim´ aln´ıch algoritm˚ u

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: V´aclav Langr

Vedouc´ı pr´ace: doc. Ing. Zbynˇek Koldovsk´y, Ph.D.

(2)

Solution to LASSO Using Proximal Algorithms

Bachelor thesis

Study programme: B2646 – Information Technology Study branch: 1802R007 – Information Technology

Author: V´aclav Langr

Supervisor: doc. Ing. Zbynˇek Koldovsk´y, Ph.D.

(3)
(4)
(5)
(6)

Podˇ ekov´ an´ı

Chtˇel bych podˇekovat vedouc´ımu t´eto pr´ace doc. Ing. Zbyˇnku Kol- dovsk´emu, Ph.D. za velice pˇr´ınosn´e konzultace, rady a trpˇelivost, bez kter´ych by tato pr´ace nevznikla.

(7)

Abstrakt

Tato bakal´aˇrsk´a pr´ace je zamˇeˇrena na rekonstrukci ˇr´ıdk´eho vektoru z jeho komprimovan´eho pozorov´an´ı. Pro rekonstrukci se vyuˇz´ıv´a op- timalizaˇcn´ıho probl´emu LASSO a jeho ˇreˇsen´ı pomoc´ı proxim´aln´ıch algoritm˚u. Po vytvoˇren´ı takov´eho algoritmu, kter´y je schopen p˚uvodn´ı sign´al rekonstruovat, se vyuˇz´ıv´a metody Monte Carlo pro pozorov´an´ı z´avislosti chyby ˇreˇsen´ı na parametru lambda. U takto z´ıskan´eho v´ypoˇctu je zjiˇstˇena kvadratick´a chyba ˇreˇsen´ı LASSO vzhledem k p˚uvodn´ımu vektoru dat.

Vypracov´an´ı bylo rozdˇeleno do nˇekolika navazuj´ıc´ıch ˇc´ast´ı. Prvn´ım a tak´e nejd˚uleˇzitˇejˇs´ım krokem bylo nastudov´an´ı vlastnost´ı pro- xim´aln´ıch algoritm˚u a v´ypoˇcet proxim´aln´ıho oper´atora pˇri r˚uzn´ych vstupn´ıch funkc´ıch. Po takto proveden´e reˇserˇsi proxim´aln´ıch algo- ritm˚u probˇehla tak´e reˇserˇse vlastnost´ı optimalizaˇcn´ı ´ulohy LASSO a jej´ıch variant. V dalˇs´ım kroku bylo moˇzn´e pˇristoupit k imple- mentaci algoritmu v programovac´ım jazyce a v´yvojov´em prostˇred´ı MATLAB. Pˇri postupn´e implementaci byl algoritmus upraven tak, aby vˇzdy zkonvergoval ke spr´avn´emu nebo alespoˇn co nejbliˇzˇs´ımu pˇribliˇzn´emu ˇreˇsen´ı optimalizaˇcn´ıho probl´emu. Z tohoto d˚uvodu byl algoritmus rozˇs´ıˇren o podm´ınky optimality, jeˇz ukonˇcuj´ı v´ypoˇcet pˇri dosaˇzen´ı pomˇernˇe pˇresn´e aproximace. D´ale byl algoritmus rozˇs´ıˇren o v´ypoˇcet dynamick´e velikosti kroku, aby uˇzivatel nemusel zad´avat tento parametr, kter´y velice ovlivˇnuje celkov´y chod algoritmu. S takto pˇripraven´ym algoritmem mohla b´yt pouˇzita metodika Monte Carlo k vytvoˇren´ı numerick´e simulace, jeˇz generuje nekomprimo- van´y ˇr´ıdk´y vektor dat, mˇeˇr´ıc´ı matice s prvky, kter´e maj´ı Gaus- sovo rozloˇzen´ı a parametr lambda v zadan´em rozsahu s logarit- mick´ym rozdˇelen´ım. Z´avˇereˇcnou f´az´ı t´eto pr´ace bylo vytvoˇren´ı me- tod vytv´aˇrej´ıc´ı analytickou pˇredpovˇed’ spolu s numerickou simulac´ı pro reˇserˇsn´ı ´uˇcely.

Z´aroveˇn tato pr´ace navrhuje zp˚usoby, jak m˚uˇze b´yt pokraˇcov´ano s n´astroji, jeˇz byly vytvoˇreny v pr˚ubˇehu jej´ıho zpracov´an´ı a z´ıskat tak pˇresnˇejˇs´ı v´ysledky.

Kl´ıˇcov´a slova: MATLAB, proxim´aln´ı algoritmus, proxim´aln´ı oper´ator, LASSO, Monte Carlo

(8)

Abstract

This bachelor thesis is focused on the reconstruction of a sparse vector from its compressed observation. For the reconstruction, the LASSO problem is used and its solution using proximal algorithms.

After the implementation of an algorithm that is able to restore the original signal, Monte Carlo method is used to analyze the dependence of computation error of the lambda parameter.

Realization was divided into several parts. The very first and the most important step was a study of the properties of proximal algo- rithms and the evaluation of proximal operator for different functi- ons. After the study on proximal algorithms there was also survey on the properties of LASSO and its variants. After that is was possi- ble to implement an algorithm using the MATLAB language and its development environment. The algorithm was modified during the implementation so it always converges to the correct or, at least, approximate solution of LASSO. Because of this reason optimality conditions were added that terminates the optimization process if the approximation is sufficiently accurate. Then a computation of dynamical step size was added that affects the whole algorithm so the user does not have to choose it. This algorithm could be nu- merically analysed using the Monte Carlo approach that generates uncompressed sparse vector of data, random measurement matrix with Gaussian distribution, and a lambda parameter within an in- terval with logarithmic spacing. The last step was to study methods for analytic prediction of the numerical simulation.

At the same time, this bachelor thesis suggests how it can be used to continue with prepared tools that were created during this project and how to arrive at more accurate results.

Keywords: MATLAB, Proximal Algorithm, Proximal Operator, LASSO, Monte Carlo

(9)

Obsah

1 Uvod´ 11

2 Optimalizaˇcn´ı probl´emy 13

2.1 Optimalizaˇcn´ı probl´em LASSO . . . 14

3 Proxim´aln´ı algoritmy 16 3.1 Proxim´aln´ı oper´ator . . . 16

4 Dopˇredno-zpˇetn´y algoritmus 18 4.1 D´elka kroku algoritmu . . . 20

4.2 Podm´ınky optimality . . . 22

4.3 Koneˇcn´a verze algoritmu . . . 24

5 Numerick´a anal´yza chyby ˇreˇsen´ı 25 5.1 Realizace simulace . . . 25

5.2 Z´alohov´an´ı v´ysledk˚u . . . 27

5.3 Upozornˇen´ı uˇzivatele . . . 29

5.4 V´ysledek pro ∥·∥22 LASSO . . . 30

6 V´ysledky 32 6.1 Rekonstrukce dat s vyuˇzit´ım proxim´aln´ıho algoritmu . . . 32

6.2 Rekonstrukce dat pomoc´ı CVX knihoven . . . 34

6.3 Analytick´a pˇredpovˇed’ pro ∥·∥2 LASSO . . . 36

6.4 Aplikace Monte Carlo simulace na minimalizace . . . 38

6.5 Aplikov´an´ı mapovac´ı funkce na analytickou pˇredpovˇed’ ∥·∥2 LASSO . 41 7 Z´avˇer 43 Literatura 45 Pˇr´ılohy 47 Pˇr´ıloha A: Obsah pˇriloˇzen´eho CD . . . 47

Pˇr´ıloha B: Fin´aln´ı podoba algoritmu . . . 49

Pˇr´ıloha C: Zmˇena po jedn´e iteraci . . . 50

Pˇr´ıloha D: Zmˇena po 300 iterac´ıch . . . 51

(10)

Seznam obr´ azk˚ u

3.1 Pr˚ubˇeh zvolen´eho proxim´aln´ıho oper´atoru pro λ = 0,5 . . . 17

4.1 Sch´ema dopˇredno-zpˇetn´eho algoritmu . . . 18

4.2 Uk´azka stavu po pr˚ubˇehu algoritmu pˇri ˇspatnˇe zvolen´em parametru λ 20 4.3 Uk´azka stavu algoritmu pˇri r˚uzn´e volbˇe d´elky kroku . . . 21

4.4 Uk´azka stavu algoritmu s dynamickou d´elkou kroku . . . 22

5.1 Simulace Monte Carlo . . . 26

5.2 Struktura dat . . . 28

5.3 Upraven´a struktura pro pozdˇejˇs´ı vyuˇzit´ı . . . 29

5.4 Simulace pro ∥·∥22 LASSO . . . 31

6.1 Prvn´ı experiment s ∥·∥2 LASSO . . . 33

6.2 Druh´y experiment s ∥·∥2 LASSO . . . 34

6.3 Porovn´an´ı CVX v´ysledku s proxim´aln´ım algoritmem . . . 35

6.4 Porovn´an´ı simulac´ı . . . 39 6.5 Porovn´an´ı analytick´e pˇredpovˇedi s v´ysledkem Monte Carlo simulace . 41

(11)

Seznam vzorc˚ u

Vzorec 1 - Z´akladn´ı mˇeˇren´ı . . . 11

Vzorec 2 - Obecn´y optimalizaˇcn´ı probl´em . . . 14

Vzorec 3 - Obecn´a ´uloha LASSO . . . 14

Vzorec 4 - Konkr´etn´ı ´uloha LASSO . . . 14

Vzorec 5 - Z´apis proxim´aln´ıho algoritmu . . . 16

Vzorec 6 - Mˇekk´e prahov´an´ı . . . 17

Vzorec 7 - Derivace funkce ∥y − A × x∥22 . . . 19

Vzorec 8 - V´ypoˇcet nov´ych dat x . . . 19

Vzorec 9 - V´ypoˇcet d´elky kroku α . . . 21

Vzorec 10 - Podm´ınka optimality pro nenulov´e prvky . . . 23

Vzorec 11 - Podm´ınka optimality pro nulov´e prvky . . . 23

Vzorec 12 - Gradient ∥·∥2 LASSO . . . 32

Vzorec 13 - Funkce pro vytvoˇren´ı analytick´e pˇredpovˇedi . . . 36

Vzorec 14 - Definice subdiferenci´alu . . . 37

Vzorec 15 - Subdiferenci´al ∥·∥1 . . . 37

Vzorec 16 - ´Uprava Vzorec 13 pro pozdˇejˇs´ı vyuˇzit´ı . . . 37

Vzorec 17 - Promˇenn´e analytick´e pˇredpovˇedi pro pˇr´ıkaz ”quadprog“ . . . 38

Vzorec 18 - Normalizovan´a chyba nalezen´eho ˇreˇsen´ı od spr´avn´eho . . . 40

Vzorec 19 - Mapovac´ı funkce . . . 42

(12)

1 Uvod ´

V dneˇsn´ım svˇetˇe, kdy z´ısk´av´ame st´ale v´ıce d˚uleˇzit´ych a velk´ych dat, se projevuje nutnost nˇejak´ym zp˚usobem z´ıskan´a data komprimovat. Z uveden´eho d˚uvodu se tato pr´ace zab´yv´a pr´avˇe komprimovan´ym vzorkov´an´ım dat a n´aslednou rekonstrukc´ı u koncov´eho uˇzivatele.

Komprimovan´e vzorkov´an´ı se v podstatˇe zab´yv´a t´ım, jak rekonstruovat sign´al dat z pozorov´an´ı, kter´e je efektivnˇe zkomprimov´ano, a to pomoc´ı r˚uzn´ych pˇr´ıstup˚u, napˇr. nedeterminovan´ych line´arn´ıch syst´em˚u, rekonstrukˇcn´ıch metod apod.

Bude pro to pouˇzito nov´eho pˇr´ıstupu rekonstrukce p˚uvodn´ıch dat a to pomoc´ı proxim´aln´ıch algoritm˚u, kter´e jsou rychl´e a jednoduch´e na implementaci.

Z´akladn´ı mˇeˇren´ı odpov´ıd´a funkci, viz Vzorec 1, kde jsou p˚uvodn´ı data x0 ∈ Cn transformov´ana mˇeˇr´ıc´ı matic´ı A ∈ Cm·n, kde m je poˇcet ˇr´adk˚u a n poˇcet sloupc˚u matice a v posledn´ı ˇradˇe je nutn´e uvaˇzovat i n´ahodn´a data z ∈ Cm. V t´eto pr´aci z reprezentuje n´ahodn´y ˇsum, kter´y je pˇr´ıtomen pˇri kaˇzd´em mˇeˇren´ı. Takto jsou z´ıskan´a nov´a data y ∈ Cm. V obecn´ych pˇr´ıpadech plat´ı, ˇze m ≥ n, ale v nich nedoch´az´ı k ˇz´adn´e komprimaci dat, pˇr´ıpadnˇe by i vzrostla velikost dat. N´asledn´a rekonstrukce by se tak redukovala pouze na spoˇcten´ı inverzn´ı, v pˇr´ıpadˇe obd´eln´ıkov´e matice pseudo- inverzn´ı, matice A−1 a spoˇcten´ı p˚uvodn´ıch dat x0. Tato bakal´aˇrsk´a pr´ace se zab´yv´a pˇr´ıpady, kdy m < n a nelze tedy pouˇz´ıt pseudoinverzn´ı matici, kter´a existuje, ale nem´a poˇzadovan´e vlastnosti a mus´ı tedy b´yt pouˇzit jin´y pˇr´ıstup.

y = A · x0+ z (Vzorec 1)

Dle pravidel line´arn´ı algebry tak existuje nekoneˇcnˇe mnoho ˇreˇsen´ı a je tud´ıˇz

(13)

nemoˇzn´e v tomto pˇr´ıpadˇe zrekonstruovat p˚uvodn´ı data. Nicm´enˇe ve skuteˇcnosti lze data zrekonstruovat a to za podm´ınky, ˇze p˚uvodn´ı vektor dat x0 je ˇr´ıdk´y, tedy vˇetˇsina prvk˚u z x0 je rovna 0. Pr´avˇe z popsan´eho d˚uvodu jsou kompresn´ı algoritmy, napˇr´ıklad pro kompresi form´atu JPEG, kdy se ukl´adaj´ı pouze nejvˇetˇs´ı koeficienty diskr´etn´ı kosinov´e transformace, tak efektivn´ı. Popsan´a podm´ınka nen´ı jedinou nut- nou k ´uspˇeˇsn´e rekonstrukci. Dalˇs´ı podm´ınkou je spr´avnˇe zvolen´a mˇeˇr´ıc´ı matice A.

Napˇr´ıklad, pˇri volbˇe diagon´aln´ı jednotkov´e matice, by komprimovan´a data y byla z velk´e ˇc´asti nulov´a. Z pˇredestˇren´eho d˚uvodu by pak nebylo moˇzn´e rekonstruo- vat p˚uvodn´ı data. Jelikoˇz je toto t´ema velice studovan´e v celosvˇetov´em mˇeˇr´ıtku, vzniklo mnoho v´yzkum˚u, kter´e se touto problematikou zab´yvaj´ı velice podrobnˇe, napˇr. skripta [7]. Pr´avˇe v´yzkumy ve svˇetˇe ukazuj´ı, ˇze m´a-li doj´ıt k jist´e rekonstrukci, je moˇzn´e vyuˇz´ıt mˇeˇr´ıc´ı matice o n´ahodn´ych prvc´ıch z normovan´eho norm´aln´ıho rozdˇelen´ı, tj. norm´aln´ı rozdˇelen´ı s nulovou stˇredn´ı hodnotou a jednotkov´ym roz- ptylem. V n´asleduj´ıc´ıch kapitol´ach budou probr´any jednotliv´e kroky, kter´e vedou k

´

uspˇeˇsn´e rekonstrukci dat.

(14)

2 Optimalizaˇ cn´ı probl´ emy

Probl´em rekonstrukce p˚uvodn´ıch dat z komprimovan´eho vzorkov´an´ı se vyskytuje v nejr˚uznˇejˇs´ıch oborech. Mezi tyto obory patˇr´ı strojov´e uˇcen´ı, zpracov´an´ı sign´al˚u a dalˇs´ı. Jeden z moˇzn´ych pˇr´ıstup˚u je definovat tzv. optimalizaˇcn´ı probl´em. Optima- lizaˇcn´ı probl´em je takov´y, kdy hled´ame nejlepˇs´ı moˇzn´e ˇreˇsen´ı x ze vˇsech moˇzn´ych a to tak, aby f (x) bylo maxim´aln´ı nebo minim´aln´ı, podle zadan´e ´ulohy. Hled´ame tedy glob´aln´ı maximum, respektive minimum, na pr˚ubˇehu kriteri´aln´ı funkce f (x).

Ze vˇsech moˇzn´ych ˇreˇsen´ı se hled´a pr´avˇe to nejˇridˇs´ı. Pokud by byl sign´al bez jak´ehokoliv ˇsumu, tedy A · x = y, lze pouˇz´ıt min

x∈Rn∥x∥0. Tato norma je speci´aln´ım pˇr´ıpadem normy, jenˇz ud´av´a celkov´y poˇcet nenulov´ych prvk˚u ve vektoru dat x.

Nulov´a proto, ˇze nelze urˇcit hodnotu nult´e odmocniny ze sumy prvk˚u naleˇzej´ıc´ıch vektoru x. Ovˇsem tento probl´em je tak´e moˇzn´e, d´ıky podobn´ym vlastnostem, trans- formovat na ∥x∥1, jej´ıˇz ˇreˇsen´ı je v´yraznˇe jednoduˇsˇs´ı. Pr´avˇe kv˚uli absenci ˇsumu se ale mus´ı d´ale upravovat dan´y probl´em a to na tvar ∥A · x − y∥22 ≤ ϵ a vznikaj´ı tak dvˇe odliˇsn´e optimalizaˇcn´ı ´ulohy, kter´ymi se bude tato pr´ace zab´yvat.

Jsou to ∥A · x − y∥22+ τ · ∥x∥1 a podobn´y probl´em s m´ırnˇe odliˇsn´ymi vlast- nostmi ∥Ax − y∥2+λ·∥x∥1. Prvn´ı z optimalizaˇcn´ıch ´uloh, tedy ∥A · x − y∥22+τ ·∥x∥1, se skl´ad´a z f0(x) = ∥A · x − y∥22 a f1(x) = τ · ∥x∥1 a naz´yv´a se ∥·∥22 LASSO. Druh´a z ´uloh je ∥Ax − y∥2+ λ · ∥x∥1 a je sloˇzena opˇet ze dvou ˇc´ast´ı, f0(x) je shodn´e jako v pˇredeˇsl´em pˇr´ıpadˇe, liˇs´ı se pouze f1(x). Ta pˇredstavuje novou funkci λ · ∥x∥1 a je naz´yv´ana ∥·∥2 LASSO.

Veˇsker´e dalˇs´ı ˇreˇsen´ı je zaloˇzeno na tom, ˇze lze tyto optimalizaˇcn´ı ´ulohy zapsat v neomezen´em tvaru. V tomto tvaru se minimalizuje obecn´y vstup x pˇres souˇcet m konvexn´ıch funkc´ıch f0. . . fm, kter´e n´aleˇz´ı mnoˇzinˇe Rm. Takto zapsan´y probl´em by

(15)

byl definov´an jako:

min

x∈Rnf0(x) + . . . + fm(x) (Vzorec 2)

Nicm´enˇe, jelikoˇz lze uvaˇzovat jakoukoliv v´yˇse zm´ınˇenou funkci, m˚uˇze se vy- skytnout typick´y probl´em. Nˇekter´e funkce nejsou diferencovateln´e. Z popsan´ych odliˇsnost´ı vypl´yv´a, ˇze je potˇreba nahl´ıˇzet na optimalizaˇcn´ı ´ulohy ∥·∥22 a ∥·∥2 LASSO jako na dvˇe ´ulohy s rozd´ıln´ym zp˚usobem ˇreˇsen´ı.

2.1 Optimalizaˇ cn´ı probl´ em LASSO

Jednou z variant jak ˇreˇsit zad´an´ı t´eto bakal´aˇrsk´e pr´ace je pouˇzit´ı minimalizace a to tak, ˇze se vyuˇzije neomezen´eho tvaru optimalizaˇcn´ıho probl´emu pouze s funkcemi f0 a f1. Jedna z tˇechto funkc´ı se nahrad´ı konkr´etn´ım pˇredpisem pro rekonstrukci dat.

Vznikne tak Vzorec 3. Funkce f1(x) ve vzorci je libovoln´a a vol´ı se podle toho, jak´e vlastnosti m´a m´ıt optim´aln´ı ˇreˇsen´ı.

argmin

x

{∥y − A · x∥22+ λ · f1(x)}

(Vzorec 3)

V pˇr´ıpadˇe ˇr´ıdk´eho vektoru se vol´ı takov´a funkce, kter´a zajiˇst’uje ˇr´ıdkost ˇreˇsen´ı.

Jednou z moˇzn´ych funkc´ı, jeˇz m´a tyto vlastnosti, je ∥x∥1a vznik´a tak vztah popsan´y n´ıˇze. Tento nov´y vztah z´aroveˇn ˇreˇs´ı dva probl´emy a to rekonstrukci p˚uvodn´ıch dat x0 a jejich odˇsumnˇen´ı.

argmin

x

{∥y − A · x∥22+ λ · ∥x∥1}

(Vzorec 4)

Jelikoˇz obˇe funkce optimalizaˇcn´ıho probl´emu LASSO obsahuj´ı funkci normy, mus´ı b´yt zm´ınˇena i jej´ı definice, kter´a je pops´ana ∥x∥p = (∑n

i=1|xi|p)1/p. V pˇr´ıpadˇe

∥·∥1 tak z´ısk´ame pouze sumu absolutn´ıch hodnot a vznik´a souˇcasnˇe probl´em, jak

(16)

bylo naznaˇceno v kapitole 2, tedy nediferenciovateln´a funkce. Jak je logick´e z definice absolutn´ı hodnoty a derivace, lze sestrojit nekoneˇcnˇe mnoho teˇcen v bodˇe, kde x = 0 a nelze tak spoˇc´ıtat jej´ı derivaci v dan´em bodˇe. Pro dalˇs´ı zpracov´an´ı je d˚uleˇzit´e uvˇedomˇen´ı si, ˇze funkce nem´a derivaci a proto s n´ı mus´ı b´yt pracov´ano odliˇsn´ym zp˚usobem.

(17)

3 Proxim´ aln´ı algoritmy

Jednou z moˇznost´ı, jak vyˇreˇsit optimalizaˇcn´ı probl´em zm´ınˇen´y v pˇredchoz´ı kapi- tole, je vyuˇz´ıt proxim´aln´ı algoritmy a proxim´aln´ı oper´atory pˇr´ısluˇsej´ıc´ı konkr´etn´ım funkc´ım optimalizaˇcn´ıho probl´emu. Pˇr´ıkladem proxim´aln´ıho algoritmu je:

xn+1 = proxλ·f(xn) (Vzorec 5)

V tomto vzorci je f uzavˇren´a konvexn´ı funkce, kter´a splˇnuje f : Rm → R ∪ {+∞}. Jelikoˇz je proxim´aln´ı algoritmus zaloˇzen na iteraˇcn´ım postupu, je to tak´e zohlednˇeno ve vzorci a to pouˇzit´ım indexu n. Pro n + 1 iteraci plat´ı, ˇze se spoˇc´ıt´a proxim´aln´ı oper´ator z n kroku. Jak je vidno, proxim´aln´ı algoritmy jsou velice v´yhodn´e, pouze pokud je v´ypoˇcet proxim´aln´ıho oper´atoru efektivn´ı a velice rychl´y na v´ypoˇcet. Pokud by nebylo splnˇeno toto krit´erium, pak by se mnoho ˇcasu str´avilo v´ypoˇctem proxim´aln´ıho oper´atoru, kter´y se mus´ı prov´adˇet v kaˇzd´e iteraci algoritmu. Dalˇs´ı v´yhodou tˇechto algoritm˚u je tak´e to, ˇze byly navrˇzeny pro takov´e funkce, kter´e mus´ı b´yt spojit´e, ale nemus´ı b´yt diferencovateln´e. Lze je tak vyuˇz´ıt pro velk´e mnoˇzstv´ı obecn´ych probl´em˚u.

3.1 Proxim´ aln´ı oper´ ator

Jak jiˇz bylo naznaˇceno v ´uvodu t´eto kapitoly, bude vyuˇzito proxim´aln´ıho oper´atoru pro v´ypoˇcet nov´eho kroku proxim´aln´ıho algoritmu. Proxim´aln´ı oper´atory jsou velice d˚uleˇzitou souˇc´ast´ı a to proto, ˇze nahrazuj´ı funkce, kter´e jsou obt´ıˇznˇe ˇreˇsiteln´e nebo by jejich v´ypoˇcet byl velice zdlouhav´y. V pˇr´ıpadˇe hladk´e funkce tedy doch´az´ı k

(18)

postupn´emu nalezen´ı glob´aln´ıho minima.

Jelikoˇz se v konkr´etn´ım pˇredpisu ´ulohy LASSO, viz Vzorec 4, objevuje funkce

∥x∥1, mus´ı b´yt pouˇzit proxim´aln´ı oper´ator naz´yvan´y

”mˇekk´e prahov´an´ı“, dle [4] a [5].

Jedn´a se o velice jednoduchou funkci, kdy se vstupn´ı data porovn´avaj´ı s parametrem a to dle vztahu Vzorec 6.

sof t(x, λ) =

⎪⎪

⎪⎪

⎪⎨

⎪⎪

⎪⎪

⎪⎩

0 x ≤ λ

x − λ x > 0 x + λ x < 0

(Vzorec 6)

Celkovou rychlost oper´atoru tedy urˇcuje zejm´ena parametr λ, o kter´y se vstupn´ı data mˇen´ı v kaˇzd´em kroku. Parametry λ n´am tedy ud´av´a velikost zmˇeny od vstupn´ıch dat x. Pro lepˇs´ı pochopen´ı t´eto funkce je zaˇrazen graf 3.1, ve kter´em se vstupn´ı data z intervalu ⟨−5, 5⟩ zmˇen´ı maxim´alnˇe o parametr λ, jenˇz byl zvolen λ = 0, 5.

−5 −4 −3 −2 −1 0 1 2 3 4 5

−5

−4

−3

−2

−1 0 1 2 3 4 5

input data [−]

output data [−]

original data

data after using proximal operator

Obr´azek 3.1: Pr˚ubˇeh zvolen´eho proxim´aln´ıho oper´atoru pro λ = 0,5

(19)

4 Dopˇ redno-zpˇ etn´ y algoritmus

Jako hlavn´ı algoritmus, na kter´y se tato pr´ace zamˇeˇruje, je dopˇredno-zpˇetn´y algorit- mus. Jeho z´akladn´ı varianta, popsan´a obr´azkem 4.1, pouˇz´ıv´a pevnou d´elku kroku.

Je to iteraˇcn´ı algoritmus, kter´emu pˇred´a uˇzivatel na vstupu komprimovan´a data y, mˇeˇr´ıc´ı matici A, velikost kroku α a kompenzaˇcn´ı parametr λ, pro nˇejˇz chce uˇzivatel z´ıskat konkr´etn´ı v´ysledek.

Compressed data - y M easurem ent matrix - A

C om pute gradient

C om pute new x Lam bda

param eter S tep size - alpha

C om puted data - x

Obr´azek 4.1: Sch´ema dopˇredno-zpˇetn´eho algoritmu

Za pomoci tˇechto ´udaj˚u se v kaˇzd´em kroku poˇc´ıt´a gradient diferencovateln´e ˇc´asti optimalizaˇcn´ı ´ulohy LASSO, v naˇsem pˇr´ıpadˇe je to || y − A · x ||22. Pˇredpis

(20)

zmiˇnovan´eho gradientu je funkce dle Vzorec 7.

∂f0(x) = −2 · AT · (y − A · x) (Vzorec 7)

Pot´e se jiˇz spoˇc´ıt´a nov´y vektor dat x za pomoci proxim´aln´ıho oper´atoru, jehoˇz pr˚ubˇeh byl zn´azornˇen v pˇredchoz´ı kapitole, dle vzorce viz Vzorec 8.

xn+1 = proxλ·α(xn− α · ∂f0(xn)) (Vzorec 8)

V´ypoˇcet proveden´y dle pˇredchoz´ıho kroku d´av´a ˇreˇsen´ı postupnˇe konverguj´ıc´ı k optim´aln´ımu bodu a to za pˇredpokladu, ˇze byl vhodnˇe zvolen kompenzaˇcn´ı parametr λ.

Pro praktickou uk´azku byly vytvoˇreny grafy v obr´azku 4.2. Pro tyto uk´azky byly pouˇzity dva parametry λ, 100 a 0, 1. N´aslednˇe byly n´ahodnˇe vygenerov´any:

vektor dat x, mˇeˇr´ıc´ı matice A a n´ahodn´y ˇsum z. Uveden´e promˇenn´e byly shodn´e pro oba parametry λ. S takto zvolen´ym parametrem je pr˚ubˇeh velice rychl´y a v cca 100 iterac´ıch je algoritmus ukonˇcen. S druhou hodnotou parametru, λ = 0, 1, nen´ı algoritmus tak rychl´y, jako v pˇredchoz´ım pˇr´ıpadˇe, probˇehne cca 1500 iterac´ı algoritmu, ale jsou z´ısk´ana velice pˇresn´a data.

Jak je vidno z pˇredloˇzen´ych graf˚u, je parametr λ velice v´yznamn´y. V prvn´ım pˇr´ıpadˇe, kdy byl parametr zvolen extr´emnˇe nevhodnˇe, algoritmus nedok´azal naj´ıt pˇresn´e ˇreˇsen´ı, jelikoˇz tolerance algoritmu je pˇr´ıliˇs velk´a. Protoˇze algoritmus nedospˇel ke glob´aln´ımu minimu ˇreˇsen´ı, byla z´ısk´ana pouze ˇc´ast p˚uvodn´ıch dat a to s reduko- vanou hodnotou a dokonce pro jeden prvek nezkovergoval v˚ubec k nule. Ve druh´em pˇr´ıpadˇe jiˇz bylo nalezeno daleko pˇresnˇejˇs´ı ˇreˇsen´ı a nedoˇslo k chybn´emu nalezen´ı prvku jako v pˇredchoz´ım pˇr´ıpadˇe.

(21)

0 20 40 60 80 100

−1

−0.5 0 0.5 1 1.5 2

lambda = 100

index of data [−]

value of data [−]

0 20 40 60 80 100

−1

−0.5 0 0.5 1 1.5 2

index of data [−]

value of data [−]

lambda = 0.1

original data computed data

original data computed data

Obr´azek 4.2: Uk´azka stavu po pr˚ubˇehu algoritmu pˇri ˇspatnˇe zvolen´em parametru λ

4.1 D´ elka kroku algoritmu

V´yznamn´ym parametrem je d´elka kroku α. Pro pochopen´ı fungov´an´ı byl nejprve implementov´an algoritmus s pevnou d´elkou kroku. Uk´azalo se, ˇze toto nen´ı zcela optim´aln´ı, jak bude naznaˇceno v n´asleduj´ıc´ıch grafech.

Jak lze vidˇet grafech 4.3 na n´asleduj´ıc´ı str´ance, tak d´elka kroku m´a obrovsk´y dopad, dokonce vˇetˇs´ı neˇz kompenzaˇcn´ı parametr λ. Na lev´em grafu, pro jehoˇz vy- tvoˇren´ı byla pouˇzita pˇrimˇeˇren´a d´elka kroku algoritmu tj. 0, 001, je vidˇet, ˇze algo- ritmus konverguje ke spr´avn´emu ˇreˇsen´ı. Vznik´a ale souˇcasnˇe mnoho nepˇresnost´ı, kter´e se nepodaˇrilo odstranit do konce pr˚ubˇehu algoritmu. V dan´em pˇr´ıpadˇe bylo nastaveno maxim´alnˇe 5000 iterac´ı.

Pro n´azornost jsou uvedeny grafy, kter´e pˇredstavuj´ı v prvn´ım pˇr´ıpadˇe zmˇenu po jedn´e iteraci, jak je zn´azornˇeno v pˇr´ıloze C - obr´azek 2, konkr´etnˇe mezi 30 a 31 iterac´ı. Druh´a uk´azka, viz pˇr´ıloha D - obr´azek 3, pˇredstavuje zmˇenu mezi 100 a 400 iterac´ı.

Ve druh´em pr˚ubˇehu, kde byla pouˇzita stejn´a data jako v prvn´ım grafu, lze

(22)

0 20 40 60 80 100

−1

−0.5 0 0.5 1 1.5 2

Alpha = 0.001

index of data [−]

value of data [−]

0 20 40 60 80 100

−5

−4

−3

−2

−1 0 1 2

3x 1017 Alpha = 0.1

index of data [−]

value of data [−]

original data computed data

original data computed data

Obr´azek 4.3: Uk´azka stavu algoritmu pˇri r˚uzn´e volbˇe d´elky kroku

vidˇet, ˇze se algoritmus chov´a velmi citlivˇe. Probˇehlo pouze deset iterac´ı a ˇreˇsen´ı velice rychle diverguje. Z tohoto d˚uvodu byl p˚uvodn´ı algoritmus rozˇs´ıˇren o dynamick´y v´ypoˇcet velikosti kroku.

Dynamick´a volba kroku vyuˇz´ıv´a pˇr´ıstupu z ˇcl´anku [6], kdy se velikost kroku vypoˇcte pomoc´ı aktu´alnˇe nalezen´ych xn, pˇredchoz´ıch dat xn−1 a mˇeˇr´ıc´ı matice A dle vztahu Vzorec 9.

α = ∥A · (xn− xn−1)∥

∥AT · A · (xn− xn−1)∥ (Vzorec 9)

Novˇe upraven´y algoritmus jiˇz korektnˇe rekonstruuje p˚uvodn´ı data, jak lze tak´e vidˇet na grafu 4.4 a je moˇzn´e pˇristoupit k dalˇs´ı ˇc´asti ˇreˇsen´ı t´eto bakal´aˇrsk´e pr´ace.

(23)

0 10 20 30 40 50 60 70 80 90 100

−1.5

−1

−0.5 0 0.5 1 1.5 2

index of data [−]

value of data [−]

original data computed data

Obr´azek 4.4: Uk´azka stavu algoritmu s dynamickou d´elkou kroku

4.2 Podm´ınky optimality

Algoritmus pˇripraven´y dle popisu v t´eto kapitole byl d´ale rozˇs´ıˇren o podm´ınky op- timality, kter´e zaruˇcuj´ı ukonˇcen´ı algoritmu, pakliˇze je zmˇena rekonstruovan´ych dat dostateˇcnˇe mal´a. Nad´ale uvaˇzujeme podm´ınky pouze pro ∥·∥22 LASSO, jelikoˇz pro

∥·∥2 LASSO tyto podm´ınky neplat´ı. V pˇr´ıpadˇe, ˇze by algoritmus toto neobsahoval, doˇslo by v lepˇs´ım pˇr´ıpadˇe pouze k nezastaven´ı algoritmu a uˇzivatel by pouze pl´ytval v´ypoˇcetn´ım ˇcasem. V horˇs´ıch pˇr´ıpadech by vˇsak mohlo doj´ıt i k divergenci algoritmu z jak´ehokoliv aktu´aln´ıho bodu a to kv˚uli dynamick´e volbˇe kroku.

Dynamick´a volba kroku je zaloˇzena na v´ypoˇctu rozd´ılu aktu´aln´ıho a pˇredchoz´ıho kroku algoritmu. Pokud by tato zmˇena byla pˇr´ıliˇs mal´a, vlivem nepˇresnosti poˇc´ıtaˇce by tak vznikla data obsahuj´ıc´ı pouze 0 a pr´avˇe z popsan´eho d˚uvodu by se z p˚uvodn´ıho v´ypoˇctu, viz Vzorec 9, stalo dˇelen´ı nulou, coˇz je v oboru re´aln´ych ˇc´ısel R nere´aln´a moˇznost. Z toho d˚uvodu by doˇslo k chybˇe algoritmu a doˇslo by ke ztr´atˇe aktu´aln´ıho vypoˇcten´eho sign´alu dat jiˇz pˇri v´ypoˇctu bliˇzˇs´ıho bodu k optim´aln´ımu. Pr´avˇe kv˚uli

(24)

tˇemto pˇr´ıpad˚um bylo vyuˇzito ˇcl´anku [1].

Prvn´ı z podm´ınek je (ani)T · (An · xn − yn) = −λ · zi. Ta se zab´yv´a pouze nenulov´ymi prvky z n kroku promˇenn´e xn. V tomto pˇr´ıpadˇe se rozd´ıl aktu´aln´ıho kroku komprimovan´eho vzorkov´an´ı An·xna p˚uvodn´ıho komprimovan´eho vzorkov´an´ı yn vyn´asoben´y ai, tedy i-t´ymi sloupci matice An, porovn´av´a s parametrem λ, kter´y je nav´ıc upraven o znam´enko zi = sign(xni).

Druh´a z podm´ınek je velice podobn´a, ale zab´yv´a se pouze nulov´ymi prvky. Jej´ı definice je⏐

⏐(ani)T · (An· xn− yn)⏐

⏐< λ. Porovn´av´a se tedy, jestli je absolutn´ı hodnota rozd´ılu aktu´alnˇe nalezen´eho komprimovan´eho vzorkov´an´ı od p˚uvodn´ıho komprimo- van´eho vzorkov´an´ı vyn´asoben´eho i-t´ymi sloupci z matice A, kde i znaˇc´ı indexy nulov´ych prvk˚u aktu´alnˇe nalezen´eho ˇreˇsen´ı xn menˇs´ı neˇz zadan´y parametr λ.

V n´avaznosti na popsan´y probl´em byly vytvoˇreny dalˇs´ı dvˇe funkce pro uve- den´e podm´ınky. Prvn´ı z nich se zab´yv´a pouze nenulov´ymi prvky s indexy i a m´a pˇredpis:

ATi · (A · xn− y) + λ · sign((xn)i) < ϵ (Vzorec 10)

V´ysledek lev´e strany tohoto vzorce je porovn´av´an s uˇzivatelem zadanou hod- notou ϵ, coˇz je velikost odchylky chyby, typicky je to velice mal´e ˇc´ıslo na hranici pˇresnosti datov´eho typu. Tento vzorec byl n´aslednˇe upraven pro n´ami poˇzadovan´e konkr´etn´ı ˇreˇsen´ı, jelikoˇz ˇcl´anek, ze kter´eho bylo ˇcerp´ano, uvaˇzoval i r˚uzn´e parametry λ pro kaˇzd´y prvek p˚uvodn´ıch dat x. Prvn´ı z uveden´ych vzorc˚u pouˇz´ıval pouze nenu- lov´e hodnoty, muselo tedy b´yt vyuˇzito i druh´e varianty vzorce pro nulov´e hodnoty a to ve tvaru:

⏐⏐ATi · (A · xn− y)⏐

⏐< λ (Vzorec 11)

(25)

4.3 Koneˇ cn´ a verze algoritmu

Po vypracov´an´ı tˇechto krok˚u mohl b´yt p˚uvodn´ı algoritmus, jehoˇz diagram byl zn´azornˇen v kapitole 4, upraven do koneˇcn´e podoby. Po pˇrid´an´ı funkˇcn´ıch blok˚u popsan´ych v pˇredchoz´ıch podkapitol´ach, vypad´a jeho diagram tak, jak je zobrazeno v pˇr´ıloze t´eto pr´ace. Koneˇcn´a podoba je navrˇzena tak, aby pˇr´ıpadn´a zmˇena byla snadno pro- vediteln´a a bylo moˇzn´e algoritmus d´ale rozˇsiˇrovat pro jin´e ´uˇcely pˇr´ıpadnˇe i r˚uzn´e varianty optimalizaˇcn´ı ´ulohy LASSO, napˇr. vyuˇz´ıt r˚uzn´ych kriteri´aln´ıch podm´ınek.

Z´aroveˇn se t´ımto rozˇs´ıˇren´ım dos´ahlo toho, ˇze algoritmus vˇzdy konverguje ke spr´avn´e rekonstrukci a v pˇr´ıpadˇe divergence se okamˇzitˇe zastav´ı.

Popsan´e ˇreˇsen´ı je jen d´ılˇc´ım v´ysledkem t´eto pr´ace, dosud nebylo uvaˇzov´ano o z´avislosti kvadratick´e chyby rekonstrukce na zvolen´em parametru λ. Proto bylo nutn´e zab´yvat se vytvoˇren´ım metody, kter´a bude schopn´a prov´est algoritmus na vˇetˇs´ım souboru dat, z´aroveˇn vypoˇcte normovanou kvadratickou chybu a zajist´ı v´ypoˇcet analytick´e pˇredpovˇedi.

(26)

5 Numerick´ a anal´ yza chyby ˇ reˇ sen´ı

Aby bylo moˇzn´e uˇcinit obecnˇe jak´ykoliv z´avˇer, v tomto pˇr´ıpadˇe pozorovat z´avislost parametru λ a kvadratick´e chyby ˇreˇsen´ı optimalizaˇcn´ıho ´ulohy LASSO od p˚uvodn´ıch dat x0 pomoc´ı algoritmu navrˇzen´eho v kapitole 4, je nutn´e vytvoˇrit simulaci. Ta- kov´eto simulace vych´azej´ı z metodiky, kdy se opakovanˇe prov´ad´ı vybran´y algoritmus na vˇetˇs´ım mnoˇzstv´ı vygenerovan´ych dat, kter´a jsou na sobˇe nez´avisl´a a n´asledn´y pr˚umˇer chyby simulace poskytuje n´astroj pro uˇcinˇen´ı z´avˇeru.

V tomto pˇr´ıpadˇe se simuluje opakovan´e generov´an´ı n´ahodn´e mˇeˇr´ıc´ı matice A, pomoc´ı kter´e je z´ısk´an komprimovan´y vektor y, k nˇemuˇz je tak´e pˇriˇcten n´ahodn´y ˇsum z. Tyto dvˇe veliˇciny, tedy A a y, jsou pouˇzity jako vstup pro zvolen´y algo- ritmus spolu s pˇredem dan´ym parametrem λ z vektoru parametr˚u s logaritmick´ym rozloˇzen´ım v dan´em rozsahu, ve kter´em je nutn´e sledovat z´avislost kvadratick´e chyby rekonstruovan´ych dat na uveden´em parametru λ.

5.1 Realizace simulace

Jednou z moˇzn´ych simulac´ı je metoda Monte Carlo. Tato metoda je jednoduch´a na realizaci, poskytuje velice pˇresn´e v´ysledky a z´aroveˇn splˇnuje veˇsker´e n´aroky, kter´e jsou poˇzadov´any od podobn´e simulace. Pr´avˇe proto je vhodn´a pro prvotn´ı testov´an´ı dan´eho algoritmu.

Uveden´a simulace je zaloˇzena, jak jiˇz bylo zm´ınˇeno, na opakovan´em gene- rov´an´ı n´ahodn´ych dat, na kter´ych se prov´ad´ı dan´y algoritmus a jsou takto z´ısk´av´any pr˚ubˇeˇzn´e v´ysledky. Nicm´enˇe d´ılˇc´ı v´ysledky neˇr´ıkaj´ı nic o celkov´e z´avislosti kvadra- tick´e chyby nalezen´eho ˇreˇsen´ı od p˚uvodn´ıch dat na parametru λ a proto jsou d´ılˇc´ı

(27)

v´ysledky zpr˚umˇerov´any. N´asledn´y pr˚umˇer pot´e poskytuje empirick´e pozorov´an´ı. Z tohoto pozorov´an´ı jiˇz lze vyvodit optim´aln´ı parametr λ. Ten pˇredstavuje glob´aln´ı minimum pr˚umˇeru dan´e simulace. Uveden´y parametr λ je hled´an pomoc´ı simulace, protoˇze neexistuje zp˚usob, jak ho urˇcit analyticky.

G enerate lambda param eter

Lam bda parameter

G enerate matrix A

C om pute compressed data y

C om pute m atrix of decompressed data X S tored data X

Obr´azek 5.1: Simulace Monte Carlo

Protoˇze jde pouze o opakovan´e prov´adˇen´ı testovan´eho algoritmu, je tato simu- lace velice jednoduch´a na realizaci. Z´akladn´ı algoritmus lze popsat diagramem 5.1.

Nicm´enˇe jak´akoliv takov´ato simulace m´a obrovskou nev´yhodu a tou je celkov´y ˇcas simulace. Pˇri vˇetˇs´ıch datech m˚uˇze v´ypoˇcet trvat i nˇekolik dn´ı na bˇeˇznˇe dostupn´em v´ypoˇcetn´ım stroji. V pˇr´ıpadˇe uveden´e konkr´etn´ı simulace se 100 prvky λ a 1000 opakov´an´ı trv´a tato simulace pro ∥·∥22 LASSO pˇres jeden´act hodin. Pro porovn´an´ı byl algoritmus upraven pro ∥·∥2 LASSO, kter´e bude pouˇzito v dalˇs´ıch kapitol´ach t´eto pr´ace. Takov´ato simulace jiˇz trv´a pˇres tˇri dny. Jelikoˇz je vˇse realizov´ano pomoc´ı v´yvojov´eho prostˇred´ı a jazyku MATLAB, jednou z moˇznost´ı bylo vytvoˇrit knihovn´ı funkce v jazyku C nebo C++, aby se doc´ılilo zrychlen´ı algoritmu a vyuˇz´ıt t´eto knihovny funkc´ı m´ısto skript˚u v MATLABu.

Obdobou t´eto moˇznosti bylo pouˇzit´ı modifikovan´e verze jazyka C++ s knihov- nami pro programov´an´ı s vyuˇzit´ım velmi v´ykonn´ych grafick´ych karet a na jednot-

(28)

liv´ych vl´aknech prov´adˇet dan´e v´ypoˇcty.

S vyuˇzit´ım architektury CUDA pro grafick´e karty od spoleˇcnosti NVIDIA byl implementov´an jednoduch´y demonstrativn´ı program, nicm´enˇe kv˚uli zaˇc´ateˇcnick´ym zkuˇsenostem s touto architekturou trvalo velice dlouhou dobu jen samotn´e pochopen´ı fungov´an´ı. V simulaci by tedy byly zpracov´av´any vˇsechny parametry λ ve stejn´y okamˇzik pro jednu iteraci simulace a celkov´y ˇcas by byl daleko niˇzˇs´ı neˇz uveden´e ˇcasy v MATLABu. Pokud by se pokraˇcovalo cestou vyuˇzit´ı t´eto architektury, ztratilo by se pˇr´ıliˇs mnoho ˇcasu implementac´ı z´akladn´ıch funkc´ı, kter´e jiˇz jsou pˇripraveny k pouˇzit´ı ve v´yvojov´em prostˇred´ı MATLAB.

Na z´akladˇe uveden´ych zjiˇstˇen´ı bylo pˇristoupeno k dalˇs´ı moˇznosti a to neˇreˇsit celkov´y ˇcas simulace. Proto tedy bylo ˇreˇsen´ı simulace rozˇs´ıˇreno o dalˇs´ı blok, kter´ym se doc´ıl´ı dan´eho poˇzadavku, aby v´ysledky nebyly ztraceny pˇri neˇcekan´ych ud´alostech jako je v´ypadek elektrick´eho proudu nebo p´ad syst´emu.

5.2 Z´ alohov´ an´ı v´ ysledk˚ u

Onou nalezenou moˇznost´ı, jak je zm´ınˇeno v pˇredchoz´ı kapitole, je pr˚ubˇeˇzn´e z´alohov´an´ı v´ysledk˚u. Prvn´ı varianta t´eto funkce byla realizov´ana pomoc´ı jednoduch´e tabulky, kam byl ukl´adan´y pouze pr˚umˇer simulace. Nicm´enˇe s takto z´alohovan´ym v´ysledkem jiˇz nebylo moˇzn´e pokraˇcovat v simulaci. Proto byla vytvoˇrena struktura v MATLABu, viz n´asleduj´ıc´ı diagram 5.2.

Takto pˇripraven´a struktura je jiˇz z´alohov´ana a n´aslednˇe tak´e obnovov´ana ze souboru. Pro tyto ´uˇcely bylo vyuˇzito funkc´ı

”save“ a

”load“, jeˇz jsou souˇc´ast´ı standardn´ı instalace prostˇred´ı MATLAB. Obˇe tyto funkce jsou nav´ıc podm´ınˇeny a to tak, ˇze v pˇr´ıpadˇe funkce

”save“ je do konce simulace ukl´ad´ana i doˇcasn´a iteraˇcn´ı promˇenn´a zn´azorˇnuj´ıc´ı aktu´aln´ı poˇcet opakov´an´ı pouˇz´ıvan´e metody. Jak je jiˇz zˇrejm´e, pr´avˇe tato promˇenn´a by mˇela b´yt tak´e obnovena pˇri naˇc´ıt´an´ı dat.

S takto pˇripraven´ym z´alohov´an´ım zb´yv´a vytvoˇrit jedin´e a to komunikaci s uˇzivatelem. Dan´a komunikace byla vytvoˇrena tak, ˇze skript proch´az´ı um´ıstˇen´ı, kde se nach´az´ı a pokud nalezne soubor s pˇr´ıponou

”.mat“, je spolu s indexem vyps´an

(29)

Obr´azek 5.2: Struktura dat

na obrazovku a je tak vytvoˇreno textov´e menu.

N´aslednˇe uˇzivatel vol´ı soubor, pomoc´ı standardn´ıch vstupn´ıch zaˇr´ızen´ı, se kter´ym chce pracovat s uveden´ım indexu. Po zvolen´ı souboru se obnov´ı uloˇzen´a struktura dat a pokud soubor obsahuje i iteraˇcn´ı promˇennou, tak i ta je obnovena a to t´ım zp˚usobem, ˇze je z´aroveˇn zv´yˇsena o 1 a to proto, ˇze ukl´ad´an´ı struktury prob´ıh´a po pouˇzit´ı algoritmu pro vˇsechny parametry λ, nikoliv pˇred kompletn´ım v´ypoˇctem pro kaˇzd´y parametr λ. Kdyby se zm´ınˇen´a promˇenn´a neinkrementovala, tak by doˇslo ke zbyteˇcn´emu pr˚ubˇehu a v´ypoˇcetn´ı ˇcas by byl pl´ytv´an.

Nicm´enˇe toto nen´ı koneˇcn´a varianta. V dan´y moment totiˇz jeˇstˇe nebyly zˇrejm´e veˇsker´e dalˇs´ı podm´ınky pro vytvoˇren´ı analytick´e pˇredpovˇedi. Pro vytvoˇren´ı ana- lytick´e pˇredpovˇedi je totiˇz d˚uleˇzit´y ˇsum v komprimovan´em sign´alu dat, jak bude vysvˇetleno v dalˇs´ı kapitole. Tento ˇsum mus´ı m´ıt mal´y rozptyl a s takto definova- nou strukturou by jiˇz nebylo moˇzn´e zjistit, jak´y rozptyl byl zvolen. Z pˇredestˇren´eho d˚uvodu doˇslo k rozˇs´ıˇren´ı p˚uvodn´ı struktury dat na novou, dle obr´azku 5.3.

(30)

Obr´azek 5.3: Upraven´a struktura pro pozdˇejˇs´ı vyuˇzit´ı

5.3 Upozornˇ en´ı uˇ zivatele

Dalˇs´ım rozˇs´ıˇren´ım, kter´e bylo realizov´ano, je moˇznost upozornˇen´ı uˇzivatele na do- konˇcen´ı simulace. Jednou z variant bylo vyuˇz´ıt e-mailov´ych sluˇzeb pˇr´ımo v prostˇred´ı MATLABu, nicm´enˇe toto by mˇelo tu nev´yhodu, ˇze by neˇslo spustit souˇcasnˇe v´ıce r˚uzn´ych skript˚u, kter´e by vyuˇz´ıvaly e-mailov´e sluˇzby a pos´ılaly tak informace o sv´em pr˚ubˇehu v´ıce uˇzivatel˚um.

Aby nebylo potˇreba vyuˇz´ıvat prostˇred´ı MATLABu, byl vytvoˇren jednoduch´y skript v jazyku Python a sluˇzby Pushbullet. Jedn´a se o sluˇzbu, kter´a umoˇzˇnuje odes´ılat zpr´avy, pˇr´ıpadnˇe i mal´e soubory, na zaˇr´ızen´ı uˇzivatele, napˇr. mobiln´ı telefon.

Za pomoci dokumentace a rozhran´ı Pushbullet byl vytvoˇren skript, kter´y pˇrij´ım´a na vstupu argumenty pro n´azev a tˇelo zpr´avy. Takto pˇrevzat´e informace se naform´atuj´ı do hlaviˇcky POST dotazu spolu s pˇr´ıstupov´ym tokenem konkr´etn´ıho uˇzivatele. Po- kud je uveden´ym zp˚usobem skript vykon´an, uˇzivatel dostane okamˇzitˇe upozornˇen´ı na vˇsechna sv´a zaˇr´ızen´ı a to bud’ pomoc´ı mobiln´ı aplikace, osobn´ıho poˇc´ıtaˇce nebo webov´eho prostˇred´ı. V´ysledn´y skript, v nˇemˇz uˇzivatel vypln´ı sv˚uj pˇr´ıstupov´y token, m´a n´asleduj´ıc´ı podobu:

(31)

d e f s e n d m e s s a g e ( t i t l e , message ) : method = ”POST”

d a t a = {” t y p e ” : ” n o t e ” , ” t i t l e ” : t i t l e , ” body ” : message } h a n d l e r = u r l l i b 2 . HTTPHandler ( )

o p e n e r = u r l l i b 2 . b u i l d o p e n e r ( h a n d l e r )

u r l = ’ h t t p s : / / a p i . p u s h b u l l e t . com/ v2 / pushes ’

r e q u e s t = u r l l i b 2 . Request ( u r l , d a t a=j s o n . dumps ( d a t a ) ) r e q u e s t . a d d h e a d e r ( ’ Content−Type ’ , ’ a p p l i c a t i o n / j s o n ’ ) r e q u e s t . a d d h e a d e r ( ’ A c c e s s−Token ’ , ’ ’ )

r e q u e s t . g e t m e t h o d = lambda : method o p e n e r . open ( r e q u e s t )

Ve skriptu simulace je jiˇz tedy vytvoˇren samotn´y pˇr´ıkaz pomoc´ı sluˇcov´an´ı ˇretˇezc˚u. Takto pˇripraven´y ˇretˇezec je n´aslednˇe pˇred´an funkci

”system“ jako parametr.

Pomoc´ı dan´e dokumentace pˇripraven´a metoda vˇsak nemus´ı b´yt pouˇzita pouze pro upozornˇen´ı uˇzivatele na chybu, lze ji takt´eˇz pouˇz´ıt i pro odesl´an´ı meziv´ysledk˚u, aby se mohl uˇzivatel rozhodnout, zda m´a simulace smysl ˇci nikoliv.

Pˇr´ıpadnˇe lze zachyt´avat v´yjimky simulace, napˇr.: poˇskozen´y soubor s uloˇzenou strukturou, kter´e nebyly patrn´e pˇri bˇeˇzn´em pouˇzit´ı, upozornit tak vˇcas uˇzivatele na tuto chybu a nepl´ytvat ˇcasem uˇzivatele, kter´y by jinak ˇcekal na konec simulace.

Dalˇs´ım moˇzn´ym rozˇs´ıˇren´ım tohoto skriptu je vyuˇz´ıt odliˇsn´ych metod sluˇzby Pushbullet a doc´ılit toho, ˇze si uˇzivatel bude moci zvolit pouze konkr´etn´ı zaˇr´ızen´ı, na kter´a bude cht´ıt zas´ılat upozornˇen´ı z v´yvojov´eho prostˇred´ı MATLAB.

5.4 V´ ysledek pro ∥·∥

22

LASSO

Se simulac´ı, pˇripravenou dle popis˚u v pˇredchoz´ıch podkapitol´ach, jiˇz lze pˇristoupit k samotn´emu pouˇzit´ı. Na zaˇc´atku simulace je d˚uleˇzit´e zvolit nˇekolik parametr˚u: poˇcet parametr˚u λ a jejich rozsah, zvolit ˇr´ıdk´y vektor x0 s konkr´etn´ım poˇctem nenulov´ych prvk˚u, poˇcet ˇr´adk˚u mˇeˇr´ıc´ıch matic A a tak´e poˇcet opakov´an´ı simulace. Toto nasta- ven´ı je tak´e uloˇzeno ve struktuˇre, jak bylo vysvˇetleno v pˇredchoz´ı podkapitole.

(32)

Po ukonˇcen´ı, ˇcasto velice dlouh´e simulace, je z´ısk´ana empirick´a z´avislost kva- dratick´e chyby nalezen´eho ˇreˇsen´ı od skuteˇcn´ych dat pro kaˇzd´y prvek z vektoru pa- rametr˚u λ.

Obecnˇe lze rozdˇelit hodnoty parametru λ do 3 region˚u. Prvn´ı z nich, tzv. Rof f, definuj´ıc´ı interval ⟨0, λcrit⟩, kde λcrit znaˇc´ı zaˇc´atek postupn´eho kles´an´ı kvadratick´e chyby. V tomto pˇr´ıpadˇe je ˇreˇsen´ı rovno kvadratick´emu ˇreˇsen´ı. Obdobou je region R s intervalem ⟨λmax, ∞⟩, kde λmax ud´av´a, pro kter´y parametr λ je jiˇz chyba maxim´aln´ı moˇzn´a, tedy ˇreˇsen´ı je nulov´e. N´asledn´a chyba je jiˇz konstantn´ı od tohoto parametru, tj. λmax. Posledn´ı z region˚u Ron, nejd˚uleˇzitˇejˇs´ı region, vytv´aˇr´ı interval (λcrit, λmax). V tomto intervalu se jiˇz nach´az´ı glob´aln´ı minimum, tedy parametr λ, pro kter´y je kvadratick´a chyba nejmenˇs´ı moˇzn´a.

Oˇcek´av´ana byla kˇrivka s jedn´ım glob´aln´ım minimem a ostatn´ı hodnoty, z´ıskan´e dle parametru λ, daleko vˇetˇs´ı neˇz je ono glob´aln´ı minimum. A to z d˚uvodu velk´e to- lerance nebo mal´eho kroku algoritmu podle toho, do jak´eho regionu spad´a konkr´etn´ı hodnota parametru λ. D˚uvody tohoto oˇcek´av´an´ı budou pops´any v dalˇs´ı kapitole 6.

Pro ilustraci byla vytvoˇrena simulace pro vektor dat x, pro zvolen´e konkr´etn´ı x0. V prvn´ım pˇr´ıpadˇe nebyl uvaˇzov´an n´ahodn´y ˇsum z. V druh´em pˇr´ıpadˇe jiˇz ˇsum byl uvaˇzov´an a to s rozptylem, kter´y byl roven 10−12. Proto je moˇzn´e z´ıskat vˇetˇsinou kˇrivky, kter´e jsou podobn´e n´asleduj´ıc´ım graf˚um a vych´azej´ı z uveden´ych podm´ınek:

10−5 100

10−4 10−3 10−2 10−1 100 101

Simulation without random noise

value of lambda parameter [−]

squared error [−]

10−5 100

10−5 10−4 10−3 10−2 10−1 100 101 102

Simulation with random noise

value of lambda parameter [−]

squared error [−]

Obr´azek 5.4: Simulace pro ∥·∥22 LASSO

(33)

6 V´ ysledky

Tato kapitola se bude zab´yvat z´ısk´an´ım v´ysledk˚u pomoc´ı naimplementovan´ych algo- ritm˚u, odvozen´ım vzorc˚u pro v´ypoˇcet analytick´e chyby vybran´eho, ale i obdobn´eho, probl´emu a porovn´an´ım takto z´ıskan´ych v´ysledk˚u.

Jelikoˇz odvozen´ı vztahu pro v´ypoˇcet kvadratick´e chyby, nalezen´eho ˇreˇsen´ı od p˚uvodn´ıch dat dle parametru λ pro ∥·∥22 LASSO, je velice obt´ıˇzn´e, je zvolen jin´y pˇr´ıstup. Ten je vyuˇz´ıv´an velice ˇcasto pro zadan´y probl´em i v prac´ıch, kter´e se zab´yvaj´ı uvedenou problematikou detailnˇeji. Tento pˇr´ıstup vyuˇz´ıv´a toho, ˇze lze pouˇz´ıt jinou variantu optimalizaˇcn´ıho probl´emu LASSO a to ∥·∥2 LASSO, s velice podobn´ymi vlastnostmi jako dosud ˇreˇsen´e ∥·∥22 LASSO, pro kterou je anal´yza daleko jednoduˇseji provediteln´a a n´aslednˇe na z´ıskanou anal´yzu aplikovat mapovac´ı funkci.

Nicm´enˇe toto n´as vrac´ı zpˇet na zaˇc´atek zad´an´ı. Jednotliv´e kroky takto definovan´eho pˇr´ıstupu budou pops´any, pro pˇrehlednost, v jednotliv´ych podkapitol´ach.

6.1 Rekonstrukce dat s vyuˇ zit´ım proxim´ aln´ıho algo- ritmu

Velice d˚uleˇzit´ym krokem je samotn´a rekonstrukce dat. Jelikoˇz jiˇz byl implemen- tov´an proxim´aln´ı algoritmus ˇreˇs´ıc´ı obdobnou ´ulohu, je tak´e vyuˇzit jako prvn´ı volba.

Protoˇze je algoritmus vhodnˇe rozˇclenˇen do blok˚u, zmˇena je velice jednoduch´a a spoˇc´ıv´a ve zmˇenˇe gradientu funkce z kapitoly 4 na:

∂f (x) = −AT · (y − A · x)

∥y − A · x∥2 (Vzorec 12)

(34)

Protoˇze pro tento probl´em nemus´ı platit, a tak´e neplat´ı, podm´ınky optima- lity, byly pr´avˇe zm´ınˇen´e funkce, realizuj´ıc´ı takto definovan´e zastavuj´ıc´ı krit´erium, odebr´any. Je vhodn´e pˇripomenout, ˇze podm´ınky optimality, uˇzit´e v kapitole 4.2, jsou definov´any pouze pro ∥·∥22LASSO. N´aslednˇe byl proveden prvn´ı test funkˇcnosti.

Jako prvotn´ı nastaven´ı byl zvolen parametr zn´azorˇnuj´ıc´ı maxim´aln´ı poˇcet iterac´ı a to v hodnotˇe 3000. Jelikoˇz v´ysledek nesplˇnoval oˇcek´av´an´ı, viz n´asleduj´ıc´ı graf, probˇehla podrobnˇejˇs´ı anal´yza chov´an´ı.

0 10 20 30 40 50 60 70 80 90 100

−1.5

−1

−0.5 0 0.5 1 1.5 2

index of data [−]

value of data [−]

original data computed data

Obr´azek 6.1: Prvn´ı experiment s ∥·∥2 LASSO

Z pr˚ubˇehu algoritmu vyplynulo, ˇze se varianta dan´eho algoritmu velice liˇs´ı od dosud ˇreˇsen´e ∥·∥22verze. Pˇredloˇzen´a verze algoritmu nekonverguje pˇr´ımo k ˇreˇsen´ı, ale kmit´a ke spr´avn´emu v´ysledku, a to se st´ale se zmenˇsuj´ıc´ı intenzitou. Nˇekter´e iterace algoritmu jsou tedy zbyteˇcn´e. Z nastal´eho pozorov´an´ı vyˇslo najevo, ˇze algoritmus je v´yraznˇe pomalejˇs´ı a je nutn´e zvolit vˇetˇs´ı poˇcet iterac´ı neˇz dosud. Pro nov´y ex- periment bylo nastaven maxim´aln´ı poˇcet 10000 pr˚ubˇeh˚u algoritmu a byl tak z´ısk´an nov´y graf rekonstrukce vektoru dat:

(35)

0 10 20 30 40 50 60 70 80 90 100

−1.5

−1

−0.5 0 0.5 1 1.5 2

index of data [−]

value of data [−]

original data computed data

Obr´azek 6.2: Druh´y experiment s ∥·∥2 LASSO

6.2 Rekonstrukce dat pomoc´ı CVX knihoven

Jelikoˇz i samotn´y gradient pˇredchoz´ıho algoritmu funkce je pomalu konverguj´ıc´ı, viz Vzorec 12, bylo vyuˇzito open source knihoven CVX pro celkov´e urychlen´ı pr˚ubˇehu simulace. Tyto knihovny jsou prim´arnˇe zamˇeˇreny na ˇreˇsen´ı ´uloh konvexn´ıch optima- lizac´ı.

Po pˇrid´an´ı zm´ınˇen´eho bal´ıku do v´yvojov´eho prostˇred´ı MATLAB lze pouˇz´ıt modelovac´ıho jazyka pro vytvoˇren´ı jednoduch´eho skriptu, jenˇz bude prov´adˇet tot´eˇz, co bylo dosud implementov´ano. Jelikoˇz se jedn´a o snadno pouˇziteln´y modelovac´ı ja- zyk, nen´ı n´aroˇcn´e implementovat skript, kter´y bude minimalizovat vybran´y probl´em a m˚uˇze vypadat n´asledovnˇe:

(36)

y = A∗x + sum ; c v x b e g i n q u i e t

v a r i a b l e x n ( p o c e t p r v k u )

m i n i m i z e ( ( norm ( y−A∗ x n , 2 ) + lambda ∗norm ( x n , 1 ) ) ) c v x e n d

Jak je vidˇet, tak bal´ık knihoven CVX opravdu velice v´yraznˇe zjednoduˇsuje realizaci vybran´eho probl´emu. Vˇse je uvedeno pˇr´ıkazem

”cvx begin“, j´ımˇz zaˇc´ınaj´ı deklarace promˇenn´ych a funkc´ı, spolu s parametrem

”quiet“. Zm´ınˇen´y pˇr´ıkaz je na- staven pr´avˇe takto, aby byl potlaˇcen v´ypis ˇc´asteˇcn´ych v´ysledk˚u bˇehem opakov´an´ı t´eto ˇc´asti skriptu. N´aslednˇe je deklarov´ana promˇenn´a xn, pˇres kterou se minimali- zuje zadan´y probl´em a to o pˇredem dan´em poˇctu prvk˚u. Pot´e se jiˇz pouˇz´ıv´a pˇr´ıkaz

”minimize“, kter´emu se deklaruje funkce, jiˇz chceme minimalizovat. V t´eto funkci se vyuˇz´ıv´a standardn´ı funkce

”norm“ a to jak pro z´apis ∥y − A · xn2, tak pro ∥x∥1, kter´a je jeˇstˇe zvˇetˇsena, resp. zmenˇsena, prvkem z vektoru parametr˚u λ. Vˇse je uzavˇreno druhou polovinou p´arov´eho pˇr´ıkazu a to pˇr´ıkazem

”cvx end“. Po skonˇcen´ı pr˚ubˇehu skriptu z´ısk´ame n´asleduj´ıc´ı graf 6.3.

0 20 40 60 80 100

−1.5

−1

−0.5 0 0.5 1 1.5 2

CVX − 0

index of data [−]

value of data [−]

0 20 40 60 80 100

−1.5

−1

−0.5 0 0.5 1 1.5 2

Unoptimized Forward−Backward − 35

index of data [−]

value of data [−]

original data CVX output data

original data Fw−Bw output data

Obr´azek 6.3: Porovn´an´ı CVX v´ysledku s proxim´aln´ım algoritmem

(37)

Na prvn´ı pohled se jedn´a o prakticky totoˇzn´a data. Nicm´enˇe pˇri podrobnˇejˇs´ım zkoum´an´ı, bylo zjiˇstˇeno, ˇze kaˇzd´y z prvk˚u se liˇs´ı od p˚uvodn´ıho o velice malou kon- stantu, v ˇr´adech 10−14, coˇz je v toleranci pˇredpokl´adan´e chyby ˇreˇsen´ı. I pˇres tento miniaturn´ı rozd´ıl je ale ˇreˇsen´ı zaloˇzen´e na knihovn´ach CVX v´yraznˇe rychlejˇs´ı. Pro toto ˇreˇsen´ı trvala simulace maxim´alnˇe 8 hodin v´ypoˇcetn´ıho ˇcasu, kdeˇzto pro ∥·∥2 LASSO trvala simulace se stejn´ymi daty v´ıce neˇz 24 hodin.

6.3 Analytick´ a pˇ redpovˇ ed’ pro ∥·∥

2

LASSO

Nicm´enˇe, tyto kroky jsou opˇet jen empirick´ym pozorov´an´ım, ze kter´eho nevypl´yv´a teoretick´a z´avislost kvadratick´e chyby nalezen´eho ˇreˇsen´ı pomoc´ı optimalizaˇcn´ı ´ulohy

∥·∥2 LASSO od spr´avn´ych dat x0 na parametru λ. Tuto chybu analyzoval ve sv´e pr´aci Babak Hassibi. Z uveden´eho d˚uvodu tedy mus´ı b´yt sestavena prvn´ı simulace, kter´a bude realizovat pr´avˇe poˇzadovanou analytickou pˇredpovˇed’.

Ze ˇcl´anku [3], vytvoˇren´eho kolektivem autor˚u pod veden´ım profesora B. Has- sibiho z Caltechu, vypl´yv´a, jak vytvoˇrit analytickou pˇredpovˇed’ pro pr˚umˇernou normovanou kvadratickou odchylku ˇreˇsen´ı LASSO od skuteˇcn´eho x0. Profesor B.

Hassibi zat´ım odvodil pˇribliˇzn´y analytick´y vzorec. V´ysledkem je vztah m−DDf(x0,λ)

f(x0,λ), kde D(x0, λ) znaˇc´ı E [dist2(h, λ · ∂f1(x))]. Jelikoˇz vˇsak Df(x0, λ) je n´aroˇcn´e spoˇc´ıtat analyticky, vyuˇz´ıv´a se numerick´e moˇznosti. Ta spoˇc´ıv´a v hled´an´ı pr˚umˇeru hodnot, z´ıskan´ych dle Vzorec 13, jenˇz urˇcuje, ˇze pro dostateˇcn´y poˇcet opakov´an´ı s n´ahodn´ym vektorem h, jehoˇz prvky jsou z Gaussova rozloˇzen´ı s nulovou stˇredn´ı hodnotou a jed- notkov´ym rozptylem, lze z´ıskat analytickou pˇredpovˇed’ pro konkr´etn´ı parametr λ.

Reˇsen´ı t´ˇ eto minimalizace je ´ulohou kvadratick´eho programov´an´ı a lze tak vyuˇz´ıt pˇr´ıkazu

”quadprog“, ve standardn´ı instalaci MATLABu a to na funkci:

min

s∈∂f (x0) {∥h − λ · s∥2}

(Vzorec 13)

Jak jiˇz bylo pˇripomenuto v kapitole 2, tato funkce nem´a vlastn´ı derivaci a tud´ıˇz mus´ı b´yt pouˇzit subdiferenci´al k minimalizaci celkov´e hodnoty. Definice sub-

(38)

diferenci´alu je n´asleduj´ıc´ı:

∂F (x) ={y ∈ RN : F (z) ≤ F (x) + ⟨y, z − x⟩ , z ∈ RN}

(Vzorec 14)

Vypl´yv´a z n´ı, ˇze je tˇreba p˚uvodn´ı funkci ∥x∥1upravit na skal´arn´ı souˇcin s·xT, kter´y jiˇz lze derivovat. Subdiferenci´al pro zm´ınˇenou funkci je:

s =

⎪⎪

⎪⎪

⎪⎨

⎪⎪

⎪⎪

⎪⎩

si = 1 i ∈ s+(x0) sj = −1 j ∈ s(x0)

−1 ≤ sk ≤ 1 k ∈ s0(x0)

(Vzorec 15)

V´yˇse zm´ınˇen´a struktura rozdˇeluje vektor s na tˇri ˇc´asti a to na: kladnou ˇc´ast, z´apornou ˇc´ast a nulovou ˇc´ast, proto je vyuˇzito spodn´ıch index˚u

”+“,

”-“ a

”0“ u oznaˇcen´ı jednotliv´ych ˇc´ast´ı.

S takto definovan´ymi funkcemi jiˇz lze pˇristoupit k samotn´e implementaci.

Jak jiˇz bylo ˇreˇceno, vyuˇzije se pˇr´ıkazu

”quadprog“, protoˇze samotn´y probl´em je tˇreba ˇreˇsit jako ´ulohu kvadratick´eho programov´an´ı. P˚uvodn´ı funkce mus´ı b´yt tedy upravena do pˇr´ıkazem definovan´eho stavu. Po proveden´ych ´uprav´ach je tak z´ısk´an tvar:

∥h − λ · s∥2 = 1

2· 2 · λ2· sT · I · s − 2 · λ · hT · s + hT · h (Vzorec 16)

Jak je patrn´e, tak v´yˇse uveden´y vzorec obsahuje tak´e konstatn´ı ˇclen, a to hT · h. Ten m˚uˇze b´yt pˇri samotn´em pr˚ubˇehu anal´yzy zanedb´an. Jeho uvaˇzov´an´ı ni- jak neovlivn´ı celkov´y v´ysledek pˇredpovˇedi. Aby bylo v˚ubec moˇzno vyuˇz´ıt pˇr´ıkazu

”quadprog“, mus´ı b´yt vytvoˇreny promˇenn´e H a f dle dokumentace tohoto pˇr´ıkazu.

Z´ısk´ame tak n´asleduj´ıc´ı tvar promˇenn´ych, kter´y jiˇz lze pouˇz´ıt jako parametr

”quad-

(39)

prog“:

H = 2 · λ2· sT · I f = −2 · λ · hT

(Vzorec 17)

Nicm´enˇe, jelikoˇz subdiferenci´al je definov´an pouze pro hodnoty [−1, 1], je nutn´e vyuˇz´ıt tak´e omezuj´ıc´ı podm´ınky tohoto pˇr´ıkazu a to dle Vzorec 15. Pot´e se jiˇz provede Monte Carlo simulace na zhotoven´em algoritmu a pr˚umˇer d´ılˇc´ıch v´ysledk˚u spolu s funkc´ı z ˇcl´anku [3], tedy f (a) : log m−aa kde a znaˇc´ı pr˚umˇer v´ysledk˚u pro konkr´etn´ı parametr λ a m znaˇc´ıc´ı poˇcet ˇr´adk˚u mˇeˇr´ıc´ı matice A, poskytuje analytic- kou pˇredpovˇed’.

6.4 Aplikace Monte Carlo simulace na minimalizace

Dalˇs´ı ned´ılnou souˇc´ast´ı je vyuˇzit´ı jiˇz zhotoven´e analytick´e pˇredpovˇedi a pouˇzit´ı promˇenn´ych, kter´e se nemˇen´ı, mezi kter´e patˇr´ı: parametry λ a vstupn´ı vektor dat x. S pˇripraven´ymi promˇenn´ymi jiˇz je moˇzn´e realizovat jednotliv´e simulace. Jelikoˇz hlavn´ı t´ema t´eto bakal´aˇrsk´e pr´ace jsou proxim´aln´ı algoritmy, bude se jimi tak´e zaˇc´ınat.

Pro verzi simulace s vyuˇzit´ım proxim´aln´ıho algoritmu, kter´y ˇreˇs´ı ∥·∥2 LASSO, je realizace velmi jednoduch´a. Jelikoˇz jiˇz byla obdobn´a simulace realizov´ana, viz 5, a z´aroveˇn byla navrˇzena tak, aby ji ˇslo jednoduˇse modifikovat, staˇcilo pouze pouˇz´ıt nov´y skript, ˇreˇs´ıc´ı ∥·∥2 LASSO, a dosadit ho na patˇriˇcn´e m´ısto ve skriptu simulace.

Kv˚uli vˇetˇs´ımu mnoˇzstv´ı iterac´ı vˇsak zmiˇnovan´a simulace prob´ıh´a velmi dlouhou dobu, v nejhorˇs´ıch pˇr´ıpadech pro 1000 opakov´an´ı a 100 parametr˚u λ trv´a pr˚ubˇeh minim´alnˇe tˇri dny.

Jelikoˇz druh´a varianta vyuˇz´ıv´a knihoven CVX, staˇc´ı vytvoˇrit skript realizuj´ıc´ı rekonstrukci dat a pouˇz´ıt ho na dan´em m´ıstˇe. Bylo vyuˇzito stejn´eho popisu jako v kapitole 5 a tedy v´ysledn´a podoba skriptu, prov´adˇej´ıc´ı tuto simulaci, m´a n´asleduj´ıc´ı podobu:

f o r i = 1 : p o c e t o p a k o v a n i

(40)

A = randn ( p o c e t r a d k u , p o c e t p r v k u ) ;

n o i s e = randn ( p o c e t r a d k u , 1 ) ∗ v a r i a n c e ; y = A∗x + n o i s e ;

f o r j = 1 : p o c e t l a m b d a c v x b e g i n q u i e t

v a r i a b l e x n ( p o c e t p r v k u )

m i n i m i z e ( ( norm ( y−A∗ x n , 2 ) + lambda ( j ) ∗ norm ( x n , 1 ) ) ) v y s l e d k y ( i , j ) = n s e ( x n ) ;

c v x e n d end

end

Pro takto definovan´e simulace z´ısk´ame grafy z obr´azku 6.4.

10−5 100

101 102 103 104 105

Proximal algorithm simulation

lambda parameter [−]

NSE [−]

10−5 100

100 101 102 103

CVX simulation

lambda parameter [−]

NSE [−]

Obr´azek 6.4: Porovn´an´ı simulac´ı

Je vidˇet, ˇze grafy jsou odliˇsn´e a to z toho d˚uvodu, jenˇz byl naznaˇcen v 6.1.

Proxim´aln´ı algoritmus je v´yraznˇe pomalejˇs´ı pro ∥·∥2LASSO neˇz pro zadan´y probl´em, tedy ∥·∥22 LASSO. Ze zjiˇstˇen´ych poznatk˚u n´aslednˇe vypl´yv´a, ˇze velice d˚uleˇzit´ym

(41)

Pˇri bliˇzˇs´ım analyzov´an´ı bylo zjiˇstˇeno, ˇze pro velmi mal´e parametry λ algorit- mus plnˇe nezkovergoval ke spr´avn´emu ˇreˇsen´ı. Pˇr´ıˇcinou je v´ypoˇcet dynamick´e d´elky kroku z kapitoly 4, kter´y byl pouˇzit shodn´y jako pro ∥·∥22 LASSO a m˚uˇze zna- telnˇe vych´ylit pˇredpokl´adan´e hodnoty. Odliˇsnost je d´ana tak´e t´ım, ˇze je tato d´elka kroku pouˇzita i v proxim´aln´ı oper´atoru. Funkce, kter´a vypoˇc´ıt´av´a d´elku kroku vrac´ı v´ysledek v tis´ıcin´ach. N´aslednˇe je tato hodnota v proxim´aln´ım oper´atoru, do kter´eho vstupuje, vyn´asobena parametrem λ v ˇr´adech miliontin, vznikne tak velice mal´e ˇc´ıslo na, resp. za pˇresnost´ı datov´eho typu. S takto z´ıskan´ym parametrem je n´aslednˇe pro- veden v´ypoˇcet a zmˇena je t´emˇeˇr nulov´a a to pro region Rof f.

Pot´e se jiˇz vypoˇcte normalizovan´a chyba, dle Vzorec 18, kter´a je vydˇelena rozptylem σ n´ahodn´eho ˇsumu z. Jelikoˇz algoritmus nezkonverguje ke spr´avn´emu ˇreˇsen´ı, a to v regionech Rof f a R, vznik´a vysok´a chyba, kter´a je n´aslednˇe jeˇstˇe zv´yraznˇena t´ımto parametrem σ.

N SE = ∥y − A · x∥22

σ (Vzorec 18)

Jednou z moˇzn´ych variant, jak tuto chybu podstatnˇe zmenˇsit, je inicializace nult´eho kroku algoritmu, tedy promˇenn´e xn. Zat´ım se vˇzdy pouˇz´ıval vektor nul a v pˇr´ıpadˇe prvotn´ıho odhadu, by se tak chyba velice redukovala.

Ze zm´ınˇen´eho d˚uvodu bude v n´asleduj´ıc´ıch kroc´ıch pouˇzit odhad analytick´e pˇredpovˇedi z´ıskan´y za pomoci knihoven CVX, jenˇz je daleko pˇresnˇejˇs´ı neˇz pˇredpovˇed’

z´ıskan´a pomoc´ı uveden´e verze proxim´aln´ıho algoritmu ˇreˇs´ıc´ı ∥·∥2 LASSO a tud´ıˇz je vhodnˇejˇs´ı pro dalˇs´ı zpracov´an´ı.

Pro prvotn´ı otestov´an´ı byla Monte Carlo simulace spuˇstˇena bez dalˇs´ıch opti- malizac´ı, napˇr. odhadu nult´eho kroku algoritmu, nov´ych podm´ınek optimality, apod.

Graf t´eto simulaci lze vidˇet na 6.5.

Takto z´ıskan´y odhad analytick´e pˇredpovˇedi je upraven dle vzorce uveden´eho v podkapitole 6.3. D´ale se z´ıskan´y vektor normalizuje a to pomoc´ı funkce log. Je- likoˇz vˇsak mohou nastat pˇr´ıpady, kdy m < a, je d˚uleˇzit´e zm´ınit, ˇze tato analytick´a kˇrivka by se mˇela skl´adat ze 3 r˚uzn´ych funkc´ıch pro tzv. regiony z´ajmu. Jelikoˇz

(42)

10−6 10−4 10−2 100 102 104 10−1

100 101 102 103

lambda parameter [−]

NSE [−]

analytic prediction CVX simulation

Obr´azek 6.5: Porovn´an´ı analytick´e pˇredpovˇedi s v´ysledkem Monte Carlo simulace

je nejd˚uleˇzitˇejˇs´ı oblast´ı z´ajmu region, kde je ono hledan´e minimum, nebyly ostatn´ı regiony nad´ale uvaˇzov´any.

Jak lze vidˇet z grafu, minimum simulace je skuteˇcnˇe na shodn´em m´ıstˇe s minimem anal´yzy. Hodnota minima je vˇsak daleko vˇetˇs´ı neˇz u analytick´e pˇredpovˇedi.

Protoˇze proveden´ı odhadu anal´yzy nebylo prvotn´ım z´amˇerem t´eto pr´ace, postaˇcilo pouze shodn´e um´ıstˇen´ı minima k tomu, aby dalˇs´ı zpˇresˇnov´an´ı metod mohlo b´yt jiˇz souˇc´ast´ı pˇr´ıˇst´ı pr´ace.

6.5 Aplikov´ an´ı mapovac´ı funkce na analytickou pˇ redpovˇ ed’

∥·∥

2

LASSO

Vzhledem k tomu, ˇze jsou v t´eto pr´aci zm´ınˇeny dvˇe optimalizaˇcn´ı ´ulohy vyuˇz´ıvaj´ıc´ı parametry λ, je d˚uleˇzit´e je d˚uslednˇe odliˇsovat a to pro kaˇzdou variantu zadan´eho probl´emu. Proto bude nad´ale pouˇz´ıv´an parametr τ pro ∥·∥22 LASSO a pro ∥·∥2 LASSO bude parametr λ zachov´an. V obecn´ych pˇr´ıpadech totiˇz neplat´ı, ˇze τ = λ.

Proto mus´ı b´yt pouˇzita funkce, konkr´etnˇe mapovac´ı funkce, kter´a pˇrevede p˚uvodn´ı

(43)

parametry λ, jeˇz byly vyuˇzity pro vytvoˇren´ı odhadu analytick´e pˇredpovˇedi, na nov´e parametry τ . Ty se pouˇzij´ı pro v´ypoˇcet empirick´eho pozorov´an´ı v Monte Carlo simulaci. Protoˇze je tato pr´ace zaloˇzena na ˇcl´anku [3], bylo tak´e vyuˇzito mapovac´ı funkce, kter´a je zde pouˇzita. Pˇredpis t´eto funkce je n´asleduj´ıc´ı:

τ = λ · N SE (Vzorec 19)

V uveden´em vzorci se tedy p˚uvodn´ı parametry λ n´asob´ı s normalizovanou chybou analytick´e pˇredpovˇedi, jej´ıˇz pˇredpis je zn´azornˇen v pˇredchoz´ı podkapitole, viz Vzorec 18. S nov´ymi parametry τ je moˇzn´e pˇrej´ıt k v´ypoˇctu numerick´e simulace pro ∥·∥22 LASSO a pozorovat tak z´avislost kvadratick´e chyby nalezen´eho ˇreˇsen´ı od p˚uvodn´ıch dat na nov´em parametru τ .

References

Related documents

Po vytvoˇ ren´ı jednoduch´ eho regresn´ıho modelu metodou nejmenˇ s´ıch ˇ ctverc˚ u zaˇ c´ın´ a f´ aze statistick´ e verifikace a dalˇ s´ıho testov´ an´ı hypot´ ez

Na z´ akladˇ e minim a maxim porovn´ avan´ ych element˚ u se vyhodnot´ı, zda elementy mohou nebo nemohou m´ıt spoleˇ cn´ y pr˚ unik, pokud elementy nemohou m´ıt spoleˇ cn´

Ob- lasti frekvenˇ cn´ıho spektra, ve kter´ ych lze kmit´ an´ı rezon´ ator˚ u popsat modelem prost´ ych kmit˚ u, pˇribliˇ znˇ e odpov´ıdaj´ı schematick´ emu zn´

Pr´ ace navazuj´ıc´ı na tuto by se mohly zab´ yvat vlivem r˚ uzn´ ych pˇredpomiˇ novaˇ c˚ u na ˇ casovou n´ aroˇ cnost ˇreˇsen´ı pˇri pouˇ zit´ı monolitick´

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru

Na obr´ azku 4.35 je zobrazeno porovn´ an´ı akustick´ eho tlaku nad nosn´ıkem uni- morf (bez elektrod i s elektrodami vych´ az´ı nad nosn´ıkem velice podobn´ y akustick´ y

Ke kaˇ zd´ emu videu pouˇ zit´ emu pˇri testov´ an´ı byly hod- noty poˇ ctu osob, kter´ e proˇsly a poˇ ctu unik´ atn´ıch osob, kter´ e se ve videu objevily tak´ e