Kuinka toimia hermoverkon kanssa. Neuroverkot: tyypit, toimintaperiaatteet ja sovellusalueet. Mitä varten neuroverkot ovat?

Vastaavasti hermoverkko ottaa kaksi numeroa syötteenä ja sen on tulostettava toinen luku - vastaus. Nyt itse neuroverkoista.

Mikä on neuroverkko?


Hermoverkko on synapsien yhdistämien hermosolujen sarja. Neuroverkon rakenne tuli ohjelmoinnin maailmaan suoraan biologiasta. Tämän rakenteen ansiosta kone saa kyvyn analysoida ja jopa muistaa erilaisia ​​tietoja. Neuroverkot pystyvät myös paitsi analysoimaan saapuvaa tietoa, myös toistamaan sen muististaan. Kiinnostuneet, muista katsoa 2 videota TED Talksista: Video 1 , Video 2). Toisin sanoen hermoverkko on ihmisen aivojen konetulkinta, joka sisältää miljoonia neuroneja, jotka välittävät tietoa sähköisten impulssien muodossa.

Millaisia ​​neuroverkkoja on olemassa?

Toistaiseksi tarkastelemme esimerkkejä hermoverkkojen yksinkertaisimmasta tyypistä - myötäkytkentäverkosta (jäljempänä feedforward-verkko). Myös seuraavissa artikkeleissa esittelen lisää käsitteitä ja kerron sinulle toistuvista neuroverkoista. SPR on nimensä mukaisesti verkko, jossa on peräkkäinen hermokerrosten yhteys, jossa informaatio virtaa aina vain yhteen suuntaan.

Mitä varten neuroverkot ovat?

Neuroverkkoja käytetään ratkaisemaan monimutkaisia ​​ongelmia, jotka vaativat samanlaisia ​​analyyttisiä laskelmia kuin mitä ihmisaivot tekevät. Neuroverkkojen yleisimmät sovellukset ovat:

Luokittelu- tietojen jakautuminen parametrien mukaan. Sinulle annetaan esimerkiksi joukko ihmisiä syötteeksi ja sinun on päätettävä, ketä heistä antaa tunnustusta ja kenelle ei. Tämän työn voi tehdä hermoverkko, joka analysoi tietoja, kuten ikää, vakavaraisuutta, luottohistoriaa jne.

Ennustus- kyky ennustaa seuraava askel. Esimerkiksi osakkeiden nousu tai lasku osakemarkkinatilanteen perusteella.

Tunnustus- Tällä hetkellä yleisin neuroverkkojen käyttö. Käytetään Googlessa, kun haet valokuvaa, tai puhelimen kameroissa, kun se havaitsee kasvosi sijainnin ja korostaa ne ja paljon muuta.

Ymmärtääksemme kuinka hermoverkot toimivat, katsotaanpa sen komponentteja ja niiden parametreja.

Mikä on neuroni?


Neuroni on laskennallinen yksikkö, joka vastaanottaa tietoa, suorittaa sille yksinkertaisia ​​laskelmia ja lähettää sen edelleen. Ne on jaettu kolmeen päätyyppiin: tulo (sininen), piilotettu (punainen) ja lähtö (vihreä). On myös siirtymähermosolu ja kontekstineuroni, joista puhumme seuraavassa artikkelissa. Siinä tapauksessa, että hermoverkko koostuu suuresta määrästä neuroneja, otetaan käyttöön termi kerros. Vastaavasti on syöttökerros, joka vastaanottaa tietoa, n piilokerrosta (yleensä enintään 3), jotka käsittelevät sen, ja tuloskerros, joka tulostaa tuloksen. Jokaisella neuronilla on 2 pääparametria: tulodata ja lähtödata. Tulohermosolun tapauksessa: input=output. Muilta osin syöttökenttä sisältää edellisen kerroksen kaikkien neuronien kokonaisinformaation, jonka jälkeen se normalisoidaan aktivointifunktiolla (kuvitellaan nyt vain muodossa f(x)) ja päätyy tuloskenttään.


Tärkeää muistaa että neuronit toimivat numeroilla alueella tai [-1,1]. Mutta kuinka, kysyt, sitten käsitellä lukuja, jotka jäävät tämän alueen ulkopuolelle? Tässä vaiheessa yksinkertaisin vastaus on jakaa 1 tällä luvulla. Tätä prosessia kutsutaan normalisoimiseksi ja sitä käytetään hyvin usein hermoverkoissa. Tästä lisää vähän myöhemmin.

Mikä on synapsi?


Synapsi on yhteys kahden hermosolun välillä. Synapseilla on 1 parametri - paino. Sen ansiosta syöttötieto muuttuu, kun se siirtyy neuronista toiseen. Oletetaan, että on 3 neuronia, jotka välittävät tietoa seuraavalle. Sitten meillä on 3 painoa, jotka vastaavat kutakin näistä hermosoluista. Sen neuronille, jonka paino on suurempi, tämä tieto on hallitseva seuraavassa neuronissa (esimerkiksi värien sekoitus). Itse asiassa hermoverkon painosarja tai painomatriisi on eräänlainen koko järjestelmän aivot. Näiden painojen ansiosta syöttötiedot käsitellään ja muunnetaan tulokseksi.

