Konvoluutiohermoverkot (CNN) ovat eräänlainen syväoppimismalli, jota on käytetty laajalti erilaisiin tietokonenäkötehtäviin, kuten kuvan luokitteluun, objektien havaitsemiseen ja kuvan segmentointiin. Tällä tutkimusalalla CNN:t ovat osoittautuneet erittäin tehokkaiksi, koska ne pystyvät automaattisesti oppimaan ja poimimaan merkityksellisiä ominaisuuksia kuvista.
CNN:n rakentamisen perusvaiheet voidaan tiivistää seuraavasti:
1. Esikäsittely: Ensimmäinen vaihe CNN:n rakentamisessa on syöttökuvien esikäsittely. Tämä sisältää tyypillisesti kuvien koon muuttamisen kiinteään kokoon, pikseliarvojen normalisoinnin ja tietojoukon lisäämisen tarvittaessa. Esikäsittely auttaa vähentämään laskennan monimutkaisuutta ja parantamaan mallin suorituskykyä.
2. Konvoluutiokerrokset: CNN:n ydinrakennuspalikoita ovat konvoluutiokerrokset. Nämä kerrokset suorittavat konvoluutiooperaation, johon kuuluu pienen suodattimen (tunnetaan myös nimellä ydin) liu'uttaminen syöttökuvan päälle ja pistetulon laskeminen suodattimen ja kuvan paikallisen vastaanottavan kentän välillä. Tämän toiminnon tulos on ominaisuuskartta, joka edustaa tiettyjen ominaisuuksien esiintymistä syötekuvassa. Useita konvoluutiotasoja voidaan pinota yhteen monimutkaisten ja hierarkkisten ominaisuuksien oppimiseksi.
3. Aktivointitoiminto: Konvoluutiotoiminnon jälkeen aktivointitoimintoa sovelletaan elementtikohtaisesti kunkin konvoluutiokerroksen ulostuloon. Yleisimmin käytetty aktivointitoiminto CNN:issä on Rectified Linear Unit (ReLU), joka tuo malliin epälineaarisuuden ja auttaa monimutkaisten kuvioiden oppimisessa.
4. Tasojen yhdistäminen: Poolitustasoja käytetään karttakohdekarttojen tilamittojen pienentämiseen säilyttäen samalla tärkeimmät tiedot. Yleisimmin käytetty poolaustoiminto on max pooling, joka valitsee suurimman arvon paikallisesta naapurustosta karttakohdekartassa. Poolaaminen auttaa vähentämään laskennan monimutkaisuutta ja tekemään mallista kestävämmän pienille käännöksille ja syöttökuvien vääristymille.
5. Täysin yhdistetyt tasot: Useiden konvoluutio- ja yhdistämiskerrosten jälkeen piirrekartat litistetään yksiulotteiseksi vektoriksi ja viedään yhden tai useamman täysin yhdistetyn kerroksen läpi. Nämä kerrokset yhdistävät jokaisen yhden kerroksen neuronin jokaiseen seuraavan kerroksen neuroniin, kuten perinteinen hermoverkko. Täysin yhdistetyt tasot vastaavat korkean tason ominaisuuksien oppimisesta ja lopullisten ennusteiden tekemisestä.
6. Output Layer: CNN:n tulostuskerros riippuu kulloinkin kyseessä olevasta tehtävästä. Esimerkiksi kuvien luokittelussa lähtökerros koostuu tyypillisesti softmax-aktivointifunktiosta, joka tuottaa todennäköisyysjakauman eri luokkien kesken. Kohteen tunnistuksessa lähtökerros voi koostua useista neuroneista, jotka edustavat eri kohteiden läsnäoloa tai poissaoloa kuvassa.
7. Häviöfunktio: Häviöfunktio mittaa CNN:n ennustetun lähdön ja perustotuustunnisteiden välistä eroa. Häviöfunktion valinta riippuu tietystä tehtävästä. Esimerkiksi kuvien luokituksessa käytetään yleisesti ristientropiahäviötä.
8. Optimointi: Optimoinnin tavoitteena on päivittää CNN:n parametrit häviöfunktion minimoimiseksi. Tämä tehdään yleensä käyttämällä optimointialgoritmia, kuten stokastinen gradienttilasku (SGD) tai Adam. CNN:n parametreja päivitetään iteratiivisesti laskemalla häviöfunktion gradientit parametrien suhteen ja säätämällä niitä vastaavasti.
9. Koulutus ja arviointi: CNN koulutetaan merkittyyn tietosarjaan syöttämällä syötekuvat verkon kautta ja säätämällä parametreja optimointialgoritmin avulla. Koulutusprosessi sisältää useita iteraatioita tai aikakausia, joissa jokainen aikakausi koostuu koko tietojoukon kuljettamisesta verkon läpi. CNN:n suorituskykyä arvioidaan erillisellä validointisarjalla sen yleistyskyvyn seuraamiseksi. Kun CNN on koulutettu, sitä voidaan käyttää uusien, näkymättömien kuvien ennustamiseen.
Konvoluutiohermoverkon rakentamiseen kuuluu syöttökuvien esikäsittely, konvoluutiokerrosten soveltaminen ominaisuuksien poimimiseen, aktivointifunktioiden käyttäminen epälineaarisuuden lisäämiseksi, kerrosten yhdistäminen tilaulottuvuuksien vähentämiseksi, täysin yhdistettyjen kerrosten käyttäminen korkean tason ominaisuuksien oppimiseen, tuloskerroksen määrittäminen. tehtävän perusteella sopivan häviöfunktion valitseminen, parametrien optimointi optimointialgoritmin avulla sekä CNN:n koulutus ja arviointi merkittyjen tietojen perusteella.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen Konvoluutio-neuroverkot (CNN):
- Mikä on täysin yhdistetyn kerroksen rooli CNN:ssä?
- Kuinka valmistelemme tiedot CNN-mallin harjoittelua varten?
- Mikä on backpropagationin tarkoitus CNN:n koulutuksessa?
- Kuinka yhdistäminen auttaa vähentämään karttakohdekarttojen ulottuvuutta?

