Neuroverkkojen syvällinen oppiminen selitettynä tavallisella englanniksi

Koneoppiminen ja erityisesti syväoppiminen ovat kaksi tekniikkaa, jotka muuttavat maailmaa.

Pitkän 30 vuoden pituisen "tekoälyn talven" jälkeen laskentateho ja tietojoukot ovat vihdoin saaneet aikaan 1900-luvun toisella puoliskolla ehdotetut tekoälyn algoritmit.

Tämä tarkoittaa, että syvällisiä oppimismalleja käytetään vihdoin tekemään tehokkaita ennusteita, jotka ratkaisevat tosielämän ongelmat.

Datatieteilijöille ja ohjelmistosuunnittelijoille on tärkeämpää kuin koskaan saada korkean tason käsitys siitä, kuinka syvälliset oppimismallit toimivat. Tässä artikkelissa selitetään syvän oppimisen hermoverkkojen historia ja peruskäsitteet selkeällä englanniksi.

Syvän oppimisen historia

Geoffrey Hinton käsitti syvällisen oppimisen 1980-luvulla. Häntä pidetään laajalti syvällisen oppimisen kentän perustajana. Hinton on työskennellyt Googlessa maaliskuusta 2013 lähtien, jolloin hänen yritys, DNNresearch Inc., ostettiin.

Hintonin tärkein panos syvällisen oppimisen alalle oli koneoppimistekniikoiden vertaaminen ihmisen aivoihin.

Tarkemmin sanottuna hän loi "hermoverkon" käsitteen, joka on syvä oppimisalgoritmi, joka on rakenteeltaan samanlainen kuin aivojen hermosolujen organisoituminen. Hinton omaksui tämän lähestymistavan, koska ihmisen aivot ovat epäilemättä tehokkain nykyään tunnettu laskentakone.

Rakennetta, jonka Hinton loi, kutsuttiin keinotekoiseksi hermoverkoksi (tai lyhyeksi keinotekoiseksi hermoverkoksi). Tässä on lyhyt kuvaus niiden toiminnasta:

  • Keinotekoiset hermoverkot muodostuvat solmukerroksista
  • Jokainen solmu on suunniteltu toimimaan samalla tavalla kuin aivojen hermosolu
  • Hermoverkon ensimmäistä kerrosta kutsutaan inputkerrokseksi, jota seuraavat hiddenkerrokset, sitten lopuksi outputkerros
  • Jokainen hermoverkon solmu suorittaa jonkinlaisen laskennan, joka välitetään muille hermoverkon syvemmälle oleville solmuille

Tässä on yksinkertaistettu visualisointi tämän toiminnan osoittamiseksi:

Visualisointi keinotekoisesta hermoverkosta

Hermoverkot edustivat valtavaa edistysaskelta syvällisen oppimisen alalla.

Koneen oppimisen (ja erityisesti syvällisen oppimisen) saaminen tunnetuksi kesti vuosikymmeniä.

Seuraavassa osiossa tutkitaan miksi.

Miksi syvä oppiminen ei toiminut heti

Jos syvä oppiminen suunniteltiin alun perin vuosikymmeniä sitten, miksi se on vasta alkamassa vauhdissa tänään?

Se johtuu siitä, että mikä tahansa kypsä syväoppimismalli vaatii runsaasti kahta resurssia:

  • Tiedot
  • Laskentateho

Syvällisen oppimisen käsitteellisen syntymän aikaan tutkijoilla ei ollut käytettävissään riittävästi tietoja tai laskentatehoa merkityksellisten syvällisten oppimismallien rakentamiseen ja kouluttamiseen. Tämä on muuttunut ajan myötä, mikä on johtanut syvälliseen oppimiseen nykyään.

Neuronien ymmärtäminen syvässä oppimisessa

Neuronit ovat kriittinen osa syvän oppimismallia.

Itse asiassa voisi väittää, että et voi täysin ymmärtää syvää oppimista tuntemalla syvällisesti neuronien toiminnan.