Tärkeää muistaa, että hermoverkon alustuksen aikana painot asetetaan satunnaiseen järjestykseen.

Miten hermoverkko toimii?


Tämä esimerkki esittää osaa hermoverkosta, jossa kirjaimet I tarkoittavat syötehermosoluja, kirjain H tarkoittaa piilotettua neuronia ja kirjain w tarkoittaa painoja. Kaava osoittaa, että syöttötieto on kaikkien syötetietojen summa kerrottuna niitä vastaavilla painoilla. Sitten syötetään 1 ja 0. Olkoon w1=0.4 ja w2 = 0.7 Neuronin H1 syötetiedot ovat seuraavat: 1*0.4+0*0.7=0.4. Nyt kun meillä on tulo, voimme saada lähdön kytkemällä tulon aktivointitoimintoon (lisää siitä myöhemmin). Nyt kun meillä on tulos, annamme sen eteenpäin. Ja niin toistamme kaikille kerroksille, kunnes saavutamme lähtöhermosolun. Käynnistettyämme tällaisen verkoston ensimmäistä kertaa, näemme, että vastaus on kaukana oikeasta, koska verkkoa ei ole koulutettu. Tulosten parantamiseksi koulutamme hänet. Mutta ennen kuin opimme tekemään tämän, esitellään muutamia hermoverkon termejä ja ominaisuuksia.

Aktivointitoiminto

Aktivointitoiminto on tapa normalisoida syöttötiedot (puhuimme tästä aiemmin). Toisin sanoen, jos sinulla on suuri numero sisääntulossa, siirrät sen aktivointitoiminnon läpi, saat lähdön tarvitsemallasi alueella. Aktivointitoimintoja on melko paljon, joten tarkastelemme perustoimintoja: Lineaarinen, Sigmoidi (logistinen) ja Hyperbolinen tangentti. Niiden tärkeimmät erot ovat arvoalueet.

Lineaarinen funktio


Tätä toimintoa ei käytetä melkein koskaan, paitsi silloin, kun sinun on testattava neuroverkko tai välitettävä arvo ilman muuntamista.

Sigmoidi


Tämä on yleisin aktivointitoiminto ja sen arvoalue on . Tässä näkyy suurin osa verkossa olevista esimerkeistä, ja sitä kutsutaan joskus myös logistiseksi funktioksi. Vastaavasti, jos tapauksessasi on negatiivisia arvoja (esimerkiksi osakkeet voivat nousta, mutta myös laskea), tarvitset toiminnon, joka tallentaa myös negatiiviset arvot.

Hyperbolinen tangentti


Hyperbolista tangenttia on järkevää käyttää vain, kun arvosi voivat olla sekä negatiivisia että positiivisia, koska funktion alue on [-1,1]. Ei ole suositeltavaa käyttää tätä toimintoa vain positiivisilla arvoilla, koska se huonontaa merkittävästi hermoverkkosi tuloksia.

Harjoitussetti

Harjoitusjoukko on datasarja, jolla neuroverkko toimii. Eliminaatio- tai (xor) tapauksessa meillä on vain 4 erilaista lopputulosta, eli meillä on 4 harjoitussarjaa: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.

Iterointi

Tämä on eräänlainen laskuri, joka kasvaa joka kerta, kun hermoverkko käy läpi yhden harjoitussarjan. Toisin sanoen tämä on neuroverkon suorittamien koulutussarjojen kokonaismäärä.

aikakausi

Kun hermoverkko alustetaan, tämä arvo asetetaan arvoon 0 ja sillä on manuaalisesti asetettu katto. Mitä suurempi aikakausi, sitä paremmin koulutettu verkko ja vastaavasti sen tulos. Epookki kasvaa joka kerta, kun käymme läpi koko harjoitussarjan, meidän tapauksessamme 4 sarjaa tai 4 iteraatiota.


Tärkeäälä sekoita iteraatiota aikakauteen ja ymmärrä niiden lisäyksen järjestys. Ensimmäinen n
kerran iteraatio kasvaa, ja sitten aikakausi eikä päinvastoin. Toisin sanoen et voi ensin kouluttaa neuroverkkoa vain yhdessä ryhmässä, sitten toisessa ja niin edelleen. Sinun täytyy harjoitella jokaista sarjaa kerran aikakaudella. Näin voit välttää virheitä laskelmissa.

Virhe

Virhe on prosenttiosuus, joka kuvastaa odotettujen ja vastaanotettujen vastausten välistä eroa. Virhe muodostuu joka aikakaudella, ja sen täytyy hävitä. Jos näin ei tapahdu, teet jotain väärin. Virhe voidaan laskea eri tavoin, mutta tarkastelemme vain kolmea päämenetelmää: Mean Squared Error (jäljempänä MSE), Root MSE ja Arctan. Käytössä ei ole rajoituksia, kuten aktivointitoiminnossa, ja voit vapaasti valita minkä tahansa menetelmän, joka antaa sinulle parhaat tulokset. Sinun on vain pidettävä mielessä, että jokainen menetelmä laskee virheet eri tavalla. Arctanilla virhe on lähes aina suurempi, koska se toimii periaatteella: mitä suurempi ero, sitä suurempi virhe. Juuri-MSE:llä on pienin virhe, joten on yleisintä käyttää MSE:tä, joka säilyttää tasapainon virheen laskennassa.

