Kapselin hermoverkot - joukko sisäkkäisiä hermokerroksia



Kapseliverkot - Tämä blogi kertoo konvoluutiohermoverkkojen rajoituksista ja siitä, miten kapselihermoverkot ratkaisee nämä rajoitukset.

Kapseliverkot:

Mikä on kapseliverkko? Se on pohjimmiltaan sisäkkäisten hermokerrosten joukko.

Suosittelen sinua käymään läpi myös alla olevat blogit:





Oletan, että te tiedätte Convolutional Neural Networksin (CNN). Annan teille pienen johdannon samasta, jotta voin keskustella CNN: ien rajoituksista.

Voit myös viitata alla olevaan videoon Convolutional Neural Network -verkossa.



Konvoluutiohermoverkot (CNN)

Konvoluutiohermoverkot ovat pohjimmiltaan pino erilaisia ​​keinotekoisten hermosolujen kerroksia, joita käytetään tietokonenäköön. Alla olen maininnut nuo kerrokset:

Konvoluutio-hermoverkko - kapselin hermoverkko - Edureka

Kääntökerros: Kun käytämme Feedforward-hermoverkkoja (monikerroksinen Perceptron) kuvaluokitukseen, siinä on monia haasteita. Turhauttavin haaste on, että se tuo mukanaan paljon parametreja, harkitse video-opetusohjelmaa CNN: ssä.



Tämän haasteen voittamiseksi Konvoluutiokerros esiteltiin. oletetaan, että pikselit, jotka ovat lähempänä toisiaan, 'tekevät yhteistyötä' muodostaakseen erityisen kiinnostavan piirteen paljon enemmän kuin kuvan vastakkaisissa kulmissa olevat. Jos tietyllä (pienemmällä) ominaisuudella todetaan olevan suuri merkitys määritettäessä kuvan etikettiä, on yhtä tärkeää, jos tämä ominaisuus löydettiin mistä tahansa kuvan sisäpuolesta sijainnista riippumatta.

ReLU-kerros: Tasasuuntaisen lineaarisen yksikön (ReLU) muunnostoiminto aktivoi solmun vain, jos tulo on tietyn määrän yläpuolella, kun taas tulo on alle nollan, lähtö on nolla, mutta kun tulo nousee tietyn kynnyksen yläpuolelle, sillä on lineaarinen suhde riippuva muuttuja.

  • Tässä kerroksessa poistamme kaikki negatiiviset arvot suodatetuista kuvista ja korvataan nollilla
  • Tämä tehdään, jotta vältetään arvojen summaaminen nollaksi

Poolikerros: Tätä käytetään alinäytteenottoon, joka kuluttaa pieniä ja (yleensä) irtoavia kuvan paloja ja kootaan ne yhdeksi arvoksi. Yhdistämistä varten on useita mahdollisia malleja - suosituin Enimmäisallas , jossa otetaan kunkin kimpun suurin pikseliarvo. Se tekee verkon muuttumattomaksi pieniin muunnoksiin, vääristymiin ja käännöksiin tulokuvassa (pieni vääristymä syötteessä ei muuta Poolingin lähtöä - koska otamme enimmäis- / keskiarvon paikallisella naapurustolla).

Täysin yhdistetty kerros: Tämä kerros laskee luokan tulokset, joissa kukin numeroista vastaa luokan pisteitä. Kuten tavallisissa hermoverkoissa, ja kuten nimestä käy ilmi, kukin tämän kerroksen hermosolu yhdistetään kaikkiin edellisen tilavuuden hermosoluihin. Lyhyesti sanottuna se suorittaa lopullisen luokituksen.

Tällä tavalla ConvNets muuntaa alkuperäisen kuvan kerroksittain alkuperäisistä pikseliarvoista lopullisiin luokan pisteisiin.

Tämä oli hyvin lyhyt esittely konvoluutio-neuroverkoista, suosittelen silti, että katsot CNN-videota, jonka olen upottanut tähän viestiin.

Tässä Capsule Networks -blogissa keskustelen nyt muutamista konvoluutio-neuroverkkojen rajoituksista

Konvoluutiohermoverkkojen rajoitukset:

No, anna minun selittää tämä analogisesti.

Oletetaan, että on olemassa ihminen, jonka silmät voivat havaita eri kuvien piirteet. Tarkastellaan esimerkiksi ihmisen kasvoja. Joten tämä valitettava kaveri voi tunnistaa useita piirteitä, kuten silmät, nenä jne., Mutta ei pysty tunnistamaan ominaisuuksien välisiä tilasuhteita (perspektiivi, koko, suunta). Esimerkiksi seuraava kuva voi huijata kaveria luokittelemalla sen hyväksi luonnokseksi ihmisen kasvoista.

