Mély tanulási ideghálózatok egyszerű magyarázatban

A gépi tanulás és különösen a mély tanulás két olyan technológia, amely megváltoztatja a világot.

A hosszú, 30 évig tartó "AI-tél" után a számítási teljesítmény és az adatsorok végül utolérték a mesterséges intelligencia algoritmusait, amelyeket a huszadik század második felében javasoltak.

Ez azt jelenti, hogy a mély tanulási modelleket végre hatékony előrejelzésekhez használják, amelyek megoldják a valós problémákat.

Minden eddiginél fontosabb, hogy az adatkutatók és szoftvermérnökök magas szinten megértsék a mély tanulási modellek működését. Ez a cikk egyszerű angol nyelven magyarázza el az ideghálózatok mély tanulásának történetét és alapfogalmait.

A mély tanulás története

A mély tanulást Geoffrey Hinton fogalmazta meg az 1980-as években. Széles körben a mély tanulás területének alapító atyjaként tartják számon. Hinton 2013 márciusa óta dolgozik a Google-nál, amikor megvásárolták cégét, a DNNresearch Inc.-t.

Hinton fő hozzájárulása a mély tanulás területén a gépi tanulási technikák és az emberi agy összehasonlítása volt.

Pontosabban, létrehozta a "neurális hálózat" fogalmát, amely egy mély tanulási algoritmus, amely hasonló az agy neuronjainak szerveződéséhez. Hinton azért vette ezt a megközelítést, mert az emberi agy vitathatatlanul a ma ismert legerősebb számítási motor.

A Hinton által létrehozott struktúrát mesterséges ideghálózatnak (röviden mesterséges ideghálónak) nevezték. Itt van egy rövid leírás a működésükről:

  • A mesterséges neurális hálózatok csomópontrétegekből állnak
  • Minden csomópontot úgy terveztek, hogy hasonlóan viselkedjen, mint az agy neuronja
  • Az idegháló első rétegét rétegnek nevezzük input, amelyet hiddenrétegek követnek , majd végül a outputréteg
  • Az idegháló minden csomópontja elvégez valamiféle számítást, amelyet továbbad az idegháló mélyebb más csomópontjainak

Itt van egy egyszerűsített megjelenítés, amely bemutatja ennek működését:

Mesterséges idegháló vizualizációja

Az ideghálók hatalmas előrelépést jelentettek a mély tanulás terén.

Évtizedekbe telt azonban, amíg a gépi tanulás (és különösen a mélytanulás) előtérbe került.

A következő részben megvizsgáljuk, miért.

Miért nem működött azonnal a mély tanulás?

Ha a mély tanulást eredetileg évtizedekkel ezelőtt fogalmazták meg, akkor miért csak most kezd lendületet venni?

Ez azért van, mert minden érett mély tanulási modellhez két erőforrás bősége szükséges:

  • Adat
  • Számítási teljesítmény

A mély tanulás fogalmi születésének idején a kutatók nem rendelkeztek elegendő adattal vagy számítási erővel ahhoz, hogy értelmes mély tanulási modelleket építsenek és képezhessenek. Ez az idők folyamán megváltozott, ami ma a mély tanulás előtérbe kerüléséhez vezetett.

A neuronok megértése a mély tanulásban

A neuronok minden mély tanulási modell kritikus elemei.

Valójában azt állíthatnánk, hogy nem lehet teljesen megérteni a mély tanulást, ha mély ismeretekkel rendelkezik az idegsejtek működéséről.

Ez a szakasz bemutatja az idegsejtek fogalmát a mély tanulás során. Beszélünk a mélyen tanuló idegsejtek eredetéről, arról, hogyan inspirálta őket az emberi agy biológiája, és miért olyan fontosak napjainkban az idegsejtek a mély tanulási modellekben.

Mi a neuron a biológiában?

A mély tanulásban részt vevő neuronokat az emberi agy neuronjai inspirálták. Itt van egy ábra az agyi idegsejt anatómiájáról:

Az agy neuronjának anatómiája

Mint látható, az idegsejtek meglehetősen érdekes felépítésűek. A neuronok csoportjai együttműködnek az emberi agyban, hogy elvégezzék a mindennapi életünkben megkövetelt funkciókat.

Geoffrey Hinton ideghálózatokban végzett alapvető kutatása során feltette a kérdést: fel tudunk-e építeni olyan számítógépes algoritmusokat, amelyek hasonlóan viselkednek az agy neuronjaival. Az volt a remény, hogy az agy szerkezetének utánzásával megragadhatjuk annak képességeinek egy részét.

