Närvivõrgud ja programmeerimine

From ICO wiki

Tehisnärvivõrkude arengu ajalugu

Närvivõrkude mõiste oli formuleeritud 1943. aastal[1]. Närvivõrgu põhielement on tehisintellekt (AI). Seega, et näha kogu rada, mida mööda inimkond on lähenenud närvivõrgu avastamisele, tuleb alustada AI-st. Tehisintellekti on uurinud nii matemaatikud kui ka filosoofid. Tuleb lisada, et varem need kaks teadust olid tihedalt seotud ja ühe areng täiendas teist.

Olulised sündmused filosoofias närvivõrkude jaoks

Allpool loetletud sündmuste järgi võib jälgida, kuidas inimkond läheneb mõttele, et mõistust on võimalik imiteerida.

Esimesed olulised sammud olid inimkonna katsed mõista loogika olemust: Mis vormis on vaja mõelda, et järeldus oleks loogiline? Millised on mõistuse põhimõtted? Aristoteles tegi tähelepanuväärse panuse selleks teaduseks. Aristoteles kirjutas esimesena täpse seaduste kogumi, mille järgi ratsionaalne mõtlemine peaks töötama. Tema teos võimaldas inimesel kujundada oma järeldusi mehaaniliselt, kasutades juba loodud algoritmi[2].

Edasi tuleb mainida Ramon Llull-i loogikamasinat. Ramon lõi selle 13. sajandil. Masin töötab kombinatorika põhimõtete järgi. Llull arvas, et vanade tõdede põhjal saab koostada uusi tõdesid tema masina abil[3].

Üks olulisemaid 17. sajandi filosoofe Thomas Hobbes väitis, et „me lisame ja lahutame vastu tahtmist oma mõtetes”[4]. Mõiste „teadvus” näib olevat loogilisem ja arvutatav.

David Jung kirjeldab oma traktaadis “Treatise of human nature” meetodi, mida nüüd nimetatakse matemaatiliseks induktsioonimeetodiks. Meetodit kasutatakse, et tõestada mingi väite tõesust, kõikide naturaalarvude jaoks[5]. David Jung oli ka loogilise positivismi eellane[6], millest kirjutatakse allpool

Loogilise positivismi filosoofiat arenedasid peamiselt filosoofide rühm, mida nimetatakse "Viini ringiks". Loogilise positivismi idee seisneb selles, et maailma uurimine peaks olema puhtalt ratsionaalne. Selle rühma juht oli Rudolf Carnap. 1950. aastal Carnap kirjutas „Tõenäosuse loogilised alused“. Oma raamatus Canap töötas välja doktriini mille mõtte seisneb selles, et kõiki teadmisi saab iseloomustada loogiliste teooriatega. Oma raamatus püüab ta mõista: kuidas teadmised tulevad kogemustest ja kuidas teadvus ennast arendab”[6]. Küsimused, millele on vaja vastata, et tehisintellekti luua.

Olulised sündmused matemaatikas närvivõrkude jaoks

Filosoofia alati arenes koos matemaatikaga, teineteist täiendades. Filosoofia andis tehisintellekti mõiste ja ettekujutuse. Matemaatika tegeleb mõiste vormistamisega ja lihtsustab teate süsteemiks ja kasutab neid praktikas.

George Boole oli matemaatilise loogika rajajaks. 1847. aastal George Boole töötas välja lauseloogika, mis sai tema järgi nime Boole'i ​​algebra. Gottlob Frege ka andis tohutu panuse loogikasse. Frege lõi esimese-järgu loogika. Tänu tema 1879. aasta teosele “Begriffsschrift” alustas loogika ajalugu uut ajastut[7].

1930. aastal Kurt Gödel tõestas esimest ja teist "Gödel's incompleteness theorems". Teoreemid tõestasid, et algoritmid, mis tagaksid kõikide probleemide lahendamise ei eksisteeri. Teisisõnu, ei saa ehitada inimteadvuse keerukusega tehisintellekti, kasutades ainult formaalset loogikat. Tuleb mõista, et kuigi praegused närvivõrgud põhinevad "Fuzzy” loogikal ja oskavad areneda, siiski nad on sõnastavate probleemidega piiratud. Probleemid, mida ei saa sõnastada, näiteks probleemid loovuses, on nende jaoks lahendamatud. “Incompleteness” teoreemid tõestavad ka seda, et Turingi masin ei hakka kunagi mõtlema nagu inimene. Seetõttu, inimese mõistuse keerukusega närvivõrgu loomiseks tuleb otsida teist süsteemi[8].

Tõenäosusteooria on tehisintellekti jaoks sama oluline kui loogika. Kuna tõenäosusteooria loob tehisintellektile meetodid määramatusega töötamiseks. Mõned peamised teadlased, kes tegid suure panuse sellesse teooriasse : Pierre de Fermat (1607 - 1665), Blaise Pascal (1623 - 1662) Jacob Bernoulli (1655 - 1705)[9].


