Convolutional Neural Network Tutorial

elo 18, 2021
admin

Tekoäly on kulkenut pitkän matkan, ja se on saumattomasti kurottava umpeen kuilua ihmisten ja koneiden mahdollisuuksien välillä. Ja datan harrastajat ympäri maailmaa työskentelevät lukuisten tekoälyn osa-alueiden parissa ja muuttavat visioita todellisuudeksi – ja yksi tällainen hämmästyttävä alue on tietokonenäön alue. Tällä alalla pyritään mahdollistamaan ja konfiguroimaan koneet näkemään maailmaa ihmisten tavoin ja käyttämään tietoa useissa tehtävissä ja prosesseissa (kuten kuvantunnistuksessa, kuva-analyysissä ja -luokittelussa jne.). Ja tietokonenäön edistysaskeleet syväoppimisen avulla ovat olleet huomattavaa menestystä, erityisesti konvolutiivisen neuroverkon algoritmin avulla.

Tässä opetusohjelmassa opit seuraavaa:

  • Esittely CNN:ään
  • Mikä on konvolutiivinen neuroverkko?
  • Miten CNN:t tunnistavat kuvia?
  • Kerrokset CNN:ssä
  • Käyttökohteen toteutus CNN:n avulla

Tietoa CNN:stä

Facebookin tekoälytutkimusryhmän johtaja Yann LeCun on konvolutiivisten hermoverkkojen pioneeri. Hän rakensi ensimmäisen konvoluutiohermoverkon nimeltä LeNet vuonna 1988. LeNetiä käytettiin merkintunnistustehtäviin, kuten postinumeroiden ja numeroiden lukemiseen.

Oletko koskaan miettinyt, miten kasvojentunnistus toimii sosiaalisessa mediassa tai miten objektien tunnistaminen auttaa itseohjautuvien autojen rakentamisessa tai miten sairauksien tunnistaminen tapahtuu visuaalisten kuvien avulla terveydenhuollossa? Se kaikki on mahdollista konvolutiivisten neuroverkkojen (CNN) ansiosta. Seuraavassa on esimerkki konvoluutiohermoverkoista, joka havainnollistaa niiden toimintaa:

Kuvittele, että on kuva linnusta, ja haluat tunnistaa, onko se todella lintu vai jokin muu esine. Ensimmäiseksi syötät kuvan pikselit matriisien muodossa neuroverkon tulokerrokseen (monikerroksisia verkkoja käytetään asioiden luokitteluun). Piilokerrokset suorittavat ominaisuuksien louhinnan suorittamalla erilaisia laskutoimituksia ja käsittelyjä. On olemassa useita piilokerroksia, kuten konvoluutiokerros, ReLU-kerros ja pooling-kerros, jotka suorittavat ominaisuuksien louhinnan kuvasta. Lopuksi on täysin kytketty kerros, joka tunnistaa kuvassa olevan kohteen.

Konvoluutio-neuraaliverkko linnun kuvan tunnistamiseen

Kuva: Convolutional Neural Network to identify the image of a bird

Deep Learning Course (with TensorFlow & Keras)

Master the Deep Learning Concepts and ModelsView Course

Deep Learning Course (with TensorFlow Keras)

Mikä on konvolutiivinen neuroverkko?

Konvoluutiohermoverkko on feed-forward-neuroverkko, jota käytetään yleensä visuaalisten kuvien analysointiin käsittelemällä dataa ruudukkomaisella topologialla. Se tunnetaan myös nimellä ConvNet. Konvoluutiohermoverkkoa käytetään kuvassa olevien kohteiden havaitsemiseen ja luokitteluun.

Alhaalla on neuroverkko, joka tunnistaa kaksi kukkatyyppiä: Orkidea ja ruusu.

CNN:ssä jokainen kuva esitetään pikseliarvojen joukkona.

Konvoluutio-operaatio muodostaa minkä tahansa konvoluutio-neuroverkon perustan. Ymmärretään konvoluutio-operaatio käyttäen kahta yksiulotteista matriisia, a ja b.

a =

b =

Konvoluutio-operaatiossa matriisit kerrotaan elementtiviisaasti, ja tulo summataan, jolloin syntyy uusi matriisi, joka edustaa a*b:tä.

Matriisin a kolme ensimmäistä elementtiä kerrotaan matriisin b elementeillä. Tuote summataan, jolloin saadaan tulos.

Matriisin a kolme seuraavaa alkiota kerrotaan matriisin b alkioilla, ja tuote summataan.

Tämä prosessi jatkuu, kunnes konvoluutio-operaatio on valmis.

Miten CNN tunnistaa kuvia?

Tarkastellaan seuraavia kuvia:

Värilliset laatikot edustavat pikselin arvoa 1 ja 0, jos niitä ei ole väritetty.

Kun painat backslash-näppäintä (\), alla oleva kuva käsitellään.

Kun painat eteenviivaa (/), alla oleva kuva käsitellään:

Tässä on toinen esimerkki, joka kuvaa, miten CNN tunnistaa kuvan:

Kuten yllä olevasta kaaviosta näkyy, vain ne arvot ovat valaistuja, joiden arvo on 1.

Kerrokset konvoluutiohermoverkossa

Konvoluutiohermoverkossa on useita piilotettuja kerroksia, jotka auttavat tiedon poimimisessa kuvasta. Konvoluutiokerroksessa on useita suodattimia, jotka suorittavat konvoluutio-operaation. Jokaista kuvaa tarkastellaan pikseliarvojen matriisina.

