In diesem Artikel wird das Thema des Aufbaus benutzerdefinierter Schichten neuronaler Netze unter Verwendung der automatischen Differenzierung und der Arbeit mit Standard-Deep-Learning-Schichten neuronaler Netze in MATLAB auf der Grundlage eines Klassifikators unter Verwendung eines räumlichen Transformationsnetzwerks angesprochen.
Das Spatial Transformer Network (STN) ist ein Beispiel für differenzierbare LEGO-Module, mit denen Sie Ihr neuronales Netzwerk aufbauen und verbessern können. STN, das eine trainierbare affine Transformation mit anschließender Interpolation anwendet, beraubt Bilder der räumlichen Invarianz. Grob gesagt besteht die Aufgabe von STN darin, das Originalbild zu drehen oder zu verkleinern / zu vergrößern, damit das Hauptklassifizierernetzwerk das gewünschte Objekt leichter identifizieren kann. Ein STN-Block kann in einem Faltungs-Neuronalen Netzwerk (CNN) platziert werden, das größtenteils unabhängig darin arbeitet und anhand von Gradienten aus dem Hauptnetzwerk lernt (weitere Informationen zu diesem Thema finden Sie unter den Links: Habr und Handbuch ).
In unserem Fall besteht die Aufgabe darin, 99 Klassen von Windschutzscheiben von Autos zu klassifizieren, aber beginnen wir zunächst mit etwas Einfacherem. Um sich mit diesem Thema vertraut zu machen, nehmen wir die MNIST-Datenbank aus handgeschriebenen Zahlen und bauen ein Netzwerk aus MATLAB-Deep-Learning-Neuronalebenen und einer benutzerdefinierten affinen Bildtransformationsebene auf (die Liste aller verfügbaren Ebenen und deren Funktionalität finden Sie hier ).
MATLAB , - dlarray ( , dlarray ).
, dlarray, MATLAB, , dlarray. , .

, , . , . , , - - .

, . Y, . (, ), . .
Y |
|
|
|
|
|
|
|
|
, , STN. MNIST.


, , , , , .
, MNIST, .
— , — , — RGB, , , . . , , , , 2, , 0, , , . , , STN , , , . , . STN - , , dropout STN.
, , [0;255], [0;1], — . .

, 255 0.3 0.75, . , .

, , , , [-10;10] [-50; 50]. MATLAB, dlarray . .
.


, , , , 90. , , , , , . , , , , .
, STN, . .

, .
, , STN .