Vuoden 2016 ensimmäisellä puoliskolla maailma kuuli monista hermoverkkojen alan kehityksestä - Google (Go-verkkosoitin AlphaGo), Microsoft (useita palveluita kuvan tunnistamiseen), startup-yritykset MSQRD, Prisma ja muut esittelivät algoritmejaan.

Kirjanmerkkeihin

Sivuston toimittajat kertovat mitä hermoverkot ovat, mihin niitä tarvitaan, miksi ne ovat valloittaneet planeetan juuri nyt, eikä vuosia aikaisemmin tai myöhemmin, kuinka paljon niistä voi tienata ja ketkä ovat päätoimijat markkinoilla. Myös MIPT:n, Yandexin, Mail.Ru Groupin ja Microsoftin asiantuntijat jakoivat mielipiteensä.

Mitä ovat neuroverkot ja mitä ongelmia ne voivat ratkaista?

Neuroverkot ovat yksi tekoälyjärjestelmien kehittämisen suunnista. Ajatuksena on mallintaa mahdollisimman tarkasti ihmisen hermoston toimintaa – eli sen kykyä oppia ja korjata virheitä. Tämä on minkä tahansa hermoverkon pääominaisuus - se pystyy itsenäisesti oppimaan ja toimimaan aikaisemman kokemuksen perusteella tehden joka kerta vähemmän ja vähemmän virheitä.

Hermoverkko jäljittelee paitsi toimintaa, myös ihmisen hermoston rakennetta. Tällainen verkko koostuu suuresta määrästä yksittäisiä laskentaelementtejä ("neuroneja"). Useimmissa tapauksissa jokainen "neuroni" kuuluu tiettyyn verkon kerrokseen. Syöttötiedot käsitellään peräkkäin kaikilla verkon kerroksilla. Kunkin "neuronin" parametrit voivat muuttua riippuen tuloksista, jotka on saatu aikaisemmilla syöttötietosarjoilla, mikä muuttaa koko järjestelmän toimintajärjestystä.

Mail.Ru Groupin Mail.ru Search -osaston johtaja Andrey Kalinin huomauttaa, että hermoverkot pystyvät ratkaisemaan samat ongelmat kuin muut koneoppimisalgoritmit, ero on vain koulutuksen lähestymistavassa.

Kaikki tehtävät, jotka neuroverkot voivat ratkaista, liittyvät jotenkin oppimiseen. Neuraaliverkkojen tärkeimpiä sovellusalueita ovat ennustaminen, päätöksenteko, kuvioiden tunnistus, optimointi ja data-analyysi.

Venäjän Microsoftin teknologisista yhteistyöohjelmista vastaava johtaja Vlad Shershulsky huomauttaa, että neuroverkkoja käytetään nykyään kaikkialla: ”Esimerkiksi monet suuret Internet-sivustot käyttävät niitä käyttäjien käyttäytymisen reaktioiden tekemiseen luonnollisemmaksi ja hyödyllisemmäksi yleisölleen. Neuroverkot ovat useimpien nykyaikaisten puheentunnistus- ja synteesijärjestelmien sekä kuvantunnistuksen ja -käsittelyn taustalla. Niitä käytetään joissakin navigointijärjestelmissä, olipa kyse sitten teollisuusroboteista tai itseohjautuvista autoista. Neuroverkkoihin perustuvat algoritmit suojaavat tietojärjestelmiä tunkeilijoiden hyökkäyksiltä ja auttavat tunnistamaan verkossa olevan laittoman sisällön."

Lähitulevaisuudessa (5-10 vuotta), Shershulsky uskoo, hermoverkkoja tullaan käyttämään entistä laajemmin:

Kuvittele maatalouspuimuri, jonka toimilaitteet on varustettu useilla videokameroilla. Se ottaa viisituhatta kuvaa minuutissa jokaisesta kasvista sen liikeradalla ja analysoi hermoverkon avulla, onko kyseessä rikkaruoho, onko siinä taudin tai tuholaisten vaikutusta. Ja jokaista kasvia käsitellään erikseen. Fantastinen? Ei oikeastaan ​​enää. Ja viiden vuoden kuluttua siitä voi tulla normi. - Vlad Shershulsky, Microsoft

Mihail Burtsev, MIPT Center for Living Systems -keskuksen hermojärjestelmien ja syväoppimisen laboratorion johtaja, tarjoaa alustavan kartan hermoverkkojen kehityksestä vuosille 2016-2018:

  • järjestelmät kohteiden tunnistamiseen ja luokitteluun kuvissa;
  • puhevuorovaikutusrajapinnat esineiden Internetiä varten;
  • palvelun laadun seurantajärjestelmät puhelinpalvelukeskuksissa;
  • järjestelmät ongelmien tunnistamiseksi (mukaan lukien ylläpitoajan ennustaminen), poikkeavuuksia ja kyberfyysisiä uhkia;
  • henkiset turvallisuus- ja valvontajärjestelmät;
  • joidenkin puhelinpalveluoperaattoreiden toimintojen korvaaminen boteilla;
  • videoanalytiikkajärjestelmät;
  • itseoppivat järjestelmät, jotka optimoivat materiaalivirtojen hallinnan tai esineiden sijainnin (varastoissa, kuljetuksissa);
  • älykkäät, itseoppivat ohjausjärjestelmät tuotantoprosesseja ja laitteita varten (mukaan lukien robotiikka);
  • yleismaailmallisten lennossa käännösjärjestelmien syntyminen konferensseja ja henkilökohtaiseen käyttöön;
  • teknisen tuen bot-konsulttien tai henkilökohtaisten avustajien ilmaantuminen, jotka vastaavat ihmisen toimintoja.

