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
input
kerrokseksi, jota seuraavathidden
kerrokset, sitten lopuksioutput
kerros - 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:

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:

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 dendrites
signaalit vastaanottavat ja kulkevat näitä signaaleja pitkin axon
.
dendrites
On yksi neuroni on kytketty axon
toisen neuroni. Näitä yhteyksiä kutsutaan synapses
kä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:

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ä weight
vaikutus, 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ä:

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:

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ä 0
ja 1
.
Tässä on sigmoidifunktion matemaattinen määritelmä:

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 toimintoja kutsutaan usein Rectified Linear Unit
aktivointitoiminnoksi tai ReLUs
lyhyeksi.
Hyperbolinen tangenttitoiminto
Hyperbolinen tangenttitoiminto on ainoa tähän opetusohjelmaan sisältyvä aktivointitoiminto, joka perustuu trigonometriseen identiteettiin.
Matemaattinen määritelmä on alla:

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:

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 0
nykyisen neuronin painotetussa summa-kaavassa.
Seuraava kuva auttaa visualisoimaan tämän:

Kuten näette, kaikilla hermosolujen ja hermosolujen parilla ei ole synapsia. x4
syö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-coding
ja soft-coding
tietokoneohjelmia.
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:

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!