ML Process
1 2023-01-04T08:37:04+00:00 Jotsna Iyer 4f2bfb514a09301de0e5275ee45bf5db41479839 8 1 plain 2023-01-04T08:37:04+00:00 AI for Teachers, An Open Textbook Version 1 English Jotsna Iyer 4f2bfb514a09301de0e5275ee45bf5db41479839This page is referenced by:
-
1
2023-01-04T08:37:04+00:00
Govorica UI: Strojno učenje
16
plain
2023-03-01T08:15:48+00:00
Algoritem je določeno zaporedje navodil za izvedbo naloge. Nalogo razdeli na preproste, lahko razumljive korake, kot dobro napisan recept. Programski jeziki so jeziki, ki jim računalnik lahko sledi in jih izvaja. Delujejo kot most med tem, kar razumemo, in tem, kar lahko razume stroj; so kot stikala za vklop in izklop. Računalnik slike, videoposnetke in navodila razume kot enice (stikalo je vklopljeno) in ničle (stikalo je izklopljeno).
Algoritem, zapisan v programskem jeziku, postane program. Aplikacije so programi, napisani za končnega uporabnika. Tradicionalni programi sprejemajo podatke in sledijo navodilom, da dobijo rezultat. Številni zgodnji programi UI so bili v tem pogledu tradicionalni. Ker se navodila ne morejo prilagajati podatkom, ti programi niso bili prav uspešni pri nalogah, kot je npr. napovedovanje na podlagi nepopolnih informacij in naravna obdelava jezika (NLP).Spletne iskalnike poganjajo klasični algoritmi in algoritmi strojnega učenja. Za razliko od prvih slednji analizirajo podatke za prepoznavanje vzorcev, ki jih nato uporabijo za sprejemanje odločitev ali generiranje napovedi. Lahko bi reklii, da na podlagi podatkov (dobrih in slabih primerov) ustvarijo svoj lasten "recept" za delovanje.
Takšni algoritmi so primerni za zelo kompleksne situacije z veliko manjkajočimi podatki. Sposobni so sami spremljajati izvajanje zadanih nalog in povratne informacije uporabiti za izboljšanje svojega delovanja.
V tem so pravzaprav podobni ljudem, zlasti dojenčkom, ki se veščin učijo izven izobraževalnega sistema. Dojenčki opazujejo, ponavljajo (posnemajo), se učijo, preizkušajo naučeno in se izboljšujejo. Če je treba, tudi improvizirajo.
Vendar je podobnost med stroji in ljudmi precej površinska. Učenje ljudi je drugačno, veliko bolj diferencirano, podrobno in zapleteno kot učenje strojev.
Ena od pogostih nalog, ki se uporablja v aplikacijah strojnega učenja, je klasifikacija. Je na fotografiji pes ali mačka? Ali ima učenec težave pri reševanju nalog, ali je opravil preizkus znanja? Stroj ima na izbiro dve ali več skupin. Aplikacija mora nove podatke razvrstiti v eno od teh skupin. Vzemimo za primer komplet igralnih kart, ki ga po nekem ključu razdelimo na dva kupčka, skupino A in skupino B. Nalsednjo karto (karov as) moramo razvrstiti v skupino A ali skupino B. Najprej moramo razumeti, po kašnem ključu je razdeljen komplet kart - torej potrebujemo primere. Izberemo štiri karte iz skupine A in štiri iz skupine B. Teh osem primerov predstavlja naše učne podatke - podatke, ki nam pomagajo prepoznati vzorec, oz., nas s tem "učijo", kako priti do rezultata. Takoj ko vidimo razporeditev (slika desno), nas večina ugane, da karov as spada v skupino B. Pri tem ne potrebujemo posebnih navodil, človeški možgani so čudežni iskalec vzorcev. Kako pa bi to nalogo opravil stroj? Algoritmi strojnega učenja temeljijo na uveljavljenih statističnih teorijah. Različni algoritmi temeljijo na različnih matematičnih enačbah, ki jih je treba skrbno izbrati, da ustrezajo dani nalogi. Naloga programerja je, da izbere podatke, analizira, katere značilnosti podatkov so pomembne za določen problem, in izbere pravilen algoritem.
Problem klasifikacijePomen podatkov
Vendar pa bi lahko v zgornjem primeru šlo narobe več stvari. Oglejte si sliko. V skupini 1 je premalo kart, da bi lahko ugibali. V skupini 2 je sicer več kart, vendar so vse enake barve, zato ne moremo predvideti, kam uvrstiti karo. Če skupine ne bi bile enako velike, bi v skupini 3 karte s številkami spadale v skupino A, karte s podobami pa v skupino B.
Problemi strojnega učenja so običajno bolj odprti in vključujejo nabore podatkov, veliko večje od kompleta kart. Učne podatke je treba izbrati s pomočjo statistične analize, sicer se vanje prikradejo napake. Dobra izbira podatkov je ključnega pomena za učinkovite aplikacije strojenga učenja, bolj kot pri drugih vrstah programov. Strojno učenje potrebuje veliko število relevantnih podatkov. Osnovni model strojnega učenja mora vsebovati najmanj desetkrat več podatkov, kot je skupno število značilnosti.1Kljub temu je strojno učenje posebej primerno tudi za obdelavo hrupnih, neurejenih in nasprotujočih si podatkov.Ekstrakcija značilnosti
Ko ste si v zgornjem primeru ogledali skupini A in B, ste bržkone najprej opazili barvo kart. Nato številko ali črko in barvo. Pri algoritmih je treba vse te posamezne značilnosti vnesti posebej. Algoritem ne more samodejno vedeti, kaj je pomembno za dano nalogo. Pri izbiri značilnosti si morajo programerji zastaviti številna vprašanja. Koliko značilnosti je premalo, da bi bile uporabne? Koliko jih je preveč? Katere značilnosti so pomembne za nalogo? Kakšno je razmerje med izbranimi značilnostmi - ali je ena značilnost odvisna od druge? Ali je z izbranimi značilnostmi mogoče doseči natančen rezultat?Postopek
Ko programer ustvarja aplikacijo, vzame podatke, iz njih ekstrahira značilnosti, izbere ustrezen algoritem strojnega učenja (matematična funkcija, ki določa postopek) in ga usposobi z uporabo označenih podatkov (v primeru, ko je izhod znan - npr. skupina A ali skupina B), tako da stroj razume vzorec, ki se skriva za problemom. Za stroj razumevanje pomeni zapis v oblik niza številk ali uteži, ki jih dodeli vsaki značilnosti. S pravilno dodelitvijo uteži lahko izračuna verjetnost, da nova karta spada v skupino A ali B. Običajno v fazi učenja programer pomaga stroju tako, da ročno spremeni nekatere vrednosti (uglaševanje). Za tem je treba program pred začetkom uporabe preizkusiti. Pri tem se vanj vnesejo takšni označeni podatki, ki niso bili uporabljeni v fazi učenja, imenujemo jih testni podatki. Nato se oceni učinkovitost stroja pri napovedovanju rezultatov. Ko učinkovitost doseže zadovoljivo stopnjo, lahko začnemo z uporabo programa, ki je sedaj pripravljen za vnos povsem novih podatkov, na podlagi katerih sprejema odločitve ali generira napovedi. Algoritem nato lastno delovanje v realnem času nenehno spremlja in se izboljšuje (prilagoditev uteži za boljše rezultate). Učinkovitost delovanja v realnem času se pogosto razlikuje od izmerjene učinkovitosti v fazi preizkušanja (testiranja). Ker je eksperimentiranje z resničnimi uporabniki drago, zahteva veliko truda in pogosto s seboj prinaša določeno tveganje, se algoritmi praviloma preizkušajo na podlagi preteklih uporabniških podatkov, zaradi česar pa morda ni možno oceniti vpliva na vedenje uporabnikov.1 Zato je pomembno, da se pred uporabo aplikacij strojnega učenja opravi celovita ocena njihovega delovanja:Ali bi radi strojno učenje preizkusili v praksi? Oglejte si to aktivnost.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1Theobald, O. Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition) (Machine Learning From Scratch Book 1) (p. 24). Scatterplot Press. Kindle Edition.
2 Konstan, J., Terveen, L., Human-centered recommender systems: Origins, advances, challenges, and opportunities, AI Magazine, 42(3), 31-42, 2021
-
1
2023-01-04T08:37:04+00:00
Govorica UI: Kako vas YouTube spoznava - 2. del
9
plain
2023-03-05T14:25:42+00:00
Proces
Google v vseh svojih produktih uporablja globoke nevronske mreže za strojno učenje.2 Na podlagi video modela YouTubova nevronska mreža zabeleži videoposnetke, podobne tistim, ki jih je uporabnik že gledal. Nato poskuša napovedati čas gledanja vsakega novega videoposnetka za dani uporabniški model in jih razvrsti na podlagi napovedi. Na koncu prikaže 10 do 20 videoposnetkov (odvisno od naprave) z najvišjimi ocenami.
Proces je podoben modelu strojnega učenja, ki smo ga že opisali. Stroj v tem primeru najprej zabeleži značilnosti uporabniških in video modelov, ki jih je podal programer. Iz sklopa učnih podatkov se nauči, kakšno utež naj dodeli posamezni značilnosti, da bo pravilno napovedal čas (trajanje) ogleda. Nato, po testiranju in potrditvi, da pravilno deluje, lahko začne generirati napovedi in priporočila.Učenje
V fazi učenja se sistemu posreduje na milijone pozitivnih in negativnih primerov. Pozitiven primer je, ko uporabnik klikne na videoposnetek in si ga določen čas ogleduje. Negativen primer je, ko uporabnik ne klikne na videoposnetek ali si ga ne ogleduje dovolj dolgo.2
Nevronska mreža dobi informacijo o značilnostih uporabnika in videoposnetka. Utež vsake vhodne značilnosti prilagodi tako, da preveri, ali je bil čas gledanja za določen videoposnetek in uporabnika pravilno napovedan.
Na stotinah milijard primerov se nauči približno milijardo parametrov (uteži vsake značilnosti).2 Mreža se lahko tudi nauči, da določenih značilnosti ne upošteva (dodeli jim ničelno pomembnost/utež). Zato je lahko model, ki ga ustvari algoritem, zelo drugačen od tistega, ki so si ga zamislili razvijalci.Testiranje
Ko nevronska mreža konča z učenjem, jo preizkusimo na že razpoložljivih podatkih in po potrebi prilagodimo. Poleg natančnosti napovedi mora programer nastaviti izhod sistema na podlagi več vrednostnih sodb. Prikazovanje videoposnetkov, ki so preveč podobni že videnim zagotovo ne bo preveč zanimivo. Kaj v resnici pomeni, da je neko priporočilo dobro? Koliko podobnih posnetkov je treba prikazati in kako raznoliki naj bodo - z ozirom na druge posnetke in na zgodovino uporabnika? Koliko uporabnikovih interesov naj upošteva? Katere vrste priporočil imajo za posledico takojšnje zadovoljstvo, in katere dolgoročno uporabo?1,3 To so pomembna vprašanja, ki jih je treba upoštevati.
Testiranju sledi ocenjevanje priporočil v realnem času. Izmeri se skupni čas gledanja za posamezen sklop napovedanih posnetkov.2 Dlje, kot si uporabnik ogleduje priporočeni sklop videoposnetkov, uspešnejši je model. Zgolj podatek o številu klikov na videoposnetke ne zadostuje za objektivno ocenjevanje. YouTube ocenjuje svoje priporočilne sisteme na podlagi tega, koliko priporočenih videoposnetkov je bilo pogledanih (skoraj) v celoti ter na podlagi skupne dolžine seje, časa do prvega daljšega ogleda in deleža prijavljenih uporabnikov.1Vmesnik
Na koncu poglejmo še, kako so priporočila predstavljena gledalcu: koliko posnetkov naj se prikaže? Ali naj se najboljša priporočila prikažejo naenkrat, ali naj sistem nekatera prihrani za pozneje? 3 Kakšen način prikaza izbrati za sličice in naslove videoposnetkov? Katere druge informacije je potrebno prikazati? Katere nastavitve lahko nadzoruje uporabnik?1 V odgovorih na ta vprašanja se skriva YouTubova skrivnost ohranjanja dveh milijard uporabnikov pred zasloni 24 ur na dan.
----------------------------------------------------------------------------------
1 Davidson, J., Liebald, B., Liu, J., Nandy, P., Vleet, T., The Youtube Video Recommendation System, Proceedings of the 4th ACM Conference on Recommender Systems, Barcelona, 2010
2 Covington, P., Adams, J., Sargin, E., Deep neural networks for Youtube Recommendations, Proceedings of the 10th ACM Conference on Recommender Systems, ACM, New York, 2016
3 Konstan, J., Terveen, L., Human-centered recommender systems: Origins, advances, challenges, and opportunities, AI Magazine, 42(3), 31-42, 2021
4 Spinelli, L., and Crovella, M., How YouTube Leads Privacy-Seeking Users Away from Reliable Information, In Adjunct Publication of the 28th ACM Conference on User Modeling, Adaptation and Personalization (UMAP '20 Adjunct), Association for Computing Machinery, New York, 244–251, 2020 -
1
2023-01-04T08:37:04+00:00
Strojno učenje v praksi
3
plain
2023-06-12T11:13:34+00:00
Aktivnost je povzeta po izvirnem seznamu aktivnosti avtorjev Codeweek in zaščitena z licenco Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Tukaj najdete izvirni seznam aktivnosti. Obe podatkovni zbirki, Initial Training Dataset in Test Dataset, sta prav tako avtorsko delo.
Uporabili bomo Google's Teachable Machine in z njim naučili stroj, da klasificira sliko bodisi kot kolo ali kot motorno kolo. Spomnimo, da je aplikacije strojnega učenja potrebno naučiti in testirati pred njihovo uporabo v praksi. Zbrali in razvrstili bomo vzorčne primere kategorij, ki jih bo kasneje razvrščal stroj, nato bomo model usposobili (naučili) ter testirali, ali vzorčne slike pravilno kategorizira.1. korak: Zbiranje in kategoriziranje vzorčnih slik
1) Prenesite slike koles, ki jih najdete tukaj
2) Po potrebi prenesite vsebino stisnjene mape (zip) v lokalno mapo na vašem računalniku. Služila bo za učne podatke aplikaciji strojnega učenja.
3) Prenesite slike motornih koles, ki jih najdete tukaj.
4) Po potrebi prenesite vsebino stisnjene mape (zip) v lokalno mapo na vašem računalniku. Tudi ta vsebina bo služila za učne podatke aplikaciji strojnega učenja.
5) Prenesite vse slike, ki jih najdete tukaj.
6) Po potrebi prenesite vsebino stisnjene mape (zip) v lokalno mapo na vašem računalniku. Služila bo za testne podatke.
7) Kliknite na Google's Teachable Machine in izberite Image Project > Standard Image Model.
8) Pod Kategorija 1 (Class 1), kliknite na: upload > Choose images from your files > odprite mapo s slikami koles, ki ste jo ustvarili v korakih 1 in 2 in iz nje uvozite shranjene slike.
9) Pod Kategorija 2 (Class 2), kliknite na: upload > Choose images from your files > odprite mapo s slikami motornih koles, ki ste jo ustvarili v korakih 3 in 4 in iz nje uvozite shranjene slike.2. korak: Učenje modela
Izberite Učenje (Training), nato kliknite na Učenje modela (Train Model). Model se bo sedaj naučil, kako prepoznati kolesa in motorna kolesa. Počakajte na obvestilo Model naučen / Model usposobljen (Model Trained).
Verjetno boste opazili, da ni potrebno ročno izbirati in vnašati posameznih lastnosti (značilnosti) koles in motornih koles. Algoritmi jih znajo namreč sami poiskati na slikah!3. korak: Testiranje modela
1) Pod Predogled (Preview), kliknite na puščico zraven spletne kamere (webcam) in izberite vrsto vnosa: Datoteka (File).
2) Kliknite, da izberete slike iz datotek na vašem računalniku (choose images from your files) ter nato izberite testno sliko, ki ste jo shranili v korakih 5 in 6.
3) Z miško se premaknite navzdol in preverite izhod.
4) Ponovite postopek z drugimi slikami, da primerjate učinek.
Če uporabite sliko za učenje klasifikatorja, bo stroj že zabeležil ustrezno oznako za dotično sliko. Prikaz te slike stroju v fazi testiranja ne bo omogočil merjenja uspešnosti generalizacije. Zato se morajo učni in testni podatki med seboj razlikovati!
Opomba: naložite lahko tudi svoje slike ter z njimi model učite in testirate. Tukaj najdete dober in brezplačen vir za najrazličnejše podobe (slike)