Tässä osassa tutustutaan syvällisen oppimisen neuronien käsitteeseen. Puhumme syvän oppimisen hermosolujen alkuperästä, siitä, miten ne ovat inspiroineet ihmisen aivojen biologiasta ja miksi neuronit ovat niin tärkeitä syväoppimismalleissa nykyään.

Mikä on neuroni biologiassa?

Syvän oppimisen neuronit innoittivat ihmisen aivojen neuronit. Tässä on kaavio aivojen neuronin anatomiasta:

Aivojen neuronin anatomia

Kuten näette, neuroneilla on varsin mielenkiintoinen rakenne. Neuroniryhmät työskentelevät yhdessä ihmisen aivojen sisällä suorittaakseen toiminnot, joita tarvitsemme jokapäiväisessä elämässämme.

Kysymys, jonka Geoffrey Hinton esitti hermoverkkotutkimuksensa aikana, oli se, voisimmeko rakentaa tietokonealgoritmeja, jotka käyttäytyvät samalla tavalla kuin aivojen neuronit. Toivo oli, että jäljittelemällä aivojen rakennetta saatamme tarttua osaan sen kyvystä.

Tätä varten tutkijat tutkivat tapaa, jolla neuronit käyttäytyivät aivoissa. Yksi tärkeä havainto oli, että hermosolu itsessään on hyödytön. Sen sijaan tarvitset neuronien verkostoja merkityksellisen toiminnallisuuden luomiseen.

Tämä johtuu siitä, että neuronit toimivat vastaanottamalla ja lähettämällä signaaleja. Tarkemmin sanottuna hermosolujen dendritessignaalit vastaanottavat ja kulkevat näitä signaaleja pitkin axon.

dendritesOn yksi neuroni on kytketty axontoisen neuroni. Näitä yhteyksiä kutsutaan synapseskäsitteeksi, joka on yleistetty syvällisen oppimisen kentälle.

Mikä on syväoppimisen neuroni?

Neuronit syvissä oppimismalleissa ovat solmuja, joiden läpi data ja laskelmat kulkevat.

Neuronit toimivat näin:

  • He vastaanottavat yhden tai useamman tulosignaalin. Nämä tulosignaalit voivat tulla joko raakatiedoista tai hermosoluista, jotka on sijoitettu hermoverkon edelliseen kerrokseen.
  • He suorittavat joitain laskelmia.
  • Ne lähettävät joitain lähtösignaaleja hermoverkon syvemmälle oleviin hermosoluihin a: n kautta synapse.

Tässä on kaavio neuronin toiminnallisuudesta syvällä oppivassa hermoverkossa:

Neuronin toiminta syvässä oppimismallissa

Käydään läpi tämä kaavio vaihe vaiheelta.

Kuten näette, syvässä oppimismallissa olevat neuronit pystyvät saamaan synapseja, jotka yhdistyvät useampaan kuin yhteen edellisen kerroksen hermosoluihin. Jokaisella synapsilla on siihen liittyvä weightvaikutus, joka vaikuttaa edeltävän hermosolujen merkitykseen koko hermoverkossa.

Painot ovat erittäin tärkeä aihe syvällisen oppimisen alalla, koska mallin painojen säätäminen on ensisijainen tapa syvällisen oppimisen mallien kouluttamiseen. Näet tämän käytännössä myöhemmin, kun rakennamme ensimmäiset hermoverkostomme tyhjästä.

Kun hermosolu saa tulonsa mallin edellisessä kerroksessa olevista hermosoluista, se lisää kaikki signaalit kerrottuna vastaavalla painollaan ja välittää ne aktivointitoiminnolle, kuten tämä:

Neuronin aktivointitoiminto

Aktivointitoiminto laskee neuronin lähtöarvon. Tämä lähtöarvo välitetään sitten neuroverkon seuraavalle kerrokselle toisen synapsin kautta.

Tämä toimii laajana yleiskatsauksena syvään oppivista hermosoluista. Älä huoli, jos se oli paljon tekemistä - opimme paljon enemmän neuroneista loppuoppaassa. Toistaiseksi riittää, että sinulla on korkeatasoinen käsitys siitä, miten ne on rakennettu syvään oppimismalliin.