Yandexin teknologian jakelun johtaja Grigory Bakunov uskoo, että neuroverkkojen leviämisen perusta seuraavan viiden vuoden aikana on tällaisten järjestelmien kyky tehdä erilaisia ​​päätöksiä: ”Tärkeintä, mitä hermoverkot tekevät nyt ihmisen hyväksi, on säästäminen turhasta päätöksenteosta. Niitä voidaan siis käyttää melkein missä tahansa, missä elävä ihminen tekee ei kovin älykkäitä päätöksiä. Seuraavan viiden vuoden aikana tätä taitoa hyödynnetään, mikä korvaa ihmisen päätöksenteon yksinkertaisella koneella.

Miksi hermoverkoista on tullut niin suosittuja juuri nyt?

Tutkijat ovat kehittäneet keinotekoisia hermoverkkoja yli 70 vuoden ajan. Ensimmäinen yritys virallistaa hermoverkko juontaa juurensa vuonna 1943, jolloin kaksi amerikkalaista tiedemiestä (Warren McCulloch ja Walter Pitts) esittivät artikkelin ihmisen ideoiden ja hermotoiminnan loogisesta laskennasta.

Kuitenkin vielä äskettäin, sanoo Andrey Kalinin Mail.Ru Groupista, hermoverkkojen nopeus oli liian alhainen, jotta ne leviäisivät laajalle, ja siksi tällaisia ​​järjestelmiä käytettiin pääasiassa tietokonenäköön liittyvässä kehityksessä, ja muilla alueilla käytettiin muita algoritmeja. koneoppiminen.

Työvaltainen ja aikaa vievä osa neuroverkon kehitysprosessia on sen koulutus. Jotta hermoverkko pystyisi ratkaisemaan sille osoitetut ongelmat oikein, sen on "ajettava" työnsä kymmenillä miljoonilla syötetietosarjoilla. Andrei Kalinin ja Grigory Bakunov yhdistävät hermoverkkojen leviämisen erilaisten kiihdytettyjen oppimistekniikoiden myötä.

Tärkeintä nyt on, että on ilmestynyt erilaisia ​​temppuja, jotka mahdollistavat hermoverkkojen luomisen, jotka ovat paljon vähemmän alttiita uudelleenkoulutukselle - Grigory Bakunov, Yandex

”Ensinnäkin on ilmestynyt suuri ja julkisesti saatavilla oleva joukko merkittyjä kuvia (ImageNet), joista voit oppia. Toiseksi nykyaikaiset näytönohjaimet mahdollistavat hermoverkkojen harjoittamisen ja niiden käytön satoja kertoja nopeammin. Kolmanneksi on ilmestynyt valmiita, valmiiksi koulutettuja hermoverkkoja, jotka tunnistavat kuvat, joiden pohjalta voidaan luoda omia sovelluksia ilman, että joudutte käyttämään pitkiä aikoja hermoverkon valmisteluun työhön. Kaikki tämä takaa erittäin voimakkaan hermoverkkojen kehittämisen nimenomaan kuvantunnistuksen alalla”, Kalinin toteaa.

Mikä on neuroverkkomarkkinoiden koko?

"Erittäin helppo laskea. Voit ottaa minkä tahansa alan, joka käyttää vähän ammattitaitoista työvoimaa, kuten puhelinpalveluagentteja, ja yksinkertaisesti vähentää kaikki henkilöstöresurssit. Sanoisin, että puhumme monen miljardin dollarin markkinoista jopa yhden maan sisällä. On helppo ymmärtää, kuinka monta ihmistä maailmassa työskentelee vähän ammattitaitoa vaativissa töissä. Joten jopa hyvin abstraktisti puhuen, uskon, että puhumme sadan miljardin dollarin markkinoista kaikkialla maailmassa”, sanoo Grigory Bakunov, Yandexin teknologian jakelujohtaja.

Joidenkin arvioiden mukaan yli puolet ammateista automatisoidaan - tämä on suurin määrä, jolla koneoppimisalgoritmien (ja erityisesti neuroverkkojen) markkinoita voidaan kasvattaa - Andrey Kalinin, Mail.Ru Group

”Koneoppimisalgoritmit ovat seuraava askel prosessien automatisoinnissa, minkä tahansa ohjelmiston kehittämisessä. Siksi markkinat ovat ainakin yhteneväiset koko ohjelmistomarkkinoiden kanssa, mutta pikemminkin ylittävät sen, koska on mahdollista tehdä uusia älykkäitä ratkaisuja, joihin vanhat ohjelmistot eivät pääse", jatkaa Mail.ru-hakuosaston johtaja Andrey Kalinin. Ru ryhmä.

