Veszteség és veszteség funkciók a mély tanulási ideghálózatok képzéséhez

Utolsó frissítés: 2019. október 23

Az ideghálózatokat sztochasztikus gradiens süllyedéssel oktatják, és megkövetelik, hogy a modell megtervezésekor és konfigurálásakor veszteségfüggvényt válasszon.

Számos veszteségfüggvény közül lehet választani, és kihívást jelenthet, hogy mit válasszunk, vagy akár mi is a veszteségfüggvény, és milyen szerepet játszik az ideghálózat edzése során.

Ebben a bejegyzésben megismerheti a veszteség és veszteség funkcióinak szerepét a mély tanulási ideghálózatok képzésében, és azt, hogy miként választhatja ki a prediktív modellezési problémáinak megfelelő veszteség funkciót.

A bejegyzés elolvasása után tudni fogja:

  • Az ideghálózatokat egy optimalizálási folyamat segítségével képzik ki, amely veszteségfüggvényt igényel a modell hiba kiszámításához.
  • A Maximum Likelihood keretet nyújt a veszteségfüggvény megválasztásához az ideghálózatok és általában a gépi tanulási modellek képzésénél.
  • A kereszt-entrópia és az átlagos négyzethiba a veszteségfüggvények két fő típusa, amelyet az idegi hálózati modellek képzésénél használnak.

Indítsa el a projektet a Better Deep Learning új könyvemmel, amely lépésről lépésre oktatóanyagokat és a Python forráskód fájlokat tartalmaz minden példához.

Kezdjük el.

veszteség

Veszteség és veszteség funkciók a mély tanulási ideghálózatok képzéséhez
Fotó: Ryan Albrey, néhány jog fenntartva.

Áttekintés

Ez az oktatóanyag hét részre oszlik; ők:

  1. A neurális hálózati tanulás mint optimalizálás
  2. Mi a veszteség funkció és veszteség?
  3. A legnagyobb valószínűség
  4. Maximális valószínűség és kereszt-entrópia
  5. Milyen veszteség funkciót kell használni?
  6. A veszteségfüggvények megvalósítása
  7. Veszteségfunkciók és jelentett modellteljesítmény

A veszteségfüggvények elméletére fogunk koncentrálni.

A különböző veszteségfüggvények kiválasztásával és megvalósításával kapcsolatos segítségért lásd:

A neurális hálózati tanulás mint optimalizálás

A mélyreható tanulási idegháló megtanulja a képzési adatok bemeneteinek és kimeneteinek egy csoportját feltérképezni.

Nem tudjuk kiszámítani a neurális hálózat tökéletes súlyát; túl sok az ismeretlen. Ehelyett a tanulás problémáját keresési vagy optimalizálási problémának vetik alá, és egy algoritmust használnak a lehetséges súlykészletek térbeli eligazodásához, amelyet a modell felhasználhat annak érdekében, hogy jó vagy elég jó előrejelzéseket tegyen.

Jellemzően egy neurális hálózati modellt a sztochasztikus gradiens süllyedés optimalizáló algoritmus segítségével képeznek ki, és a súlyokat frissítik a hiba algoritmus backpropagationjának felhasználásával.

A „gradiens” a gradiens süllyedésben hibagradiensre utal. A megadott súlykészlettel rendelkező modellt jóslatok készítésére használják, és kiszámítják az előrejelzések hibáját.

A gradiens ereszkedési algoritmus igyekszik megváltoztatni a súlyokat, így a következő kiértékelés csökkenti a hibát, vagyis az optimalizálási algoritmus a hiba gradiensén (vagy meredekségén) halad lefelé.

Most, hogy tudjuk, hogy az ideghálók kiképzése megoldja az optimalizálási problémát, megnézhetjük, hogyan számolják ki az adott súlykészlet hibáját.

Jobb eredményeket akar a mély tanulással?

Most vegyen részt az ingyenes 7 napos e-mail összeomlási tanfolyamon (mintakóddal).

Kattintson a regisztrációhoz, és kap egy ingyenes PDF Ebook verziót is a tanfolyamról.

Mi a veszteség funkció és veszteség?

Az optimalizálási algoritmus összefüggésében a jelölt megoldás (vagyis súlykészlet) értékelésére használt függvényt célfüggvénynek nevezzük.

