Sügavad närvivõrgud: mis need on ja kuidas need töötavad
Sügavad närvivõrgud on kontseptsioon, mis moodustab süvaõppe mudelites kasutatava peamise tehnoloogilise arhitektuuri. Neid struktuure ei saa mõista, mõistmata tehisintellekti põhiideed tehisintellektist.
Närvivõrke kasutatakse tuhande asja jaoks: numbrimärkide, laulude, nägude, häälte või isegi meie köögis elavate puuviljade äratundmiseks. Need on eriti kasulikud tehnoloogiad ja hoolimata asjaolust, et need on alles hiljuti praktiliseks muutunud, on neist inimkonna tulevik.
Edasi Näeme põhjalikult kunstlike närvivõrkude ideed ja sügavust, mõista, kuidas nad töötavad, kuidas neid koolitatakse ja kuidas toimub nende moodustavate erinevate neuronite vaheline interaktsioon.
- Seotud artikkel: "Mis on kognitiivteadus? Selle põhiideed ja arengufaasid"
Mis on sügavad närvivõrgud ja mis neid iseloomustab?
Sügavad närvivõrgud on üks olulisemaid tehnoloogilisi arhitektuure, mida kasutatakse süvaõppes või süvaõppes. Nendel konkreetsetel tehisvõrkudel on viimastel aastatel olnud peadpööritav kasv, kuna need on igasuguste mustrite äratundmisel põhiaspekt. Tehisintellekt eksisteerib tänu nende konkreetsete võrkude toimimisele Sisuliselt on need meie ajude töö koopiad, kuigi tehnoloogilises ja matemaatika.
Enne kui läheme sügavamale närvivõrgud, peame kõigepealt mõistma, kuidas tehisnärvivõrgud üldiselt töötavad ja milleks need on. Lnärvivõrgud on "masinõppe" haru, millel on viimastel aastatel olnud tohutu mõju, mis aitab programmeerijatel ja arvutiteadlastel luua selliseid asju nagu vestlusrobotid, mis nendega vesteldes panevad meid arvama, et räägime päris inimestega.
Kunstlikke närvivõrke on kasutatud ka isejuhtivate autode puhul, mobiilirakendused, mis tunnevad ära meie näo ja muudavad selle selleks, mida me tahame, ja palju muud funktsioonid. Selle rakendatavus on väga lai, olles tänapäevase tehisintellekti aluseks ja millel on meie igapäevaelus lõputult kasulikke kasutusvõimalusi.
tehisnärvivõrgud
Kujutagem ette, et oleme oma köögis ja otsustame apelsini otsida, see on väga lihtne ülesanne.. Teame, kuidas apelsini väga lihtsalt ära tunda ja eristada seda ka teistest köögis leiduvatest puuviljadest, nagu banaanid, õunad ja pirnid. Nagu? Sest oleme oma ajus väga hästi omaks võtnud apelsini tüüpilised omadused: selle selle suurus, kuju, värv, kuidas see lõhnab... Need on kõik parameetrid, mida me kasutame oranž.
See on inimeste jaoks lihtne ülesanne, kuid... Kas arvuti saab ka sellega hakkama? Vastus on jah. Põhimõtteliselt piisaks nende samade parameetrite määratlemisest ja väärtuse määramisest sõlmele või millelegi, mida võiksime hästi nimetada "kunstlikuks neuroniks". Me ütleksime sellele neuronile, millised on apelsinid, näidates nende suurust, kaalu, kuju, värvi või mõnda muud parameetrit, mille me sellele puuviljale omistame. Selle teabe omamisel eeldatakse, et neuron teab, kuidas apelsini identifitseerida, kui see talle esitatakse.
Kui oleme parameetrid hästi valinud, on teil lihtne neid omadusi arvesse võttes teha vahet apelsinidel ja asjadel, mis ei ole apelsinid. Mis tahes puuvilja kujutise esitamisel otsib see neuron omadusi apelsiniga seotud ja otsustada, kas lisada see kategooriasse „oranž” või kategooriasse „muu”. puuvili". Statistilises mõttes tähendaks see parameetrite graafikust piirkonna leidmist, mis vastab olemisele otsides piirkonda, mis hõlmaks kõiki puuviljatükke, millel on sama suurus, kuju, värvus, kaal ja lõhn. apelsinid.
Alguses kõlab seda kõike väga lihtne kodeerida ja tegelikult see nii ongi. See aitab väga hästi eristada apelsini banaanist või õunast, kuna neil on erinev värv ja kuju. Aga mis siis, kui kingiks teile greibi? ja väga suur mandariin? Need on puuviljad, mida saab suurepäraselt apelsiniga segi ajada. Kas tehisneuron suudab apelsine ja greipe ise eristada? Vastus on eitav ja tegelikult arvatakse, et need on samad.
Kui kasutatakse ainult ühte tehisneuronite kihti või mis on sama, kasutades esmalt ainult lihtsaid neuroneid, on probleem selles, et luua väga ebatäpseid otsustuspiire, kui teile esitatakse midagi, millel on palju ühiseid omadusi sellega, mida peaksite suutma ära tunda, aga tegelikult pole see nii. Kui esitleme midagi, mis näeb välja nagu apelsin, näiteks greip, tuvastab see selle sellisena, isegi kui see pole see puu.
Need otsustuspiirid, kui need on esitatud graafiku kujul, on alati lineaarsed. Kasutades ühte tehisneuronit, st ühte sõlme, millel on integreeritud parameetrid konkreetsed, kuid ei suuda neist kaugemale õppida, saadakse väga lähedased otsustuspiirid. hajus. Selle peamine piirang on see, et see kasutab kahte statistilist meetodit, täpsemalt mitme klassi regressiooni ja logistiline regressioon, mis tähendab, et kahtluse korral hõlmab see midagi, mis pole see, mida me eeldasime. tuvastab.
Kui jagaksime kõik puuviljad "apelsinideks" ja "mitte apelsinideks", siis ainult ühte neuronit kasutades on selge, et banaanid, pirnid, õunad, arbuusid ja kõik puuviljad, mis ei vasta suuruselt, värvilt, kujult, aroomilt ja nii edasi apelsinidega, ma paneks need kategooriasse "ei". apelsinid”. Kuid greibid ja mandariinid paneksid nad "apelsinide" kategooriasse, tehes seda tööd, milleks nad on loodud halvasti.
Ja kui me räägime apelsinidest ja greibidest, siis võiksime hästi rääkida koertest ja huntidest, kanadest ja kanadest, raamatutest ja vihikutest... Kõik Need olukorrad on juhtumid, kus lihtsast "kui..." ("kui...") seeriast ei piisa ühe ja teise selgeks eristamiseks. muud. Vaja on keerulisemat, mittelineaarset süsteemi, mis on erinevate elementide eristamisel täpsem. Midagi, mis võtab arvesse, et sarnasuste vahel võib olla erinevusi. See on koht, kus närvivõrgud tulevad sisse.
Rohkem kihte, sarnasem inimese ajuga
Kunstlikud närvivõrgud, nagu nende nimigi ütleb, on arvutuslikud tehismudelid, mis on inspireeritud inimaju närvivõrkudes, võrgustikud, mis tegelikult jäljendavad selle organi tööd bioloogiline. See süsteem on inspireeritud närvide funktsioneerimisest ja selle peamine rakendus on äratundmine igasugused mustrid: näotuvastus, hääletuvastus, sõrmejälg, käekiri, numbrimärgid… Mustrituvastus töötab peaaegu kõigega..
Kuna neuroneid on erinevaid, on rakendatavad parameetrid erinevad ja saavutatakse suurem täpsusaste. Need närvivõrgud on süsteemid, mis võimaldavad meil üksused kategooriatesse eraldada, kui erinevus võib olla peen, eraldades need mittelineaarselt, miski, mida muidu oleks võimatu teha viisil.
Ühe sõlme ja ühe neuroniga on teabe käsitlemisel tehtud mitme klassi regressioon. Lisades rohkem neuroneid, kuna igaühel neist on oma mittelineaarne aktiveerimisfunktsioon, mis lihtsamasse keelde tõlgituna muudab neil otsustuspiirid, mis on täpsem, olles graafiliselt kujutatud kõvera kujuga ja võttes arvesse rohkem omadusi "apelsinide" ja "mitte apelsinide" eristamisel, jätkates selle näitega.
Nende otsustuspiiride kõverus sõltub otseselt sellest, mitu neuronikihti me oma närvivõrku lisame. Need neuronite kihid, mis muudavad süsteemi keerukamaks ja täpsemaks, on tegelikult sügavad närvivõrgud. Põhimõtteliselt, mida rohkem on meil sügavate närvivõrkude kihte, seda täpsem ja sarnasem on programm inimese ajuga võrreldes.
Lühidalt, närvivõrgud pole midagi muud intelligentne süsteem, mis võimaldab teha täpsemaid otsuseid, väga sarnaselt sellele, kuidas meie, inimesed, seda teeme. Inimene põhineb kogemusel, õpib meie keskkonnast. Näiteks tulles tagasi apelsini ja greibi juurde, siis kui me pole seda kunagi näinud, peaksime selle suurepäraselt apelsini vastu. Kui oleme sellega tuttavaks saanud, siis see on siis, kui me juba teame, kuidas seda tuvastada ja apelsinidest eristada.
Esimene asi, mis tehakse, on anda närvivõrkudele mõned parameetrid, et nad teaksid, mis see on, mida me tahame, et see õpiks tuvastama. Seejärel tuleb õppimis- või koolitusfaas, nii et see on järjest täpsem ja järk-järgult väiksema veamääraga. See on aeg, mil me esitleksime oma närvivõrku apelsini ja muude puuviljadega. Koolitusfaasis antakse neile juhtumeid, mille puhul need on oranžid, ja juhtumid, kus nad ei ole oranžid, et näha, kas nad said õige vastuse, ja öeldakse neile õige vastus.
Püüame teha palju katseid ja võimalikult lähedal tegelikkusele.. Nii aitame närvivõrgul toimida tegelike juhtumite saabumisel ja see teab, kuidas õigesti diskrimineerida, samamoodi nagu inimene päriselus. Kui väljaõpe on olnud adekvaatne, olles valinud head äratundmisparameetrid ja on hästi klassifitseeritud, on närvivõrgu mustrituvastuse edukuse määr väga kõrge. kõrge.
- Teid võivad huvitada: "Kuidas neuronid töötavad?"
Mis need on ja kuidas need täpselt töötavad?
Nüüd, kui oleme näinud üldist ideed sellest, mis on närvivõrgud, hakkame paremini aru saama, mis need on ja kuidas need inimaju neuronite emulaatorid töötavad ja kuhu värvivad sügavad närvivõrgud selles kõiges protsessi.
Kujutagem ette, et meil on järgmine närvivõrk: meil on kolm kihti tehisneuroneid. Oletame, et esimeses kihis on 4 neuronit või sõlme, teises 3 ja viimases ainult 2. See kõik on näide tehisnärvivõrgust, mida on üsna lihtne mõista.
Esimene kiht on see, mis andmeid vastu võtab.st teavet, mis võib tulla heli, pildi, aroomide, elektriimpulsside kujul... See esimene kiht on sisendkiht ja vastutab kõigi andmete vastuvõtmise eest, et saaks neid hiljem saata kihid. Meie närvivõrgu treenimise ajal on see kiht, millega me kõigepealt töötame, andes selle andmed, mida me kasutame selleks, et näha, kui hästi teil läheb ennustuste tegemisel või teile antud teabe tuvastamisel annab.
Meie hüpoteetilise mudeli teine kiht on peidetud kiht, mis asub otse esimese ja viimase kihi keskel., nagu oleks meie närvivõrk võileib. Selles näites on meil ainult üks peidetud kiht, kuid neid võib olla nii palju, kui tahame. Võiksime rääkida 50, 100, 1000 või isegi 50 000 kihist. Sisuliselt on need peidetud kihid närvivõrgu osa, mida me nimetaksime sügavaks närvivõrguks. Mida suurem on sügavus, seda keerulisem on närvivõrk.
Lõpuks on meil meie näite kolmas kiht, mis on väljundkiht. See kiht, nagu selle nimi näitab, vastutab eelmistelt kihtidelt info vastuvõtmise, otsuse tegemise ja meile vastuse või tulemuse andmise eest.
Närvivõrgus on iga kunstlik neuron ühendatud kõigi järgmistega. Meie näites, kus oleme kommenteerinud, et meil on kolm kihti 4, 3 ja 2 neuronist, on sisendkihi 4 on ühendatud peidetud kihi 3-ga ja peidetud kihi 3-ga väljundi 2-ga, mis annab meile kokku 18 ühendused.
Kõik need neuronid on ühendatud järgmise kihi neuronitega, saates teavet sisend->peidetud->väljundi suunas.. Kui peidetud kihte oleks rohkem, räägiksime suuremast ühenduste arvust, saates informatsiooni peidetud kihist peidetud kihile, kuni see jõuab väljundkihini. Kui väljundkiht on teabe kätte saanud, annab see meile tulemuse, mis põhineb saadud teabel ja selle töötlemisel.
Kui me treenime oma algoritmi, see tähendab meie närvivõrku, siis seda protsessi, mida just selgitasime, tehakse mitu korda. Edastame võrku mõned andmed, vaatame, mida tulemus meile annab, analüüsime ja võrdleme sellega, mida me tulemuselt ootasime. Kui oodatava ja saadava vahel on suur erinevus, tähendab see, et veapiir on suur ja seetõttu on vaja teha mõned muudatused.
Kuidas kunstlikud neuronid töötavad?
Nüüd mõistame närvivõrgus töötavate neuronite individuaalset toimimist. Neuron saab infosisendi eelmiselt neuronilt. Oletame, et see neuron saab kolm infosisendit, millest igaüks pärineb eelmise kihi kolmelt neuronilt. See neuron omakorda genereerib väljundeid, antud juhul oletame, et ta on ühendatud ainult järgmise kihi neuroniga.
Iga ühendus, mis sellel neuronil on eelmise kihi kolme neuroniga, toob kaasa "x" väärtuse, mis on väärtus, mille eelmine neuron meile saadab.; ja sellel on ka väärtus "w", mis on selle ühenduse kaal. Kaal on väärtus, mis aitab meil anda ühele ühendusele teistest suurema tähtsuse. Lühidalt, igal ühendusel eelmiste neuronitega on “x” ja “w” väärtus, mis korrutatakse (x·w).
Meil hakkab ka olema väärtus nimega "bias" või bias, mis on esitatud tähega "b", mis on vigade arv, mis julgustab teatud neuroneid aktiveeruma kergemini kui teised. Lisaks on meil neuronis aktiveerimisfunktsioon, mis muudab selle erinevate elementide klassifitseerimise astme (lk. nt apelsinid) ei ole lineaarne. Igal neuronil on eraldiseisvalt erinevad parameetrid, millega arvestada, mis paneb kogu süsteemi, see on närvivõrk, mittelineaarselt klassifitseerima.
Kuidas neuron teab, kas ta peab aktiveeruma või mitte? ehk millal sa tead, kas pead infot järgmisele kihile saatma? Noh, seda otsust juhib järgmine võrrand:
See valem tähendab, et tuleb teha kõigi kaalude "w" summa, mis on korrutatud kõigi "x" väärtustega, mille neuron saab eelmisest kihist. Sellele lisandub kallutatus "b".
Selle võrrandi tulemus saadetakse aktiveerimisfunktsioonile, mis on lihtsalt funktsioon, mis ütleb meile, et kui selle võrrandi tulemus on suurem kui a teatud arvu korral saadab neuron signaali järgmisele kihile ja kui see on väiksem, siis mitte seda saata Niisiis otsustab tehisneuron järgmiselt, kas saata neuronitele teavet või mitte: kiht väljundi abil, mida me nimetame "y", väljundiks, mis omakorda on sisend "x" järgmistest neuron.
Ja kuidas treenida tervet võrgustikku?
Esimene asi, mis tehakse, on andmete edastamine esimesse kihti, nagu oleme eelnevalt kommenteerinud. See kiht saadab teavet järgmistesse kihtidesse, mis on peidetud kihid või sügav närvivõrk. Nende kihtide neuronid aktiveeruvad või mitte, sõltuvalt saadud teabest. Lõpuks annab väljundkiht meile tulemuse, mida me võrdleme väärtusega, mida ootasime, et näha, kas närvivõrk on õppinud, mida õigesti teha.
Kui ta ei õppinud hästi, teeme teise suhtluse, st anname teile uuesti teavet ja vaatame, kuidas närvivõrk käitub. Sõltuvalt saadud tulemustest kohandatakse "b" väärtusi, st iga neuroni kallutatust ja "w", mis on iga neuroniga iga ühenduse kaal, et viga vähendada. Et teada saada, kui suur see viga on, kasutame teist võrrandit, mis on järgmine:
See võrrand on ruutkeskmine viga. Me teeme y (x) summa, mis on väärtus, mille meie võrk meile interaktsioonis andis, miinus "a", mis on väärtus, mille me eeldasime, et see meile ruutu tõstab. Lõpuks korrutame selle summa 1/2n-ga, mis on "n" interaktsioonide arvuga, mille oleme saatnud oma närvivõrgu treenimiseks.
Oletame näiteks, et meil on järgmised väärtused
Esimene veerg „y (x)” tähistab seda, mida meie võrk on meile andnud kõigis neljas testitud interaktsioonis. Nagu näha, saadud väärtused ei vasta teise veeru “a” väärtustele, mis on iga testitud interaktsiooni soovitud väärtused. Viimane veerg tähistab iga interaktsiooni viga.
Rakendades eelnimetatud valemit ja kasutades siin neid andmeid, pidades meeles, et antud juhul n = 4 (4 interaktsioonid) annab meile väärtuse 3,87, mis on meie närvivõrgu keskmine ruutviga. hetked. Teades viga, peame nüüd, nagu oleme varem kommenteerinud, muutma kallutatust ja iga neuroni kaalud ja nende vastasmõjud eesmärgiga, et sel viisil on viga vähendada.
Sel hetkel kandideerivad insenerid ja arvutiteadlased algoritm, mida nimetatakse gradiendi laskumiseks mille abil nad saavad väärtusi iga tehisneuroni kallutatuse ja kaalu testimiseks ja muutmiseks nii et sel viisil saadakse järjest madalam viga, mis läheneb ennustusele või tulemusele tahtis. See on testimise küsimus ja mida rohkem interaktsioone tehakse, seda rohkem on koolitusi ja seda rohkem õpib võrgustik.
Kui närvivõrk on piisavalt koolitatud, annab see meile täpsed ja usaldusväärsed prognoosid ja tuvastamised. Sel hetkel on meil võrk, mille igas neuronis on väärtus määratletud kaal, kontrollitud kallutatusega ja otsustusvõimega, mis loob süsteemi tööd.
Bibliograafilised viited:
- Puig, A. [AMP Tech] (2017, 28. juuli). Kuidas närvivõrgud töötavad? [Videofail]. Toibunud https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
- Santaolalla, J. [Give yourself a Vlog] (2017, 11. aprill) CienciaClip Challenge – Mis on närvivõrgud? [Videofail]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
- Schmidhuber, J. (2015). "Süvaõpe närvivõrkudes: ülevaade". Närvivõrgud. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509