20. sajand

Närvivõrkude väljatöötamise võib jagada kolme etappi:

1. etapp "Läbimurre"

20. sajandil toimus märkimisväärne läbimurre tänu tehnoloogia arengule. Paljudel teadustel tekkisid uusi võimalusi uurimistööks tehnoloogia abil. Neurobioloogia ja neuroanatoomia oli integreeritud närvivõrku.

20. sajandi keskel oli määratud kindlaks, et aju on loendamatu arv ühendatud neuroneid. Samal ajal ilmus ka närvivõrgu kontseptsioon: esimese töö, kus närvivõrgu valdkonnas saavutati peamised tulemused, tegid McCulloch ja Pitts. 1943. aastal nad töötasid välja närvivõrgu arvutimudeli, mis põhines matemaatilistel algoritmidel ja aju struktuuril. Nad oletasid, et neuroneid võib käsitleda kahendarvudes töötavate seadmetena. McCulloch-Pittsi neuronid oskasid õppida. Loojad eeldasid, et sellel võrgul on inimluure potentsiaal[10].

1949. aastal Donald Hebb esimesena pakkus oma töös, et õppimine toimub sünaptiliste ühenduste tugevuse muutuste tõttu. 1951. aastal Marvin Lee Minsky juhtimisel oli ehitatud 40 Hebbi sünapsi võrgustik. Sünapsid olid omavahel juhuslikult ühendatud ja õpiti vastavalt Hebbi reeglile[11][10].

1958. aastal Frank Rosenblatt lõi maailma esimese neuroarvuti MARK 1 mis põhineb perceptroni kontseptsioonil. Perceptron on üks esimesi närvivõrgu mudeleid. Vaatamata oma lihtsusele perceptron oskab õppida ja lahendada üsna keerukaid probleeme. Arvutil võttis 50 katset, et õppida eristama vasakut ja paremat. 1960. aasta esitlusel arvuti suutis eristada inglise tähestiku tähti. Teadlased ennustavad, et hiljem suudavad närvivõrgud inimesi ära tunda ja neid nimepidi kutsuda, samuti suulise ja kirjaliku kõne koheselt ühest keelest teise tõlkida. Hr Rosenblatt ütles, et põhimõtteliselt on võimalik ehitada "ajusid", mis suudavad end konveieril paljundada ja mis on teadlikud omaenda olemasolust[12].

2. etapp "Pessimism" Huvi närvivõrkude uurimise vastu väheneb pärast masinõppe teose "Minsky M., Papert S. Perceptrons" avaldamist 1969. aastal. Avastati närvivõrkude peamised probleemid: Perceptron ei saa XOR-funktsiooni rakendada. Arvutitel ei olnud piisavalt töötlemisvõimsust, et tõhusalt hakkama saada suurte arvutustega, mis olid vältimatud töötamises närvivõrkudega[10].

3. etapp "Optimism"

1975 aastaks, kui arvutid muutusid suhteliselt võimsaks, toimus ka oluline sündmus, mis äratas huvi närvivõrkude vastu. Paul Werbos kirjeldas backpropagation meetodit. Meetod lahendas „liitmismooduli 2” ja mõne muud 1969. aastal püstitatud probleemid[13].

1975. aastal Fukushima töötas välja neokognitrooni, millest sai üks esimesi mitmekihilisi närvivõrke. See sündmus on oluline, sest varem arvati, et mitmekihilised närvivõrgud ei suuda arvutada vajalikke funktsioone. Kuid võrgud said informatsiooni levitada ainult ühes suunas. Neuronite vahelist informatsiooni kahepoolset edastamist oli saavutatud ainult Hopfieldi võrgus 1982. aastal[10]. Kuigi Hopfieldi võrgul olid puudused ja seda ei saanud praktikas kasutada, oli see oluline samm närvivõrkude arendamisel. Teadlane pani aluse korduvatele võrkudele[14].

Alates 1980. aastatest uus masinõppe lähenemine “konnektivism” muutunud populaarseks. Üks konnektivismi ideid on see, et selgitada inimese vaimseid võimeid võib kasutada närvivõrku. Et meelt saab iseloomustada nagu "a set of complex associations, represented as a layered network”. 1986. aastal psühholoog James McClelland kasutas konnektivismi närviprotsesside arvuti modelleerimiseks[15].

Järeldus

Kindlasti, artiklis ei mainiti veel palju muid sündmusi ja teadlasi. Kuid selle artikli eesmärk ei olnud detailne närvivõrgu arengu uurimine. See uurimine nõuab nii kirjutajalt kui ka lugejalt palju masinõppe kogemusi. Vastasel juhul esimene ei kirjuta midagi või teine ​​ei saa midagi aru. Selle asemel püütakse artiklis kirjeldada suurt pilti: Kuidas inimesed närvivõrgu avastasid. Kuidas nad selle avastamisele reageerisid. Mida selle avastusega tehti.