Arra törekedhetünk, hogy maximalizáljuk vagy minimalizáljuk a célfüggvényt, ami azt jelenti, hogy olyan jelölt megoldást keresünk, amelynek a legmagasabb vagy a legalacsonyabb pontszáma van.

A neurális hálózatokkal általában a hiba minimalizálására törekszünk. A célfüggvényt gyakran költségfüggvénynek vagy veszteségfüggvénynek nevezik, a veszteségfüggvény által kiszámított értéket pedig egyszerűen „veszteségnek” nevezik.

A függvényt, amelyet minimalizálni vagy maximalizálni akarunk, objektív függvénynek vagy kritériumnak nevezzük. Amikor minimalizáljuk, hívhatjuk költségfüggvénynek, veszteségfüggvénynek vagy hibafunkciónak is.

A költség vagy veszteség függvénynek fontos feladata van, mivel hűen kell lepárolnia a modell minden aspektusát egyetlen számra, oly módon, hogy a szám javulása a jobb modell jele.

A költségfüggvény egy esetlegesen összetett rendszer összes különböző jó és rossz aspektusát egyetlen számra, skaláris értékre redukálja, amely lehetővé teszi a jelölt megoldások rangsorolását és összehasonlítását.

A modell hibájának kiszámításához az optimalizálási folyamat során veszteségfüggvényt kell választani.

Ez kihívást jelentő probléma lehet, mivel a funkciónak meg kell ragadnia a probléma tulajdonságait, és a projekt és az érdekelt felek számára fontos aggályok motiválják.

Ezért fontos, hogy a funkció hűen képviselje tervezési céljainkat. Ha rossz hibafunkciót választunk és nem kielégítő eredményt érünk el, akkor a hiba a miénk, ha rosszul határoztuk meg a keresés célját.

Most, hogy ismerjük a veszteségfüggvényt és a veszteséget, tudnunk kell, milyen funkciókat kell használni.

A legnagyobb valószínűség

Számos funkció használható arra, hogy megbecsüljük egy súlycsoport hibáját egy neurális hálózatban.

Előnyben részesítünk egy olyan funkciót, ahol a jelölt megoldások tere egy sima (de nagy dimenziójú) tájra térképezkedik le, amelyen az optimalizálási algoritmus ésszerűen navigálhat a modell súlyainak iteratív frissítésein keresztül.

A maximális valószínűség-becslés (MLE) a következtetések keretrendszere a paraméterek legjobb statisztikai becsléseinek megállapításához a történelmi képzési adatok alapján: pontosan mit próbálunk tenni az ideghálózattal.

A Maximum Likelihood arra törekszik, hogy megtalálja a paraméterek optimális értékeit azáltal, hogy maximalizálja a képzési adatokból levezetett Likelihood függvényt.

Van egy képzési adatkészletünk, amely egy vagy több bemeneti változóval rendelkezik, és modellre van szükségünk a modell súlyparamétereinek becsléséhez, amely a legjobban feltérképezi a kimeneti vagy célváltozó bemeneteinek példáit.

Adott bemenet alapján a modell megpróbál olyan előrejelzéseket készíteni, amelyek megfelelnek a célváltozó adateloszlásának. Maximális valószínűség esetén a veszteségfüggvény megbecsüli, hogy a modell által készített előrejelzések eloszlása ​​mennyire egyezik meg a célváltozók eloszlásával.

A maximális valószínűség-becslés értelmezésének egyik módja az, ha úgy tekintünk rá, hogy minimalizáljuk a képzési halmaz által meghatározott empirikus eloszlás […] és a modelleloszlás közötti különbséget, a kettő közötti különbség mértékét pedig a KL divergencia méri. […] A KL divergencia minimalizálása pontosan megfelel az eloszlások közötti kereszt-entrópia minimalizálásának.

A maximális valószínűség keretrendszerként történő felhasználásának előnye a neurális hálózatok modellparamétereinek (súlyainak) becsléséhez és általában a gépi tanuláshoz az, hogy amint a képzési adatkészletben növekszik a példák száma, javul a modell paramétereinek becslése. Ezt nevezzük a „következetesség” tulajdonságának.

Megfelelő körülmények között a maximális valószínűség-becslő a következetesség tulajdonságával rendelkezik […], ami azt jelenti, hogy az edzéspéldák száma a végtelenséghez közeledve a paraméter maximális valószínűség-becslése konvergál a paraméter valódi értékével.

