Convolutional Neural Network Tutorial

aug 18, 2021
admin

A mesterséges intelligencia hosszú utat tett meg, és zökkenőmentesen áthidalta az emberekben és a gépekben rejlő lehetőségeket. Az adatrajongók pedig világszerte a mesterséges intelligencia számos aspektusán dolgoznak, és az elképzeléseket valósággá változtatják – és az egyik ilyen csodálatos terület a számítógépes látás területe. Ennek a területnek az a célja, hogy a gépeket képessé tegye és konfigurálja arra, hogy úgy lássák a világot, mint az emberek, és a tudást számos feladatra és folyamatra használják (például képfelismerés, képelemzés és osztályozás stb.). És a számítógépes látás területén a mélytanulással elért előrelépések jelentős sikereket értek el, különösen a konvolúciós neurális hálózat algoritmusával.

Ebben a tananyagban a következőket tanulhatja meg:

  • Bevezetés a CNN-hez
  • Mi az a konvolúciós neurális hálózat?
  • Hogyan ismerik fel a CNN-ek a képeket?
  • A CNN rétegei
  • Használati esetek megvalósítása a CNN segítségével

Bevezetés a CNN-be

Yann LeCun, a Facebook AI Research Group igazgatója a konvolúciós neurális hálózatok úttörője. Ő építette az első konvolúciós neurális hálózatot, a LeNet-et 1988-ban. A LeNet-et karakterfelismerési feladatokra használták, például irányítószámok és számjegyek olvasására.

Gondolkozott már azon, hogyan működik az arcfelismerés a közösségi médiában, vagy hogyan segít a tárgyfelismerés az önvezető autók építésében, vagy hogyan történik a betegségek felismerése vizuális képek segítségével az egészségügyben? Mindez a konvolúciós neurális hálózatoknak (CNN) köszönhetően lehetséges. Íme egy példa a konvolúciós neurális hálózatok működésének szemléltetésére:

Tegyük fel, hogy van egy kép egy madárról, és szeretné azonosítani, hogy az valóban egy madár vagy valami más tárgy. Először is a kép pixeleit tömbök formájában betáplálod a neurális hálózat bemeneti rétegébe (a dolgok osztályozására használt többrétegű hálózatok). A rejtett rétegek különböző számítások és manipulációk elvégzésével végzik a jellemzők kinyerését. Több rejtett réteg van, mint például a konvolúciós réteg, a ReLU réteg és a pooling réteg, amelyek a képből történő jellemző-kivonást végzik. Végül van egy teljesen összekapcsolt réteg, amely azonosítja a képen lévő tárgyat.

Konvolúciós neurális hálózat egy madár képének azonosítására

Ábr: 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)

Mi a Convolutional Neural Network?

A konvolúciós neurális hálózat egy előrecsatolt neurális hálózat, amelyet általában vizuális képek elemzésére használnak, rácsszerű topológiájú adatok feldolgozásával. ConvNet néven is ismert. A konvolúciós neurális hálózatot a képen lévő objektumok felismerésére és osztályozására használják.

Az alábbiakban egy neurális hálózatot mutatunk be, amely kétféle virágot azonosít: Orchidea és rózsa.

A CNN-ben minden képet pixelértékek tömbje formájában reprezentálunk.

A konvolúciós neurális hálózat alapja a konvolúciós művelet. Értsük meg a konvolúciós műveletet két 1 dimenziós mátrix, a és b segítségével.

a =

b =

A konvolúciós műveletben a mátrixokat elemenként megszorozzuk, majd a szorzatot összegezve létrehozunk egy új mátrixot, amely a*b-t képviseli.

Az a mátrix első három elemét megszorozzuk a b mátrix elemeivel. A szorzatot összegezzük, hogy megkapjuk az eredményt.

Az a mátrix következő három elemét megszorozzuk a b mátrix elemeivel, és a szorzatot összegezzük.

Ez a folyamat addig folytatódik, amíg a konvolúciós művelet be nem fejeződik.

Hogyan ismeri fel a CNN a képeket?

Vizsgáljuk meg a következő képeket:

A színes dobozok 1 pixelértéket képviselnek, és 0-t, ha nincs színezve.

A backslash (\) lenyomásakor az alábbi kép kerül feldolgozásra.

Amikor megnyomja az előreütközőt (/), az alábbi kép kerül feldolgozásra:

Itt egy másik példa annak bemutatására, hogy a CNN hogyan ismer fel egy képet:

Amint a fenti ábrán látható, csak azok az értékek világítanak, amelyeknek az értéke 1.

Layers in a Convolutional Neural Network

A konvolúciós neurális hálózat több rejtett réteggel rendelkezik, amelyek segítenek az információk kinyerésében a képből. A CNN négy fontos rétege a következő:

  1. Konvolúciós réteg
  2. ReLU réteg
  3. Pooling réteg
  4. Teljesen kapcsolt réteg

Konvolúciós réteg

Ez az első lépés a kép értékes jellemzőinek kinyerésében. A konvolúciós réteg több szűrővel rendelkezik, amelyek a konvolúciós műveletet végzik. Minden képet pixelértékek mátrixának tekintünk.