Praegu närvivõrgud suudavad juhtida autosid, tuvastada inimest näo järgi, isegi luua nägusid, mida ei saa reaalsetest eristada ja palju muud. Siiski närvivõrgu tulevik on ebakindel. Pole teada, kas inimene suudab luua närvivõrgu, mis ületab teda kõiges, sest see väide on iseenesest paradoksaalne. Kas Jumal saab luua kivi, mida ta ei suuda tõsta? Kas inimene suudab luua närvivõrgu, mis on targem kui tema? Kas ta üldse vajab seda? Eks inimkond oleks hävitud. Kindlasti, inimkond saab piirata närvivõrku moraalsete piiridega ja panna selle teenima, siis ei saa öelda, et närvivõrk oleks meist targem.

Närvivõrkudel on tohutu potentsiaal, mis on hirmutav. Igaüks peab ise vastama kõlbluse küsimusele “kas tuleb luua midagi täiuslikumat kui meie?” Kuid allpool esitatakse kuulsate isikute arvamusi:

Elon Musk: “With artificial intelligence we are summoning the demon. In all those stories where there’s the guy with the pentagram and the holy water, it’s like – yeah, he’s sure he can control the demon. Doesn’t work out”[16].

Stephen Hawking: “In short, the rise of powerful AI will be either the best, or the worst thing, ever to happen to humanity. We do not yet know which”[17].

Bill Gates: “The power of artificial intelligence is “so incredible, it will change society in some very deep ways...” “...The world hasn’t had that many technologies that are both promising and dangerous — you know, we had nuclear energy and nuclear weapons”[18].

Närvivõrgu abil probleemide lahendamise etapid

Andmete kogumine õppimise jaoks

Esimene samm on loomulikult närvivõrgu abil lahendatava probleemi valik. Siis saate hakata andmeid koguma. Seda etappi võib pidada kõige keerulisemaks, sest tulemuse kvaliteet sõltub täielikult andmetest, millele võrk on õpitud. Närvivõrgu õpetamiseks on vaja palju andmeid ja mida rohkem, seda parem ja need peavad olema esinduslikud (kuvama selgelt koolituse jaoks vajalikud elemendid) ja järjepidevad (vastuolulised andmed halvendavad komplekti õppimise kvaliteeti).[19]

Andmete ettevalmistamine õppimiseks

Kogutud andmed tuleb enne õppimisele edastamist korrastada. Selleks võib kasutada kahte meetodit: normaliseerimine ja standardiseerimine. Normaliseerimise käigus muudetakse andmed nii, et need jäävad vahemikku 0 kuni 1. Seda meetodit saab kasutada, kui teil on täpne ettekujutus andmete maksimaalsest ja minimaalsest väärtusest. Standardiseerimine hõlmab andmete väärtuste jaotuse muutmist nii, et andmete keskmine oleks 0 ja standardhälve 1.[20][21] Need andmed tuleb jagada ka mitmeks osaks: andmed õppimise, kohandamise ja testimise jaoks.(training, validation and test data). Õppimise jaoks on kõige suurem osa andmetest (umbes 80%), nii et närvivõrk saab õigesti õppida andmeside üldistamist. Kohandamise andmed on vaja võrgu parameetrite häälestamiseks, et parandada algoritmi jõudlust. Testi andmed kasutatakse pärast õppimise etappi parandatud võrgu algoritmi õige toimimise kontrollimiseks. Neid andmeid ei tohiks koolitusel kasutada.[22]

Võrgu tüübi valik

Võrgu õppimise tüübi valik sõltub antud ülesandest. Juhendatud õpega (supervised learning) võrkude puhul peavad sisendite kohta olema teada väljundi tulemused. Kui sisendandmete jaoks ei ole väljundandmed teada, siis sobib juhendamata õpe võrk. (unsupervised).[19]

Võrgu õppimine