Ehhez a kutatók azt tanulmányozták, hogy az idegsejtek hogyan viselkedtek az agyban. Az egyik fontos megfigyelés az volt, hogy a neuron önmagában használhatatlan. Ehelyett neuronhálózatokra van szükség , hogy bármilyen értelmes funkcionalitást létrehozhasson.

Az idegsejtek ugyanis jelek fogadásával és küldésével működnek. Pontosabban, az idegsejtek dendritesjeleket fogadnak, és ezek mentén haladnak át a axon.

Az dendritesegyik idegsejt kapcsolódik axonegy másik idegsejthez. Ezeket az összefüggéseket nevezzük synapses, ez egy fogalom, amelyet általánosítottak a mély tanulás területére.

Mi az a neuron a mély tanulásban?

A mély tanulási modellekben található neuronok olyan csomópontok, amelyeken keresztül az adatok és a számítások átáramlanak.

A neuronok így működnek:

  • Egy vagy több bemeneti jelet kapnak. Ezek a bemeneti jelek származhatnak akár a nyers adatkészletből, akár az idegháló előző rétegében elhelyezkedő neuronokból.
  • Végeznek néhány számítást.
  • Néhány kimeneti jelet elküldenek az idegháló mélyebb neuronjaihoz a synapse.

Az alábbiakban bemutatjuk az idegsejt funkcionalitását egy mélyen tanuló ideghálóban:

Az idegsejt funkciója egy mély tanulási modellben

Menjünk végig lépésről lépésre ezen a diagramon.

Amint láthatja, a mély tanulási modellben található idegsejtek képesek olyan szinapszisokkal rendelkezni, amelyek az előző rétegben egynél több idegsejthez kapcsolódnak. Mindegyik szinapszishoz társul weight, ami befolyásolja az előző idegsejt jelentőségét a teljes idegi hálózatban.

A súlyok nagyon fontos téma a mély tanulás területén, mert a modell súlyának beállítása az elsődleges módszer a mély tanulási modellek képzésére. Ezt később látni fogja a gyakorlatban, amikor az első ideghálózatunkat a semmiből építjük.

Amint egy idegsejt megkapja a bemeneteit a modell előző rétegében található idegsejtektől, összeadja az egyes jeleket a megfelelő tömeggel megszorozva, és átadja őket egy aktivációs funkciónak, így:

Egy neuron aktivációs funkciója

Az aktiváló függvény kiszámítja az idegsejt kimeneti értékét. Ezt a kimeneti értéket egy másik szinapszison keresztül továbbítja az ideghálózat következő rétegének.

Ez a mély tanulási idegsejtek átfogó áttekintéseként szolgál. Ne aggódjon, ha sok volt a bevitele - a tutorial további részében sokkal többet megtudhatunk az idegsejtekről. Egyelőre elegendő, ha magas szinten megérted, hogyan épülnek fel egy mély tanulási modellben.

Mély tanulási aktiválási funkciók

Az aktiválási funkciók a mély tanulás során megértendő alapvető fogalom.

Ők teszik lehetővé, hogy az ideghálózat neuronjai szinapszisaikon keresztül kommunikáljanak egymással.

Ebben a szakaszban megtanulja megérteni az aktivációs funkciók fontosságát és funkcionalitását a mély tanulás során.

Mik az aktiválási funkciók a mély tanulásban?

Az utolsó szakaszban megtudtuk, hogy az idegsejtek bemeneti jeleket kapnak az ideghálózat előző rétegéből. Ezen jelek súlyozott összegét betáplálják az idegsejt aktivációs funkciójába, majd az aktiválási funkció kimenetét továbbítják a hálózat következő rétegére.

Az aktiválási funkcióknak négy fő típusa van, amelyeket ebben az oktatóanyagban tárgyalunk:

  • Küszöbfunkciók
  • Sigmoid funkciók
  • Egyenirányító funkciók vagy ReLU-k
  • Hiperbolikus tangens funkciók

Nézzük át ezeket az aktiválási funkciókat egyenként.

Küszöbfunkciók

A küszöbfüggvények eltérő kimeneti jelet számolnak attól függően, hogy a bemenete egy bizonyos küszöbérték felett vagy alatt van-e. Ne feledje, hogy az aktiválási függvény bemeneti értéke a neurális hálózat előző rétegéből származó bemeneti értékek súlyozott összege.

Matematikailag itt van a mély tanulási küszöb függvény formális meghatározása:

Küszöbfunkciók

