Definiálja az egyéni edzésköröket, a veszteségfüggvényeket és a hálózatokat - MATLAB; Simulink

A legtöbb mély tanulási feladathoz használhat egy előre kiképzett hálózatot, és saját adataihoz igazíthatja. Az átviteli tanulás használatával egy konvolúciós ideghálózat új képzettségének új képcsoportok osztályozásához történő bemutatásához lásd: A mély tanulási hálózat oktatása az új képek osztályozásához című cikkben. Alternatív megoldásként a semmiből is létrehozhat és oktathat hálózatokat a layerGraph objektumok használatával a trainNetwork és a TrainingOptions függvényekkel.

definiálja

Ha a trainingOptions függvény nem biztosítja a feladathoz szükséges képzési lehetőségeket, akkor létrehozhat egy egyéni edzési ciklust az automatikus differenciálás segítségével. További információkért lásd: Mély tanulási hálózat meghatározása az egyéni edzéskörökhöz.

Ha a Deep Learning Toolbox ™ nem biztosítja a feladathoz szükséges rétegeket (beleértve a veszteségfüggvényeket meghatározó kimeneti rétegeket), akkor létrehozhat egy egyedi réteget. További információkért lásd: Az egyéni mély tanulási rétegek meghatározása. Azokhoz a veszteségfüggvényekhez, amelyeket kimeneti réteg segítségével nem lehet megadni, a veszteséget egy egyedi edzéskörben adhatja meg. További információkért lásd: A veszteségfüggvények megadása. Azoknál a hálózatoknál, amelyek réteggrafikonok segítségével nem hozhatók létre, az egyedi hálózatokat megadhatja funkcióként. További információkért lásd: A hálózat meghatározása modellfunkcióként.

További információ arról, hogy melyik képzési módszert melyik feladathoz használja, lásd: Mély tanulási modellek oktatása a MATLAB-ban.

Definiálja a mély tanulási hálózatot az egyéni edzéskörökhöz

Definiálja a hálózatot dlnetwork objektumként

A legtöbb feladat esetében a TrainingOptions és a trainNetwork függvények segítségével szabályozhatja a képzési algoritmus részleteit. Ha a trainingOptions függvény nem biztosítja a feladatához szükséges opciókat (például egy egyéni tanulási arány ütemtervet), akkor meghatározhatja saját egyéni edzési ciklusát egy dlnetwork objektum használatával. A dlnetwork objektum lehetővé teszi egy réteggrafikonként megadott hálózat kiképzését automatikus differenciálás segítségével.

Réteggráfként megadott hálózatok esetén a rétegdiagramból létrehozhat egy dlnetwork objektumot, közvetlenül a dlnetwork függvény használatával. A dlnetwork objektumok által támogatott rétegek listáját lásd a dlnetwork oldal Támogatott rétegek szakaszában.

Egy példa arra, hogy miként képezheti a hálózatot egyéni tanulási sebesség ütemezéssel, lásd: Hálózat edzése az egyéni edzési hurok használatával.

Definiálja a hálózatot mint modellfunkciót

Azokhoz az architektúrákhoz, amelyeket réteggrafikonok segítségével nem lehet létrehozni (például egy sziámi hálózat, amely megosztott súlyokat igényel), meghatározhatja a modellt a [dlY1 forma függvényében. dlYM] = modell (paraméterek, dlX1. dlXN), ahol a paraméterek a hálózati paramétereket tartalmazzák, dlX1. A dlXN megfelel az N modell bemenetének és a dlY1 bemeneti adatainak. A dlYM megfelel az M modell kimeneteinek. Funkcióként definiált mély tanulási modell kiképzéséhez használjon egyedi képzési ciklust. Például lásd: Hálózati vonatok használata a modellfunkcióval.

A mély tanulási modellek függvényként történő meghatározásakor kézzel kell inicializálnia a réteg súlyát. További információ: Tanulható paraméterek inicializálása a modellfunkciókhoz.

Ha egyéni hálózatot határoz meg funkcióként, akkor a modellfunkciónak támogatnia kell az automatikus differenciálást. A következő mély tanulási műveleteket használhatja. Az itt felsorolt ​​függvények csak részhalmazok. A dlarray bevitelt támogató funkciók teljes listáját lásd: Funkciók listája a dlarray támogatással.

