Definiálja az egyedi súlyozott osztályozási réteget - MATLAB; Simulink
Tipp
Kereszt entrópia veszteséggel rendelkező osztályozási kimeneti réteg felépítéséhez k egymást kizáró osztályokhoz használja az osztályozási rétegt. Ha más veszteségfüggvényt szeretne használni osztályozási problémáihoz, akkor meghatározhat egy egyedi besorolási kimeneti réteget, ha ezt a példát használja útmutatóként.
Ez a példa bemutatja, hogyan lehet meghatározni és létrehozni egy egyedi súlyozott osztályozási kimeneti réteget súlyozott kereszt entrópia veszteséggel. Az osztályok kiegyensúlyozatlan eloszlásával osztályozási problémákhoz használjon súlyozott osztályozási réteget. A súlyozott besorolási réteg hálózati használatát bemutató példához lásd: Beszédparancs-felismerés a mély tanulás segítségével.
Egyéni besorolási kimeneti réteg definiálásához használhatja az ebben a példában megadott sablont, amely végigvezet a következő lépéseken:
Nevezze meg a réteget - Adjon nevet a rétegnek, hogy az használható legyen a MATLAB ® alkalmazásban .
A réteg tulajdonságainak deklarálása - Adja meg a réteg tulajdonságait.
Konstruktorfüggvény létrehozása (opcionális) - Adja meg a réteg felépítésének és tulajdonságainak inicializálásának módját. Ha nem ad meg konstruktorfüggvényt, akkor a szoftver inicializálja a tulajdonságokat a létrehozáskor.
Hozzon létre egy előrejelzési funkciót - Adja meg a veszteséget az előrejelzések és az edzés céljai között.
Hozzon létre visszamenőleges veszteségfüggvényt (opcionális) - Adja meg a veszteség deriváltját az előrejelzések szempontjából. Ha nem ad meg visszamenőleges veszteség funkciót, akkor az előre vesztés funkciónak támogatnia kell a dlarray objektumokat.
A súlyozott osztályozási réteg kiszámítja a súlyozott kereszt entrópia veszteséget az osztályozási problémákra. A súlyozott kereszt entrópia két folyamatos véletlen változó hibamértéke. Az Y jóslati pontszámok és a T edzéscélok esetében az Y és T közötti kereszt entrópia súlyozott veszteségét adja meg
L = - 1 N ∑ n = 1 N ∑ i = 1 K w i T n i log (Y n i),
ahol N a megfigyelések száma, K az osztályok száma és w az egyes osztályok súlyvektora.
Osztályozás kimeneti réteg sablon
Másolja az osztályozási kimeneti réteg sablonját egy új fájlba a MATLAB-ban. Ez a sablon felvázolja az osztályozási kimeneti réteg felépítését, és tartalmazza azokat a függvényeket, amelyek meghatározzák a réteg viselkedését.
Nevezze el a réteget
Először adjon nevet a rétegnek. Az osztályfájl első sorában cserélje le a meglévő myClassificationLayer nevet a weightedClassificationLayer névre .
Ezután nevezze át a myClassificationLayer konstruktor függvényt (a Metódus szakasz első függvénye) úgy, hogy ugyanaz legyen a neve, mint a fólia.
Mentse el a réteget
Mentsük el a réteg osztályfájlt egy új, weightedClassificationLayer.m nevű fájlba. A fájlnévnek meg kell egyeznie a réteg nevével. A réteg használatához el kell mentenie a fájlt az aktuális mappába vagy a MATLAB elérési út mappájába.
Nyújtsa be a réteg tulajdonságait
A tulajdonságok szakaszban deklarálja a réteg tulajdonságait.
Alapértelmezés szerint az egyéni kimeneti rétegek a következő tulajdonságokkal rendelkeznek:
Név - Réteg neve, karaktervektorként vagy karakterlánc skalárként megadva. Ha egy réteget felvesz egy rétegdiagramba, meg kell adnia egy nem üres egyedi rétegnevet. Ha egy soros hálózatot oktat a fóliával, és a Név értéke '', akkor a szoftver az edzés idején automatikusan nevet rendel a fóliához.
Leírás - A réteg egysoros leírása karaktervektorként vagy karakterlánc skalárként megadva. Ez a leírás akkor jelenik meg, amikor a réteg megjelenik egy réteg tömbben. Ha nem ad meg rétegleírást, akkor a szoftver megjeleníti a "Osztályozási kimenet" vagy a "Regressziós kimenet" .
Típus - A réteg típusa, karaktervektorként vagy karakterlánc skalárként megadva. A Type értéke akkor jelenik meg, amikor a réteg megjelenik egy Layer tömbben. Ha nem ad meg rétegtípust, akkor a szoftver megjeleníti a rétegosztály nevét.
Az egyéni besorolási rétegeknek a következő tulajdonságuk is van:
Osztályok - A kimeneti réteg osztályai, kategorikus vektorként, string tömbként, karaktervektorok cellatömbjeként vagy „auto” -ként megadva. Ha az Osztályok 'automatikus', akkor a szoftver automatikusan beállítja az osztályokat az edzés idejére. Ha megadja az str karaktervektorok vagy cellatömböket, akkor a szoftver kategorikusra állítja a kimeneti réteg osztályait (str, str). Az alapértelmezett érték 'auto' .
Az egyéni regressziós rétegeknek a következő tulajdonságuk is van:
ResponseNames - A válaszok nevei, megadva egy karaktervektor cellatömböt vagy egy string tömböt. Edzéskor a szoftver automatikusan beállítja a válaszneveket a képzési adatoknak megfelelően. Az alapértelmezett <> .
Ha a rétegnek nincsenek egyéb tulajdonságai, akkor kihagyhatja a tulajdonságok részt.
Ebben a példában a réteg további tulajdonságot igényel az osztály súlyainak mentéséhez. Adja meg a ClassWeights tulajdonságot a tulajdonságok részben.
Konstruktor funkció létrehozása
Hozza létre azt a függvényt, amely felépíti a réteget és inicializálja a réteg tulajdonságait. Adja meg a réteg létrehozásához szükséges változókat a konstruktor függvényének bemeneteként.
Adja meg a ClassWeights tulajdonsághoz rendelendő input argumentumot. Adjon meg egy opcionális bemeneti argumentum nevet is, amelyet a Név tulajdonsághoz kell hozzárendelni a létrehozáskor. Vegyen fel egy megjegyzést a függvény tetejére, amely elmagyarázza a függvény szintaxisait.
Inicializálja a réteg tulajdonságait
Cserélje ki a megjegyzést A% Layer konstruktor függvény itt olyan kóddal jelenik meg, amely inicializálja a réteg tulajdonságait.
Adjon egyrétegű leírást a rétegnek a réteg Leírás tulajdonságának beállításával. Állítsa a Név tulajdonságot az opcionális bemeneti argumentum névre .
Hozzon létre Forward Loss Function
Hozzon létre egy forwardLoss nevű függvényt, amely visszaadja a súlyozott kereszt entrópia veszteséget a hálózat által készített előrejelzések és a képzési célok között. A forwardLoss szintaxisa veszteség = forwardLoss (réteg, Y, T), ahol Y az előző réteg kimenete, T pedig a képzési célokat jelenti.
Osztályozási problémák esetén a T méretei a probléma típusától függenek.
2-D képosztályozás | 1-by-1-by-K-by-N, ahol K az osztályok száma és N a megfigyelések száma. | 4 |
3D-s képosztályozás | 1-by-1-by-1-by-K-by-N, ahol K az osztályok száma és N a megfigyelések száma. | 5. |
Szekvencia-címke osztályozás | K-by-N, ahol K az osztályok száma és N a megfigyelések száma. | 2 |
Szekvencia-szekvencia osztályozás | K-by-N-by-S, ahol K az osztályok száma, N a megfigyelések száma és S a szekvencia hossza. | 2 |
Y mérete az előző réteg kimenetétől függ. Annak biztosítására, hogy Y azonos méretű legyen, mint a T, a kimeneti réteg előtt be kell illesztenie egy réteget, amely a megfelelő méretet adja ki. Például annak biztosítására, hogy Y a K osztályok predikciós pontszámainak 4-D tömbje, felvehet egy teljesen összekapcsolt K méretű réteget, amelyet egy softmax réteg követ a kimeneti réteg előtt.
A súlyozott osztályozási réteg kiszámítja a súlyozott kereszt entrópia veszteséget az osztályozási problémákra. A súlyozott kereszt entrópia két folyamatos véletlen változó hibamértéke. Az Y jóslati pontszámok és a T edzéscélok esetében az Y és T közötti kereszt entrópia súlyozott veszteségét adja meg
L = - 1 N ∑ n = 1 N ∑ i = 1 K w i T n i log (Y n i),
ahol N a megfigyelések száma, K az osztályok száma és w az egyes osztályok súlyvektora.
Az Y és T bemenetek megfelelnek az Y és T egyenletnek. A kimeneti veszteség L-nek felel meg. Adjon meg egy megjegyzést a függvény tetejére, amely elmagyarázza a függvény szintaxisait.
Mivel a forwardLoss függvény csak olyan funkciókat használ, amelyek támogatják a dlarray objektumokat, a backwardLoss függvény meghatározása nem kötelező. A dlarray objektumokat támogató funkciók listáját lásd: A dlarray támogatással rendelkező funkciók listája.
Befejezett réteg
Az elkészült osztályozási kimeneti réteg osztályfájljának megtekintése.
GPU kompatibilitás
Ha a réteg előre funkciói teljes mértékben támogatják a Dlarray objektumokat, akkor a réteg GPU-kompatibilis. Egyébként a GPU-kompatibilitás érdekében a rétegfunkcióknak támogatniuk kell a gpuArray (Parallel Computing Toolbox) típusú bemeneteket és visszatérő kimeneteket .
Sok MATLAB beépített funkció támogatja a gpuArray (Parallel Computing Toolbox) és a dlarray bemeneti argumentumokat. A dlarray objektumokat támogató funkciók listáját lásd: A dlarray támogatással rendelkező funkciók listája. A GPU-n végrehajtott funkciók listáját lásd: MATLAB függvények futtatása GPU-n (Parallel Computing Toolbox). A GPU mély tanuláshoz való használatához rendelkeznie kell egy CUDA®-kompatibilis NVIDIA® GPU-val, amely 3.0 vagy magasabb számítási képességgel rendelkezik. További információ a GPU-k használatáról a MATLAB-ban: GPU-számítás a MATLAB-ban (Parallel Computing Toolbox) .
A forwardLoss-ban a weightedClassificationLayer-ben használt MATLAB-függvények mind támogatják a dlarray objektumokat, így a réteg GPU-kompatibilis.
Ellenőrizze a kimeneti réteg érvényességét
Ellenőrizze a weightedClassificationLayer egyéni osztályozási kimeneti réteg érvényességét .
Adjon meg egy egyedi súlyozott osztályozási réteget. Ennek a rétegnek a létrehozásához mentse el a weightedClassificationLayer.m fájlt az aktuális mappába.
Hozzon létre egy példányt a rétegből. Adja meg az osztály súlyát vektorként, amelynek három eleme három osztálynak felel meg.
A checkLayer segítségével ellenőrizze, hogy a réteg érvényes-e. Állítsa be az érvényes bemeneti méretet a réteg egyetlen megfigyelési bemenetének tipikus méretére. A réteg 1-by-1-by-K-by-N tömb bemenetet vár, ahol K az osztályok száma, N pedig a megfigyelések száma a mini-kötegben.
A tesztösszefoglaló beszámol a sikeres, sikertelen, hiányos és kihagyott tesztek számáról.
Lásd még
Kapcsolódó témák
- Definiálja az egyéni mély tanulási rétegeket
- Definiálja az egyéni regressziós kimeneti réteget
- Definiálja az egyéni mély tanulási réteget megtanulható paraméterekkel
- Definiálja az egyéni mély tanulási réteget több bemenettel
- Definiálja a beágyazott mély tanulási réteget
- Adja meg az egyéni réteg visszafelé funkcióját
- Adja meg az egyéni kimeneti réteg visszafelé történő veszteség funkcióját
- Ellenőrizze a réteg érvényességét
- Mélyen tanuló rétegek listája
- Mély tanulási tippek és trükkök
Nyissa meg a Példa lehetőséget
Ennek a példának a módosított verziója létezik a rendszerén. Meg akarja nyitni ezt a verziót?
- Definiálja az egyéni edzésköröket, a veszteségfüggvényeket és a hálózatokat - MATLAB; Simulink
- Osztályozási veszteség a Gauss-rendszermag osztályozási modelljéhez - MATLAB veszteség
- Osztályozási veszteség lineáris osztályozási modellekhez - MATLAB
- Osztályozási hiba - MATLAB
- A gyászoló család CRANE-t vesz fel az elhízott 27 kő rokon csökkentésére, és a szokásos koporsót sírba emeli -