Aktivointitoimintojen syvällinen oppiminen

Aktivointitoiminnot ovat keskeinen käsite, joka on ymmärrettävä syvässä oppimisessa.

Ne antavat hermoverkon neuroneille kommunikoida keskenään synapsiensa kautta.

Tässä osassa opit ymmärtämään aktivointitoimintojen merkityksen ja toimivuuden syvällisessä oppimisessa.

Mitä aktivointitoiminnot ovat syvällisessä oppimisessa?

Viimeisessä osassa opimme, että neuronit vastaanottavat tulosignaaleja hermoverkon edeltävältä kerrokselta. Näiden signaalien painotettu summa syötetään hermosolujen aktivaatiofunktioon, minkä jälkeen aktivaatiofunktion lähtö siirretään verkon seuraavaan kerrokseen.

Aktivointitoimintoja on neljä päätyyppiä, joista keskustelemme tässä opetusohjelmassa:

  • Kynnystoiminnot
  • Sigmoid-toiminnot
  • Tasasuuntaajan toiminnot tai ReLU: t
  • Hyperboliset tangenttitoiminnot

Työskentelemme näiden aktivointitoimintojen läpi yksi kerrallaan.

Kynnystoiminnot

Kynnystoiminnot laskevat eri lähtösignaalin riippuen siitä, onko sen tulo tietyn kynnyksen ylä- vai alapuolella. Muista, että aktivointitoiminnon tuloarvo on hermoverkon edellisen kerroksen tuloarvojen painotettu summa.

Matemaattisesti ottaen tässä on muodollinen määritelmä syvälle oppimisen kynnysfunktiolle:

Kynnystoiminnot

Kuten yllä oleva kuva viittaa, kynnysfunktiota kutsutaan joskus myös a unit step function.

Kynnystoiminnot ovat samanlaisia ​​kuin loogiset muuttujat tietokoneohjelmoinnissa. Niiden laskettu arvo on joko 1(samanlainen True) tai 0(vastaava False).

Sigmoid-toiminto

Sigmoidifunktio on tiedetietoyhteisössä hyvin tunnettu, koska sitä käytetään logistisessa regressiossa, joka on yksi koneoppimisen keskeisistä tekniikoista, joita käytetään luokitusongelmien ratkaisemiseen.

Sigmoidifunktio voi hyväksyä minkä tahansa arvon, mutta laskee aina arvon välillä 0ja 1.

Tässä on sigmoidifunktion matemaattinen määritelmä:

Sigmoid-toiminnot

Yksi sigmoidifunktion etu kynnysfunktioon nähden on, että sen käyrä on sileä. Tämä tarkoittaa, että johdannaiset voidaan laskea missä tahansa käyrän pisteessä.

Tasasuuntaajan toiminto

Tasasuuntaajatoiminnolla ei ole samaa sileysominaisuutta kuin viimeisen osan sigmoidilla funktiolla. Se on kuitenkin edelleen erittäin suosittu syvällisen oppimisen alalla.

Tasasuuntaajatoiminto määritellään seuraavasti:

  • Jos tuloarvo on pienempi kuin 0, toiminto tuottaa0
  • Jos ei, toiminto antaa tuloarvonsa

Tässä on tämä käsite selitetty matemaattisesti:

Tasasuuntaajan toiminnot

Tasasuuntaajan toimintoja kutsutaan usein Rectified Linear Unitaktivointitoiminnoksi tai ReLUslyhyeksi.

Hyperbolinen tangenttitoiminto

Hyperbolinen tangenttitoiminto on ainoa tähän opetusohjelmaan sisältyvä aktivointitoiminto, joka perustuu trigonometriseen identiteettiin.

Matemaattinen määritelmä on alla:

Hyperbolinen tangenttitoiminto

Hyperbolinen tangenttitoiminto on ulkonäöltään samanlainen kuin sigmoidifunktio, mutta kaikki sen lähtöarvot siirtyvät alaspäin.

Kuinka hermoverkot todella toimivat?