Fogjuk fel a következő 5×5 képet, amelynek pixelértékei vagy 0 vagy 1. Van egy 3×3 dimenziójú szűrőmátrix is. Csúsztassuk a szűrőmátrixot a képre, és számítsuk ki a pontszorzatot, hogy megkapjuk a konvolvált jellemzőmátrixot.

ReLU réteg

AReLU a rectified linear unit (kiegyenesített lineáris egység) rövidítése. Miután a jellemzőtérképek kivonásra kerültek, a következő lépés a ReLU rétegbe való áthelyezésük.

A ReLU egy elemenkénti műveletet hajt végre, és az összes negatív pixelt 0-ra állítja. Nemlinearitást vezet be a hálózatba, és a generált kimenet egy rektifikált jellemzőtérkép. Az alábbiakban egy ReLU-függvény grafikonja látható:

Az eredeti képet többszörös konvolúcióval és ReLU-rétegekkel szkenneljük a jellemzőtérkép lokalizálására.

Pooling Layer

A pooling egy lefelé mintavételező művelet, amely csökkenti a jellemzőtérkép dimenziósságát. A rektifikált jellemzőtérkép most egy pooling rétegen megy keresztül, hogy egy pooling feature map-et hozzon létre.

A pooling réteg különböző szűrőket használ a kép különböző részeinek, például élek, sarkok, test, tollak, szemek és csőrök azonosítására.

Íme, így néz ki eddig a konvolúciós neurális hálózat felépítése:

A folyamat következő lépése az úgynevezett lapítás. A lapítás arra szolgál, hogy az összevont jellemzőtérképekből származó összes eredményül kapott kétdimenziós mátrixot egyetlen hosszú, folytonos lineáris vektorrá alakítsa át.

A lapított mátrixot a kép osztályozására szolgáló teljesen összekapcsolt réteg bemenetként kapja meg.

Íme, hogyan ismeri fel a CNN pontosan a madarat:

  • A kép pixelei a konvolúciós rétegbe kerülnek, amely elvégzi a konvolúciós műveletet
  • Ez egy konvolvált térképet eredményez
  • A konvolvált térképet egy ReLU függvényre alkalmazzuk, hogy egy rektifikált jellemzőtérképet hozzunk létre
  • A képet több konvolúciós és ReLU réteggel dolgozzuk fel. a jellemzők lokalizálására
  • A kép meghatározott részeinek azonosítására különböző szűrőkkel ellátott pooling rétegeket használunk
  • A pooling jellemzőtérképet ellaposítjuk és egy teljesen összekapcsolt rétegbe tápláljuk a végső kimenethez

FREE Machine Learning Course

Learn In-demand Machine Learning Skills and ToolsStart Learning

FREE Machine Learning Course

Use case implementation using CNN

A Canadian Institute For Advanced Research CIFAR-10 adathalmazát fogjuk használni a képek 10 kategóriába való besorolásához CNN segítségével.

1. Töltsük le az adathalmazt:

2. Importáljuk a CIFAR adathalmazt:

3. Olvassuk be a címkék nevét:

4. Jelenítsük meg a képeket a matplotlib segítségével:

5. A segédfüggvények használata az adatok kezeléséhez:

6. A modell létrehozása:

7. A segédfüggvények alkalmazása:

8. A rétegek létrehozása a konvolúcióhoz és a poolinghoz:

9. A rétegek létrehozása a konvolúcióhoz és a poolinghoz:

9. Hozzuk létre a lapított réteget a pooling réteg átformálásával:

10. Hozzon létre egy teljesen összefüggő réteget:

11. Állítsa be a kimenetet az y_pred változóra:

12. Alkalmazza a veszteségfüggvényt:

13. Hozzuk létre az optimalizálót:

14. Hozzon létre egy változót az összes globális változó inicializálásához:

15. Futtassa a modellt egy gráf munkamenet létrehozásával:

Építsen mélytanulási modelleket TensorFlow-ban, és tanulja meg a TensorFlow nyílt forráskódú keretrendszert a Deep Learning Course (with Keras &TensorFlow) segítségével. Iratkozzon be most!

Tudjon meg többet a CNN-ről és a mélytanulásról

Így építhet egy CNN-t több rejtett réteggel, és így azonosíthat egy madarat a pixelértékei alapján. Elvégeztél egy demót is, amelyben 10 kategóriában osztályoztál képeket a CIFAR-adatkészlet segítségével.

A Purdue Egyetemmel és az IBM-mel együttműködve beiratkozhat a mesterséges intelligencia és gépi tanulás posztgraduális programjára is, és a TensorFlow, a gépi tanulás és a mély neurális hálózatok kutatására tervezett nyílt forráskódú szoftverkönyvtár segítségével a mélytanulási technikák szakértőjévé válhat. Ez a mesterséges intelligencia és gépi tanulás program a Python, a gépi tanulás, a természetes nyelvfeldolgozás, a beszédfelismerés, a fejlett mélytanulás, a számítógépes látás és a megerősítő tanulás témaköreit öleli fel. Felkészíti Önt a világ egyik legizgalmasabb technológiai határterületére.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.