Kuinka luoda oma hermoverkko tyhjästä Pythonissa. Yksinkertaisesti sanottuna kompleksista: mitä ovat hermoverkot

Keinotekoinen hermoverkko on kokoelma hermosoluja, jotka ovat vuorovaikutuksessa toistensa kanssa. He pystyvät vastaanottamaan, käsittelemään ja luomaan dataa. Sitä on yhtä vaikea kuvitella kuin ihmisen aivojen toimintaa. Aivomme hermoverkko toimii niin, että voit lukea tämän nyt: neuronimme tunnistavat kirjaimet ja kirjoittavat ne sanoiksi.

Keinotekoinen hermoverkko on kuin aivot. Se oli alun perin ohjelmoitu yksinkertaistamaan joitain monimutkaisia ​​laskentaprosesseja. Nykyään neuroverkoilla on paljon enemmän mahdollisuuksia. Jotkut niistä ovat älypuhelimellasi. Toinen osa on jo tallentanut tietokantaansa, että avasit tämän artikkelin. Kuinka tämä kaikki tapahtuu ja miksi, lue eteenpäin.

Miten kaikki alkoi

Ihmiset todella halusivat ymmärtää, mistä ihmisen mieli tulee ja miten aivot toimivat. Viime vuosisadan puolivälissä kanadalainen neuropsykologi Donald Hebb tajusi tämän. Hebb tutki hermosolujen vuorovaikutusta keskenään, tutki periaatetta, jolla ne yhdistetään ryhmiksi (tieteellisesti - ryhmiksi) ja ehdotti tieteen ensimmäistä algoritmia hermoverkkojen koulutukseen.

Muutamaa vuotta myöhemmin ryhmä amerikkalaisia ​​tutkijoita mallinsi keinotekoisen hermoverkon, joka pystyi erottamaan neliön muodot muista muodoista.

Miten neuroverkko toimii?

Tutkijat ovat havainneet, että hermoverkko on kokoelma neuronikerroksia, joista jokainen on vastuussa tietyn kriteerin tunnistamisesta: muoto, väri, koko, rakenne, ääni, äänenvoimakkuus jne. Vuosi toisensa jälkeen miljoonien kokeita ja tonnia laskelmia, lisäyksiä lisättiin yksinkertaisimpiin verkkoihin uusia ja uusia hermosolujen kerroksia. He työskentelevät vuorotellen. Esimerkiksi ensimmäinen määrittää, onko neliö neliö vai ei, toinen ymmärtää, onko neliö punainen vai ei, kolmas laskee neliön koon ja niin edelleen. Ei neliöt, eivät punaiset ja sopimattoman kokoiset muodot päätyvät uusiin hermosoluryhmiin ja ne tutkivat niitä.

Mitä ovat neuroverkot ja mitä ne voivat tehdä?

Tutkijat ovat kehittäneet hermoverkkoja, jotta he voivat erottaa monimutkaiset kuvat, videot, tekstit ja puheen. Nykyään on olemassa monenlaisia ​​neuroverkkoja. Ne luokitellaan arkkitehtuurin mukaan - tietoparametrijoukot ja näiden parametrien paino, tietty prioriteetti. Alla on joitain niistä.

Konvoluutiohermoverkot

Neuronit jaetaan ryhmiin, jokainen ryhmä laskee sille annetun ominaisuuden. Vuonna 1993 ranskalainen tiedemies Yann LeCun esitteli maailmalle LeNet 1:n, ensimmäisen konvoluutiohermoverkon, joka pystyi tunnistamaan nopeasti ja tarkasti käsin paperille kirjoitetut numerot. Katso itse:

Nykyään konvoluutiohermoverkkoja käytetään pääasiassa multimediatarkoituksiin: ne toimivat grafiikan, äänen ja videon kanssa.

Toistuvat neuroverkot