Näiteks võib tuua Mitmekihiline perceptron (multilayer perceptron). Võrk koosneb mitmest neuronikihist, kus iga neuron sisaldab aktiveerimisfunktsiooni ja kaalu, millest sõltub sisendandmete olulisus. Sellises võrgus edastatakse signaale otse - sisendandmetest väljundandmeteni. Sisend- ja väljundkihid on alati ükshaaval ja nende elementide arv sõltub probleemi seisukorrast. Enne treeningprotsessi algust ei saa valida nendes õige vahekihtide ja elementide arvu, seega peaksite valima juhusliku arvu kihte ja elemente, mida saab seejärel muuta. Järgmine samm on leida võrgu kaalude ja künniste väärtused. Õppimis algoritmid aitavad selle eesmärgi saavutamisel. Ennustus vigade (prediction error) minimeerimiseks reguleerivad nad automaatselt võrgu kaalu ja künniseid. Võrgu konfiguratsiooni viga määratakse andmete käitlemise kaudu läbi võrgu ja tulemuste võrdlemise oodatavate tulemustega. Nendest erinevustest saadakse kaotus funktsioon (loss function), mille väärtus on võrguviga. Kasutades backpropagation algoritmi, levitatakse ekslikke andmeid väljundist läbi kõigi vahekihtide. Iga kihis olev neuron saab selle eksliku signaali osa, mille ta sisestas tulemuse kontole. Õppimise Algoritm lühikirjeldus[23]: Õppimis andmete edastamine võrgu kaudu väljundi genereerimiseks Saadud andmete võrdlus oodatava tulemusega Arvutage ennustus viga ja backpropageerige Saadud teabe abil muudab võrguvigade vähendamiseks võrgu parameetreid Korrake seda protsessi, kuni saate hea võrgumudeli.[19][23]

Võrgu korrektsuse kontrollimine

Nüüd tuleb tekkinud närvivõrku kontrollida, kui hästi see oma ülesannet täidab. Närvivõrkude levinud probleem on ümberõpe (overfitting). Õppimisandmete võrguviga muutub minimaalseks, kuid näitab testiandmetel täiesti valesid tulemusi. [19] Õppimiseks peaks valima ka õiged andmed, sest võrk õpib seda, mida on kõige lihtsam õppida. Näiteks kui õppimis toimub piltide kohta ja “õiged” pildid on tumedad ja “valed” heledad, õpib võrk pilte eraldama värvitooni, mitte soovitud tingimuste järgi. Ka “õiged” ja “valed” andmed peavad olema võrdses vahekorras. Kui mõned andmed on rohkem kui teised, siis on võrgu tulemused kallutatud vastavalt sellele, milliseid andmeid oli rohkem.[19]

Erinevused vonneymani arhitektuuri ja neuraalvõrkude vahel.

Alustuseks tuleb närvivõrkudel põhineva protsessori ja von Neumanni arhitektuuril põhineva protsessori võrdlemiseks mõista selle peamisi eeliseid ja puudusi.

Von Neumanni arhitektuuri eelised

Von Neumanni protsessorid on odavamad ja kompaktsemad kui sarnased arhitektuurid. Von Neumanni arhitektuur järgib täpselt programmi juhiseid, mille programmeerija pani paika, mis võimaldab teil tõhusalt lahendada probleeme, mille jaoks saate koostada lahendusalgoritmi.

Von Neumanni arhitektuuri peamised puudused

Kui probleemil pole algoritmi, mida lahendada, või kui algoritmi ei saa sõnastada, on probleemi peaaegu võimatu lahendada. Mälu ja keskprotsessor on eraldatud "siiniga", mille tulemusena moodustub nn "pudelikael". [24]. Keskprotsessori töötlemiskiirus on suurem kui siini maksimaalne ribalaius, mis piirab suure andmemahuga protsessori efektiivsust. Mäluleke. Nüüd on Von Neumanni arvutid programmeeritud kõrgetasemeliste keelte, näiteks C või Java abil. Nendes programmides võite aga kokku puutuda protsessiga, kui programm ei vabasta kasutamata mälupiirkondi, mille tõttu kogu vaba mälu väheneb. Selle probleemi lahendamiseks on palju meetodeid, kuid need nõuavad kas palju arvutiressursse või vähendavad oluliselt programmide funktsionaalsust[25][26]. Von Neumanni arhitektuur ei saa paljusid protsesse paralleelselt teha. Esmapilgul võib tunduda, et arvutid täidavad korraga paljusid ülesandeid, kuid see pole nii. Tegelikult lülitub arvuti väga kiiresti ülesannete vahel, täites protsessid omakorda[27].

Närvivõrkude eelised von Neumanni arhitektuuri ees

Närvivõrkude üks suurimaid eeliseid on tohutu paralleelsus. See tähendab, et närvivõrgud saavad korraga täita paljusid ülesandeid, mis on von Neumanni protsessorite ees suur eelis. [28]. Närvivõrgu protsessorid saavad hakkama piltide, fotode ja abstraktsete kontseptsioonidega. Samuti sobivad närvivõrgud suurepäraselt eesmärkidel, milles peate töötlema suures koguses teavet ja leidma mustreid, samuti ülesanneteks, kui algoritmilist lahendust ei saa sõnastada. Närvivõrgud suudavad varasemate andmete põhjal teavet ennustada, mida on Von Neumanni arhitektuuris kasutatavate standardsete algoritmide abil keeruline rakendada[28]. Närvivõrgud on võimelised end varasema töö "kogemuste" põhjal muutma. See kvaliteet võimaldab närvivõrkudel kohaneda, reageerida tagasisidele ja sisendandmetele, muuta nende programmi. Teavet ei salvestata keskselt. See tähendab, et närvivõrk võib häireteta töötada ka siis, kui teave kaob ühest allikast. Teisalt on von Neumanni arhitektuuris andmebaasist teabe kahjustamine või kaotsiminek kriitiline, mis võib kogu töö täielikult halvata. Isegi kui mõned närvivõrgu rakud on kahjustatud, saab närvivõrk toimida[29]. Võime töötada "mürarikka" teabega. Isegi pärast treeningut saab närvivõrk pärast treeningut küll toimida, kuid jõudlus on madalam. Tootlikkuse vähenemine sõltub puuduva teabe hulgast ja olulisusest. Võrdluseks - enamus von Neumanni programme vajavad "puhast" teavet ilma vigade ja "müra".