Tähän mennessä tässä opetusohjelmassa olemme keskustelleet kahdesta hermoverkkojen rakentamisen rakennuspalikoista:

  • Neuronit
  • Aktivointitoiminnot

Olet kuitenkin todennäköisesti vielä hieman hämmentynyt siitä, kuinka hermoverkot todella toimivat.

Tämä opas kokoaa yhteen kappaleet, joista olemme jo keskustelleet, jotta voit ymmärtää, miten hermoverkot toimivat käytännössä.

Esimerkki, jota käytämme tässä opetusohjelmassa

Tämä opetusohjelma käy läpi reaalimaailman esimerkin vaihe vaiheelta, jotta voit ymmärtää, miten hermoverkot tekevät ennusteita.

Tarkemmin sanottuna käsittelemme kiinteistöjen arviointia.

Olet luultavasti jo tietää, että on olemassa ton tekijöitä, jotka vaikuttavat asuntojen hinnat, kuten talous, korot, sen määrä makuuhuonetta / kylpyhuoneet, ja sen sijainti.

Tämän tietojoukon suuri ulottuvuus tekee siitä mielenkiintoisen ehdokkaan hermoverkon rakentamiseen ja kouluttamiseen.

Yksi varoitus tästä osasta on hermoverkko, jota käytämme ennusteiden tekemiseen, on jo koulutettu . Tutkimme uuden hermoverkon kouluttamisprosessia tämän opetusohjelman seuraavassa osassa.

Parametrit tietojoukossa

Aloitetaan keskustelemalla tietojoukon parametreista. Kuvitellaan tarkemmin, että tietojoukko sisältää seuraavat parametrit:

  • Neliömateriaali
  • Makuuhuoneet
  • Etäisyys kaupungin keskustaan
  • Talon ikä

Nämä neljä parametria muodostavat keinotekoisen hermoverkon tulokerroksen. Huomaa, että todellisuudessa on todennäköisesti paljon enemmän parametreja, joita voit käyttää kouluttaaksesi hermoverkkoa ennustamaan asuntojen hintoja. Olemme rajoittaneet tämän luvun neljään pitämään esimerkin kohtuullisen yksinkertaisena.

Neuroverkon perustavin muoto

Perusmuodossaan hermoverkossa on vain kaksi kerrosta - tulokerros ja ulostulokerros. Lähtökerros on hermoverkon komponentti, joka todella ennustaa.

Esimerkiksi, jos haluat tehdä ennusteita yksinkertaisen painotetun summan (jota kutsutaan myös lineaariseksi regressioksi) mallilla, hermoverkko olisi seuraavassa muodossa:

Perushermoverkko

Vaikka tämä kaavio on vähän abstrakti, on kyse siitä, että useimmat hermoverkot voidaan visualisoida tällä tavalla:

  • Syöttökerros
  • Mahdollisesti joitain piilotettuja kerroksia
  • Tulostustaso

Se on piilotettu neuronikerros, joka aiheuttaa hermoverkkojen olevan niin voimakkaita ennusteiden laskemisessa.

Jokaiselle piilotetun kerroksen hermosolulle se suorittaa laskutoimituksia käyttämällä joitain (tai kaikkia) hermoverkon viimeisen kerroksen hermosoluja. Näitä arvoja käytetään sitten hermoverkon seuraavassa kerroksessa.

Neuronien tarkoitus hermoverkon piilotetussa kerroksessa

Luultavasti ihmettelet - mitä kukin piilotetun kerroksen neuroni tarkalleen tarkoittaa ? Toisin sanoen, kuinka koneoppimisen harjoittajien tulisi tulkita näitä arvoja?

Yleisesti ottaen hermoverkon keskimmäisissä kerroksissa olevat neuronit aktivoituvat (mikä tarkoittaa, että niiden aktivointitoiminto palaa 1) tuloarvolle, joka täyttää tietyt alaominaisuudet.

Asuntohintojen ennustemallissamme yksi esimerkki voi olla 5 makuuhuoneen talot, joiden etäisyys keskustaan ​​on pieni.