Neuronit muistavat tiedot peräkkäin ja rakentavat lisätoimintoja näiden tietojen perusteella. Vuonna 1997 saksalaiset tutkijat muuttivat yksinkertaisimmat toistuvat verkot verkoiksi, joilla oli pitkä lyhytaikainen muisti. Niiden perusteella kehitettiin sitten verkostoja, joissa oli kontrolloituja toistuvia neuroneja.

Nykyään tällaisten verkostojen avulla kirjoitetaan ja käännetään tekstejä, ohjelmoidaan botteja käymään mielekästä dialogia ihmisten kanssa sekä luodaan sivu- ja ohjelmakoodeja.

Tällaisten hermoverkkojen käyttö tarjoaa mahdollisuuden analysoida ja tuottaa dataa, koota tietokantoja ja jopa tehdä ennusteita.

Vuonna 2015 SwiftKey julkaisi maailman ensimmäisen näppäimistön, joka toimii toistuvassa hermoverkossa ohjatuilla neuroneilla. Sitten järjestelmä antoi vihjeitä viimeksi syötettyjen sanojen perusteella. Viime vuonna kehittäjät kouluttivat hermoverkkoa tutkimaan kirjoitettavan tekstin kontekstia, ja vihjeistä tuli mielekkäitä ja hyödyllisiä:

Yhdistetyt neuroverkot (konvoluutio + toistuva)

Tällaiset hermoverkot pystyvät ymmärtämään mitä kuvassa on ja kuvaamaan sitä. Ja päinvastoin: piirrä kuvat kuvauksen mukaan. Silmiinpistävimmän esimerkin osoitti Kyle MacDonald, joka vei hermoverkon kävelylle Amsterdamissa. Verkko päätti välittömästi, mikä oli sen edessä. Ja melkein aina täsmälleen:

Neuroverkot oppivat jatkuvasti itseään. Tämän prosessin kautta:

1. Skype on tuonut käyttöön simultaanikäännösominaisuudet 10 kielelle. Niiden joukossa on hetkeksi venäläisiä ja japanilaisia ​​- joitain maailman vaikeimmista. Tietysti käännöksen laatu vaatii vakavaa parantamista, mutta jo se tosiasia, että nyt voit kommunikoida japanilaisten kollegoiden kanssa venäjäksi ja olla varma, että sinut ymmärretään, on inspiroiva.

2. Yandex loi kaksi neuroverkkoihin perustuvaa hakualgoritmia: "Palekh" ja "Korolev". Ensimmäinen auttoi löytämään osuvimmat sivustot matalataajuuksisille kyselyille. "Palekh" tutki sivujen otsikoita ja vertasi niiden merkitystä kyselyiden merkitykseen. Palekhin perusteella Korolev ilmestyi. Tämä algoritmi arvioi paitsi otsikon myös koko sivun tekstisisällön. Haku tarkentuu ja sivustojen omistajat alkavat lähestyä sivun sisältöä älykkäämmin.

3. Yandexin SEO-kollegat loivat musiikillisen hermoverkon: se säveltää runoutta ja kirjoittaa musiikkia. Neuroryhmä on symbolisesti nimeltään Neurona, ja sillä on jo ensimmäinen albumi:

4. Google Inbox käyttää hermoverkkoja vastatakseen viesteihin. Teknologiakehitys on täydessä vauhdissa, ja tänään verkosto tutkii jo kirjeenvaihtoa ja generoi mahdollisia vastausvaihtoehtoja. Sinun ei tarvitse tuhlata aikaa kirjoittamiseen, äläkä pelkää unohtavasi jotain tärkeää sopimusta.

5. YouTube luokittelee videoita hermoverkkojen avulla ja kahdella periaatteella kerralla: toinen hermoverkko tutkii videoita ja yleisön reaktioita niihin, toinen tutkii käyttäjiä ja heidän mieltymyksiään. Tästä syystä YouTuben suositukset ovat aina paikallaan.

6. Facebook työskentelee aktiivisesti DeepText AI:n parissa, viestintäohjelmassa, joka ymmärtää ammattikieltä ja puhdistaa keskustelut säädyttömästä kielestä.