Tämä on ongelma myös konvoluutio-neuroverkoissa. CNN on hyvä havaitsemaan ominaisuuksia, mutta aktivoi väärin hermosolujen kasvojen havaitsemiseen. Tämä johtuu siitä, että se on vähemmän tehokas tutkimaan ominaisuuksien välisiä tilasuhteita.

Yksinkertainen CNN-malli voi poimia nenän, silmien ja suun ominaisuudet oikein, mutta aktivoi väärin hermosolun kasvojen havaitsemiseen. Kasvojentunnistuksen aktivointi on liian suuri, ilman että havaitaan väärää tilasuuntauksen ja koon vastaavuutta.

No, tämä rajoitus johtuu Max Pooling -kerroksesta.

CNN: n suurin poolointi käsittelee käännösvarianssia. Jopa ominaisuutta siirretään hieman, jos se on edelleen pooli-ikkunassa, se voidaan silti tunnistaa. Siitä huolimatta tämä lähestymistapa pitää vain maksimiominaisuuden (hallitsevin) ja heittää pois muut.

Joten yllä oleva kasvokuva luokitellaan tavallisiksi kasvoiksi. Poolikerros lisää myös tämän tyyppistä muuttumattomuutta.

Tämä ei ollut koskaan yhdistämiskerroksen tarkoitus. Mitä yhdistämisen piti tehdä, on ottaa käyttöön sijainti-, orientaatio-, suhteellinen muutos.

Todellisuudessa tämä yhdistämiskerros lisää kaikenlaista aseman muuttumattomuutta. Kuten voit nähdä myös yllä olevasta kaaviosta, se johtaa ongelmaan havaita kasvot oikein.

Katsotaanpa, minkä ratkaisun ehdotti Geoffrey Hinton .

Kuinka ratkaista tämä ongelma?

Kuvittelemme nyt, että jokainen hermosolu sisältää ominaisuuksien todennäköisyyden ja ominaisuudet. Esimerkiksi se tuottaa vektorin, joka sisältää [todennäköisyys, suunta, koko]. Tämän paikkatiedon avulla voimme havaita nenän, silmien ja korvan ominaisuuksien suunnan ja koon yhdenmukaisuuden ja antaa siten paljon pienemmän aktivoinnin kasvojen havaitsemiseen.

Julkaisemassa paperissa Geoffrey Hinton , tämän tyyppisiä hermosoluja kutsutaan kapseleiksi. Nämä kapselit tuottavat vektorin yhden skaalausarvon sijaan.

Sallikaa minun sytyttää joitain kapseliverkkoja.

Mitä ovat kapseliverkot?

Kapseli on pohjimmiltaan joukko sisäkkäisiä hermokerroksia. Kapselin sisällä olevien hermosolujen tila vangitsee kuvan sisällä olevat eri ominaisuudet, kuten - asento (sijainti, koko, suunta), muodonmuutos, nopeus, tekstuuri jne.

Sen sijaan, että otettaisiin ominaisuus tietyllä muunnelmalla, kapseli koulutetaan kaappaamaan ominaisuuden ja sen muunnelman todennäköisyys. Joten kapselin tarkoituksena ei ole vain havaita ominaisuus, vaan myös kouluttaa mallia oppimaan variantti.

Siten, että sama kapseli pystyy havaitsemaan saman objektiluokan eri suunnilla (esimerkiksi kiertämään myötäpäivään):

Voimme sanoa, että se toimii samanarvoisuuden kuin muuttumattomuuden suhteen.

Invarianssi: on ominaisuuksien havaitseminen muunnelmista riippumatta. Esimerkiksi nenän havaitsemisneuroni havaitsee nenän suunnasta riippumatta.

Tasa-arvoisuus: on havaita esineitä, jotka voivat muuttua toisilleen (esimerkiksi havaita kasvot eri suunnilla). Intuitiivisesti kapseliverkko havaitsee, että kasvot käännetään oikealle 31 ° (ekvivaarisuus) sen sijaan, että tajuaisivat, että kasvot sovitetaan muunnokseen, jota käännetään 31 °. Pakottamalla malli oppimaan ominaisuusvariantti kapselissa voimme ekstrapoloida mahdolliset variantit tehokkaammin, kun harjoittelutiedot ovat pienemmät. Lisäksi voimme hylätä vastustajat tehokkaammin.

Kapseli tuottaa vektorin edustamaan kokonaisuuden olemassaoloa. Vektorin suunta edustaa kokonaisuuden ominaisuuksia.

Vektori lähetetään kaikille mahdollisille vanhemmille hermoverkossa. Kullekin mahdolliselle vanhemmalle kapseli voi löytää ennustusvektorin. Ennustusvektori lasketaan kertomalla sen oma paino ja painomatriisi. Kumpi vanhemmista on suurin skalaariennusteiden vektorituote, lisää kapselisidosta. Muut vanhemmat vähentävät siteitä. Tätä kutsutaan nimellä Reititys sopimuksen mukaan .

Tämä on ehdottomasti parempi lähestymistapa kuin maksimipoolitus, jossa reititys perustuu vahvimpaan alemmasta kerrokseen havaittuun ominaisuuteen.

Tämän jälkeen lisätään puristustoiminto. Tämä tehdään epälineaarisuuden lisäämiseksi. Tätä puristustoimintoa käytetään kunkin kapselin vektorilähtöön.

mikä on tapahtuma javascriptissä

Haluan kertoa sinulle nyt, miten Capsule Networks toimii.

Kuinka kapseliverkot toimivat?

Otetaan askel taaksepäin. Täysin kytketyssä verkossa kunkin neuronin lähtö on painotettu tulojen summa.

Katsotaan nyt, mitä tapahtuu Capsule Networksissa.

Kapselin hermoverkko:

Tarkastelkaamme kapselin hermoverkkoa, jossa ‘ui'On kapselin aktiivisuusvektori'minäalla olevassa kerroksessa.

Vaihe - 1: Käytä muunnosmatriisiaSISÄÄNijkapselin ulostuloon ui edellisen kerroksen. Esimerkiksi m × k-matriisilla muunnetaan k-Dui m-D: henu ^j | i. ((m × k) × (k × 1) = m × 1).

Se on ennuste ( äänestys ) kapselin ”i” yläpuolella olevan kapselin ”j” ulostulosta. ”Vj'On kapselin aktiivisuusvektori'j ’yläkerrassa

Vaihe - 2: Laske painotettu summa sjpainojen kanssacij.cijovat kytkentäkertoimia. Näiden kertoimien summa on yhtä suuri. Se on todellinen parametri, joka toimii kapseliryhmän suhteen, josta puhuimme aiemmin.

Vaihe 3: Konvoluutio-hermoverkoissa käytimme ReLU-toimintoa. Tällöin käytetään squashing-funktiota vektorin skaalaamiseen 0: n ja yksikön pituuden välillä. Se kutistaa pienet vektorit nollaksi ja pitkät vektorit yksikkövektoreiksi. Siksi kunkin kapselin todennäköisyys on rajattu nollan ja yhden välille.

Se on ennuste ( äänestys ) kapselin ”i” yläpuolella olevan kapselin ”j” ulostulosta. Jos aktiivisuusvektorilla on läheistä samankaltaisuutta ennustevektorin kanssa, päätellään, että kapseliminäliittyy läheisesti kapseliin ”j ’. (Esimerkiksi nenäkapselit liittyvät läheisesti kasvokapseliin.) Tällainen samankaltaisuus mitataan käyttämällä ennustus- ja aktiivisuusvektorin skalaarista tulosta. Siksi samankaltaisuudessa otetaan huomioon sekä todennäköisyys että ominaisuuden ominaisuudet. (pelkän neuronien todennäköisyyden sijasta).

Vaihe 4: Laske osuvuuspisteet ‘bij”. Se on aktiivisuusvektorin ja ennustevektorin pistetulo. Kytkentäkertoimetcijlasketaan arvon Softmax arvonabij:

Kytkentäkerroin cijlasketaan b: n softmax: naij.

Tämä bijpäivitetään iteratiivisesti useissa iteraatioissa.

Tätä kutsutaan nimellä Reititys sopimuksen mukaan .

Alla oleva kaavio on yksi esimerkki:

Tämän Capsule Networks -blogin jälkeen aion luoda blogin Capsule Neural Network -toteutuksesta TensorFlow-sovelluksen avulla.

Toivon, että olet lukenut tätä blogia kapseliverkkoissa, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka Deep Learning with TensorFlow -sertifiointikoulutuskurssi auttaa oppijoita tulemaan asiantuntijoiksi koulutuksessa ja perus- ja konvoluutio-hermoverkkojen optimoinnissa reaaliaikaisilla projekteilla ja tehtävillä sekä käsitteillä, kuten SoftMax-toiminto, automaattisen kooderin hermoverkot, rajoitettu Boltzmann-kone (RBM).

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.