Useimmissa muissa tapauksissa niiden ominaisuuksien kuvaaminen, jotka saisivat piilotetun kerroksen neuronin aktivoitumaan, ei ole niin helppoa.

Kuinka neuronit määrittelevät syöttöarvonsa

Aiemmin tässä opetusohjelmassa kirjoitin "Jokaiselle piilotetun kerroksen hermosolulle se suorittaa laskutoimituksia käyttämällä joitain (tai kaikkia) hermoverkon viimeisen kerroksen hermosoluja."

Tämä havainnollistaa tärkeää seikkaa - että jokaisen hermoverkon neuronin ei tarvitse käyttää kaikkia edellisen kerroksen hermosoluja.

Prosessia, jonka kautta neuronit päättävät, mitkä tuloarvot käytetään hermoverkon edellisestä kerroksesta, kutsutaan mallin kouluttamiseksi . Opimme lisää hermoverkkojen harjoittelusta tämän kurssin seuraavasta osiosta.

Visuaalinen hermoverkon ennustusprosessi

Neutraalia verkkoa visualisoitaessa piirrämme yleensä viivoja edellisestä kerroksesta nykyiseen kerrokseen aina, kun edellisen neuronin paino on yli 0nykyisen neuronin painotetussa summa-kaavassa.

Seuraava kuva auttaa visualisoimaan tämän:

Valmistunut hermoverkko

Kuten näette, kaikilla hermosolujen ja hermosolujen parilla ei ole synapsia. x4syöttää vain kolme piilotetun kerroksen viidestä neuronista esimerkkinä. Tämä kuvaa tärkeää kohtaa hermoverkkojen rakentamisessa - että kaikkia edellisen kerroksen hermosoluja ei tarvitse käyttää hermoverkon seuraavassa kerroksessa.

Kuinka hermoverkkoja koulutetaan

Tähän mennessä olet oppinut seuraavaa hermoverkoista:

  • Että ne koostuvat neuroneista
  • Että kukin neuroni käyttää aktivointitoimintoa, jota käytetään hermoverkon edellisen kerroksen lähtöjen painotettuun summaan
  • Laaja, koodittomat katsaus hermoverkkojen ennusteisiin

Emme ole vielä käsitelleet erittäin tärkeää osaa hermoverkkojen suunnitteluprosessista: kuinka hermoverkkoja koulutetaan.

Nyt opit, miten hermoverkkoja koulutetaan. Keskustelemme aineistoista, algoritmeista ja yleisistä periaatteista, joita käytetään nykyaikaisten hermoverkkojen kouluttamiseen, jotka ratkaisevat todelliset ongelmat.

Kovakoodaus vs. pehmeäkoodaus

Tietokoneohjelmia voidaan kehittää kahdella tavalla. Ennen kaivaa miten Neuroverkkojen koulutetaan, on tärkeää varmistaa, että sinulla on käsitys eroa hard-codingja soft-codingtietokoneohjelmia.

Kovakoodaus tarkoittaa, että määrität nimenomaisesti syötemuuttujat ja haluamasi lähtömuuttujat. Toisin sanoen, kovakoodaus ei jätä tietokoneelle tilaa tulkita ongelmaa, jonka yrität ratkaista.

Pehmeä koodaus on täysin päinvastainen. Se jättää ohjelmalle tilaa ymmärtää, mitä tietojoukossa tapahtuu. Pehmeän koodauksen avulla tietokone voi kehittää omia ongelmanratkaisutapojaan.

Erityinen esimerkki on hyödyllinen tässä. Tässä on kaksi tapausta siitä, miten voit tunnistaa kissat tietojoukossa pehmeän koodauksen ja kovan koodauksen tekniikoilla.

  • Kova koodaus: ennustat tiettyjen parametrien avulla, onko eläin kissa. Voit tarkemmin sanoa, että jos eläimen paino ja pituus ovat tietyissä rajoissa
  • Pehmeä koodaus: annat tietojoukon, joka sisältää eläimiä, jotka on merkitty näiden lajien tyypillä ja ominaisuuksilla. Sitten rakennat tietokoneohjelman ennustamaan, onko eläin kissa vai ei, tietojoukon ominaisuuksien perusteella.

