Întocmitor: Lazăr Vlad
Îndrumător: Ududec Marius
Colegiul Național „Petru Rareș” Suceava
Catedra de informatică
( 01 )
Tipuri de Machine Learning
Avansurile relativ recente în domeniul tehnologiei au dus la apariția unui număr mare de dispozitive utilizate la scară largă. Odată cu conectarea acestora la Internet, cantități masive de date au început să fie adunate. Conform unei estimări bazate pe legea lui Moore, Google manevrează în fiecare zi 180 de Petabytes de date. Companiile au început să caute metode de a prezice comportamentul utiliazatorilor și de a lua decizii bazate pe aceste cantități enorme de date. Astfel a luat amploare fenomenul pe nume „Machine Learning”, ce reprezintă conceperea unor algoritmi ce sunt capabili să ofere predictii corecte pe baza datelor analizate anterior. Am ales această temă deoarece se află la îmbinarea dintre matematică și informatică și oferă o modalitate extrem de interesantă de a utiliza cunoștințe de matematică de bază și pentru că fenomenul a căpătat foarte multă expunere în ultima vreme, astfel există resurse foarte bune pentru cei aflați la început de drum. Se poate ridica întrebarea dacă acești algoritmi reprezintă o formă de inteligență, iar în opinia mea răspunsul este nu deoarece, deși învață prin experiență, sunt limitați strict la problema pentru care au fost concepuți și nu au putere de generalizare.
În această secțiune vom analiza cele trei tipuri de Machine Learning: învățare supervizată, învățare nesupervizată și învățare prin întărire și vom dezvolta intuiție pentru exemple și cazuri de utilizare.
Un alt tip de machine learning este învățarea prin întărire ce are ca scop dezvoltare unui sistem (agent) care își îmbunătățește performanțele pe baza interacțiunilor cu mediul. Mediul transmite agentului și un semnal recompensă ce are rolul de a-l recalibra. Observăm asemănări cu învățarea supervizată, dar în acest caz funcția de recompensă reprezintă o măsură a evaluării funcției de recompensă și nu o etichetă ce reprezintă o categorie. Prin interacțiunile cu mediul, un agent învață o serie de tactici ce maximizează valoarea funcției recompensă.
Învățare prin întărire
Principalul scop al acestui tip de învățare este de a învăța dintr-un set de date de antrenament care ne perminte mai apoi să facem predicții cu privire la date ce vor fi obținute în viitor, deci sunt necunoscute. Aici termenul supervizată se referă la ideea că algoritmul primește un set de date de antrenament atent selecționate și marcate.
Învătațare supervizată
Învățarea nesupervizată
În cazul învățării nesupervizate cunoaștem ne confruntăm cu date care nu sunt etichetate sau cu structuri de date necunoscute. Folosind acest tip de învățare explorăm setul de date pentru a extrage informații însemnate fără să cunoaștem în prealabil valoare variabilei de răspuns sau o funcție de recompensă.
Tipuri de Machine Learning
Modul de funcționare al unui sistem machine learning
( 02 )
Un alt tip de machine learning este învățarea prin întărire ce are ca scop dezvoltare unui sistem (agent) care își îmbunătățește performanțele pe baza interacțiunilor cu mediul. Mediul transmite agentului și un semnal recompensă ce are rolul de a-l recalibra. Observăm asemănări cu învățarea supervizată, dar în acest caz funcția de recompensă reprezintă o măsură a evaluării funcției de recompensă și nu o etichetă ce reprezintă o categorie. Prin interacțiunile cu mediul, un agent învață o serie de tactici ce maximizează valoarea funcției recompensă.
Preprocesarea
Un alt tip de machine learning este învățarea prin întărire ce are ca scop dezvoltare unui sistem (agent) care își îmbunătățește performanțele pe baza interacțiunilor cu mediul. Mediul transmite agentului și un semnal recompensă ce are rolul de a-l recalibra. Observăm asemănări cu învățarea supervizată, dar în acest caz funcția de recompensă reprezintă o măsură a evaluării funcției de recompensă și nu o etichetă ce reprezintă o categorie. Prin interacțiunile cu mediul, un agent învață o serie de tactici ce maximizează valoarea funcției recompensă.
Antrenarea algoritmului, evaluare și obținerea predicției
Învățare liniară prin regresie
( 03 )
În această secțiune va fi prezentat modul în care gradientul de coborâre este aplica în cazul învățării liniare prin regresie. Scopul algoritmului este de a putea oferi estimări bazându-se pe datele anterioare.
Matricea X reprezintă setul de date de antrenament cu m sample-uri (exemple) și n caracteristici. De asemenea, vom defini vectorul y ce reprezintă predicțiile corecte pentru pentru sample-urile din matricea X. Definim predictorul, sau variabila de răspuns continuu ca o funcție h : X → Y. Întregul scop al algoritmului este să determine parametrii funcției h(x) (în general h este o funcție polinomială), iar apoi predicțiile se pot obține prin aplicarea funcției h pe un exemplu nou.
În cazul regresiei cu o singură variabilă funcția h reprezintă dreapta de ecuație care se „potrivește” cel mai bine pe setul de date X și are forma h(X) =θ*X . Pentru a înțelege modul în care această funcție este calculată trebuie să definim o funcție de cost, ce măsoară acuratețea funcție noastre h. Această funcție are ca parametru θ și se defineste ca media sumei pătratelor dintre diferența valorii prezise de h și y. Deci funcția de cost J se va exprima sub forma urmatoare.
Evident, ne dorim ca valorarea funcției de cost pentru valoarea găsită θ să fie minimă. În cazul ideal, toate punctele se vor afla pe dreapta de ecuație definită de funcția h, iar J(θ) = 0. J(θ) este minimă atunci când atingem un așa numit minim local (cele mai joase puncte al graficului indicate de săgeți). Ajungem din punctul de plecare la cel de minim local prin utilizarea derivatei funcției de cost. Panta dreptei tangente la graficul funcției într-un anume punct este egală cu derivata funcției în acel punct și astfel vom cunoaște direcția în care să avansăm spre minim. Dimensiune pașilor făcuți este determinată de un parametru α numit rată
de învățare.
Așadar algoritmul descris, numit gradient de coborâre poate fi exprimat sub forma
Astfel, întregul scop al algoritmului este de calibra cei doi parametrii pentru a obține o funcție de cost minimă, deci implicit o dreaptă care să reprezinte cât mai fidel setul de date. Parametrul α este ales în general prin experimentare, acesta fiind important deoarece dacă este prea mic minimul local va fi atins cu greu, iar dacă este prea mare poate „sări” peste minimul local. În implementarea computerizată se recomandă utilizarea operațiilor vectoriale pentru a spori viteza implementării.