Konvolúciós neurális hálózatok
Megjegyzés:
További részletekért tekintse meg a Szöveg és képek lapot!
A képfeldolgozási feladatokban hasznos lehet szűrőkkel effektusokat alkalmazni a képekre, például képszerkesztő szoftverrel. A számítógépes látás célja azonban gyakran az, hogy jelentés- vagy legalább végrehajtható megállapításokat nyerjen ki a képekből; ehhez olyan gépi tanulási modelleket kell létrehozni, amelyek be vannak tanítva a nagy mennyiségű meglévő rendszerképen alapuló funkciók felismerésére.
Jótanács
Ez a lecke feltételezi, hogy ismeri a gépi tanulás alapelveit, és elméleti ismeretekkel rendelkezik a neurális hálózatokkal való mély tanulásról. Ha még nem ismerkedik a gépi tanulással, fontolja meg a Microsoft Learn Bevezetés a gépi tanulás alapfogalmai moduljának elvégzésébe.
A számítógépes látás egyik leggyakoribb gépi tanulási modellarchitektúrája a konvolúciós neurális hálózat (CNN), amely a mélytanulási architektúra egyik típusa. A CNN-k szűrőkkel nyerik ki a numerikus funkciótérképeket a képekből, majd egy mélytanulási modellbe etetik a funkcióértékeket a címke-előrejelzés létrehozásához. Egy képbesorolási forgatókönyvben például a címke a kép fő témáját jelöli (más szóval, mi ez a kép?). Betaníthat egy CNN-modellt különböző típusú gyümölcsökkel (például alma, banán és narancs) rendelkező képekkel, hogy az előrejelzett címke az adott képen szereplő gyümölcs típusa legyen.
A CNN betanítási folyamata során a rendszer először véletlenszerűen generált súlyértékekkel definiálja a szűrőmagokat. Ezután a betanítási folyamat előrehaladtával a modellek előrejelzései ismert címkeértékek alapján lesznek kiértékelve, a szűrősúlyok pedig a pontosság javítása érdekében módosulnak. Végül a betanított gyümölcs képbesorolási modellje azokat a szűrősúlyokat használja, amelyek a legjobban kinyerik azokat a funkciókat, amelyek segítenek azonosítani a különböző gyümölcsfajtákat.
Az alábbi ábra egy képosztályozási modell CNN-jének működését mutatja be:
- Az ismert címkékkel (például 0: apple, 1: banán vagy 2: narancs) rendelkező képeket a rendszer a hálózatba táplálja a modell betanítása érdekében.
- Egy vagy több szűrőréteget használnak a képek minden egyes jellemzőjének kinyeréséhez, amikor azokat a hálózaton keresztül táplálják be. A szűrőmagok véletlenszerűen hozzárendelt súlyokkal kezdődnek, és numerikus értékek tömbjét, úgynevezett funkciótérképeket hoznak létre. A további rétegek a jellemzőtérképek "összevonása" vagy "lekicsinyítése" révén kisebb tömböket hozhatnak létre, amelyek kiemelik a szűrők által kinyert főbb vizuális jellemzőket.
- A funkciótérképek funkcióértékek egydimenziós tömbjeként vannak összeolvadva.
- A funkcióértékeket a rendszer egy teljesen csatlakoztatott neurális hálózatba eteti.
- A neurális hálózat kimeneti rétege egy softmax vagy hasonló függvény használatával hoz létre olyan eredményt, amely minden lehetséges osztályhoz valószínűségértéket tartalmaz, például [0,2, 0,5, 0,3].
A betanítás során a kimeneti valószínűségeket összehasonlítjuk a tényleges osztálycímkével – például egy banán (1. osztály) képének [0,0, 1,0, 0,0] értékkel kell rendelkeznie. Az előrejelzett és a tényleges osztálypontszám közötti különbség a modell veszteségének kiszámítására szolgál, és a teljes mértékben csatlakoztatott neurális hálózat és a funkciókinyerési rétegek szűrőmagjai súlyának módosítása a veszteség csökkentése érdekében történik.
A betanítási folyamat több korszakon át ismétlődik , amíg meg nem tanuljuk az optimális súlykészletet. Ezután a súlyokat elmentik, és a modell segítségével megjósolhatók az új képek címkéi, amelyek címkéje ismeretlen.
Megjegyzés:
A CNN-architektúrák általában több konvolúciós szűrőréteget és további réteget tartalmaznak a funkciótérképek méretének csökkentése, a kinyert értékek korlátozása és a funkcióértékek más módon történő kezelése érdekében. Ezek a rétegek kimaradtak ebben az egyszerűsített példában, hogy a fő koncepcióra összpontosítsanak, vagyis a szűrőkkel numerikus funkciókat nyernek ki a képekből, amelyeket aztán egy neurális hálózat használ a képfeliratok előrejelzéséhez.