Education, study and knowledge

Gilieji neuroniniai tinklai: kas jie yra ir kaip jie veikia

Gilieji neuroniniai tinklai yra koncepcija, kuri sudaro pagrindinę technologinę architektūrą, naudojamą giluminio mokymosi modeliuose. Šių struktūrų negalima suprasti nesuvokus bendros dirbtinių neuroninių tinklų idėjos, kuri yra pagrindinė dirbtinio intelekto dalis.

Neuroniniai tinklai naudojami tūkstančiui dalykų: atpažįstant valstybinius numerius, dainas, veidus, balsus ar net vaisius mūsų virtuvėje. Tai ypač naudinga technologija ir, nepaisant to, kad jos tik neseniai tapo praktiškos, jos bus žmonijos ateitis.

Kitas Mes gilinsimės į dirbtinių neuroninių tinklų idėją ir giliai, suprasti, kaip jie veikia, kaip jie treniruojami ir kaip vyksta skirtingų juos sudarančių neuronų sąveika.

  • Susijęs straipsnis: „Kas yra pažinimo mokslas? Jo pagrindinės idėjos ir kūrimo etapai“

Kas yra gilieji neuroniniai tinklai ir kas jiems būdinga?

Gilieji neuroniniai tinklai yra viena iš svarbiausių technologinių architektūrų, naudojamų Deep Learning arba Deep Learning. Šie konkretūs dirbtiniai tinklai pastaraisiais metais svaiginamai išaugo, nes jie yra esminis aspektas, kai reikia atpažinti įvairius modelius. Dirbtinis intelektas egzistuoja dėl šių konkrečių tinklų veikimo Iš esmės jie yra mūsų smegenų veikimo kopija, nors technologinėje ir matematika.

instagram story viewer

Prieš gilindamiesi į giluminius neuroninius tinklus, pirmiausia turime suprasti, kaip dirbtiniai neuroniniai tinklai veikia apskritai ir kam jie skirti. Lneuroniniai tinklai yra „mašininio mokymosi“ atšaka, kuri pastaraisiais metais turėjo didžiulį poveikį, padedant programuotojams ir kompiuterių mokslininkams sukurti tokius dalykus kaip pokalbių robotai, kurie, kai su jais kalbame, verčia manyti, kad kalbame su tikrais žmonėmis.

Dirbtiniai neuroniniai tinklai taip pat buvo naudojami su savaeigiais automobiliais, mobiliosios programos, kurios atpažįsta mūsų veidą ir paverčia jį tuo, ko norime, ir daug daugiau funkcijas. Jo pritaikomumas yra labai platus, jis yra šiuolaikinio dirbtinio intelekto pagrindas ir yra be galo naudingas mūsų kasdieniame gyvenime.

dirbtiniai neuroniniai tinklai

Įsivaizduokime, kad esame savo virtuvėje ir nusprendžiame ieškoti oranžinės spalvos, labai paprasta užduotis.. Mes žinome, kaip labai lengvai atpažinti apelsiną, taip pat žinome, kaip jį atskirti nuo kitų virtuvėje sutinkamų vaisių, tokių kaip bananai, obuoliai ir kriaušės. Kaip? Kadangi savo smegenyse mes labai įsisavinome tipines apelsino savybes: jo jo dydis, forma, spalva, kaip kvepia... Tai yra visi parametrai, kuriuos naudojame norėdami rasti oranžinė.

Žmonėms tai paprasta užduotis, bet... Ar gali tai padaryti ir kompiuteris? Atsakymas yra taip. Iš esmės pakaktų apibrėžti tuos pačius parametrus ir priskirti reikšmę mazgui ar kažkam, ką galėtume pavadinti „dirbtiniu neuronu“. Tam neuronui pasakytume, kokie yra apelsinai, nurodydami jų dydį, svorį, formą, spalvą ar bet kurį kitą parametrą, kurį priskiriame šiam vaisiui. Turint šią informaciją, tikimasi, kad neuronas žinos, kaip atpažinti apelsiną, kai bus pateiktas toks.