Närvivõrkude puudused võrreldes von Neumanni arhitektuuriga

Tulemuse ettearvamatus. Närvivõrkude üks suurimaid probleeme on asjaolu, et te ei saa ennustada täpset tulemust, mille närvivõrk annab. Närvivõrk ei anna selgitust selle saavutamise kohta, mis vähendab usaldusväärsust ja usaldust. See tähendab ka seda, et kui probleem tekib närvivõrgus, on vea põhjust raskem leida. Von Neumanni arhitektuur töötab täpselt juhiste järgi, nii et iga samm on selge ja probleemide ilmnemisel saab vea algpõhjuse kiiresti tuvastada[29]. Alustuseks on vaja palju andmeid. Masinõppega võrreldes nõuab närvivõrk oluliselt rohkem andmeid, mis tähendab, et kui algandmete hulgast ei piisa, siis on hoopis kasulikum kasutada erinevat masinõppe algoritmi[30]. Arenduskulud. Närvivõrkude arendamine nõuab palju teadmisi, kogemusi ja aega. Närvivõrgu treenimine võtab traditsiooniliste masinõppealgoritmidega võrreldes oluliselt kauem aega. Samuti tasub kaaluda, kas probleemi lahendamine närvivõrkude abil on otstarbekas. Enamiku probleemidest saab lahendada von Neumanni protsessorite lihtsama algoritmi abil. Tuleb mõista, et närvivõrgud ei suuda täita ülesannet, mida ei saa lahendada traditsiooniliste arvutustehnoloogiate abil. Kuid närvivõrgud suudavad suhteliselt lihtsalt lahendada probleeme, mida oleks teiste tehnoloogiate abil väga raske lahendada.

Järeldus

Närvivõrgud ei ole universaalne tööriist, mis ületab von Neumanni arhitektuuri igati. Närvivõrgud saavad suurepäraselt hakkama ülesannetega, mis on seotud piltidega suhtlemisega, mustrite leidmisega suures koguses andmeid, samuti saadud andmete põhjal järgneva prognoosimisega. Närvivõrgud töötavad tõhusamalt suure hulga andmete või töökohtadega, kus peate samaaegselt käivitama märkimisväärse arvu protsesse. Närvivõrgud on palju kallimad, kuna nende jaoks on vaja paralleelse töötlusvõimsusega protsessoreid[29]. Samuti väärib mainimist, et seni jäävad närvivõrgud von Neumanni arhitektuuril põhinevatele protsessoritele alla piirkondades, kus probleemi on võimalik lahendada algoritmiliselt.

Närvivõrkude kasutamine

Närvivõrkudel on lai kasutamis ala. Nende abil võib tuvastada näosid, teha male või kabe boti, töödelda andmed ja ennustada edasised sammud. Ned abil võib ennustada muutused aktsiaturul, teha videomänge ja lahendada palju muuid probleeme.

Ülitäpsete närvivõrkude kasutamine

1. Näo-, objekti või kehaosa tuvastamine - mille abil närvivõrk tuvastab erilisi objekte. See on kõige kõrgetasemeline ülesanne.

2. Semantiline segmenteerimine ja piiride määratlemine - mille abil närvivõrk jagab objekte erinevateks klassideks nende struktuuri järgi ja eristab piiri ilma objektide tuvastamiseta, mis tähendab, et närvivõrk midagi nendest ei tea.

3. Tähelepanu objektide eristamine pildil - mis eritab millele pööraks inimene tähelepanu pildi vaatamisel.

4. Vektori eristamine normaalseks - mille abil võib teha kahemõõtmelisest pildist kolmemõõtmelise.

5. Piiride tuvastamine - mis on madalaim tasemeline ülesanne. [31]

Tuntud neurovõrkude rakendusvaldkonnad

Alpha Go

Tänaseks päevaks üks kõige populaarsematest ja laialt tuntumatest neurovõrgu rakendamise näidistest on Alpha Go. Tegelikult, Alpha Go oli just see esimene neurovõrkude tehnoloogial põhinev arvutiprogramm, tänu millele tehnoloogia kasutamise võimalus muutis avalikuks ning inimesed said sellest teadlikud.