Miksi hermoverkkojen kehittäjät luovat mobiilisovelluksia massamarkkinoille

Viime kuukausina markkinoille on ilmestynyt useita hermoverkkoja käyttäviä korkean profiilin viihdeprojekteja - tämä on suosittu videopalvelu, sosiaalinen verkosto Facebook ja venäläiset sovellukset kuvien käsittelyyn (Mail.Ru Groupin investoinnit kesäkuussa) ja muut.

Omien hermoverkkojensa kyvyt osoittivat sekä Googlen (AlphaGo-tekniikka voitti Go-mestarin; maaliskuussa 2016 yhtiö myi huutokaupassa 29 hermoverkkojen piirtämää maalausta jne.) että Microsoft (CaptionBot-projekti, joka tunnistaa kuvat valokuvista ja luo niille automaattisesti kuvatekstit, WhatDog-projektin, joka määrittää valokuvan perusteella koiran rodun, ja niin edelleen, ja Yandex (in Kesäkuussa tiimi integroi palvelun autojen tunnistamiseen valokuvissa Avto.ru-sovellukseen, hän esitteli toukokuussa musiikkitallenteen, jonka hän on tallentanut kuuluisien taiteilijoiden tyyliin.

Tällaisia ​​viihdepalveluita ei luoda globaalien ongelmien ratkaisemiseksi, joihin neuroverkot on suunnattu, vaan hermoverkon kykyjen osoittamiseksi ja sen harjoittamiseksi.

”Pelit ovat luonteenomainen piirre käyttäytymisemme lajina. Toisaalta pelitilanteiden avulla voidaan simuloida lähes kaikkia tyypillisiä ihmisen käyttäytymisen skenaarioita, ja toisaalta pelien luojat ja erityisesti pelaajat voivat saada prosessista paljon iloa. Siinä on myös puhtaasti utilitaristinen puoli. Hyvin suunniteltu peli ei vain tuo pelaajille tyydytystä: pelatessaan he harjoittelevat hermoverkkoalgoritmia. Neuraaliverkothan perustuvat esimerkin kautta oppimiseen”, sanoo Vlad Shershulsky Microsoftilta.

”Ensinnäkin tämä tehdään teknologian kyvyn osoittamiseksi. Muuta syytä ei todellakaan ole. Jos puhumme Prismasta, on selvää, miksi he tekivät sen. Kaverit rakensivat jonkinlaisen putkilinjan, jonka avulla he voivat työskennellä kuvien kanssa. Tämän osoittamiseksi he valitsivat melko yksinkertaisen menetelmän tyylitelmien luomiseen. Miksi ei? Tämä on vain osoitus algoritmien toiminnasta”, sanoo Grigory Bakunov Yandexistä.

Andrey Kalinin Mail.Ru Groupista on eri mieltä: "Tietenkin tämä on vaikuttavaa yleisön näkökulmasta. Toisaalta en sanoisi, etteikö viihdetuotteita voisi soveltaa hyödyllisemmille alueille. Esimerkiksi kuvien tyylittelytehtävä on erittäin tärkeä useille teollisuudenaloille (suunnittelu, tietokonepelit, animaatiot ovat vain muutamia esimerkkejä), ja hermoverkkojen täysimääräinen käyttö voi merkittävästi optimoida niiden sisällön luomisen kustannuksia ja menetelmiä. ”

Tärkeimmät toimijat neuroverkkomarkkinoilla

Kuten Andrey Kalinin huomauttaa, suurin osa markkinoilla olevista neuroverkoista ei eroa paljon toisistaan. ”Kaikkien tekniikka on suunnilleen sama. Mutta hermoverkkojen käyttö on ilo, johon kaikilla ei ole varaa. Neuroverkon itsenäiseen kouluttamiseen ja monien kokeiden suorittamiseen siinä tarvitaan suuria koulutussarjoja ja koneita kalliilla näytönohjaimilla. Ilmeisesti suurilla yrityksillä on tällaisia ​​mahdollisuuksia, hän sanoo.

Tärkeimmistä markkinatoimijoista Kalinin mainitsee Googlen ja sen AlphaGo-verkoston luoneen divisioonan Google DeepMindin sekä Google Brainin. Microsoftilla on omat kehitystyönsä tällä alueella - ne suorittaa Microsoftin tutkimuslaboratorio. Neuraaliverkkoja luodaan IBM:ssä, Facebookissa (Facebook AI Researchin osasto), Baidussa (Baidu Institute of Deep Learning) ja muissa. Teknisissä yliopistoissa eri puolilla maailmaa tehdään paljon kehitystyötä.

Yandexin teknologian jakelujohtaja Grigory Bakunov toteaa, että myös startup-yritysten joukossa on mielenkiintoista kehitystä hermoverkkojen alalla. ”Muistaisin esimerkiksi yrityksen ClarifAI. Tämä on pieni startup, jonka aikoinaan tekivät Googlen ihmiset. Nyt he ovat ehkä maailman parhaita määrittämään kuvan sisällön." Tällaisia ​​käynnistyksiä ovat MSQRD, Prisma ja muut.

Venäjällä neuroverkkojen alan kehitystä tekevät startupien lisäksi suuret teknologiayritykset - esimerkiksi Mail.Ru Group holding käyttää neuroverkkoja tekstien käsittelyyn ja luokitteluun Haussa ja kuva-analyysissä. Yhtiö tekee myös kokeellisia boteihin ja keskustelujärjestelmiin liittyviä kehityshankkeita.

Yandex on myös luomassa omia hermoverkkoja: ”Periaatteessa tällaisia ​​verkkoja käytetään jo kuvan ja äänen kanssa työskentelyssä, mutta tutkimme niiden mahdollisuuksia muilla alueilla. Nyt teemme paljon kokeiluja hermoverkkojen käyttämiseksi tekstin parissa." Kehitystä tehdään yliopistoissa: Skoltech, MIPT, Moskovan valtionyliopisto, Higher School of Economics ja muut.

Tällä kertaa päätin tutkia neuroverkkoja. Sain perustaidot tästä aiheesta kesän ja syksyn 2015 aikana. Perustaidoilla tarkoitan sitä, että pystyn luomaan yksinkertaisen hermoverkon itse tyhjästä. Löydät esimerkkejä GitHub-arkistoistani. Tässä artikkelissa annan joitakin selityksiä ja jaan resursseja, joista voi olla hyötyä tutkimuksessasi.

Vaihe 1. Neuronit ja eteenpäinkytkentämenetelmä

Joten mikä on "hermoverkko"? Odotetaan tätä ja käsitellään ensin yksi neuroni.

Neuroni on kuin funktio: se ottaa useita arvoja syötteenä ja palauttaa yhden.

Alla oleva ympyrä edustaa keinotekoista neuronia. Se vastaanottaa 5 ja palauttaa 1. Syöte on kolmen neuroniin kytketyn synapsin summa (kolme nuolta vasemmalla).

Kuvan vasemmalla puolella on 2 tuloarvoa (vihreänä) ja offset (ruskeana).

Syöttötiedot voivat olla numeerisia esityksiä kahdesta eri ominaisuudesta. Esimerkiksi roskapostisuodatinta luotaessa ne voivat tarkoittaa useamman kuin yhden isoin kirjaimin kirjoitetun sanan ja sanan "Viagra" läsnäoloa.

Syöttöarvot kerrotaan niiden ns. "painoilla", 7 ja 3 (korostettu sinisellä).

Nyt lisäämme tuloksena saadut arvot offsetilla ja saamme numeron, meidän tapauksessamme 5 (korostettu punaisella). Tämä on keinotekoisen neuronimme syöte.

Sitten neuroni suorittaa laskutoimituksia ja tuottaa tulosarvon. Saimme 1, koska sigmoidin pyöristetty arvo pisteessä 5 on 1 (puhumme tästä funktiosta tarkemmin myöhemmin).

Jos tämä olisi roskapostisuodatin, tulos 1 tarkoittaisi, että neuroni merkitsi tekstin roskapostiksi.

Kuva hermoverkosta Wikipediasta.

Jos yhdistät nämä neuronit, saat suoraan etenevän hermoverkon - prosessi etenee syötteestä ulostuloon synapsien yhdistämien neuronien kautta, kuten vasemmalla olevassa kuvassa.

Vaihe 2. Sigmoid

Kun olet katsonut Welch Labsin oppitunnit, on hyvä idea tutustua Courseran neuroverkkoja käsittelevän koneoppimiskurssin viikkoon 4, jotta voit ymmärtää, miten ne toimivat. Kurssi menee hyvin syvälle matematiikkaan ja perustuu Octaveen, kun taas pidän enemmän Pythonista. Tämän takia jätin harjoitukset väliin ja sain videoista kaiken tarvitsemani tiedon.

Sigmoidi yksinkertaisesti kartoittaa arvosi (vaaka-akselilla) alueelle 0-1.

Ensimmäinen prioriteetti oli sigmoidin tutkiminen, koska se on esiintynyt monissa hermoverkkojen näkökohdissa. Tiesin siitä jotain jo edellä mainitun kurssin kolmannelta viikolta, joten katsoin videon sieltä.

Mutta pelkällä videolla ei pitkälle pääse. Täydellisen ymmärtämisen vuoksi päätin koodata sen itse. Joten aloin kirjoittaa logistisen regressioalgoritmin toteutusta (joka käyttää sigmoidia).

Kesti koko päivän, eikä tulos ollut tyydyttävä. Mutta sillä ei ole väliä, koska tajusin kuinka kaikki toimii. Koodi voidaan nähdä.

Sinun ei tarvitse tehdä tätä itse, koska se vaatii erityisosaamista - tärkeintä on, että ymmärrät, kuinka sigmoidi toimii.

Vaihe 3. Takaisinlisäysmenetelmä

Hermoverkon toiminnan ymmärtäminen syötteestä lähtöön ei ole niin vaikeaa. On paljon vaikeampaa ymmärtää, kuinka hermoverkko oppii tietojoukoista. Käyttämäni periaate on ns

Hermoverkot ovat yksi tekoälyn alan tutkimusalueista, jotka perustuvat yrityksiin jäljentää ihmisen hermostoa. Nimittäin: hermoston kyky oppia ja korjata virheitä, jonka pitäisi antaa meille mahdollisuus simuloida, vaikkakin melko karkeasti, ihmisaivojen työtä.

tai ihmisen hermosto on monimutkainen ihmisen rakenteiden verkosto, joka varmistaa kaikkien kehon järjestelmien yhteenkytketyn käyttäytymisen.

Biologinen neuroni on erityinen solu, joka rakenteellisesti koostuu ytimestä, solurungosta ja prosesseista. Yksi neuronin tärkeimmistä tehtävistä on välittää sähkökemiallinen impulssi läpi hermoverkon saavutettavissa olevien yhteyksien kautta muihin hermosoluihin. Lisäksi jokaiselle yhteydelle on ominaista tietty arvo, jota kutsutaan synaptisen yhteyden vahvuudeksi. Tämä arvo määrittää, mitä tapahtuu sähkökemialliselle impulssille, kun se välittyy toiseen neuroniin: joko se vahvistuu tai heikkenee tai pysyy muuttumattomana.

Biologisella hermoverkolla on korkea liitettävyysaste: yhdellä neuronilla voi olla useita tuhansia yhteyksiä muihin neuroniin. Mutta tämä on likimääräinen arvo ja jokaisessa tapauksessa se on erilainen. Impulssien siirtyminen neuronista toiseen synnyttää tietyn virityksen koko hermoverkkoon. Tämän herätteen suuruus määrittää hermoverkon vasteen joihinkin tulosignaaleihin. Esimerkiksi henkilön tapaaminen vanhan tutun kanssa voi johtaa hermoverkon voimakkaaseen stimulaatioon, jos tähän tuttavuuteen liittyy eloisia ja miellyttäviä elämänmuistoja. Hermoverkoston voimakas stimulaatio puolestaan ​​voi johtaa sydämen sykkeen kohoamiseen, silmien räpyttelyyn ja muihin reaktioihin. Tapaaminen vieraan kanssa jää hermoverkolle lähes huomaamatta, eikä siksi aiheuta voimakkaita reaktioita.

Seuraava erittäin yksinkertaistettu malli biologisesta hermoverkosta voidaan antaa:

Jokainen neuroni koostuu solurungosta, joka sisältää ytimen. Monet lyhyet kuidut, joita kutsutaan dendriiteiksi, haarautuvat solurungosta. Pitkiä dendriittejä kutsutaan aksoneiksi. Aksonit ulottuvat pitkiä matkoja, paljon pidemmälle kuin tämän kuvan mittakaavassa on esitetty. Tyypillisesti aksonit ovat 1 cm pitkiä (joka on 100 kertaa solurungon halkaisija), mutta ne voivat olla 1 metrin pituisia.

1900-luvun 60-80-luvuilla tekoälyn tutkimuksen ensisijainen suunta oli. Asiantuntijajärjestelmät ovat osoittautuneet hyvin, mutta vain erittäin erikoistuneilla alueilla. Universaalimpien älykkäiden järjestelmien luomiseen tarvittiin erilainen lähestymistapa. Tämä on saattanut saada tekoälytutkijat kiinnittämään huomionsa ihmisaivojen taustalla oleviin biologisiin hermoverkkoihin.

Tekoälyn hermoverkot ovat biologisten hermoverkkojen yksinkertaistettuja malleja.

Tähän yhtäläisyydet loppuvat. Ihmisaivojen rakenne on paljon monimutkaisempi kuin edellä kuvattu, ja siksi sitä ei ole mahdollista toistaa vielä enemmän tai vähemmän tarkasti.

Neuroverkoilla on monia tärkeitä ominaisuuksia, mutta avain niistä on kyky oppia. Neuraaliverkon kouluttamiseen kuuluu ensisijaisesti neuronien välisten synaptisten yhteyksien "voimakkuuden" muuttaminen. Seuraava esimerkki osoittaa tämän selvästi. Pavlovin klassisessa kokeessa kello soi joka kerta juuri ennen koiran ruokintaa. Koira oppi nopeasti yhdistämään kellon soimisen syömiseen. Tämä johtui siitä, että synaptiset yhteydet kuulosta vastaavien aivojen alueiden ja sylkirauhasten välillä vahvistuivat. Ja myöhemmin hermoverkoston stimulaatio kellon äänellä alkoi johtaa voimakkaampaan syljeneritykseen koirassa.

Nykyään neuroverkot ovat yksi tekoälyn tutkimuksen painopistealueista.

Neuroverkot ovat bionisten hermoverkkojen toimintaperiaatteille rakennettu matemaattinen malli. Tähän ilmiöön tutustumisen tulisi alkaa monikerroksisen perceptronin käsitteestä tämän järjestelmän ensimmäisenä suoritusmuotona tietokonemallina.

Mikä on monikerroksinen perceptron lyhyesti

Monikerroksinen perceptroni on hierarkkinen laskentamalli, jossa tietokone on rakennettu joukosta yksinkertaisten solmujen neuroneja, joilla on useita tuloja ja yksi lähtö. Jokaisella syötteellä (synapsilla) on jokin painoarvo.

Järjestelmän tulot toimitetaan arvoilla, jotka jakautuvat neuronien välisiä yhteyksiä pitkin. Nämä arvot, jotka ovat reaalilukuja, kerrotaan linkin painoilla.

Perceptronin toimintaperiaatteen looginen kaavio esitetään helpoimmin käyttämällä graafista piirustusta, jossa on eri värejä ja niiden välisiä yhteyksiä:

Neuraaliverkkojen käyttö

Tätä menetelmää käytetään moniin tarkoituksiin. Jos syöte on esimerkiksi pörssin arvopapereiden noteeraukset, tuloksena oleva tulos voidaan tulkita signaaliksi siitä, että arvopaperi tulee tulevaisuudessa halvemmaksi tai kalliimmaksi.

Toinen esimerkki neuroverkkojen tulevasta käytöstä on globaalien ja taloudellisten taantumien tarkempi ennustaminen.

Jos syötteenä annetaan esimerkiksi joukon rasteripisteiden kirkkausarvo, niin lähdöstä saa päätöksen siitä, mikä kuva on.

Tämän järjestelmän avulla hermoverkot oppivat jäljittelemään kuuluisien taiteilijoiden, mukaan lukien Van Goghin, maalauksia ja myös piirtämään itse ainutlaatuisia kuvia erilaisissa taiteellisissa tyyleissä.

Google ehdotti termiä tällaiselle merkittävälle saavutukselle neuroverkkojen kehittämisessä inceptionismi - tekoälyn luoma maalaus, jolle on ominaista äärimmäinen psykedeelisyys parhaiden perinteiden mukaisesti.

Tietenkin, jotta järjestelmä tuottaa oikeat vastaukset, sitä on tietysti säädettävä. Aluksi toimintaperiaate perustui satunnaismuuttujien valintaan. Siksi algoritmin ydin on järjestelmän asettaminen oikeimpiin vastauksiin.

Tätä tarkoitusta varten hermoverkkorakennetta täydennettiin painonkorjausalgoritmilla virheiden minimoimiseksi. Tämä on erittäin hyödyllinen asia, ja se on dokumentoitu monta kertaa käyttämällä monia kaupallisia tuotteita.

Kuitenkin paradoksaalista kyllä, järjestelmä ei vieläkään tullut samankaltaiseksi kuin ihmisen aivot. Kävi selväksi, että pörssiennustetta vakavampien ongelmien ratkaisemiseksi esimerkiksi monimutkaisen, multimodaalista tietoa sisältävän robotin ohjausjärjestelmässä hermoverkon on oltava suuri, kun taas perinteisiä neuroverkkoja on vaikea tehdä sellaiseksi.

Tosiasia on, että aivot koostuvat 10 miljardista neuronista, joista jokaisessa on 10 000 yhteyttä. Se on erittäin energiatehokas ja melua kestävä järjestelmä, joka on rakennettu miljoonien vuosien aikana. Mikä on ero?

Erot aivojen ja hermoverkkojen toimintaperiaatteessa

Kyse on neuronien ja perceptronin biologisen verkostomme signaalinsiirron erilaisista periaatteista. Monikerroksisessa perceptronissa neuronit vaihtavat arvoja, jotka ovat reaalilukuja, keskenään. Ja aivoissa tapahtuu impulssien vaihtoa tiukasti kiinteällä amplitudilla ja lyhyellä aikavälillä. Eli impulssit ovat melkein välittömiä.

Tästä seuraa koko joukko etuja ja etuja. Ensinnäkin tällaiset signaalilinjat ovat erittäin taloudellisia ja vähän aktiivisia - melkein mikään ei kulje neuronien välisiä yhteyksiä pitkin. Perceptronissa jokaisella signaalilinjalla on oltava todella merkittävä arvo.

Toiseksi pulssisignaalin lähetyspiiri varmistaa energiatehokkuuden ohella myös helpon toteutuksen, koska pulssien generointi ja käsittely voidaan suorittaa käyttämällä yksinkertaisia ​​analogisia piirejä, toisin kuin monimutkaiset koneet, jotka tukevat todellisten arvojen siirtoa.

Kolmanneksi pulssiverkot (piikki) on suojattu häiriöiltä. Meillä on kalibroitu pulssi, johon kohinan lisääminen ei häiritse järjestelmän toimintaa. Todelliset luvut ovat herkkiä melulle.

Ja tietysti, jos puhumme numeerisesta mallintamisesta digitaalisella eikä analogisella lähetyksellä, tarvitsemme yhden tiedon koodaamiseen 8 signaalilinjaa yhden sijasta.

Toisin sanoen tällaisten järjestelmien digitaalinen toteutus ei myöskään ole vaihtoehto. Edes monikerroksisten reitittimien asentaminen ei ratkaise ongelmaa, koska hermoverkko hidastuu ja on edelleen tehoton.

Siksi on ilmeistä, että suuren mittakaavan hermoverkkojen luomiseen tulisi käyttää bionista lähestymistapaa, nimittäin yrittää luoda järjestelmä aivojen kuvaksi ja kaltaiseksi.

Puhumme tästä mielenkiintoisesta impulssihermoverkkojen luokasta lisää:

Video hermoverkkojen olemuksesta yksinkertaisella kielellä:



Mitä muuta luettavaa