Gerai parinkę parametrus, galėsite nesunkiai atskirti apelsinus nuo ne apelsinų vien tik atsižvelgdami į šias savybes. Kai pateikiamas bet kurio vaisiaus vaizdas, tas neuronas ieškos savybių susieti su apelsinu ir nuspręsti, ar įtraukti jį į kategoriją „oranžinė“ ar „kita“. vaisius“. Statistiniu požiūriu tai reikštų, kad parametrų grafike reikia rasti regioną, atitinkantį tai, kas yra Ieškote regiono, kuriame būtų visi vaisiaus gabalėliai, kurių dydis, forma, spalva, svoris ir aromatas yra toks pat kaip apelsinai.

Iš pradžių visa tai skamba labai lengvai koduoti, o iš tikrųjų taip ir yra. Labai gerai atskirti apelsiną nuo banano ar obuolio, nes jie yra skirtingų spalvų ir formų. Tačiau kas būtų, jei padovanotume jums greipfrutą? ir labai didelis mandarinas? Tai vaisiai, kuriuos galima puikiai supainioti su apelsinu. Ar dirbtinis neuronas sugebės pats atskirti apelsinus ir greipfrutus? Atsakymas yra ne, ir iš tikrųjų manoma, kad jie yra vienodi.

Problema naudojant tik vieną dirbtinių neuronų sluoksnį arba tai, kas yra tas pats, pirmiausia naudojant paprastus neuronus, yra ta, kad sukurti labai netikslias sprendimų ribas, kai jums pateikiama kažkas, kas turi daug bendrų savybių su tuo, ką turėtumėte atpažinti, bet iš tikrųjų taip nėra. Jei pateiksime ką nors, kas atrodo kaip apelsinas, pavyzdžiui, greipfrutą, net jei tai nėra tas vaisius, jis jį identifikuos kaip tokį.

Šios sprendimo ribos, jei jos pavaizduotos grafiko pavidalu, visada bus tiesinės. Naudojant vieną dirbtinį neuroną, tai yra vieną mazgą, turintį integruotus parametrus konkretūs, bet negali mokytis už jų ribų, bus gautos labai artimos sprendimų ribos. difuzinis. Pagrindinis jo apribojimas yra tai, kad jis naudoja du statistinius metodus, ypač kelių klasių regresiją ir logistinė regresija, o tai reiškia, kad kai kyla abejonių, ji apima kažką, kas nėra tai, ko tikėjomės. atpažins.

Jei visus vaisius skirstytume į „apelsinus“ ir „ne apelsinus“, naudojant tik vieną neuroną, būtų aišku, kad bananai, kriaušės, obuolius, arbūzus ir bet kokius vaisius, kurie savo dydžiu, spalva, forma, aromatu ir panašiai neatitinka apelsinų, juos priskirčiau kategorijai „ne“. apelsinai“. Tačiau greipfrutai ir mandarinai priskirtų juos „apelsinų“ kategorijai, nes jie prastai atlieka darbą, kuriam jie buvo sukurti.

O kai kalbame apie apelsinus ir greipfrutus, galime kalbėti apie šunis ir vilkus, vištas ir vištas, knygas ir sąsiuvinius... Viskas Šios situacijos yra atvejai, kai paprastos „jei...“ („jei...“) serijos nepakaktų, kad būtų galima aiškiai atskirti vieną ir kitą. kitas. Reikia sudėtingesnės, netiesinės sistemos, kuri būtų tikslesnė, kai reikia atskirti skirtingus elementus. Kažkas, kas atsižvelgia į tai, kad tarp panašumų gali būti skirtumų. Čia atsiranda neuroniniai tinklai.

Daugiau sluoksnių, panašesnių į žmogaus smegenis