Most, hogy ismerjük a maximális valószínûség általános megközelítését, megnézhetjük a hibafüggvényt.

Maximális valószínűség és kereszt-entrópia

A keretrendszer maximális valószínűsége alatt a két valószínűségeloszlás közötti hibát kereszt-entrópia segítségével mérjük.

Osztályozási probléma modellezésénél, ahol érdekel bennünket a bemeneti változók osztálycímkéhez való hozzárendelése, modellezhetjük a problémát úgy, hogy előre jelezzük az egyes osztályokhoz tartozó példák valószínűségét. Bináris osztályozási probléma esetén két osztály lenne, így megjósolhatjuk az első osztályba tartozó példa valószínűségét. Többosztályos osztályozás esetén megjósolhatjuk az egyes osztályokhoz tartozó példa valószínűségét.

A képzési adatkészletben egy adott osztályba tartozó példa valószínűsége 1 vagy 0 lenne, mivel a képzési adatkészlet minden egyes mintája ismert példa a tartományból. Tudjuk a választ.

Ezért a maximális valószínűség-becslés alatt olyan modelltömeg-készletet keresnénk, amely minimalizálja a modell előre jelzett valószínűség-eloszlása ​​és az edzésadatkészlet valószínűség-eloszlása ​​közötti különbséget. Ezt kereszt-entrópiának hívják.

A legtöbb esetben a paraméteres modellünk meghatározza az eloszlást […], és egyszerűen a maximális valószínűség elvét alkalmazzuk. Ez azt jelenti, hogy a képzési adatok és a modell előrejelzései közötti kereszt-entrópiát használjuk költségfüggvényként.

Technikailag a kereszt-entrópia az információelmélet területéről származik, és egysége „bit”. Becsült és előre jelzett valószínűség-eloszlások közötti különbség becslésére szolgál.

Regressziós problémák esetén, ahol mennyiséget jósolnak, általában az átlagos négyzethiba (MSE) veszteségfüggvényt használják.

Néhány alapvető funkciót nagyon gyakran használnak. Az átlagos négyzethiba népszerű a függvény-közelítő (regressziós) problémáknál […] A kereszt-entrópia hiba függvényt gyakran használják osztályozási problémákra, amikor a kimeneteket a megjelölt osztály tagságának valószínűségeként értelmezik.

Mindazonáltal a maximális valószínűség becslésének keretein belül és feltételezve a célváltozó Gauss-eloszlását, az átlagos négyzethiba a modell-előrejelzések eloszlása ​​és a célváltozó eloszlása ​​közötti kereszt-entrópiának tekinthető.

Sok szerző a „kereszt-entrópia” kifejezést használja arra, hogy konkrétan azonosítsa a Bernoulli vagy a softmax eloszlás negatív log valószínűségét, de ez téves elnevezés. A negatív log-valószínűségből álló bármely veszteség kereszt-entrópia a képzési halmaz által meghatározott empirikus eloszlás és a modell által meghatározott valószínűség-eloszlás között. Például az átlagos négyzetes hiba az empirikus eloszlás és egy Gauss-modell közötti kereszt-entrópia.

Ezért a maximális valószínűség-becslés keretrendszerének alkalmazásakor kereszt-entrópiás veszteségfüggvényt valósítunk meg, amely a gyakorlatban gyakran kereszt-entrópiaveszteség-függvényt jelent osztályozási problémák esetén, és átlagos négyzethiba-veszteség-függvényt regressziós problémák esetén.

Szinte általánosságban a mély tanulási ideghálózatokat a maximális valószínûség keretein belül képzik, kereszt-entrópiát használva veszteségfüggvényként.

A legtöbb modern ideghálózat a lehető legnagyobb valószínűséggel van kiképezve. Ez azt jelenti, hogy a költségfüggvényt […] a képzési adatok és a modelleloszlás közötti kereszt-entrópiaként írják le.

Valójában ennek a keretrendszernek az elfogadása mérföldkőnek tekinthető a mély tanulásban, mivel a teljes formalizálás előtt néha gyakran előfordult, hogy az ideghálózatok osztályozása során átlagosan négyzethiba-függvényt használtak.