Kuten voitte kuvitella, neuroverkkojen harjoittelu kuuluu pehmeän koodauksen luokkaan. Pidä tämä mielessä jatkaessasi tätä kurssia.

Neuroverkon kouluttaminen kustannustoiminnon avulla

Neuroverkkoja koulutetaan käyttämällä a: ta cost function, joka on yhtälö, jota käytetään verkon ennusteen sisältämän virheen mittaamiseen.

Kaavan syvälle oppimisen kustannusfunktiolle (jota on paljon - tämä on vain yksi esimerkki) on alla:

Kustannusfunktion yhtälö

Huomaa: Tätä kustannusfunktiota kutsutaan mean squared error, minkä vuoksi yhtäläisyysmerkin vasemmalla puolella on MSE.

Vaikka tässä yhtälössä on paljon kaavan matematiikkaa, se on parasta tiivistää seuraavasti:

Take the difference between the predicted output value of an observation and the actual output value of that observation. Square that difference and divide it by 2.

Toistan, että tämä on yksinkertaisesti yksi esimerkki kustannusfunktiosta, jota voitaisiin käyttää koneoppimisessa (vaikka se onkin suosituin valinta). Kustannusfunktion valinta on itsessään monimutkainen ja mielenkiintoinen aihe, joka ei kuulu tämän opetusohjelman soveltamisalaan.

Kuten mainittiin, keinotekoisen hermoverkon tavoitteena on minimoida kustannusfunktion arvo. Kustannusfunktio minimoidaan, kun algoritmin ennustettu arvo on mahdollisimman lähellä todellista arvoa. Toisin sanoen, hermoverkon tavoitteena on minimoida virhe, jonka se tekee ennusteissaan!

Neuroverkon muokkaaminen

Kun alkuperäinen hermoverkko on luotu ja sen kustannustoiminto laskettu, hermoverkkoon tehdään muutoksia sen selvittämiseksi, pienentävätkö ne kustannustoiminnon arvoa.

Tarkemmin sanottuna modifioidun hermoverkon todellinen komponentti on kunkin sen neurapin painot sen synapsiessa, jotka kommunikoivat verkon seuraavaan kerrokseen.

Mekanismia, jonka avulla painoja muokataan siirtämään hermoverkko vähemmän painovirheisiin painoihin, kutsutaan gradient descent. Toistaiseksi riittää, että ymmärrät, että hermoverkkojen koulutusprosessi näyttää tältä:

  • Kunkin neuronin tuloarvojen alkupainot määritetään
  • Ennusteet lasketaan käyttämällä näitä alkuarvoja
  • Ennusteet syötetään kustannusfunktioon hermoverkon virheen mittaamiseksi
  • Gradientin laskeutumisalgoritmi muuttaa kunkin neuronin tuloarvojen painoja
  • Tätä prosessia jatketaan, kunnes painot lakkaavat muuttumasta (tai kunnes niiden muutoksen määrä kullakin iteraatiolla laskee alle määritetyn kynnyksen)

Tämä saattaa tuntua hyvin abstraktilta - ja se on OK! Nämä käsitteet ymmärretään yleensä täysin vasta kun aloitat ensimmäisten koneoppimismallien kouluttamisen.

Lopulliset ajatukset

Tässä opetusohjelmassa opit kuinka hermoverkot suorittavat laskelmia hyödyllisten ennusteiden tekemiseksi.

Jos olet kiinnostunut oppimaan lisää huippuluokan koneoppimismallin rakentamisesta, kouluttamisesta ja käyttöönotosta, eBook Pragmatic Machine Learning opettaa sinua rakentamaan 9 erilaista koneoppimismallia reaalimaailman projekteilla.

Voit ottaa koodin e-kirjasta GitHubiin tai henkilökohtaiseen salkkuusi näyttämään mahdollisille työnantajille. Kirja julkaistaan ​​3. elokuuta - tilaa ennakkoon 50%: n alennus nyt!