Dirbtiniai neuroniniai tinklai, kaip rodo jų pavadinimas, yra dirbtiniai skaičiavimo modeliai, įkvėpti žmogaus smegenų neuroniniuose tinkluose – tinkluose, kurie iš tikrųjų imituoja šio organo veiklą biologinės. Šią sistemą įkvėpė nervų funkcionavimas, o pagrindinis jos pritaikymas yra atpažinimas visų rūšių modeliai: veido atpažinimas, balso atpažinimas, pirštų atspaudai, rašysena, valstybiniai numeriai… Šablonų atpažinimas veikia beveik viskam..

Kadangi yra skirtingų neuronų, taikomi įvairūs parametrai ir gaunamas didesnis tikslumas. Šie neuroniniai tinklai yra sistemos, leidžiančios atskirti elementus į kategorijas, kai Skirtumas gali būti subtilus, atskiriant juos nelinijiniu būdu, ko kitaip būtų neįmanoma padaryti būdas.

Su vienu mazgu, su vienu neuronu, tai, kas daroma tvarkant informaciją, yra kelių klasių regresija. Pridedant daugiau neuronų, nes kiekvienas iš jų turi savo nelinijinę aktyvinimo funkciją, kuri, išvertus į paprastesnę kalbą, suteikia jiems sprendimų ribas, kurios yra tiksliau, grafiškai pavaizduotas lenkta forma ir atsižvelgiant į daugiau savybių, skiriant „apelsinus“ ir „ne apelsinus“, tęsti šiuo pavyzdžiu.

Šių sprendimų ribų kreivumas tiesiogiai priklausys nuo to, kiek neuronų sluoksnių įtrauksime į savo neuroninį tinklą. Tie neuronų sluoksniai, dėl kurių sistema tampa sudėtingesnė ir tikslesnė, iš tikrųjų yra gilieji neuroniniai tinklai. Iš esmės kuo daugiau giluminių neuroninių tinklų sluoksnių turėsime, tuo tikslesnė ir panašesnė programa bus lyginama su žmogaus smegenimis.

Trumpai tariant, neuroniniai tinklai yra ne kas kita protinga sistema, leidžianti priimti tikslesnius sprendimus, labai panašiai kaip mes, žmonės. Žmogus remiasi patirtimi, mokymusi iš mūsų aplinkos. Pavyzdžiui, grįžtant prie apelsino ir greipfruto atvejo, jei tokio niekada nematėme, tai puikiai supainiosime su apelsinu. Kai mes su juo susipažinsime, tai bus tada, kai jau žinosime, kaip jį atpažinti ir atskirti nuo apelsinų.

Pirmas dalykas, kuris daromas, yra pateikti kai kuriuos parametrus neuroniniams tinklams, kad jie žinotų, kas tai yra, ką mes norime, kad jie išmoktų identifikuoti. Tada ateina mokymosi arba mokymo etapas, kad jis būtų vis tikslesnis ir laipsniškai turi mažesnę paklaidą. Tai laikas, kai savo neuroninį tinklą padovanosime apelsinu ir kitais vaisiais. Mokymo fazėje jiems bus pateikiami atvejai, kai jie yra oranžiniai, ir atvejai, kai jie nėra oranžiniai, žiūrima, ar jie teisingai atsakė, ir pasakys teisingą atsakymą.

Stengsimės atlikti daugybę bandymų ir kuo arčiau realybės.. Taip padedame neuroniniam tinklui veikti, kai ateina tikri atvejai, ir jis žino, kaip tinkamai diskriminuoti, kaip tai darytų žmogus realiame gyvenime. Jei mokymas buvo adekvatus, pasirinkus gerus atpažinimo parametrus ir gerai klasifikuojami, neuroninis tinklas turės labai aukštą modelio atpažinimo sėkmės rodiklį. aukštas.

  • Galbūt jus domina: "Kaip veikia neuronai?"

Kas jie yra ir kaip jie tiksliai veikia?