Ezen algoritmikus változások egyike az átlagos négyzethiba helyettesítése volt a veszteségfüggvények kereszt-entrópia családjával. Az átlagos négyzetes hiba az 1980-as és 1990-es években népszerű volt, de fokozatosan felváltotta a kereszt-entrópia veszteségei és a maximális valószínűség elve, amikor az ötletek elterjedtek a statisztikai közösség és a gépi tanulási közösség között.

A maximális valószínűségű megközelítést szinte univerzálisan alkalmazták nemcsak az elméleti keretrendszer miatt, hanem elsősorban az általa elért eredmények miatt. Pontosabban, a besoroláshoz szükséges neurális hálózatok, amelyek sigmoid vagy softmax aktivációs függvényt használnak a kimeneti rétegben, gyorsabban és robusztusabban tanulnak kereszt-entrópia veszteségfüggvény használatával.

A kereszt-entrópia veszteségek használata nagymértékben javította a sigmoid és softmax kimenettel rendelkező modellek teljesítményét, amelyek korábban a telítettség és a lassú tanulás miatt szenvedtek az átlagos négyzet hibahullás alkalmazásakor.

Milyen veszteség funkciót kell használni?

Összefoglalhatjuk az előző szakaszt, és közvetlenül javasolhatjuk azokat a veszteségfüggvényeket, amelyeket a maximális valószínűség keretein belül érdemes használni.

Fontos, hogy a veszteségfüggvény megválasztása közvetlenül kapcsolódik a neurális hálózat kimeneti rétegében használt aktiválási funkcióhoz. Ez a két tervezési elem összekapcsolódik.

Gondoljon a kimeneti réteg konfigurációjára, mint a jóslási probléma kialakításának választására, és a veszteségfüggvény választására, mint a probléma adott keretének hibájának kiszámítására.

A költségfunkció megválasztása szorosan párosul a kimeneti egység megválasztásával. Legtöbbször egyszerűen az adatelosztás és a modelleloszlás közötti kereszt-entrópiát alkalmazzuk. A kimenet ábrázolásának megválasztása meghatározza a kereszt-entrópia függvény formáját.

Felülvizsgáljuk az egyes problématípusok bevált gyakorlatát vagy alapértelmezett értékeit a kimeneti réteg és a veszteségfüggvény tekintetében.

Regressziós probléma

Probléma, ahol előre jelez egy valós értékű mennyiséget.

  • Kimeneti réteg konfigurálása: Egy csomópont lineáris aktiválási egységgel.
  • Veszteség funkció: Átlagos négyzethiba (MSE).

Bináris osztályozási probléma

Probléma, amikor a példát két osztály egyikébe sorolja.

A probléma úgy van megfogalmazva, hogy megjósolja az első osztályba tartozó példa valószínűségét, pl. az osztály, amelyhez az 1 egész értéket rendeli, míg a másik osztályhoz 0 értéket rendelünk.

  • Kimeneti réteg konfigurálása: Egy csomópont sigmoid aktivációs egységgel.
  • Veszteség funkció: Cross-Entropia, más néven logaritmikus veszteség.

Többosztályos osztályozási probléma

Olyan probléma, amikor egy példát kétnél több osztály egyikéhez tartozónak minősít.

A probléma úgy van megfogalmazva, hogy előre jelzi az egyes osztályokhoz tartozó példa valószínűségét.

  • Kimeneti réteg konfigurálása: Minden csomópont minden osztályhoz a softmax aktiválási funkcióval.
  • Veszteség funkció: Cross-Entropia, más néven logaritmikus veszteség.

A veszteségfüggvények megvalósítása

A veszteségfüggvények konkrétabbá tétele érdekében ez a szakasz elmagyarázza, hogy a veszteségfüggvények egyes fő típusai hogyan működnek, és hogyan kell kiszámítani a pontszámot a Pythonban.

Átlagos négyzethiba-veszteség

Az átlagos négyzethiba-veszteséget, röviden az MSE-t az előrejelzett és a tényleges értékek négyzetbeli különbségének átlagaként kell kiszámítani.

Az eredmény mindig pozitív, függetlenül a megjósolt és a tényleges értékek jeleitől, a tökéletes érték pedig 0,0. A veszteség értéke minimalizálva van, bár maximalizálási optimalizálási folyamatban felhasználható azáltal, hogy negatívvá teszi a pontszámot.

Az alábbi Python függvény pszeudokódszerű működési lehetőséget biztosít egy függvény kiszámításához az átlagos négyzethibát a tényleges és az előre jelzett valós értékek listájához.