Go

Go on Vana-Hiinast pärit strateegiline loogika lauamäng, mis on mõeldud kahele mängijale. Go mängu vanus varieerub vahemikus kahe tuhandest aastast kuni viie tuhande aastani. Mängu paika panemiseks on vaja valmistada ette tahvli suurusega 19x19 ruutu (on võimalik kasutada ka muid kombinatsioone) ning 361 nuppu (kivi) kahest värvist. Kõige sagedamini kasutatakse mustad ja valged kivid – 180 tükki valged ja 181 mustad. Mängu eesmärgiks ehk võidu seisundiks loetakse olukorda, kui ühel mängijal õnnestub piirata ja isoleerida oma nupudega suurema territooriumi tahvli peal võrreldes teise mängijaga. [32]

Alpha Go looja ajalugu

Alpha Go programm oli arendatud Google DeepMind ettevõte poolt. Esialgselt DeepMind oli asutatud aastal 2010 Suurbritannias, kuid aastal 2014 Google ostis DeepMind endale ning ettevõte uueks nimeks sai Google DeepMind. Hiljem, aastal 2016 ettevõte sai Google emafirma Alphabet juhtimise alla ja nimetusest kadus ära sõna „Google“ – nüüd firma on teatud kui DeepMind Technologies Limited või lihtsalt samamoodi kui täitsa alguses oli – DeepMind. Programm Alpha Go oli loodud ja arendatud aastal 2015 – sel ajal, kui DeepMind kulus Google ettevõttele. [33]

Võistlused

Aasta 2015 oktoobris Alpha Go võidab mängides Fan Hui mängija vastu, kes selleks ajaks oli juba Euroopa kolmekorde Go mängu võitja. Möödunud mängu skoor päris üllatuslik – neurovõrk sai võita skooriga 5 vastu inimese poolt saadud 0 punkti. See oli tõepoolest esimene juhtum, kui arvutiprogramm oli võimeline võita mängides professionaalse Go mängija vastu ja eriti nii suure skoori vahega. Küll Fan Hui ei olnud ka kõige tugevam mängija, kelle vastu Alpha Go programm sai mängida. Fan Hui vastu mängida saanud versioon sai nimeks Alpha Go Fan vastase nime järgi. Mõne aja möödudes juba aasta 2016 märtsis Alpha Go uuendatud version pannakse mängima veel ühe mängijaga, kes samamoodi kuulub kõige tugevamate Go mängijate hulka maailmas – Lee Sedoliga. Võistlus lõpeb jällegi programmi võiduga, mis sel korral sai 4 punkti ning Lee Sedol – 1 punkti. Eelmise versiooniga sarnaselt uuendatud võimsam programmi version sai uue nime oma vastase nime järgi – Alpha Go Lee. Juba järgmisel, 2017 aastal veel uuem Alpha Go versioon – Alpha Go Master sai osaleda 60 mängides online keskkonnas kõige võimsamate mängijate maailma parimate hulgast ning võitis kõiki skooriga 60:0. Jooksva aasta maikuus Alpha Go Master mängib selleks ajaks maailma top esimese mängija vastu – Ke Jie. Möödunud võistlus lõppes samamoodi nagu eelmised – programm võitis inimese üle skooriga 3:0 ning tulemusena sai tõestada, et alates sellest hetkest arvuti on õpinud mängima Go mängu palju paremini, kui inimene. [34]

Alpha Go Zero

Alpha Go Zero – teine neurovõrgu mudel ehk uuendatud versioon, mis sai valmis aastal 2017. See oli justkui täiesti uus versioon sellepärast, et programm sai tunduvalt ja korralikult muudetud ja viimistletud. Võib välja tuua mõned kõige olulisematest muudatustest: mudel oskab õppida iseseisvalt täitsa nullist mängides iseenda vastu välismudelite käitumist vaatamata ja arvesse võtmata (välismudeliteks on võistlused reaalsete inimeste vastu, ehk uuendatud versioon oli suuteline „genereerida“ kõik võimalikud olukorrad, seisundid ja käigud endale õppimiseks ise). Lisaks, riistvara nõuded said ka väiksemaks ehk programm ise ei olnud enam väga mahukas arvuti peale paigaldamise mõttes. Alpha Go Zero sai mängida endale eelneva versiooniga Alpha Go Lee vastu ning võitis skooriga 100:0, mis näitab, kui palju võimsamaks Alpha Go on muutnud. [35]

Õppimise aeg

Alpha Go Zero vajab 3 päeva pidevat tööd selleks, et mängida ja võita Alpha Go Lee versiooni vastu. Alpha Go Master versiooni korral võiduni jõudmine võtab 21 päeva. 40 päeva möödudes Alpha Go Zero võidab Lee versiooni vastu skooriga 100:0 ning Master versiooni vastu skooriga 89:11. [35]

