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.
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:
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:
- Definiálja az egyedi súlyozott osztályozási réteget - MATLAB; Simulink
- Tiszta kezdő fogyás edzésprogram - IAPAM
- Osztályozási veszteség lineáris osztályozási modellekhez - MATLAB
- Kardio zsírvesztés intervallum edzés alacsony intenzitással!
- Keresztedzés - A gyors fogyás kulcsa