Hogyan működik egy neurális hálózat Algoritmusok, edzés, aktiválás és veszteség funkciók
Hogyan működik egy neurális hálózat
Alatt neurális hálózat az ember megérti az emberi agy munkájának részleges reprodukciójára irányuló kísérletet annak érdekében, hogy mesterséges intelligenciával dolgozzon ki mechanizmusokat.
E célok eléréséhez képzési készlet (adatkészlet) szükséges. Ideális esetben ez a készlet valós értékű példákból áll: címkék, osztályok, mértékek.
Például, ha az edzőmondat elemzi a szöveg tonalitását, szükség van a megfelelő érzelmi értékeléssel rendelkező mondatok listájára. Hivatkozzunk a mondatokra x és címkéként Y. Egy függvény határozza meg ezek közötti kapcsolatot. A szöveges tonalitás elemzése esetén ezek olyan jellemzők, mint a szavak, kifejezések, mondatszerkezet, amelyek negatívvá vagy pozitívvá teszik a mondatot.
A múltban ezeket a szolgáltatásokat manuálisan generálták, ezt a folyamatot nevezzük szolgáltatásfejlesztésnek vagy funkciók létrehozásának. Az elmúlt években ezt a folyamatot az ideghálózat automatizálta.

A mesterséges ideghálózat három legfontosabb eleme a következő:
- Bejárati réteg;
- Rejtett (számítási) rétegek;
- Kimeneti réteg.
Az ideghálózatok képzése két szakaszban zajlik:
- Közvetlen terjedés
- Hátterjedés
Közvetlen terjedéssel megjósolják a választ. A backpagation sajátossága, hogy minimalizálja a hibát a tényleges és az előre jelzett válasz között.
Közvetlen terjedés
Adjuk meg véletlenszerűen a kezdeti súlyokat:
- w1
- w2
Szorozzuk meg a bemenő adatokat a súlyokkal a rejtett réteg létrehozásához:
- h1 = (x1 * w1) + (x2 * w1)
- h2 = (x1 * w2) + (x2 * w2)
- h3 = (x1 * w3) + (x2 * w3)
A nemlineáris függvény (aktiváló függvény) a rejtett rétegből származó kimeneti adatokat továbbítja a hálózati kimenet megszerzéséhez:
- y_ = fn (h1, h2, h3)
Hátterjedés
- Az összes hiba (total_error) az elvárt „y” (a képzési készletből) és a kapott „y_” (azaz a közvetlen terjedési fázisban számolódik) érték különbsége, amelyen keresztül a veszteségfüggvény (költségfüggvény) fut.
- A súly részleges deriváltját minden súlyhoz kiszámítják. Ezeket a részleges különbségeket úgy tekintjük, hogy tükrözik az egyes súlyok hozzájárulását a teljes hibához (total_loss).
- A következő szakaszban ezeket a különbségeket megszorozzuk egy számmal, amelyet tanulási sebességnek vagy tanulási sebességnek nevezünk (η).
Végül az eredmény levonásra kerül a megfelelő súlyozásokból.
Az eredmény a következő frissített súlyok:
- w1 = w1 - (η * ∂ (tévedés)/∂ (w1))
- w2 = w2 - (η * ∂ (tévedés)/∂ (w2))
- w3 = w3 - (η * ∂ (tévedés)/∂ (w3))
Itt ellentmondást kell megjegyezni: bár a súlyokat véletlenszerűen feltételezzük és inicializáljuk, pontos válaszokat adnak. Ez nem tűnik teljesen ésszerűnek, de mégis jól működik.
A hátterjedés összehasonlítható a Taylor-sorozattal: a végeredmények ugyanazok. A különbség azonban az, hogy nem a végtelen sort, hanem az első tagját optimalizálják.
Az elmozdulások olyan súlyok, amelyeket hozzáadnak a rejtett rétegekhez. Ezeket véletlenszerűen inicializálják és frissítik is, mint a rejtett réteget. De miben különböznek egymástól? A rejtett réteg szerepe az alapfunkció alakjának meghatározása az adatokban. Az elmozdulás szerepe viszont a fő funkció ellensúlyozása, hogy az részben megfeleljen a kimeneti függvénynek.
Részleges származékok
Kiszámítható részleges derivatívák. Ezért az egyes súlyokhoz való hozzájárulás a hibához ismert. A levezetések szükségessége nyilvánvaló. Példaként megemlíthetünk egy neurális hálózatot, amely megpróbálja meghatározni a pilóta nélküli jármű optimális sebességét. Ha az autó megállapítja, hogy a kívánt sebességnél gyorsabban vagy lassabban halad, akkor az ideghálózat az autó felgyorsításával vagy lassításával állítja be a sebességet. Mit gyorsítanak/lassítanak? A származtatott sebességek.
Néhány példát tekintünk a részleges származékok szükségességének elemzésére.
Például a gyerekeknek azt a feladatot kapják, hogy a központ felé célozva nyilat dobjanak egy célpontra. Itt vannak az eredmények:
Ha egy általános hibát találnak és egyszerűen kivonnak minden súlyból, akkor az egyes gyermekek által elkövetett hibákat általánosítják. Tegyük fel, hogy egy gyermek túl alacsonyan dobott, annak ellenére, hogy minden gyermeket arra kértek, hogy tegyen erőfeszítéseket a cél elérésére. Ez a következő eredményekhez vezet:
Néhány gyermek hibája csökkenthető, de az általános hiba továbbra is növekszik.
Részleges származékok megtalálása esetén azonosítani lehet azokat a hibákat, amelyek részletesen megfelelnek az egyes súlyoknak. Ha a súlyozásokat véletlenszerűen korrigálják, a következő eredményt kapjuk:
Hiperparaméterek
A neurális hálózatot a funkciók kiválasztásának automatizálására használják. Egyes paramétereket azonban manuálisan állítanak be.
Tanulási arány
A tanulási sebesség az egyik nagyon fontos hiperparaméter. Ha a tanulási sebesség lassú, a neurális hálózat folyamatos edzés után sem ér el optimális eredményt. Az eredmények a következőképpen mutathatók be:
Másrészt a neurális hálózat nagyon gyorsan megadja a válaszokat, ha gyors a tanulás. Itt vannak az eredmények:
Aktiválási funkció
Az aktiválási funkció az egyik leghatékonyabb eszköz, mivel befolyásolja a neurális hálózatokhoz rendelt teljesítményt. Részben meghatározza, hogy mely idegsejtek aktiválódnak; H. milyen információkat adnak át a későbbi műszakoknak.
Aktiválási funkciók nélkül a mély hálózatok elveszítik tanulási képességük nagy részét. Mivel e funkciók nem-linearitása felelős a szabadság fokának növeléséért, a nagy dimenzió problémái alacsonyabb dimenziókra általánosíthatók. Az alábbiakban bemutatunk példákat a gyakori aktiválási funkciókra:
Veszteség funkció
A veszteségfüggvény az ideghálózat közepén található. A valós és a kapott válaszok közötti hiba kiszámítására szolgál. Globális célunk a hibák minimalizálása. Ily módon a veszteségfunkció hatékonyan hozza az ideghálózatot e cél felé.
A veszteségfüggvény méri, hogy „mennyire jó” az ideghálózat e képzési adatokhoz és a várható válaszokhoz viszonyítva. Ez függhet olyan változóktól is, mint a súlyok és az eltolások.
A veszteségfüggvény egydimenziós és nem vektor, mivel azt méri, hogy az ideghálózat mennyire működik jól.
Néhány ismert veszteségfüggvény:
- Másodfokú (átlagos négyzeteltérés)
- Kereszt entrópia
- Exponenciális adatok (AdaBoost/Adaptive Boosting)
- Kullback-Leibler divergencia vagy információszerzés.
A négyzet alapértelmezett eltérése a legegyszerűbb és leggyakrabban használt veszteségfüggvény. Ez a következő:
Két feltételnek kell megfelelnie az ideghálózat veszteségfüggvényének:
- A veszteségfüggvény átlagként jelenik meg.
- A veszteségfüggvény nem függ a neurális hálózat aktiválási értékeitől. Kivételt képeznek a kimeneten kimenő értékek.
Mély idegi hálózatok
A mély tanulás a gépi tanulási algoritmusok egy osztályára utal, amelyeket az adatok mélyebb (elvontabb) megértése céljából képeznek ki. Az alábbi séma a népszerű, mélyen tanuló ideghálózati algoritmusokat ábrázolja:
Néhány részlet a mély tanulásról:
- Kaszkádot, azaz egy csővezetéket, mint szekvenciálisan továbbított áramlást használnak a jellemzők kinyerésére és átalakítására számos feldolgozási rétegből (nem lineáris).
- A mély tanulás felügyelt tanulás nélkül az adatok tanulási jellemzőin (információ ábrázolásán) alapul. Az utolsó rétegekben lévő magasabb szintű funkciókat az alsó szint funkcióiból kapjuk, amelyek a kezdő rétegekben vannak.
- A mély tanulás rétegzett reprezentációkat tár fel, amelyek megfelelnek az absztrakció különböző szintjeinek. Ezek a szintek megjelenítési hierarchiát alkotnak.
példa
Az alábbiakban egyrétegű neurális hálózat ábrázolása látható:
Meg kell jegyezni, hogy ebben az esetben csak az első réteget (zöld idegsejteket) képzik ki, és egyszerűen továbbítják a kijárathoz.
Míg a kétrétegű neurális hálózat esetében, függetlenül a zöld rejtett réteg edzésétől, átkerül a kék rejtett rétegbe, ahol a képzés folytatódik:
Ennek megfelelően a következő következtetést vonhatjuk le: minél nagyobb a rejtett rétegek száma, annál nagyobbak a hálózat képzési lehetőségei.
Nem tévesztendő össze egy széles ideghálózattal, ahol egy rétegben található nagyszámú neuron nem okozza az adatok mély megértését, hanem több jellemző megismeréséhez vezet.
Amikor megtanulja a német nyelvtant, különféle kifejezéseket kell ismernie. Ebben az esetben ésszerűbb egyrétegű széles neurális hálózatot használni, mint egy sokkal kisebb mély neurális hálózatot.
A Fourier Transform elsajátításakor az ideghálózatnak mélynek kell lennie, mivel nincs annyi kifejezés, amelyet tudni kellene, de mindegyik meglehetősen bonyolult és mély megértést igényel.
A legfontosabb az egyensúly
Nagyon érdemes mély és széles ideghálózatokat használni bármilyen feladathoz. Íme néhány ok, amiért ez nem mindig jó ötlet:
- Mindkét hálózat esetében sokkal nagyobb adatmennyiség szükséges a képzéshez a kívánt minimális pontosság elérése érdekében.
- Az exponenciális összetettség mindkét hálózatra jellemző.
- A túl mély neurális hálózat megkísérli megsemmisíteni az alapvető elképzeléseket. Ennek során rossz előrejelzéseket fog tenni, és olyan álfüggőségeket talál, amelyek egyáltalán nem léteznek.
- A túl széles neurális hálózat megpróbál több funkciót találni, mint amennyi van. Csakúgy, mint egy mély hálózat, hamis előrejelzéseket fog tenni az adatokkal kapcsolatban.
A dimenziók átka
A dimenzió átka az a kifejezés, amelyet különféle jelenségekre utalunk, amikor elemezzük és rendszerezzük az adatokat többdimenziós terekben (gyakran több száz vagy ezer dimenzióval). Kis dimenziós helyzetekben nem fordul elő.
A német nyelv nyelvtana számos olyan tulajdonsággal rendelkezik, amelyek befolyásolják. A gépi tanulásban jellemzőkként vannak ábrázolva véges hosszúságú tömb/mátrix formájában, és jóval rövidebbek, mint a meglévő jellemzők száma. Ennek érdekében a hálózatok általánosítják ezeket a jellemzőket. Ez két problémához vezet:
- A téves feltételezések elmozdulásokat okoznak. A nagy eltolódás ahhoz vezethet, hogy az algoritmus nem veszi észre a jellemzők és a célváltozók közötti lényeges kapcsolatot. Ezt a jelenséget alulképzésnek nevezzük.
- Az edzésadatok nagy számában jelentkező kis eltérések növelik a szórást, mivel a jellemzőket nem kellően megtanulják. A nagy szórás túledzést okoz, a hibákat megbízható információnak tekintik.
Kompromisszum
A korai képzési szakaszban az elmozdulás nagy, mivel a hálózat kimenete messze van a szükséges eredménytől. A szórás pedig túl kicsi az adatok jelenleg alacsony hatása miatt.
A képzés végén az elmozdulás kicsi, mert a fő funkció a hálózat adataiban található. A továbbképzéssel a hálózat feltárja az erre az adatkészletre jellemző zajt is. Ez nagy szóródást okoz az eredményeknél, ha különböző többségeket tesztelnek, mivel a zaj adathalmazról adathalmazra változik.
Valójában a nagy eltolású algoritmusok általában egyszerű modelleken alapulnak, amelyek nem hajlamosak a túledzésre. Alacsony képzettségűek lehetnek, és nem tudják meghatározni a jellemzők fontos törvényszerűségeit vagy tulajdonságait. A kis elmozdulású, nagy szórású modellek szerkezetük szempontjából általában összetettebbek, ami lehetővé teszi az edzéskészlet pontosabb ábrázolását. Mivel sok zajt tudnak feltérképezni az edzéskészletből, jóslataik kevésbé pontosak a hozzáadott összetettség ellenére.
Ebből arra lehet következtetni, hogy egy kis eltolás és egy kis szórás egyidejű megléte általában lehetetlen.
Manapság számos olyan eszköz létezik, amelyek megkönnyítik a bonyolult gépi tanulási modellek létrehozását, az első helyen a túlképzés áll. Amikor a hálózat nem kap elegendő információt, a váltás bekövetkezik. Minél több példát képeznek ki, annál több függőségi és változó variáns merül fel ezekben az összefüggésekben.