Ahogy a fenti kép is sugallja, a küszöbfüggvényt néha a-nak is nevezik unit step function.

A küszöbfüggvények hasonlóak a számítógépes programozás logikai változóihoz. Számított értékük 1(hasonló True) vagy 0(azzal egyenértékű False).

A Sigmoid funkció

A szigmoid függvény jól ismert az adattudományi közösségben, mivel a logisztikai regresszióban használják, amely az egyik alapvető gépi tanulási technika, amelyet osztályozási problémák megoldására használnak.

A sigmoid függvény bármilyen értéket képes elfogadni, de mindig kiszámít egy 0és közötti értéket 1.

Itt van a sigmoid függvény matematikai meghatározása:

Sigmoid funkciók

A szigmoid függvény egyik előnye a küszöbfüggvény felett, hogy görbéje sima. Ez azt jelenti, hogy a deriváltakat a görbe bármely pontján kiszámítani lehet.

Az egyenirányító funkció

Az egyenirányító függvény nem ugyanazzal a sima tulajdonsággal rendelkezik, mint az utolsó szakasz sigmoid függvénye. Azonban még mindig nagyon népszerű a mély tanulás területén.

Az egyenirányító függvény meghatározása a következőképpen történik:

  • Ha a bemeneti érték kisebb 0, akkor a függvény kimeneti0
  • Ha nem, akkor a függvény kiadja a bemeneti értékét

Ez a matematikailag elmagyarázott fogalom:

Egyenirányító funkciók

Az egyenirányító függvényeket gyakran Rectified Linear Unitaktivációs függvényeknek vagy ReLUsröviden nevezzük .

A hiperbolikus tangens funkció

A hiperbolikus tangens függvény az egyetlen aktivációs függvény, amely ebben az oktatóanyagban szerepel, és amely trigonometrikus azonosságon alapul.

Matematikai meghatározása az alábbiakban található:

Hiperbolikus tangensfüggvény

A hiperbolikus tangens függvény megjelenésében hasonló a sigmoid függvényhez, de kimeneti értékei mind lefelé tolódnak.

Hogyan működnek valójában a neurális hálózatok?

Eddig ebben az oktatóanyagban az ideghálózatok kiépítésének két építőeleméről tárgyaltunk:

  • Neuronok
  • Aktiválási funkciók

Valószínűleg azonban még mindig kissé zavarodott abban, hogy a neurális hálózatok hogyan működnek.

Ez az oktatóanyag összeállítja azokat a darabokat, amelyeket már megvitattunk, hogy megértsük, hogyan működnek a neurális hálózatok a gyakorlatban.

A példa, amelyet ebben az oktatóanyagban fogunk használni

Ez az oktató lépésről lépésre egy valós példán fog dolgozni, hogy megérthesse, hogy az ideghálózatok hogyan jósolnak.

Pontosabban, ingatlanértékeléssel fogunk foglalkozni.

Valószínűleg már tudja, hogy van egy csomó tényező befolyásolja lakásárak, beleértve a gazdaságot, a kamatlábak, a hálószobák száma / fürdőszoba, és a helyét.

Ennek az adatkészletnek a nagy dimenzionalitása érdekes jelölté teszi ideghálózat kiépítésére és továbbképzésére.

Ennek a szakasznak az egyik figyelmeztetése, hogy az ideghálózat, amelyet a jóslatokhoz fogunk használni, már ki lett képezve . Az oktatóanyag következő szakaszában feltárjuk az új ideghálózat képzésének folyamatát.

Az adatkészletünk paraméterei

Kezdjük azzal, hogy megvitatjuk az adatkészletünk paramétereit. Pontosabban képzeljük el, hogy az adatkészlet a következő paramétereket tartalmazza:

  • Alapterületét
  • Hálószobák
  • Távolság a városközponttól
  • Házkor

Ez a négy paraméter alkotja a mesterséges ideghálózat bemeneti rétegét. Ne feledje, hogy a valóságban valószínűleg sokkal több paraméter létezik, amelyek segítségével neurális hálózatot képezhet a lakásárak előrejelzésére. Ezt a számot négyre korlátoztuk, hogy a példa ésszerű legyen.

A neurális hálózat legalapvetőbb formája

A legalapvetőbb formájában a neurális hálózatnak csak két rétege van - az input és a output réteg. A kimeneti réteg az idegháló azon eleme, amely valóban jósol.

Például, ha egy egyszerű súlyozott összegű (más néven lineáris regressziós) modell segítségével jóslatokat szeretett volna megtenni, akkor a neurális hálózata a következő formát ölti:

Alap idegi hálózat

Noha ez a diagram kissé elvont, a lényeg az, hogy a legtöbb neurális háló ily módon vizualizálható:

  • Egy bemeneti réteg
  • Esetleg néhány rejtett réteg
  • Kimeneti réteg

Az idegsejtek rejtett rétege okozza az ideghálózatokat olyan erősen a jóslatok kiszámításához.

Minden rejtett rétegben lévő idegsejt esetében számításokat végez az ideghálózat utolsó rétegében található idegsejtek egy részének (vagy mindegyikének) felhasználásával. Ezeket az értékeket ezután felhasználjuk a neurális hálózat következő rétegében.

A neuronok célja az ideghálózat rejtett rétegében

Valószínűleg kíváncsi vagy - mit jelentenek pontosan a rejtett réteg egyes neuronjai ? Másképp mondták, hogyan értelmezzék a gépi tanulást végző szakemberek ezeket az értékeket?

Általánosságban elmondható, hogy az idegháló középső rétegeiben található neuronok aktiválódnak (vagyis aktivációs függvényük visszatér 1) egy olyan bemeneti értékhez, amely kielégít bizonyos résztulajdonságokat.

Lakásár-előrejelzési modellünkre példa lehet 5 hálószobás ház, kis távolságra a belvárostól.

A legtöbb esetben nem olyan egyszerű leírni azokat a jellemzőket, amelyek aktiválják a rejtett rétegben található idegsejteket.

Hogyan határozzák meg a neuronok a bemeneti értéküket

Korábban ebben az oktatóanyagban azt írtam, hogy „Minden rejtett rétegben lévő idegsejt esetében számításokat végez az ideghálózat utolsó rétegében található neuronok egy részének (vagy mindegyikének) felhasználásával”.

Ez egy fontos szempontot szemléltet: azt, hogy az idegháló minden egyes neuronjának nem kell az előző réteg minden idegsejtjét felhasználnia.

Azt a folyamatot, amelyen keresztül az idegsejtek meghatározzák, hogy mely bemeneti értékeket használják az idegháló előző rétegéből, a modell képzésének nevezzük . A tanfolyam következő szakaszában többet megtudhatunk az ideghálók képzéséről.

Egy idegháló előrejelzési folyamatának megjelenítése

A semleges hálózat megjelenítésekor általában vonalak húzódnak az előző rétegtől az aktuális rétegig, amikor az előző idegsejt súlya meghaladja 0az aktuális neuron súlyozott összegképletét.

A következő kép segít ennek vizualizálásában:

Befejezett ideghálózat

Mint látható, nem minden idegsejt-idegsejtpárnak van szinapszisa. x4a rejtett rétegben található öt idegsejtből csak három táplálkozik példaként. Ez egy fontos pontot szemléltet az ideghálózatok kiépítésekor - hogy az előző réteg nem minden idegsejtjét kell használni az ideghálózat következő rétegében.

Hogyan képzik a neurális hálózatokat

Eddig a következőket tanultad a neurális hálózatokról:

  • Hogy idegsejtekből állnak
  • Hogy minden idegsejt aktivációs függvényt használ az ideghálózat előző rétegének kimeneteinek súlyozott összegére
  • Széles, kód nélküli áttekintés arról, hogy az ideghálózatok hogyan jósolnak

Az ideghálózat mérnöki folyamatának egy nagyon fontos részét még nem ismertettük: az ideghálózatok kiképzését.

Most megtudhatja, hogyan képzik az ideghálózatokat. Megbeszéljük az adatsorokat, algoritmusokat és a modern neurális hálózatok képzésében használt általános elveket, amelyek megoldják a valós problémákat.

Kemény kódolás és lágy kódolás

A számítógépes alkalmazások fejlesztésének két fő módja van. Mielőtt ásni, hogy milyen neurális hálózatok képzik, ezért fontos, hogy megbizonyosodjon arról, hogy tisztában legyenek a különbség hard-codingés a soft-codingszámítógépes programok.

A keménykódolás azt jelenti, hogy kifejezetten megadja a bemeneti és a kívánt kimeneti változókat. Másképp mondva, a kemény kódolás nem hagy teret a számítógépnek a megoldani kívánt probléma értelmezéséhez.

A soft-kódolás teljesen ellentétes. Helyet hagy a program számára, hogy megértse, mi történik az adatkészletben. A soft-kódolás lehetővé teszi a számítógép számára a saját problémamegoldási megközelítésének kidolgozását.