Dabar, kai pamatėme bendrą idėją, kas yra neuroniniai tinklai, ir ketiname geriau suprasti, kas jie yra ir kaip veikia šie žmogaus smegenų neuronų emuliatoriai ir kur visa tai nudažo gilieji neuroniniai tinklai procesas.

Įsivaizduokime, kad turime tokį neuronų tinklą: turime tris dirbtinių neuronų sluoksnius. Tarkime, pirmame sluoksnyje yra 4 neuronai arba mazgai, antrame – 3, o paskutiniame – tik 2. Visa tai yra dirbtinio neuroninio tinklo pavyzdys, kurį gana lengva suprasti.

Pirmasis sluoksnis yra tas, kuris gauna duomenis.ty informacija, kuri gali būti garso, vaizdo, aromatų, elektrinių impulsų pavidalu... Tai pirmiausia sluoksnis yra įvesties sluoksnis ir yra atsakingas už visų duomenų gavimą, kad vėliau būtų galima juos išsiųsti toliau nurodytam asmeniui sluoksniai. Mūsų neuroninio tinklo lavinimo metu tai bus sluoksnis, su kuriuo pirmiausia dirbsime, suteikdami jį duomenis, kuriuos naudosime norėdami pamatyti, kaip jums sekasi daryti prognozes arba identifikuoti jums pateiktą informaciją duoda.

Antrasis mūsų hipotetinio modelio sluoksnis yra paslėptas sluoksnis, kuris yra pirmojo ir paskutinio sluoksnių viduryje., tarsi mūsų neuroninis tinklas būtų sumuštinis. Šiame pavyzdyje turime tik vieną paslėptą sluoksnį, bet jų gali būti tiek, kiek norime. Galima būtų kalbėti apie 50, 100, 1000 ar net 50 000 sluoksnių. Iš esmės šie paslėpti sluoksniai yra neuroninio tinklo dalis, kurią pavadintume giliuoju neuroniniu tinklu. Kuo didesnis gylis, tuo sudėtingesnis neuroninis tinklas.

Galiausiai turime trečiąjį mūsų pavyzdžio sluoksnį, kuris yra išvesties sluoksnis. Šis sluoksnis, kaip rodo jo pavadinimas, yra atsakingas už informacijos iš ankstesnių sluoksnių gavimą, sprendimo priėmimą ir atsakymo ar rezultato pateikimą.

Neuroniniame tinkle kiekvienas dirbtinis neuronas yra prijungtas prie visų šių. Mūsų pavyzdyje, kuriame komentavome, kad turime tris sluoksnius iš 4, 3 ir 2 neuronų, 4 įvesties sluoksnio yra sujungtas su 3 paslėpto sluoksnio ir 3 paslėpto sluoksnio su 2 išvesties, todėl iš viso gauname 18 jungtys.

Visi šie neuronai yra sujungti su kito sluoksnio neuronais, siunčiant informaciją įvesties->paslėpta->išvesties kryptimi.. Jei paslėptų sluoksnių būtų daugiau, kalbėtume apie didesnį jungčių skaičių, siunčiant informaciją iš paslėpto sluoksnio į paslėptą sluoksnį, kol ji pasiekia išvesties sluoksnį. Išvesties sluoksnis, gavęs informaciją, pateiks mums rezultatą, pagrįstą gauta informacija ir jos apdorojimo būdu.

Kai treniruojame savo algoritmą, ty neuroninį tinklą, šis ką tik paaiškintas procesas bus atliktas daug kartų. Mes ketiname pateikti tam tikrus duomenis į tinklą, pamatysime, ką mums duos rezultatas, analizuosime ir palyginsime su tuo, ko tikėjomės, kad rezultatas mums duos. Jei yra didelis skirtumas tarp to, ko tikimasi ir kas gaunama, tai reiškia, kad yra didelė paklaida, todėl būtina atlikti keletą modifikacijų.

Kaip veikia dirbtiniai neuronai?