Tarkastellaan seuraavaa 5×5-kokoista kuvaa, jonka pikseliarvot ovat joko 0 tai 1. Kuvassa on myös suodatinmatriisi, jonka ulottuvuus on 3×3. Liu’uta suodatinmatriisi kuvan päälle ja laske pistetuotto saadaksesi konvolvoidun ominaisuusmatriisin.

ReLU-kerros

ReLU on lyhenne sanoista rectified linear unit. Kun piirrekartat on poimittu, seuraava vaihe on siirtää ne ReLU-kerrokseen.

ReLU suorittaa elementtiviisaan operaation ja asettaa kaikki negatiiviset pikselit arvoon 0. Se tuo verkkoon epälineaarisuutta, ja tuotettu ulostulo on oikaistu piirrekartta. Alla on ReLU-funktion kuvaaja:

Alkuperäinen kuva skannataan useilla konvoluutioilla ja ReLU-kerroksilla piirteiden paikantamiseksi.

Pooling-kerros

Pooling on downsampling-operaatio, joka pienentää piirrekartan dimensiota. Oikaistu piirrekartta kulkee nyt poolointikerroksen läpi luodakseen pooloidun piirrekartan.

Poolointikerroksessa käytetään erilaisia suodattimia kuvan eri osien, kuten reunojen, kulmien, rungon, höyhenten, silmien ja nokan tunnistamiseen.

Tältä konvoluutio-neuraaliverkon rakenne näyttää tähän mennessä:

Seuraavaa vaihetta kutsutaan tasoittamiseksi. Litistämistä käytetään muuntamaan kaikki yhdistetyistä piirrekartoista saadut 2-ulotteiset matriisit yhdeksi pitkäksi jatkuvaksi lineaariseksi vektoriksi.

Latistettu matriisi syötetään syötteenä täysin kytketylle kerrokselle, joka luokittelee kuvan.

Näin tarkalleen CNN tunnistaa linnun:

  • Kuvan pikselit syötetään konvoluutiokerrokselle, joka suorittaa konvoluutio-operaation
  • Tuloksena saadaan konvoluutiokartta
  • Konvoluutiokarttaa sovelletaan ReLU-funktioon, jolla luodaan rektifioitu piirrekartta
  • Kuvaa käsitellään useilla konvoluutio- ja ReLU-kerroksilla. piirteiden paikantamiseksi
  • Kuvan tiettyjen osien tunnistamiseen käytetään erilaisia yhdistelmäkerroksia, joissa on erilaisia suodattimia
  • Yhdistetty piirrekartta litistetään ja syötetään täysin kytketylle kerrokselle lopullisen ulostulon saamiseksi

VAPAA Koneoppimisen kurssi

Opi In-demand Machine Learning Skills and ToolsStart Learning

FREE Machine Learning Course

Käyttökohteen toteutus CNN:n avulla

Käytämme Kanadan huippututkimusinstituutin (Canadian Institute For Advanced Research) CIFAR-10 -datasarjaa, jolla luokittelemme kuvia 10 kategoriaan CNN:n avulla.

1. Lataa datajoukko:

2. Tuo CIFAR-datajoukko:

3. Lue etikettien nimet:

4. Esitä kuvat matplotlib:in avulla:

5. Esitä kuvat. Käytä apufunktioita datan käsittelyyn:

6. Luo malli:

7. Sovella apufunktioita:

8. Luo kerrokset konvoluutiolle ja pooliin:

9. Luo kerrokset konvoluutiolle ja pooliin. Luo litistetty kerros muotoilemalla poolointikerros uudelleen:

10. Luo täysin yhdistetty kerros:

11. Aseta ulostulo y_pred-muuttujaan:

12. Sovella häviöfunktiota:

13. Luo optimoija:

14. Luo muuttuja kaikkien globaalien muuttujien alustamiseksi:

15. Suorita malli luomalla graafisessio:

Rakenna syväoppimismalleja TensorFlow’lla ja opettele avoimen lähdekoodin TensorFlow-kehys Deep Learning -kurssilla (Keras &TensorFlow’lla). Ilmoittaudu nyt!

Opi lisää CNN:stä ja syväoppimisesta

Näin rakennat CNN:n, jossa on useita piilotettuja kerroksia, ja tunnistat linnun sen pikseliarvojen avulla. Olet myös suorittanut demon, jossa luokittelet kuvia 10 kategoriaan CIFAR-tietokannan avulla.

Voit myös ilmoittautua Purduen yliopiston ja IBM:n kanssa yhteistyössä toteutettavaan tekoälyn ja koneoppimisen jatko-ohjelmaan (Post Graduate Program in AI and Machine Learning in Purdue University and in collaboration with IBM) ja tehdä itsestäsi syvän oppimisen tekniikoiden asiantuntijan käyttämällä TensorFlow-ohjelmistokirjastoa, joka on avoimen lähdekoodin ohjelmistokirjasto, joka on suunniteltu koneoppimisen ja syvien neuroverkkojen tutkimuksen tekemiseen. Tämä tekoälyn ja koneoppimisen ohjelma kattaa Pythonin, koneoppimisen, luonnollisen kielen käsittelyn, puheentunnistuksen, kehittyneen syväoppimisen, tietokonenäön ja vahvistusoppimisen. Se valmistaa sinut yhteen maailman jännittävimmistä teknologiarajoista.

Vastaa

Sähköpostiosoitettasi ei julkaista.