Secondary abstract: |
Umetna inteligenca (angl. Artificial intelligence) postaja vse bolj dovršena in se vedno bolj uporablja v storitvah, ki jih uporabljamo vsak dan. Aplikacije, ki so se bile še pred desetletji skoraj neizvedljive, predvsem zaradi izgradnje njihove logike (samovozeča vozila, predlagane vsebine, sinteza govora …), postajajo danes izvedljive z algoritmi, ki so zmožni sami zgraditi model odločanja za podano težavo. Umetna inteligenca bo v prihodnosti poglavitno orodje, ki ga bomo uporabljali za reševanje vse bolj zahtevnih vsakodnevnih težav.
Pomembno vlogo pri reševanju teh težav ima strojno učenje (angl. Machine learning), ki z globokim učenjem (angl. Deep learning) gradi globoke nevronske mreže (angl. Deep neural networks). Tovrstne mreže temeljijo na posnemanju poenostavljenega delovanja bioloških možganov in so zelo učinkovite za reševanje določenih težav, kajti same prilagajajo parametre nevronov ob učenju. Vendar pa je uspešnost učenja odvisna predvsem od tega, kako arhitekt zasnuje arhitekturo globoke nevronske mreže in kako so nastavljeni parametri mreže. S temi nastavitvami omejimo gradnjo nevronske mreže na izkušnje arhitekta, namesto da bi algoritem sam ugotovil, kakšne nastavitve so najbolj primerne za podano težavo. Znanost je za reševanje te težave začela aplicirati algoritme po vzoru iz narave (angl. Nature inspired algorithms) za izgradnjo nevronskih mrež z nevroevolucijo (angl. Neuroevolution). Proces nevroevolucije išče in optimizira ustrezno arhitekturo nevronskih mrež za reševanje specifične težave. Eden od algoritmov po vzoru iz narave so algoritmi inteligence rojev, ki s posnemanjem vedenja delcev (npr. mravelj) v naravi iščejo najboljšo možno rešitev za podano težavo. Pri nevroevoluciji je rešitev arhitektura modela nevronske mreže. Takšen proces je inovativen predvsem za težave pri izgradnji arhitekture nevronskih mrež, pri katerih poznamo le vhodne podatke (začetek) in končno stanje (cilj), ne pa procesa, ki ga moramo izvesti na naši poti. Takšen način imenujemo nenadzorovano učenje (angl. Unsupervised learning). Konkretni predstavnik takšnega nevronskega modela je avtomatski kodirnik (angl. Autoencoder), ki sprejme vhodne podatke, izvede proces in vrne izhodne podatke, cilj tega modela je, da so si vhodni in izhodni podatki čim bolj podobni, kajti zanimajo nas le koraki procesa. S tem lahko opazujemo, kako se je model naučil predelati podatke, da so si čim bolj podobni kljub izvajanju operacij nad njimi. Če pride do prevelikega odstopanja, pa lahko to ovrednotimo kot anomalijo (angl. Anomaly detection). S tem procesom učenja iskanja arhitektur nevronskih mrež lahko ustvarimo računalniške sisteme, ki delujejo tako kot živa bitja. Primer: »Kako živo bitje opredeli spremembe v okolju kot razlog za strah ali užitek?«.
V magistrskem delu se bomo osredotočili na spoznavanje in implementacijo sistema za avtomatsko gradnjo arhitektur nevronskih mrež. Naš program nosi ime AutoDaedalus. Ta program temelji na uporabi inteligence rojev, s katero definiramo algoritem za odločitev komponent v nevronski mreži. Te komponente so lahko vse od tipa nevronov, strukture nivojev, aktivacijskih funkcij do dimenzije izhoda nevronov. Tip arhitekture nevronske mreže, ki jo v našem primeru gradi AutoDaedalus, je avtokoder. Ta arhitektura je prepoznana po tem, da se vhodni podatki zakodirajo v latentni prostor, nato pa dekodira nazaj v izhodne podatke. AutoDaedalus v svojem iskanju najuspešnejše arhitekture nevronskega modela uporablja matriko, kot je razlika med vhodom in izhodom. Na koncu imamo cilj, da dobimo najboljši nevronski model za rekonstrukcijo vhodnih podatkov. S tem ko se je nevronski model naučil ustrezno zakodirati in dekodirati dan tip podatkov, ga lahko uporabimo za iskanje anomalij. Razlog za to je verjetnost, da nevronski model ne bo znal ustrezno zakodirati in dekodirati tipa podatkov, za katerega ni bil naučen. V našem primeru smo nevronske modele učili na podatkih MNIST. |