mik azok a konvolúciós neurális hálózatok (CNN)?
Ez a cikk az AI Demisztifikálásának része, egy sor olyan hozzászólás, amely (próbálja) disambiguate the zsargon and myths surrounding AI.
Az 1950-es évek óta, a mesterséges intelligencia korai napjaiban a számítógépes tudósok olyan számítógépeket próbáltak építeni, amelyek értelmezhetik a vizuális adatokat., Az ezt követő évtizedekben, a mező, amely számítógépes látás néven vált ismertté, inkrementális előrelépéseket látott. 2012-ben a számítógépes látás kvantumugrást tett, amikor a Torontói Egyetem kutatói egy olyan AI modellt fejlesztettek ki, amely nagy mértékben meghaladta a legjobb képfelismerő algoritmusokat.
az AI rendszer, amely AlexNet néven vált ismertté (fő alkotója, Alex Krizhevsky után nevezték el), elképesztő 85 százalékos pontossággal nyerte meg a 2012-es ImageNet számítógépes látásversenyt. A második helyezett szerény 74 százalékot szerzett a teszten.,
az AlexNet középpontjában egy konvolúciós neurális hálózat( CNN) volt, egy speciális mesterséges neurális hálózat, amely nagyjából utánozza az emberi látórendszert. Az elmúlt években a CNNs számos számítógépes látásalkalmazás szempontjából kulcsfontosságú lett. Itt van, amit tudnod kell a CNNs történetéről és működéséről.
A rövid története konvolúciós neurális hálózatok
konvolúciós neurális hálózatok, más néven ConvNets, először az 1980-as években Yann LeCun, posztdoktori számítástechnikai kutató., LeCun építette a munkát Kunihiko Fukushima, egy japán tudós, aki, néhány évvel korábban, feltalálta a neokognitron, egy nagyon alapvető képfelismerő neurális hálózat.
a CNNs korai változata, LeNet (LeCun után), felismerheti a kézzel írt számjegyeket. A CNNs piaci rést talált a banki és postai szolgáltatások, valamint a banki szolgáltatások területén, ahol a borítékokon és a csekkeken szereplő irányítószámokat olvasták.
de találékonyságuk ellenére a Konvnetek a számítógépes látás és a mesterséges intelligencia oldalán maradtak, mert komoly problémával szembesültek: nem tudtak méretezni., A CNNs-nek sok adatra és számítási erőforrásra volt szüksége ahhoz, hogy hatékonyan működjön a nagy képeknél. Abban az időben a technika csak alacsony felbontású képekre volt alkalmazható.
2012-ben AlexNet megmutatta, hogy talán eljött az ideje, hogy újra megvizsgálja a mély tanulást, az AI ágát, amely többrétegű neurális hálózatokat használ. A rendelkezésre álló nagy adathalmazok, nevezetesen a ImageNet adathalmaz millió címkézett képek, és hatalmas számítási erőforrások lehetővé tették a kutatók számára, hogy hozzon létre komplex CNN, amely képes elvégezni a számítógépes látás feladatokat, amelyek korábban lehetetlen volt.
hogyan működnek a CNNs?,
a konvolúciós neurális hálózatok mesterséges neuronok több rétegéből állnak. A mesterséges neuronok, amelyek biológiai társaik durva utánzata, olyan matematikai függvények, amelyek kiszámítják a többszörös bemenetek és kimenetek súlyozott összegét aktiválási értékként.
az egyes neuronok viselkedését súlyai határozzák meg., Amikor a pixel értékekkel táplálják, a CNN mesterséges neuronjai különféle vizuális funkciókat választanak ki.
amikor egy képet egy Konvnetbe ír be, mindegyik réteg több aktiválási térképet generál. Az aktiválási térképek kiemelik a kép releváns jellemzőit. Mindegyik Neuron beviteli pontként egy-egy képpont-foltot vesz fel, a színértékeket súlyával megsokszorozza, összegzi, majd az aktiválási funkción keresztül futtatja.
a CNN első (vagy alsó) rétege általában olyan alapvető jellemzőket észlel, mint a vízszintes, függőleges vagy átlós élek., Az első réteg kimenetét a következő réteg bemeneteként tápláljuk be, amely összetettebb jellemzőket, például sarkokat és élkombinációkat von ki. Ahogy mélyebbre lépsz a konvolúciós neurális hálózatba, a rétegek elkezdik észlelni a magasabb szintű funkciókat, például tárgyakat, arcokat stb.
a pixelértékek súlyokkal való szorzásának és összegzésének működését” konvolúciónak ” (innen a konvolúciós neurális hálózat neve) nevezzük. A CNN általában több konvolúciós rétegből áll, de más összetevőket is tartalmaz. A CNN utolsó rétege egy osztályozási réteg, amely bemenetként veszi a végső konvolúciós réteg kimenetét (ne feledje, hogy a magasabb konvolúciós rétegek összetett objektumokat észlelnek).,
a végső konvolúciós réteg aktiválási térképe alapján az osztályozási réteg olyan megbízhatósági pontszámokat ad ki (0 és 1 közötti értékek), amelyek meghatározzák, hogy a kép mennyire valószínű, hogy egy “osztályhoz tartozik.”Például, ha van egy ConvNet, amely érzékeli a macskák, kutyák, lovak, a kimenet a végső réteg az a lehetőség, hogy a bemeneti kép tartalmazza bármely ilyen állatok.,
a konvolúciós neurális hálózat képzése
a cnns fejlesztésének egyik nagy kihívása az egyes neuronok súlyának beállítása, hogy a képekből kivonják a megfelelő funkciókat. A súlyok beállításának folyamatát” neurális hálózatnak ” nevezik.
az elején a CNN véletlenszerű súlyokkal kezdődik., A képzés során a fejlesztők a neurális hálózatnak nagy adatkészletet biztosítanak a megfelelő osztályokkal (macska, kutya, ló stb.). A ConvNet feldolgozza az egyes képeket a véletlen értékekkel, majd összehasonlítja a kimenetet a kép megfelelő címkéjével. Ha a hálózat kimenete nem egyezik meg a címkével—ami valószínűleg a képzési folyamat elején történik -, akkor kis mértékben módosítja neuronjainak súlyát, hogy legközelebb ugyanazt a képet látja, kimenete egy kicsit közelebb lesz a helyes válaszhoz.,
a korrekciókat egy backpropagation (vagy backprop) nevű technikával végezzük. A backpropagation lényegében optimalizálja a hangolási folyamatot, és megkönnyíti a hálózat számára, hogy véletlenszerű korrekciók helyett eldöntse, mely egységeket állítsa be.
a teljes képzési adatkészlet minden futását “korszaknak” nevezik.”A Konvnet a képzés során több korszakon megy keresztül, kis mennyiségben beállítva súlyait. Minden korszak után a neurális hálózat egy kicsit jobbá válik a képzési képek osztályozásában., Ahogy a CNN javul, a súlyok kiigazítása egyre kisebb lesz. Egy bizonyos ponton a hálózat “konvergál”, ami azt jelenti, hogy lényegében olyan jó lesz, amennyit csak tud.
a CNN kiképzése után a fejlesztők tesztadatkészletet használnak annak pontosságának ellenőrzésére. A tesztadatkészlet olyan címkézett képek halmaza, amelyek nem részei a képzési folyamatnak. Minden kép a Konvneten keresztül fut, a kimenetet pedig a kép tényleges címkéjéhez hasonlítjuk. Lényegében a tesztadatkészlet értékeli, hogy a neurális hálózat milyen jó lett a korábban nem látott képek osztályozásában.,
Ha egy CNN pontszámok jó a képzési adatok, de pontszámok rossz a vizsgálati adatok, azt mondják, hogy már “túlméretezett.”Ez általában akkor fordul elő, ha nincs elég változatosság a képzési adatokban, vagy ha a ConvNet túl sok korszakon megy keresztül a képzési adatkészleten.
a konvolúciós neurális hálózatok sikere nagyrészt az elmúlt évtizedben kifejlesztett hatalmas képadatkészletek rendelkezésre állásának köszönhető. ImageNet, a verseny elején említett ezt a cikket, megkapta a címet egy névrokon adatbázisba több mint 14 millió címkézett képek., Vannak más speciálisabb adatkészletek is, mint például a MNIST, amely 70 000 kézzel írt számjegyből álló adatbázist tartalmaz.
nem kell azonban minden konvolúciós neurális hálózatot kép millióira képezni. Sok esetben használhat egy előre megtervezett modellt, például az AlexNet-et vagy a Microsoft ResNet-jét, a finetune-t pedig egy másik speciálisabb alkalmazáshoz. Ezt a folyamatot átviteli tanulásnak nevezik, amelyben egy képzett neurális hálózatot átképeznek egy kisebb új példákkal.,
a konvolúciós neurális hálózatok korlátai
erejük és összetettségük ellenére a konvolúciós neurális hálózatok lényegében mintafelismerő gépek. Hatalmas számítási erőforrásokat tudnak felhasználni arra, hogy apró és észrevétlen vizuális mintákat kerítsenek ki, amelyek észrevétlenül maradhatnak az emberi szem számára. De amikor a képek tartalmának megértéséről van szó, rosszul teljesítenek.
vegye figyelembe a következő képet. Egy jól képzett Konvnet azt fogja mondani, hogy ez egy katona, egy gyermek és az amerikai zászló képe., De egy személy hosszú leírást adhat a jelenetről, beszélhet katonai szolgálatról, idegen országban tett túrákról, az otthoni vágyakozásról, a családdal való Újraegyesítés öröméről stb. A mesterséges neurális hálózatoknak fogalmuk sincs ezekről a fogalmakról.
ezek a korlátok nyilvánvalóbbá válnak a konvolúciós neurális hálózatok gyakorlati alkalmazásaiban. Például a CNNs-eket széles körben használják a tartalom mérséklésére a közösségi média hálózatokon., De annak ellenére, hogy rengeteg kép és videó van rajta, még mindig küzdenek a nem megfelelő tartalmak észleléséért és blokkolásáért. Egy esetben a Facebook tartalom-moderálási AI betiltotta a 30 000 éves szobor fotóját meztelenségként.
továbbá, a neurális hálózatok elkezdenek törni, amint egy kicsit elmozdulnak a kontextusukból. Számos tanulmány kimutatta, hogy az ImageNet-en és más népszerű adatkészleteken képzett CNN-k nem észlelik a tárgyakat, amikor különböző megvilágítási körülmények között és új szögekből látják őket.,
az MIT-IBM Watson AI Lab kutatói által végzett közelmúltbeli tanulmány kiemeli ezeket a hiányosságokat. Bemutatja az ObjectNet-et is, egy olyan adatkészletet, amely jobban képviseli az objektumok valós életben való látásának különböző árnyalatait. A CNN-k nem fejlesztik ki azokat a mentális modelleket, amelyekkel az emberek különböző tárgyakról rendelkeznek, és képesek elképzelni ezeket a tárgyakat korábban nem látott kontextusokban.
a konvolúciós neurális hálózatok másik problémája az, hogy képtelenek megérteni a különböző objektumok közötti kapcsolatokat. Tekintsük a következő képet, amelyet “Bongard-problémának” neveznek, feltalálója, Mihail Moiseevich Bongard orosz számítógépes tudós után. A Bongard-problémák két képkészletet mutatnak be (bal oldalon hat, jobb oldalon hat), és meg kell magyarázni a két készlet közötti legfontosabb különbséget., Például az alábbi példában a bal oldali készletben lévő képek egy objektumot tartalmaznak, a jobb oldali készletben lévő képek pedig két objektumot tartalmaznak.
az emberek számára könnyű ilyen következtetéseket levonni ilyen kis mennyiségű mintákból. Ha megmutatom neked ezt a két készletet, majd új képet adok neked, akkor gyorsan eldöntheti, hogy be kell-e lépnie a bal vagy a jobb készletbe.
de még mindig nincs olyan konvolúciós neurális hálózat, amely olyan kevés képzési példával képes megoldani a Bongard-problémákat. Egy 2016-ban végzett vizsgálatban az AI kutatói 20 000 Bongard-mintán képeztek ki egy CNN-t, majd további 10 000-en tesztelték. A CNN teljesítménye sokkal alacsonyabb volt, mint az átlagos embereké.
a Konvnetek sajátosságai sebezhetővé teszik őket az ellenséges támadásokkal, a bemeneti adatok perturbációival, amelyek észrevétlenül maradnak az emberi szem számára, de befolyásolják a neurális hálózatok viselkedését., Az ellenséges támadások komoly aggodalomra adnak okot, mivel a mély tanulás és különösen a CNNs számos kritikus alkalmazás szerves részévé vált, például az önvezető autók.
Ez azt jelenti, hogy a CNNs haszontalan?, A konvolúciós neurális hálózatok korlátai ellenére azonban nem tagadható, hogy forradalmat okoztak a mesterséges intelligenciában. Manapság a CNNs-t számos számítógépes látásalkalmazásban használják, mint például az arcfelismerés, a képkeresés és a Szerkesztés, a kibővített valóság stb. Egyes területeken, mint például az Orvosi képfeldolgozás, a jól képzett Konvnetek akár felülmúlhatják az emberi szakértőket a releváns minták felderítésében.,
ahogy a konvolúciós neurális hálózatok fejlődése mutatja, eredményeink figyelemre méltóak és hasznosak, de még mindig nagyon messze vagyunk attól, hogy az emberi intelligencia kulcsfontosságú összetevőit lemásoljuk.