7. Neuraaliverkkoihin rakennetut sovellukset, kuten Prisma ja Fabby, luovat kuvia ja videoita:

Colorize palauttaa värit mustavalkoisiin valokuviin (yllätys mummo!).

MakeUp Plus valitsee tytöille täydellisen huulipunan todellisista todellisista tuotemerkeistä: Bobbi Brown, Clinique, Lancome ja YSL ovat jo toiminnassa.


8.
Apple ja Microsoft päivittävät jatkuvasti hermosoluaan Siri ja Contana. Toistaiseksi he vain toteuttavat määräyksiämme, mutta lähitulevaisuudessa he alkavat tehdä aloitetta: antaa suosituksia ja ennakoida toiveitamme.

Mitä muuta meitä odottaa tulevaisuudessa?

Itseoppivat hermoverkot voivat korvata ihmiset: ne alkavat tekstinkirjoittajista ja oikolukijista. Robotit luovat jo tekstiä, jolla on merkitystä ja ilman virheitä. Ja he tekevät sen paljon nopeammin kuin ihmiset. He jatkavat puhelinkeskusten työntekijöiden, teknisen tuen, moderaattoreiden ja sosiaalisten verkostojen julkisten sivujen ylläpitäjien kanssa. Neuroverkot pystyvät jo oppimaan käsikirjoituksen ja toistamaan sen äänellä. Entä muut alueet?

Maataloussektori

Neuroverkko toteutetaan erikoislaitteiksi. Harvesterit suorittavat automaattiohjauksen, skannaavat kasveja ja tutkivat maaperää välittäen dataa hermoverkkoon. Hän päättää, kasteleeko, lannoittaako vai ruiskuttaako tuholaisia ​​vastaan. Parinkymmenen työntekijän sijasta tarvitset enintään kaksi asiantuntijaa: esimiehen ja teknisen.

Lääke

Microsoft työskentelee parhaillaan aktiivisesti syöpälääkkeen luomiseksi. Tiedemiehet harjoittavat bioohjelmointia - he yrittävät digitalisoida kasvainten synty- ja kehitysprosessia. Kun kaikki toimii, ohjelmoijat voivat löytää tavan estää tällainen prosessi, ja lääke luodaan analogisesti.

Markkinointi

Markkinointi on erittäin yksilöllistä. Jo nyt hermoverkot voivat määrittää sekunneissa, mitä sisältöä kenelle käyttäjälle näyttää ja mihin hintaan. Jatkossa markkinoijan osallistuminen prosessiin vähennetään minimiin: hermoverkot ennustavat kyselyitä käyttäjien käyttäytymisdatan perusteella, skannaavat markkinoita ja tarjoavat sopivimmat tarjoukset siihen mennessä, kun ihminen harkitsee ostamista.

Verkkokauppa

Verkkokauppa otetaan käyttöön kaikkialla. Sinun ei enää tarvitse mennä verkkokauppaan linkin kautta: voit ostaa kaiken missä näet yhdellä napsautuksella. Esimerkiksi luet tätä artikkelia useita vuosia myöhemmin. Pidät todella MakeUp Plus -sovelluksen kuvakaappauksen huulipunasta (katso yllä). Klikkaat sitä ja siirryt suoraan ostoskoriin. Tai katso video uusimmasta Hololens-mallista (mixed reality-lasit) ja tee heti tilaus suoraan YouTubesta.

Lähes kaikilla aloilla arvostetaan asiantuntijoita, jotka tuntevat tai ainakin ymmärtävät hermoverkkojen, koneoppimisen ja tekoälyjärjestelmien rakenteen. Tulemme olemaan robottien kanssa rinnakkain. Ja mitä enemmän tiedämme niistä, sitä rauhallisempaa elämämme on.

P.S. Zinaida Falls on Yandexin hermoverkko, joka kirjoittaa runoutta. Arvioi työ, jonka kone kirjoitti Majakovskin koulutuksen jälkeen (oikeinkirjoitus ja välimerkit säilytetty):