FindFace

Find Face on Venemaa ettevõte N-Tech Lab poolt loodud projekt, mis sai alguse aastal 2016. Alguses tegemist oli avalikult kättesaadava online teenusega. Teenuse eesmärgiks oli võimaldada kasutajal laadida rakenduse sisse inimese pildi ja saada kätte pildil kujutatud inimese sotsiaalvõrkude profiilide lingid. Ilmselgelt, projekti kohta plahvatas tuline arutelu ühiskonnas ning tekkisid mõned tülid ka. FindFace teenuse abil kurjategijad said deanonümiseerida pornotööstuse töötajaid ja korraldada nendele suunatud kallaletungi. Lisaks, teenus võimaldas leida päris kurjategijaid ja valitsusvastase miitingute osalejaid. [36]

FindFace ajalugu

Aastates 2016 kuni 2018 FindFace teenusega igal soovijal oli võimalik leida põhimõtteliselt kõik selle isiku sotsiaalmeedia profiilid, kelle pild oli kasutajak olemas. Kuigi aastal 2018 N-Tech Lab kuulutas teenuse sulgemisest. Praegusel hetkel FindFace on korporatiivne toode mis tähendab, et teenus ei ole kättesaadav tavaliste inimestele. Tänapäeval FindFace kliendid on näiteks Venemaa ja Tatarstani vabariik ning lisaks üle 100 ettevõtet rohkem kui 20 riikidest terve maailmast. FindFace on üks kõige arendatud tehnoloogiatest näo tuvastamise valdkonnas, mis on võitnud ka suuremates võistlustes nagu The MegaFace Benchmark korraldatud Washington ülikooli poolt, EmotionNet Challenge Ohio ülikoolis, tehnoloogiate võistluses NIST instituudi poolt (The National Institute Of Standarts Technology) ning IARPA projektis (Intelligence Advanced Research Projects Activity). [36] [37] [38]

Rakendusvaldkonnad

Tänasel päeval ehk aastal 2020 FindFace toode on kasutuses erinevates valdkondades. Näiteks, tehnoloogia kasutatakse ükskõik millise asutuse külastajate tuvastamiseks. Samamoodi teenust võib kasutada ligipääsu kontrolli teostamiseks (teha kindlaks, kas antud inimesel on lubatud teha päringut mõnda informatsiooni kohta või viibida teatud teriitooriumil jne). FindFace tehnoloogiat saab rakendada ka kaupluse varguse vastase vahendina. Teenuse funktsionaalsus võimaldab võrrelda kaupluse klientide näod poevaraste andmebaasis olevate andmetega ja koheselt reageerida, kui inimene tuvastatakse õigesti. Üks põhilistest FindFace teenuse rakendamisvaldkondadest on avalikukorra kaitse tagamine. Teenust saab siduda tuhande kaameratega linnas. Täpselt nii on tehtud Moskvas, kus FindFace teenus on implemeteeritud 120 000 linna kaamerate sisse. Ühe sekundiga algoritm saab töödelda ligi 1.5 milliardi piltidest koosneva andmebaasi. Üle 70% kõikidest kuritegudest Moskvas avastatakse just videovalve kaamerate abil. Jalgpalli maailmameistrivõistluste FIFA ajal aastal 2018 FindFace tehnoloogia aitas saada üle 180 kurjategijat Venemaa piires, kaasa arvatud need, kes olid föderaaljälituse all. Lisaks, FindFace toodet saab kasutada klientide teenindamise protsessi kiirendamiseks. Näiteks, ürituse ajal registreerimise automatiseerimiseks jne. Toodud kasutamise võimalused on ainult mõned näited kõikidest võimalikest FindFace tehnoloogia rakendamise suundadest. [36] [37] [38] [39]

Algoritmi töökäigu lühikirjeldus

Näo tuvastapise etapid:

1. Pildil oleva näo ja kuju detekteerimine

2. Visuaalsete erisugususte parandamine

3. Näo omaduste välja tõmbamine

4. Näo verifitseerimine ja identsifitseerimine

Kõik pildid koosnevad pikslitest. Igat pikslit võib esitada kolmes numbrilises osas – RGB (Red Green Blue). Neurovõrgu sisendiks on maatriks, mis koosneb pikslite RGB tähendustest. Edasi algoritm tuvastab kohad, kus pildil asuvad näod. Järgmiseks sammuks on visuaalsete erisugususte parandamine. Näiteks, algoritm oskab „pöörata“ näo sobiva positsiooni, kui hetke nurga alt on raske saada vajalikud andmed kätte. Tänu sellele „oskusele“ algoritm töötab hästi ka halba valgustatuse ja koheseks tuvastamiseks ebamugavate inimese kuju positsioonide korral. Kolmanda sammuna neurovõrk eraldab näo biomeetrilise mustri. Biomeetriline muster on teatud numbriline jada, mis on koostatud neurovõrgu poolt peale esialgse kuju teisendust, ning kasutatakse teiste sama kujuliste mustritega võrdlemiseks. Lõpuks, kui kõik andmed on käes ja töödeldud, teostatakse saadud andmete võrdlemine andmebaasis juba olemas olevate andmetega. Tegelikult, FindFace on terviklik ja mahukas erinevate neurovõrkude kogum, milles iga neurovõrk vastutab teatud ülesande eest lõpptulemuseni jõudmiseks. [37]