Itt egy konkrét példa hasznos. Itt van két példa arra, hogy miként lehet azonosítani a macskákat egy adathalmazon belül soft-coding és hard-coding technikákkal.

  • Kemény kódolás: meghatározott paraméterek segítségével megjósolhatja, hogy egy állat macskás-e. Pontosabban azt mondhatja, hogy ha az állat súlya és hossza bizonyos határokon belül van
  • Lágy kódolás: olyan adatkészletet ad meg, amely az állatokat a fajuk típusával és jellemzőivel felcímkézve tartalmazza. Ezután létrehoz egy számítógépes programot, amely az adatkészlet jellemzői alapján megjósolja, hogy egy állat macska-e vagy sem.

Ahogy elképzelheted, a neurális hálózatok képzése a soft-kódolás kategóriájába tartozik. Tartsa ezt szem előtt, miközben halad ezen a tanfolyamon.

Neurális hálózat képzése költségfüggvény használatával

Az ideghálózatokat az a segítségével képezzük ki cost function, amely egy egyenlet a hálózat előrejelzésében szereplő hiba mérésére szolgál.

A mély tanulási költségfüggvény képlete (amelynek sok van - ez csak egy példa) az alábbiakban található:

Költségfüggvény egyenlete

Megjegyzés: ezt a költségfüggvényt hívják mean squared error, ezért van az MSE az egyenlőségjel bal oldalán.

Bár ebben az egyenletben rengeteg képletmatematika található, a legjobban a következőképpen foglalható össze:

Take the difference between the predicted output value of an observation and the actual output value of that observation. Square that difference and divide it by 2.

Megismételve, vegye figyelembe, hogy ez egyszerűen egy olyan költségfüggvény példa, amelyet fel lehet használni a gépi tanulásban (bár kétségkívül ez a legnépszerűbb választás). A költségfüggvény megválasztása önmagában összetett és érdekes téma, és kívül esik az oktatóanyagon.

Mint említettük, egy mesterséges neurális hálózat célja a költségfüggvény értékének minimalizálása. A költségfüggvény minimálisra csökken, ha az algoritmus előrejelzett értéke a lehető legközelebb áll a tényleges értékhez. Másképp mondva, a neurális hálózat célja az előrejelzéseiben elkövetett hibák minimalizálása!

Ideghálózat módosítása

Miután egy kezdeti neurális hálózatot létrehoztak és annak költségfüggvényét beszámították, változtatásokat hajtanak végre az ideghálózaton annak megállapítására, hogy csökkentik-e a költségfüggvény értékét.

Pontosabban, a módosított idegháló tényleges összetevője az egyes idegsejtek szinapszisaiban levő súlya, amely a hálózat következő rétegével kommunikál.

Meghívjuk azt a mechanizmust, amelyen keresztül a súlyokat úgy módosítják, hogy az ideghálózatot kevesebb hibával súlyokba mozgassák gradient descent. Egyelőre elég, ha megérted, hogy a neurális hálózatok képzési folyamata így néz ki:

  • Az egyes idegsejtek bemeneti értékeinek kezdeti súlyát hozzárendelik
  • Az előrejelzéseket ezeknek a kezdeti értékeknek a felhasználásával számítják ki
  • A jóslatok bekerülnek egy költségfüggvénybe az ideghálózat hibájának mérésére
  • A gradiens süllyedési algoritmus megváltoztatja az egyes idegsejtek bemeneti értékeinek súlyát
  • Ez a folyamat addig folytatódik, amíg a súlyok nem változnak (vagy amíg az egyes iterációk során bekövetkező változás mértéke egy meghatározott küszöb alá nem esik)

Ez nagyon elvontnak tűnhet - és ez rendben van! Ezeket a fogalmakat általában csak akkor értjük meg teljesen, amikor elkezdi képezni az első gépi tanulási modelleket.

Végső gondolatok

Ebben az oktatóanyagban megtudhatta, hogy az ideghálózatok hogyan végeznek számításokat hasznos előrejelzések készítése érdekében.

Ha többet szeretne megtudni az élvonalbeli gépi tanulási modellek felépítéséről, képzéséről és bevezetéséről, az eBook Pragmatic Machine Learning című cikkem megtanítja Önt, hogyan kell 9 különböző gépi tanulási modellt felépíteni valós projektek segítségével.

Telepítheti az e-könyv kódját a GitHub-ba vagy a személyes portfólióba, hogy megmutassa a leendő munkaadóknak. A könyv augusztus 3-án jelenik meg - előrendelheti most 50% kedvezménnyel!