« Tämä»

Tämä
vain kaikki
jotain
Tulevaisuudessa
ja voimaa
tuo henkilö
onko kaikki maailmassa vai ei
ympärillä on verta
sopimus
lihottua
kunniaa
maa
pamauksella nokassa

Vaikuttavaa, eikö?


Tekoäly, hermoverkot, koneoppiminen – mitä kaikki nämä tällä hetkellä suositut käsitteet oikeastaan ​​tarkoittavat? Useimmille tietämättömille ihmisille, joita minä itse olen, ne tuntuivat aina fantastisilta, mutta itse asiassa niiden olemus on pinnalla. Minulla on pitkään ollut ajatus kirjoittaa yksinkertaisella kielellä keinotekoisista hermoverkoista. Ota selvää itse ja kerro muille, mitä tämä tekniikka on, miten se toimii, harkitse sen historiaa ja tulevaisuudennäkymiä. Tässä artikkelissa yritin olla menemättä rikkaruohoihin, vaan puhua yksinkertaisesti ja yleisesti tästä lupaavasta suunnasta korkean teknologian maailmassa.


Tekoäly, hermoverkot, koneoppiminen – mitä kaikki nämä tällä hetkellä suositut käsitteet oikeastaan ​​tarkoittavat? Useimmille tietämättömille ihmisille, joita minä itse olen, ne tuntuivat aina fantastisilta, mutta itse asiassa niiden olemus on pinnalla. Minulla on pitkään ollut ajatus kirjoittaa yksinkertaisella kielellä keinotekoisista hermoverkoista. Ota selvää itse ja kerro muille, mitä tämä tekniikka on, miten se toimii, harkitse sen historiaa ja tulevaisuudennäkymiä. Tässä artikkelissa yritin olla menemättä rikkaruohoihin, vaan puhua yksinkertaisesti ja yleisesti tästä lupaavasta suunnasta korkean teknologian maailmassa.

Hieman historiaa

Ensimmäistä kertaa keinotekoisten hermoverkkojen (ANN) käsite syntyi yrityksenä simuloida aivoprosesseja. Ensimmäisenä suurena läpimurtona tällä alueella voidaan pitää McCulloch-Pittsin hermoverkkomallin luomista vuonna 1943. Tutkijat ovat kehittäneet mallin keinotekoisesta neuronista ensimmäistä kertaa. He ehdottivat myös näiden elementtien verkon suunnittelua loogisten toimintojen suorittamiseksi. Mutta mikä tärkeintä, tutkijat ovat osoittaneet, että tällainen verkosto pystyy oppimaan.

Seuraava tärkeä askel oli Donald Hebbin kehittämä ensimmäinen algoritmi ANN:n laskentaan vuonna 1949, josta tuli perustavanlaatuinen useiden seuraavien vuosikymmenten ajan. Vuonna 1958 Frank Rosenblatt kehitti parceptronin, järjestelmän, joka jäljittelee aivoprosesseja. Aikoinaan tekniikalla ei ollut analogeja ja se on edelleen perustavanlaatuinen neuroverkoissa. Vuonna 1986, lähes samanaikaisesti, toisistaan ​​riippumatta, amerikkalaiset ja neuvostoliittolaiset tutkijat paransivat merkittävästi perusmenetelmää monikerroksisen perceptronin harjoittamiseksi. Vuonna 2007 hermoverkot kokivat uudestisyntymisen. Brittitieteilijä Geoffrey Hinton kehitti ensin syväoppimisalgoritmin monikerroksisille hermoverkoille, jota käytetään nykyään esimerkiksi itseohjautuvien autojen ohjaamiseen.

Lyhyesti pääasiasta

Sanan yleisessä merkityksessä hermoverkot ovat matemaattisia malleja, jotka toimivat eläinorganismin hermosoluverkkojen periaatteella. ANN:t voidaan toteuttaa sekä ohjelmoitavissa että laitteistoratkaisuissa. Asioiden ymmärtämisen helpottamiseksi hermosolu voidaan ajatella soluna, jossa on useita tuloreikiä ja yksi lähtöreikä. Se, kuinka useat saapuvat signaalit muodostetaan lähtösignaaliksi, määräytyy laskenta-algoritmin mukaan. Tehokkaat arvot syötetään jokaiseen neuronituloon, joka sitten jakautuu neuronien välisiä yhteyksiä (synopseja) pitkin. Synapseilla on yksi parametri - paino, jonka vuoksi syöttötieto muuttuu siirtyessään neuronista toiseen. Helpoin tapa kuvitella hermoverkkojen toimintaperiaate on sekoittamalla värejä. Sinisten, vihreiden ja punaisten hermosolujen painot vaihtelevat. Sen neuronin tiedot, jonka paino on suurempi, ovat hallitsevia seuraavassa neuronissa.

Itse hermoverkko on monien tällaisten neuronien (prosessorien) järjestelmä. Yksittäin nämä prosessorit ovat melko yksinkertaisia ​​(paljon yksinkertaisempia kuin henkilökohtaisen tietokoneen prosessori), mutta kun ne yhdistetään suurempaan järjestelmään, neuronit pystyvät suorittamaan erittäin monimutkaisia ​​​​tehtäviä.

Sovellusalueesta riippuen hermoverkkoa voidaan tulkita eri tavoin. Esimerkiksi koneoppimisen näkökulmasta ANN on hahmontunnistusmenetelmä. Matemaattisesta näkökulmasta tämä on moniparametrinen ongelma. Kybernetiikan näkökulmasta - malli robotiikan mukautuvasta ohjauksesta. Tekoälylle ANN on peruskomponentti luonnollisen älyn mallintamisessa laskentaalgoritmeilla.

Neuroverkkojen tärkein etu perinteisiin laskenta-algoritmeihin verrattuna on niiden oppimiskyky. Sanan yleisessä merkityksessä oppiminen on oikeiden kytkentäkertoimien löytämistä hermosolujen välillä sekä tietojen yhteenvetoa ja monimutkaisten riippuvuuksien tunnistamista tulo- ja lähtösignaalien välillä. Itse asiassa hermoverkon onnistunut koulutus tarkoittaa, että järjestelmä pystyy tunnistamaan oikean tuloksen sellaisten tietojen perusteella, joita ei ole koulutusjoukossa.

Nykyinen tilanne

Ja vaikka tämä tekniikka olisi kuinka lupaava, ANN:t ovat edelleen hyvin kaukana ihmisaivojen ja ajattelun kyvyistä. Neuroverkkoja käytetään kuitenkin jo monilla ihmisen toiminnan alueilla. Toistaiseksi he eivät pysty tekemään erittäin älykkäitä päätöksiä, mutta he pystyvät korvaamaan ihmisen siellä, missä häntä aiemmin tarvittiin. ANN:n monista sovellusalueista voidaan mainita: itseoppivien tuotantoprosessijärjestelmien luominen, miehittämättömät ajoneuvot, kuvantunnistusjärjestelmät, älykkäät turvajärjestelmät, robotiikka, laadunvalvontajärjestelmät, puhevuorovaikutusrajapinnat, analytiikkajärjestelmät ja paljon muuta. Tämä hermoverkkojen laaja käyttö johtuu muun muassa erilaisten ANN-koulutuksen kiihdyttämiseen tarkoitettujen menetelmien syntymisestä.

Nykyään neuroverkkojen markkinat ovat valtavat - miljardeja ja miljardeja dollareita. Kuten käytäntö osoittaa, useimmat neuroverkkotekniikat ympäri maailmaa eroavat vähän toisistaan. Neuraaliverkkojen käyttö on kuitenkin erittäin kallista toimintaa, johon useimmissa tapauksissa on varaa vain suuryrityksillä. Neuroverkkojen kehittäminen, koulutus ja testaus vaatii suurta laskentatehoa, ja on selvää, että IT-markkinoiden suurilla toimijoilla sitä riittää. Tärkeimpiä tällä alalla johtavia yrityksiä ovat Google DeepMind -divisioona, Microsoft Research -divisioona, IBM, Facebook ja Baidu.

Tietysti kaikki tämä on hyvää: neuroverkot kehittyvät, markkinat kasvavat, mutta toistaiseksi pääongelmaa ei ole ratkaistu. Ihmiskunta ei ole onnistunut luomaan teknologiaa, joka edes lähentäisi ihmisaivojen kykyjä. Katsotaanpa tärkeimpiä eroja ihmisen aivojen ja keinotekoisten hermoverkkojen välillä.

Miksi hermoverkot ovat edelleen kaukana ihmisen aivoista?

Tärkein ero, joka muuttaa radikaalisti järjestelmän periaatetta ja tehokkuutta, on signaalien erilainen välitys keinotekoisissa hermoverkoissa ja biologisessa hermosoluverkostossa. Tosiasia on, että ANN:ssa neuronit lähettävät arvoja, jotka ovat todellisia arvoja, toisin sanoen numeroita. Ihmisaivoissa impulssit välittyvät kiinteällä amplitudilla, ja nämä impulssit ovat melkein välittömiä. Tämä johtaa lukuisiin etuihin ihmisen neuroniverkostosta.

Ensinnäkin aivojen viestintälinjat ovat paljon tehokkaampia ja taloudellisempia kuin ANN:ssa. Toiseksi pulssipiiri varmistaa tekniikan helppokäyttöisyyden: riittää, että käytetään analogisia piirejä monimutkaisten laskentamekanismien sijaan. Lopulta pulssiverkot ovat immuuneja äänihäiriöille. Reaalilukuihin kohdistuu kohinaa, mikä lisää virheiden todennäköisyyttä.

Bottom line

Tietenkin viime vuosikymmenen aikana hermoverkkojen kehityksessä on ollut todellinen buumi. Tämä johtuu ensisijaisesti siitä, että ANN-koulutusprosessista on tullut paljon nopeampaa ja helpompaa. Myös niin sanottuja "esikoulutettuja" neuroverkkoja on alettu aktiivisesti kehittää, mikä voi merkittävästi nopeuttaa teknologian käyttöönottoa. Ja jos on liian aikaista sanoa, pystyvätkö hermoverkot jonain päivänä toistamaan täysin ihmisaivojen kyvyt, todennäköisyys, että seuraavan vuosikymmenen aikana ANN-verkot voivat korvata ihmiset neljänneksellä olemassa olevista ammateista, on yhä totta. .

Niille, jotka haluavat tietää enemmän

  • Suuri hermosota: Mitä Google todella tekee
  • Kuinka kognitiiviset tietokoneet voivat muuttaa tulevaisuutemme

Neuroverkot ovat nyt muodissa, ja hyvästä syystä. Niiden avulla voit esimerkiksi tunnistaa esineitä kuvista tai päinvastoin piirtää Salvador Dalin painajaisia. Kätevien kirjastojen ansiosta yksinkertaisimmat hermoverkot voidaan luoda vain parilla koodirivillä, IBM:n tekoälyn puoleen kääntyminen ei vaadi paljon enempää.

Teoria

Biologit eivät vieläkään tiedä tarkasti, kuinka aivot toimivat, mutta hermoston yksittäisten elementtien toimintaperiaatetta on tutkittu hyvin. Se koostuu neuroneista - erikoistuneista soluista, jotka vaihtavat sähkökemiallisia signaaleja keskenään. Jokaisessa neuronissa on useita dendriittejä ja yksi aksoni. Dendriittejä voidaan verrata tuloihin, joiden kautta data tulee neuroniin, kun taas aksoni toimii sen ulostulona. Dendriittien ja aksonien välisiä yhteyksiä kutsutaan synapseiksi. Ne eivät vain lähetä signaaleja, vaan voivat myös muuttaa niiden amplitudia ja taajuutta.

Yksittäisten hermosolujen tasolla tapahtuvat muunnokset ovat hyvin yksinkertaisia, mutta hyvin pienetkin hermoverkot pystyvät paljon. Caenorhabditis elegans -madon koko käyttäytymisen monimuotoisuus - liike, ruoan etsiminen, erilaiset reaktiot ulkoisiin ärsykkeisiin ja paljon muuta - on koodattu vain kolmesataa hermosolua. Ja okei madot! Jopa muurahaiset tarvitsevat 250 tuhatta neuronia, ja se, mitä ne tekevät, on ehdottomasti koneiden kykyjen ulkopuolella.

Lähes kuusikymmentä vuotta sitten amerikkalainen tutkija Frank Rosenblatt yritti luoda aivojen kuvaksi suunniteltua tietokonejärjestelmää, mutta hänen luomismahdollisuudet olivat erittäin rajalliset. Siitä lähtien kiinnostus hermoverkkoja kohtaan on herännyt toistuvasti, mutta kerta toisensa jälkeen on käynyt ilmi, että laskentateho ei riitä mihinkään kehittyneeseen neuroverkkoon. Paljon on muuttunut tässä suhteessa viimeisen vuosikymmenen aikana.

Sähkömekaaniset aivot moottorilla

Rosenblatin konetta kutsuttiin Mark I Perceptroniksi. Se oli tarkoitettu kuvantunnistukseen, tehtävään, jossa tietokoneet ovat edelleen vain niin ja niin. Mark I oli varustettu verkkokalvon kaltaisella: neliönmuotoisella 400 valokennolla, kaksikymmentä pystysuorassa ja kaksikymmentä vaakasuunnassa. Valokennot yhdistettiin satunnaisesti neuronien elektronisiin malleihin, ja ne puolestaan ​​yhdistettiin kahdeksaan lähtöön. Rosenblatt käytti potentiometrejä synapseina, jotka yhdistävät elektronisia hermosoluja, valokennoja ja lähtöjä. Perceptronia harjoitellessa 512 askelmoottoria pyörittivät automaattisesti potentiometrin nuppeja säätäen hermosolujen jännitettä lähtötuloksen tarkkuuden mukaan.

Näin hermoverkko toimii pähkinänkuoressa. Keinotekoisella neuronilla, kuten todellisella neuronilla, on useita tuloja ja yksi lähtö. Jokaisella syötteellä on painokerroin. Näitä kertoimia muuttamalla voimme kouluttaa hermoverkkoa. Lähtösignaalin riippuvuus tulosignaaleista määräytyy ns. aktivointitoiminnolla.

Rosenblatin perceptronissa aktivointifunktio lisäsi kaikkien loogisen syötteiden painon ja vertasi tulosta sitten kynnysarvoon. Sen haittana oli, että jollakin painotuskertoimella tällä lähestymistavalla voi olla suhteettoman suuri vaikutus tulokseen. Tämä tekee oppimisesta vaikeaa.

Nykyaikaiset hermoverkot käyttävät tyypillisesti epälineaarisia aktivointifunktioita, kuten sigmoidia. Lisäksi vanhoissa neuroverkoissa oli liian vähän kerroksia. Nykyään tulon ja lähdön välissä on yleensä yksi tai useampi piilotettu neuronikerros. Siellä kaikki hauska tapahtuu.

Jotta olisi helpompi ymmärtää, mistä puhumme, katso tämä kaavio. Se on myötäkytkentäinen neuroverkko, jossa on yksi piilotettu kerros. Jokainen ympyrä vastaa neuronia. Vasemmalla ovat syöttökerroksen neuronit. Oikealla on lähtökerroksen neuroni. Keskellä on piilotettu kerros, jossa on neljä neuronia. Kaikkien syöttökerroksen neuronien lähdöt on kytketty ensimmäisen piilokerroksen jokaiseen neuroniin. Lähtökerroksen neuronin tulot puolestaan ​​on kytketty kaikkiin piilokerroksen neuronien lähtöihin.

Kaikkia neuroverkkoja ei ole suunniteltu tällä tavalla. Esimerkiksi on olemassa (tosin vähemmän yleisiä) verkkoja, joissa neuroneista tuleva signaali ei johda vain seuraavaan kerrokseen, kuten kaaviossamme eteenpäin etenevä verkko, vaan myös päinvastaiseen suuntaan. Tällaisia ​​verkkoja kutsutaan toistuviksi. Täysin yhdistetyt tasot ovat myös vain yksi vaihtoehto, ja kosketamme jopa yhtä vaihtoehdoista.

Harjoitella

Joten, yritetään rakentaa yksinkertainen hermoverkko omin käsin ja selvittää kuinka se toimii. Käytämme Pythonia Numpy-kirjaston kanssa (voimme tehdä ilman Numpya, mutta Numpylla lineaarinen algebra vaatii vähemmän vaivaa). Kyseinen esimerkki perustuu Andrew Traskin koodiin.

Tarvitsemme funktioita sigmoidin ja sen derivaatan laskemiseen:

Jatko on vain tilaajien saatavilla

Vaihtoehto 1. Tilaa Hacker lukeaksesi kaiken sivuston materiaalin

Tilauksen avulla voit lukea KAIKKI maksulliset materiaalit sivustolla määritetyn ajan kuluessa. Hyväksymme maksut pankkikorteilla, sähköisellä rahalla ja siirrot matkapuhelinoperaattoritililtä.

Kirjanmerkkeihin

Kerromme kuinka luodaan yksinkertainen neuroverkko muutamassa vaiheessa ja opetamme sen tunnistamaan kuuluisat yrittäjät valokuvista.

Vaihe 0. Ymmärretään kuinka hermoverkot toimivat

Helpoin tapa ymmärtää hermoverkkojen toimintaperiaatteet on käyttää Googlen opetusprojektin Teachable Machine esimerkkiä.

Teachable Machine käyttää syöttötietona kannettavan kameran kuvaa - mitä hermoverkon on käsiteltävä. Lähtötietona - mitä hermoverkon pitäisi tehdä saapuvien tietojen käsittelyn jälkeen - voit käyttää gifiä tai ääntä.

Voit esimerkiksi opettaa Teachable Machinen sanomaan "Hei", kun kämmen on ylhäällä. Peukku ylös - "Cool" ja yllättynyt naama suu auki - "Vau".

Ensin sinun on koulutettava neuroverkko. Voit tehdä tämän nostamalla kämmenen ja painamalla "Train Green" -painiketta - palvelu ottaa useita kymmeniä kuvia löytääkseen kuvista kuvion. Tällaisten kuvien joukkoa kutsutaan yleensä "tietojoukoksi".

Nyt ei jää enää muuta kuin valita toiminto, joka täytyy kutsua kuvan tunnistamisessa - sano lause, näytä GIF tai toista ääni. Samalla tavalla koulutamme hermoverkkoa tunnistamaan yllättyneet kasvot ja peukalon.

Kun hermoverkko on koulutettu, sitä voidaan käyttää. Teachable Machine näyttää "luottamustekijän" - kuinka "varma" järjestelmä on, että sille opetetaan yksi taidoista.

Lyhyt video opettavan koneen toiminnasta

Vaihe 1. Tietokoneen valmisteleminen toimimaan hermoverkon kanssa

Luomme nyt oman hermoverkkomme, joka kuvaa lähettäessään raportoi mitä kuvassa näkyy. Ensin opetetaan hermoverkko tunnistamaan kuvassa olevat kukat: kamomilla, auringonkukka, voikukka, tulppaani tai ruusu.

Oman hermoverkon luomiseen tarvitset Pythonin, yhden minimalistisimmista ja yleisimmistä ohjelmointikielistä, ja TensorFlow'n, Googlen avoimen kirjaston hermoverkkojen luomiseen ja harjoittamiseen.

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 joitain 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 tarvittavan 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