Az egy forró dekódolási művelet a valószínűségi vektorokat, például az osztályozási hálózat kimenetét, osztályozási címkékre dekódolja.

Az A bemenet lehet dlarray. Ha A formázva van, a függvény figyelmen kívül hagyja az adatformátumot.

Adja meg a veszteségfüggvényeket

Egyéni edzéskörök használatakor ki kell számolnia a veszteséget a modell gradiensek függvényében. Használja a veszteségértéket a gradiensek kiszámításakor a hálózati súlyok frissítéséhez. A veszteség kiszámításához a következő funkciókat használhatja:

Funkció leírás
softmax A softmax aktiválási művelet a softmax funkciót alkalmazza a bemeneti adatok csatornadimenziójára.
szigmoid A sigmoid aktiválási művelet a sigmoid függvényt alkalmazza a bemeneti adatokra.
crossentropia A kereszt-entrópia művelet kiszámítja a kereszt-entrópia veszteséget a hálózati előrejelzések és a célértékek között az egycímkés és a többcímkés osztályozási feladatokhoz.
mse A fele átlagos négyzet hiba művelet kiszámítja a fele átlagos négyzet hiba veszteséget a hálózati előrejelzések és a regressziós feladatok célértékei között.

Alternatív megoldásként használhat egy egyedi veszteségfüggvényt is, ha létrehoz egy függvényt a veszteség = myLoss (Y, T) alakból, ahol Y a hálózati előrejelzés, T a cél, és a veszteség a visszatérő veszteség.

A képeket generáló generatív ellentétes hálózat (GAN) képzésére egy egyedi veszteségfüggvény használatával kapcsolatban lásd: Vonat generatív ellentétes hálózat (GAN).

Frissítse a megtanulható paramétereket az automatikus differenciálás segítségével

Amikor mélyreható tanulási modellt képeznek egyedi képzési hurokkal, a szoftver minimalizálja a veszteséget a megtanulható paraméterekhez képest. A veszteség minimalizálása érdekében a szoftver a veszteség gradienseit használja a megtanulható paraméterekhez képest. Ahhoz, hogy ezeket a színátmeneteket automatikus differenciálással számolhassa, meg kell határoznia egy színátmenetek függvényt.

Definiálja a színátmenetek függvényét

A dlnetwork objektumként megadott modelleknél hozzon létre egy függvényt a gradiens = modelGradients (dlnet, dlX, T) formából, ahol a dlnet a hálózat, a dlX tartalmazza a bemeneti prediktorokat, T tartalmazza a célokat, a gradiens pedig a visszaadott gradienseket. Opcionálisan további argumentumokat is átadhat a gradiens függvénynek (például, ha a veszteség funkcióhoz további információkra van szükség), vagy további argumentumokat adhat vissza (például a képzési folyamat ábrázolásának mutatói).

Funkcióként megadott modelleknél hozzon létre egy függvényt a gradiens = modelGradients formából (paraméterek, dlX, T), ahol a paraméterek tartalmazzák a megtanulható paramétereket, a dlX a bemeneti prediktorokat, T a célokat, a gradiensek pedig a visszaadott színátmeneteket. Opcionálisan további argumentumokat is átadhat a gradiens függvénynek (például, ha a veszteség funkcióhoz további információkra van szükség), vagy további argumentumokat adhat vissza (például a képzési folyamat ábrázolásának mutatói).

Ha többet szeretne megtudni az egyéni edzéshurkok modellgradiens-függvényeinek meghatározásáról, olvassa el A modellgradiensek funkciójának meghatározása az egyéni edzési hurokhoz című részt.

Tanulható paraméterek frissítése

A modell gradiensek automatikus megkülönböztetéssel történő értékeléséhez használja a dlfeval függvényt, amely kiértékeli az automatikus differenciálás engedélyezett funkcióját. A dlfeval első bemenetéhez adja át a függvény fogantyúként megadott modellgradiens-függvényt, és a következő bemeneteknél adja át a modellváltozók függvényhez szükséges változót. A dlfeval függvény kimeneteihez adja meg ugyanazokat a kimeneteket, mint a modell gradiensek funkciója.

A tanulható paraméterek átmenetének frissítéséhez a következő funkciókat használhatja: