AI műhely: Hogyan lehet megtanítani a gépeket a képek felismerésére?

Autóinknak néhány pillanatot várniuk kell a parkban, amíg átnézjük, hogy egy mesterséges intelligencia képes-e felismerni a képeket. Autónk erre a képességre is támaszkodik. Azt is meglátjuk, hogyan épül fel a neurális hálózatok.

Fotó: Frida Aguilar Estrada

Autónknak kamerára van szüksége a továbblépéshez. Az egyik lehetőség egy Lidar (fényérzékelő és hatótávolságú) radar, amely lézersugarakkal térképezi a környéket. De ha Elon Musk úgy gondolja, hogy elegendő egy optikai megoldás a Tesla számára, akkor elegendő számunkra. Ebben a bejegyzésben megpróbálom leírni az AI képfelismerés technológiai alapjait.

A mesterséges tanulásnak három fő kategóriája van: megerősített tanulás, felügyelt tanulás és felügyelet nélküli tanulás. A felügyelt tanulás nagyon gyakori módja az AI tanításának, és ma erre összpontosítunk. Az ötlet az, hogy olyan gépadatokat adjon meg, amelyeket már osztályoztak. Esetünkben sok képet jelenítünk meg egy számítógéppel, és azt mondjuk, hogy mit ábrázolnak. Célul tűzhetjük ki, hogy meg tudjuk különböztetni a lasagnát, a falafelt és a fahéjas zsemlét. Tehát a három, sok kép címkézett képeit mutatjuk be. Amikor az AI kész, új képet mutathatunk be, és kiszámítja annak valószínűségét, hogy ez a három lehetőség egyikéhez tartozik.

Képzelje el, hogy van egy fagylalt teherautója egy kikötőben, és szeretnénk megjósolni annak eladásait, hogy elegendő készlettel rendelkezzünk. Milyen tényező lehet a fagylalt-értékesítésben? A nap hőmérséklete jó lehet. Vizsgáljuk meg a napi hőmérsékletet és a fagylaltértékesítést. Összerakhatjuk őket egy diagramba és lineáris regresszióval elemzhetjük az adatokat. Ez megadja nekünk a legmegfelelőbb sort, amelyet felhasználhatunk előrejelzések készítéséhez. A vonal helyzetét úgy határozzuk meg, hogy optimalizáljuk a pontok és a vonal közötti távolságot, és a lehető legkisebb legyen. A legmegfelelőbb vonallal hozzávetőleges előrejelzéseket tehetünk.

De a napi átlaghőmérséklet valószínűleg nem az egyetlen tényező az értékesítésben. Ha hozzáadnánk az eső mennyiségét a képhez, akkor háromdimenziós diagramot kapnánk. A legjobban illeszkedő vonal a legjobban illeszkedő síkvá válik. És ha hozzáadjuk a hét napját az elemzéshez, akkor olyan modellt állítunk elő, amelyet nem tudunk megjeleníteni. Az olyan összetett helyzetekben, mint ezek a neurális hálózatok, nagyon jól működnek.

Mivel a kezdetben a mesterséges technológiai kutatás megpróbálta utánozni az emberi intelligenciát, néhány kifejezés a biológiából ismert. Van neuronok, szinapszisok és ingerünk. De nagyon sok az adattudományi terminológia, például veszteségfüggvény és túlzott felszereltség. Manapság az emberi agy újjáélesztése már nem a cél, hanem a terminológia elakadt.

Az ideghálózatok a szinapszis segítségével összekapcsolt neuronokból állnak. A csatlakozások eltérő súlyúak. A neuronok aktiválási funkciókat kapnak, amelyek meghatározzák, hogy mikor indul a neuron, és továbbítja az információkat. (Itt olvashat bővebben a különféle típusú aktiválási funkciókról és mikor kell használni őket)

Olyan válogatót akarunk készíteni, amely képes felismerni a betűk képeit. A következő mintákkal rendelkezünk, minden négyzet egy képet ábrázol. Úgy döntöttünk, hogy egy lépésfunkciót használunk aktiválási funkcióként, amely csak 0 vagy 1 eredményt szolgáltat nekünk. Ha a pixel fehér, akkor a 0. eredményt adja ki. Ha a pixelnek színei vannak, akkor az 1. kimenetet ad. a különbségek bemutatására különböző színeket használtam. Tehát, ha az eltolás pixel nem fehér, akkor a neuron aktiválódik. És annak érdekében, hogy az információ rendben és összehasonlítható legyen, kinyomtatjuk a kimenetet balról jobbra, fentről lefelé. Az neuronok outputja az S ábrán 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1 és az E szám esetében 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1.

Most ki kell találnunk, hogyan lehet súlyokat alkalmazni az idegi kimenetre az ábrák megkülönböztetése érdekében. Végtelen mennyiségű megoldás létezik ennek elérésére. Világos, hogy a pixelekre kell összpontosítanunk, ahol a kimenet eltérő. Ez azt jelenti, hogy a 0-os súlyt használhatjuk az összes olyan képpontra, amelyet mindkét ábra aktivált (lila). Az összes fehér pixel nem aktiválja a neuronokat, így nem kell gondolkodnunk a súlyukra.

Megállapíthatjuk például, hogy ha az eredmény negatív, az ábra E, a pozitív eredmény pedig az S ábrát jelzi. Ennek elérése érdekében adjuk meg az neuronnak, amely csak az E számmal aktiválja, -1 tömegét, és az idegsejt, amely csak az ábrával tüzel fel. S az 1. súly. Ha a többi kimenetet megszorozzuk 0-val, az 1 vagy -1 eredményt kapjuk.

Tehát az összes S ábra kimenetének összege 0 x 1+ 0 x 1+ 0 x1 +0 x 1+ 0 x 1+ 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + 0 + 0 + 0 + 1 x 1 + 0 x 1 + 0 x 1 + 0 x 1+ 0 x 1 = 1. És az összes E számú kimenet összege 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + (-1 x 1) + 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 = -1.

Ezt meglehetősen könnyű megoldani. De ha az F betűt hozzáadjuk a keverékhez, a dolgok egy kicsit bonyolultabbá válnak.

Az E és F betűk megkülönböztetése szóváltás nélkül érhető el, például az alábbi súlyokkal:

Ezek a súlyok vagy 11 x 0,1 = 1,1, vagy 3 x (-1) = -3 eredményt eredményeznének, az F ábra pozitív, az E ábra pedig negatív eredményekkel. De ha az S ábrát belefoglaljuk, akkor a különbségek kevésbé lesznek kifejezettek és nehezebb megkülönböztetni a súlyokkal. És a betűk hozzáadása csak tovább rontja.

Bonyolultabb megoldásra lenne szükségünk, nem csupán a negatív és a pozitív eredmények mellett. Valószínűleg 0 és 2 közötti eredményeket rendelnénk az S ábrához, 2 és 4 az E ábrához stb. Ha neuronrétegeket adunk egy neurális hálózathoz, akkor sokkal bonyolultabb változtatásokat hajthat végre a súlyokban, és a pixel csak akkor fontos, ha egy másik pixel aktiválva volt. És így képesek az idegi hálózatok elvégezni azokat a bonyolult feladatokat, amelyekhez használni akarjuk őket. További rejtett rétegek hozzáadása elmélyíti az AI tanulási képességét.

Várj! Milyen rejtett rétegek? A neurális hálózatban lévő idegsejtek általában oly módon vannak felépítve, hogy minden ideg a többi rétegben lévő összes többi neuronhoz kapcsolódik. A neurális hálózat általában három részből áll: egy bemeneti rétegből, egy vagy több rejtett rétegből és a kimeneti rétegből.

A bemeneti réteg az információkból áll, amelyeket a hálózatnak adunk. Amint az információ átkerül a rejtett rétegeken, a súlyok beállítják a számokat, és amikor összesítik őket, megvan a kimeneti réteg és a becslés eredménye. A több rejtett réteg képes homályosabb adatok kezelésére, de nagyobb számítási teljesítményre van szükség. Azt is megnehezítik számunkra, hogy megértsük, mi történik a rejtett rétegekben.

Hogyan alakulnak a súlyok az idegsejtek között? Kezdetben azonosak vagy véletlenszám-generátorral generálva. De ha az ideghálózat minősített adatokat táplál, akkor ez befolyásolja a súlyokat. A neurális hálózat kitalálja, hogy mely pozíciók fontosabbak, mint mások, és melyek kapcsolódnak egymáshoz. Erre egy nagyon hasznos technológia a backpropagation algoritmus, amely az adatokat az eredményrétegről a rejtett rétegekre visszafelé továbbítja a hálózatba és így tovább. Az ideghálózathoz illeszkedik. Végül a beállított súlyok lehetővé teszik a hálózat számára, hogy jó előrejelzéseket készítsen.

Példa egy jéghálózatra a jégkrém-értékesítés előrejelzésére:

Az eladásokkal, napokkal és időjárással kapcsolatos adataink kiigazították a neuronok súlyát. Annak értékeléséhez, hogy a jóslatok mennyire pontosak, szükségünk van egy tesztelési adatkészletre a már használt képzési adatkészlet mellett. A tesztelési adatállomány olyan esetekből áll, amelyeket a neurális hálózat még nem látott. Eredményeik megmondják, mennyire pontosak az előrejelzéseink.

Az ideghálózat edzése, beállítása és kiértékelése során ügyelnie kell arra, hogy túlzottan illessze be az adatkészlethez. A képzési adatkészletnek látszólag vannak olyan vonatkozásai, amelyek valójában nem kapcsolódnak egymáshoz. A korreláció nem ugyanaz, mint az okozati összefüggés. Ezekre mulatságos példákat találhat, például hogy a mozzarella-fogyasztás és az építőmérnöki doktorátumok mennyisége statisztikailag együtt jár, de a valóságnak semmi köze sincs egymáshoz. Ezért javasoljuk, hogy a releváns információkat csak az adatkészletbe foglalja bele. És természetesen a képzési adatkészlet minősége és mennyisége fontos a pontosság szempontjából.

Rendezési példánkban tevékenységi funkciónk az volt, hogy megfigyeltük, hogy egy pixel fehér-e vagy sem. Általában a képek adatait átalakítják a számítógépektől eltérő módon igényelt számokra. Ha a kép fekete-fehér, akkor minden pixel fényerősségi értéke 0 (fekete) és 255 (fehér) között lesz. A színes kép pixeleinek három RGB-értéke 0 és 255 között lesz. A képernyőn minden szín a vörös, a zöld és a kék fény keverésével készül. (Ezt a tényt évek óta ismerem, és még mindig nagyon ellentmondásosnak érzem magam.)

Saját, nagyon egyszerű példánkban a számok mindig ugyanazon a helyzetben voltak, ami általában sem a helyzet. Még az útlevéllel ellátott képi adatbázisban semmi a szem. Az a technológia, amely a képfelismerést rendkívül gyorsabbá és hatékonyabbá teszi, egy konvolúciós réteg hozzáadása az idegi hálózathoz. Ez felismerhető képalkotásokat fog keresni, például határokat meghatározott irányokban, mintákat vagy különböző színű foltokat. A kutya orra lehet egy, az emberi ujj lehet egy, a fagylalttoboz alakja és textúrája egy lehet. Akkor nem számít, ha a jégkrém a kép bal vagy jobb oldalán helyezkedik el, ha egyenesen vagy átlósan tartja, és milyen méretű a kúp. El tudod képzelni, hogy ez mennyire könnyebbé teszi a képfelismerést. A konvolúciós réteggel rendelkező neurális hálókat konvolúciós neurális hálózatoknak nevezzük.

A megbízható eredmények eléréséhez óriási mennyiségű képre lesz szükségünk az edzéskészlethez. De ugyanúgy, mint sok más, a programozáshoz kapcsolódó dologban, nem kell a semmiből indulnunk, és újra kitalálnunk a kereket. Használhatjuk a meglévő könyvtárakat és adatbázisokat.

Az egyik fontos adatkészlet a szabványosított MNIST kézírás-adatbázis. Tízévente az Egyesült Államok az ország határain élő emberek cenzusát veszi. Ez úgy történik, hogy mindenki kitölti a papír kérdőívet. A populáció méretére és szerkezetére vonatkozó fontos információk gyűjtése mellett számos kézírásos mintát készít. Ezekből a mintákból szabványosított adatbázis lett létrehozva betűk és számok számára, és felhasználhatja az AI tanítására vagy tesztelésére. Sajnos csak az angol ábécé 26 betűjét tartalmazza. Melyik a probléma típusa, amellyel gyakran felmerül a kész források felhasználása. De ha érdekli az AI és az idegi hálózatok kipróbálása, akkor ez legalább egy kezdőpont, és nem korlátozódik azokra az adatokra, amelyeket összegyűjthet és előállíthat saját magának.

A gépi tanulás során nem szabad elfelejtenie, hogy a gépek nem tanulnak fogalmakat, hanem csak azt, hogy ezek a fogalmak hogyan nyilvánulnak meg. Egy számítógépről hiányzik az emberek tapasztalatainak gazdag hálózata. Emiatt a gépek számára továbbra is nehéz megkülönböztetni néhány képet, amely nap mint nap tiszta. És egy gép csak azokról a dolgokról tudhat tudomást, amelyekről megmondták őket. Ennek ellenére az önálló autónak nem kell tudnia, hogy alma vagy bagoly előtte. Az akadály akadály, amelyet el kell kerülni. Csak ez fontos az autó számára.

De egy AI-t kiképzhet szakértőként a kis, apró különbségek felismerésére. Mint például a rákos szűrések elemzése vagy a cukorbetegség diagnosztizálása a szemkörnyék érrendszerének változásai alapján, sokkal pontosabb és gyorsabb eredményekkel. A gépek soha nem fognak unatkozni vagy megunni az ismétlődő feladatoktól, amelyeket megterveztek.

Tehát, ha arra kértek, hogy mérje meg, melyik a végül jobb - emberi vagy mesterséges képfelismerés -, nem tudtam volna. Mindkettő nagyon-nagyon különböző.