References

  1. "Warren Sturgis McCulloch",Wikimedia Foundation, Inc., 23.11.2020
  2. "Aristotle", Wikimedia Foundation, Inc., 11.12.2020
  3. Jeremy M. Norman, "Ramon Lull Invents Basic Logical Machines for the Production of Knowledge", 12.12.2020
  4. N.A Eremeev, "МАГИСТЕРСКАЯ ДИССЕРТАЦИЯ", «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ», 06.2017
  5. "Mathematical induction", Wikimedia Foundation, Inc., 7.12.2020
  6. 6.0 6.1 "Logical positivism", Wikimedia Foundation, Inc., 12.11.2020
  7. "Gottlob Frege", Wikimedia Foundation, Inc., 01.12.2020
  8. И.В. Степанов, "Теоремы Гёделя и проблема возможности создания искусственного интеллекта", Вологодский государственный педагогический университет, 2011
  9. Горбачовская Е.Н, Краснов С.С, "История развития нейронных сетей", Унивеситет имени В.Н Татищева
  10. 10.0 10.1 10.2 10.3 "История возникновения нейронных сетей", 28.01.2015
  11. "Stochastic neural analog reinforcement calculator", Wikimedia Foundation, Inc., 01.04.2020
  12. Соколински Л.Б, "История нейронных сетей и глубокого обучения", 29.05.2020
  13. "Backpropagation", Wikimedia Foundation, Inc, 02.12.2020
  14. "Recurrent neural network", Wikimedia Foundation, Inc, 13.12.2020
  15. "Connectionism", Wikimedia Foundation, Inc., 06.12.2020
  16. Samuel Gibbs, "Elon Musk: artificial intelligence is our biggest existential threat", 27.10.2014
  17. Rory Cellan-Jones, "Stephen Hawking - will AI kill or save humankind?", 20.10.2016
  18. Catherine Clifford, "Bill Gates: A.I. is like nuclear energy — ‘both promising and dangerous", 26.05.2019
  19. 19.0 19.1 19.2 19.3 19.4 Учебник по статистике Statsoft, 2012
  20. Jason Brownlee, “How to use Data Scaling Improve Deep Learning Model Stability and Performance”, 04.02.2019
  21. Aniruddha Bhandari, “Feature Scaling for Machine Learning”, 03.04.2020
  22. Tirmidzi Faizal Aflahi, Becoming Human, 19.06.2019
  23. 23.0 23.1 Jordi TORRES.AI, 21.04.2020
  24. Scott Northon, "What’s the difference between Von-Neumann and Harvard architectures?", Microcontroller tips, 8.03.2018
  25. “Ptolemy Project", University of california, 9.09.2006
  26. "Understanding Memory Leaks in Java", Baeldung, 12.02.2020
  27. Anson, “Are Computers Truly Multitask?”, UnbxTech, 14.09.2017
  28. 28.0 28.1 "Comparison between conventional computers and neural networks", Stanford, 2000
  29. 29.0 29.1 29.2 Maad M. Mijwil, "Artificial Neural Networks Advantages and Disadvantages", Springer Nature, 27.01.2018
  30. Niklas Donges, "4 REASONS WHY DEEP LEARNING AND NEURAL NETWORKS AREN’T ALWAYS THE RIGHT CHOICE", Springer Nature, 24.07.2019
  31. Наталия Ефремова, "Нейронные сети: практическое применение", 22.02.2017
  32. American Go Association, A Brief History of Go, 23.03.2017
  33. Google Research Blog, Research Blog: AlphaGo: Mastering the ancient game of Go with Machine Learning, 27.01.2016
  34. JustRoo, AlphaGo Zero совсем на пальцах, 4.12.2017
  35. 35.0 35.1 Demis Hassabis, AlphaGo Zero: Learning from scratch, 18.10.2017
  36. 36.0 36.1 36.2 Jeditobe, FindFace закроетcя для простых смертных, 01.07.2018
  37. 37.0 37.1 37.2 , FindFace, 11.05.2020
  38. 38.0 38.1 Kenneth Rapoza, Russia No. 1 In Facial Recognition, 28.11.2017
  39. Султан Сулейманов, Анонимные разработчики запустили аналог FindFace — сервис, ищущий по миллионам фотографий «ВКонтакте», 12.02.2019