Dabar mes suprasime individualų neuronų, veikiančių neuroniniame tinkle, funkcionavimą. Neuronas gauna informaciją iš ankstesnio neurono. Tarkime, kad šis neuronas gauna tris informacijos įvestis, kurių kiekviena ateina iš trijų ankstesnio sluoksnio neuronų. Savo ruožtu šis neuronas generuoja išėjimus, šiuo atveju tarkime, kad jis yra prijungtas tik prie kito sluoksnio neurono.

Kiekvienas šio neurono ryšys su trimis ankstesnio sluoksnio neuronais suteikia „x“ reikšmę, ty vertę, kurią mums siunčia ankstesnis neuronas.; ir ji taip pat turi reikšmę „w“, kuri yra šio ryšio svoris. Svoris yra vertybė, kuri padeda mums suteikti daugiau reikšmės vienam ryšiui, o ne kitiems. Trumpai tariant, kiekvienas ryšys su ankstesniais neuronais turi „x“ ir „w“ reikšmes, kurios padauginamos (x · w).

Mes taip pat ketiname turėti reikšmė, vadinama "pokrypis" arba poslinkis, pavaizduotas raide "b", kuris yra klaidų skaičius, skatinantis tam tikrus neuronus aktyvuotis lengviau nei kitus. Be to, neurone turime aktyvinimo funkciją, kuri lemia skirtingų elementų klasifikavimo laipsnį (p. pvz., apelsinai) nėra linijinis. Kiekvienas neuronas turi skirtingus parametrus, į kuriuos reikia atsižvelgti, todėl visa sistema, tai yra neuroninis tinklas, klasifikuojama nelinijiškai.

Kaip neuronas žino, ar jis turi aktyvuotis, ar ne? tai yra, kada žinote, ar turite siųsti informaciją kitam sluoksniui? Na, šį sprendimą reglamentuoja ši lygtis:

neuroninis tinklas

Ši formulė reiškia, kad turi būti sudaryta visų svorių „w“ suma, padauginta iš visų „x“ reikšmių, kurias neuronas gauna iš ankstesnio sluoksnio. Prie to pridedamas poslinkis „b“.

Šios lygties rezultatas siunčiamas į aktyvinimo funkciją, kuri yra tiesiog funkcija, nurodanti, kad jei šios lygties rezultatas yra didesnis nei a Tam tikras skaičius, neuronas siųs signalą į kitą sluoksnį, o jei jis mažesnis, tada ne jį išsiųsti Taigi dirbtinis neuronas nusprendžia, ar siųsti informaciją neuronams, ar ne: sluoksnį naudojant išvestį, kurią vadinsime "y", išvestis, kuri savo ruožtu yra įvestis "x" neuronas.

O kaip apmokyti visą tinklą?

Pirmas dalykas, kurį reikia padaryti, yra pateikti duomenis į pirmąjį sluoksnį, kaip jau komentavome anksčiau. Šis sluoksnis siųs informaciją į kitus sluoksnius, kurie yra paslėpti sluoksniai arba gilusis neuroninis tinklas. Šių sluoksnių neuronai suaktyvės arba ne, priklausomai nuo gautos informacijos. Galiausiai išvesties sluoksnis pateiks mums rezultatą, kurį palyginsime su reikšme, kurios laukėme, kad pamatytume, ar neuroninis tinklas išmoko, ką daryti teisingai.

Jei jis gerai neišmoko, mes atliksime kitą sąveiką, ty dar kartą pateiksime jums informaciją ir pamatysime, kaip elgiasi neuroninis tinklas. Priklausomai nuo gautų rezultatų, bus pakoreguotos „b“ reikšmės, tai yra, kiekvieno neurono poslinkis, o „w“ – tai kiekvienos jungties su kiekvienu neuronu svoris, siekiant sumažinti paklaidą. Norėdami sužinoti, kokia didelė ta klaida, naudosime kitą lygtį, kuri yra tokia:

neuroninis tinklas

Ši lygtis yra pagrindinė kvadratinė paklaida. Mes padarysime y (x) sumą, kuri yra vertė, kurią mums suteikė mūsų tinklas sąveikos metu, atėmus „a“, ty vertę, kurią mes tikėjomės, kad jis mums duos, pakeltą į kvadratą. Galiausiai šią sumą padauginsime iš 1/2n, tai yra „n“ sąveikų, kurias išsiuntėme norėdami išmokyti savo neuronų tinklą, skaičiaus.

Pavyzdžiui, tarkime, kad turime šias reikšmes

neuroninis tinklas

Pirmas stulpelis „y (x)“ rodo, ką mūsų tinklas mums suteikė per kiekvieną iš keturių išbandytų sąveikų. Vertės, kurias gavome, kaip matyti, neatitinka antrojo stulpelio „a“, kurios yra norimos vertės kiekvienai iš išbandytų sąveikų. Paskutiniame stulpelyje nurodoma kiekvienos sąveikos klaida.

Taikant pirmiau minėtą formulę ir naudojant šiuos duomenis, turint omenyje, kad šiuo atveju n = 4 (4 sąveikos) suteikia mums vertę 3,87, tai yra vidutinė kvadratinė paklaida, kurią mūsų neuroninis tinklas turi šiuose akimirkos. Žinodami klaidą, ką dabar turime padaryti, kaip jau komentavome anksčiau, pakeisti šališkumą ir kiekvieno neurono svoriai ir jų sąveika, siekiant, kad tokiu būdu būtų padaryta klaida sumažinti.

Šiuo metu kreipiasi inžinieriai ir kompiuterių mokslininkai algoritmas, vadinamas gradiento nusileidimu su kuriomis jie gali gauti vertes, kad patikrintų ir pakeistų kiekvieno dirbtinio neurono poslinkį ir svorį kad tokiu būdu būtų gaunama vis mažesnė paklaida, artėjanti prie prognozės arba rezultato norėjo. Tai yra testavimo reikalas ir kuo daugiau sąveikaujama, tuo daugiau mokymų bus ir tuo daugiau tinklas išmoks.

Kai neuroninis tinklas bus tinkamai apmokytas, jis mums pateiks tikslias ir patikimas prognozes ir identifikavimą. Šiuo metu mes turėsime tinklą, kurio vertė kiekviename jo neurone bus lygi apibrėžtą svorį, kontroliuojamą šališkumą ir sprendimų gebėjimą, kuris sukurs sistemą dirbti.

Bibliografinės nuorodos:

  • Puigas, A. [AMP Tech] (2017 m., liepos 28 d.). Kaip veikia neuroniniai tinklai? [Vaizdo failas]. Atsigavo nuo https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
  • Santaolalla, J. [Padovanok sau vaizdo įrašą] (2017 m., balandžio 11 d.) CienciaClip iššūkis – kas yra neuroniniai tinklai? [Vaizdo failas]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
  • Schmidhuberis, J. (2015). „Gilus mokymasis neuroniniuose tinkluose: apžvalga“. Neuroniniai tinklai. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509

Prokariotinės ląstelės: kas tai yra ir kokios yra jų savybės

Taksonomijoje ir filogenezėje gyvūnai yra gyvų būtybių karalystė, vienijanti plačią organizmų gru...

Skaityti daugiau

5 skirtumai tarp sociologijos ir antropologijos

Žmogus yra būtybė, turinti palyginti trumpą istoriją, palyginti su kitais. Ir dar trumpesnė yra i...

Skaityti daugiau

„Autorio mirtis“: kas tai yra ir ką ji paaiškina apie meno pasaulį

„Autorio mirtis“: kas tai yra ir ką ji paaiškina apie meno pasaulį

Kas yra „autorio mirtis“? Galbūt jūs girdėjote apie tai, o gal pirmą kartą girdite šį posakį. Ne,...

Skaityti daugiau