Sowohl die Begriffe "Upsampling" als auch "Transponierungsfaltung" werden verwendet, wenn Sie "Entfaltung" durchführen (<- kein guter Begriff, aber lassen Sie mich ihn hier verwenden). Ursprünglich dachte ich, dass sie dasselbe bedeuten, aber es scheint mir, dass sie sich unterscheiden, nachdem ich diese Artikel gelesen habe. kann jemand bitte klarstellen?
Transponieren transponieren : Es sieht so aus, als könnten wir es verwenden, wenn wir den Verlust über ein konvolutonales neuronales Netzwerk propagieren.
https://github.com/vdumoulin/conv_arithmetic
https://arxiv.org/pdf/1312.6034v2.pdf , Abschnitt 4 "Für die Faltungsschicht ..."
Upsampling : Es scheint, als würden wir es verwenden, wenn wir von kleineren Eingaben zu größeren Eingaben in der Convnet-Decovnet-Struktur ein Upsampling durchführen möchten.
https://www.youtube.com/watch?v=ByjaPdWXKJ4&feature=youtu.be&t=22m
Antworten:
Da es keine detaillierte und markierte Antwort gibt, werde ich mein Bestes geben.
Lassen Sie uns zunächst verstehen, woher die Motivation für solche Schichten kommt: zB ein Faltungsautoencoder. Sie können einen Faltungs-Autoencoder verwenden, um Bildmerkmale zu extrahieren, während Sie den Autoencoder trainieren, um das Originalbild zu rekonstruieren. (Es ist eine unbeaufsichtigte Methode.)
Ein solcher Autoencoder besteht aus zwei Teilen: dem Encoder, der die Merkmale aus dem Bild extrahiert, und dem Decoder, der das Originalbild aus diesen Merkmalen rekonstruiert. Die Architektur des Codierers und Decodierers wird normalerweise gespiegelt.
In einem Faltungs-Autoencoder arbeitet der Encoder mit Faltungs- und Pooling-Schichten. Ich gehe davon aus, dass Sie wissen, wie diese funktionieren. Der Decoder versucht, den Encoder zu spiegeln, aber anstatt "alles kleiner zu machen", hat er das Ziel, "alles größer zu machen", um der Originalgröße des Bildes zu entsprechen.
Das Gegenteil der Faltungsschichten sind die transponierten Faltungsschichten (auch als Entfaltung bekannt , aber mathematisch gesehen ist dies etwas anderes). Sie arbeiten mit Filtern, Kerneln und Schritten genau wie die Faltungsschichten, aber anstatt z. B. 3x3 Eingangspixel auf 1 Ausgang abzubilden, ordnen sie 1 Eingangspixel 3x3 Pixel zu. Natürlich funktioniert auch die Backpropagation etwas anders.
Das Gegenteil der Pooling-Ebenen sind die Upsampling- Ebenen, die in ihrer reinsten Form nur die Bildgröße ändern (oder das Pixel so oft wie nötig kopieren). Eine fortschrittlichere Technik wird unpooling die resverts maxpooling durch die Lage der Maxima in den maxpooling Schichten und in den unpooling Schichten Erinnern Sie den Wert auf genau diesem Ort kopieren. Um aus diesem Papier ( https://arxiv.org/pdf/1311.2901v3.pdf ) zu zitieren :
Weitere technische Informationen und Informationen zum Kontext finden Sie in dieser wirklich guten, demonstrativen und ausführlichen Erklärung: http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html
Und werfen Sie einen Blick auf https://www.quora.com/Was-ist-die-Differenz- zwischen-Deconvolution-Upsampling-Unpooling- and-Convolutional-Sparse- Coding
quelle
Dies kann von dem von Ihnen verwendeten Paket abhängen.
In Keras sind sie unterschiedlich. Upsampling wird hier definiert. Https://github.com/fchollet/keras/blob/master/keras/layers/convolutional.py Vorausgesetzt, Sie verwenden das Tensorflow-Backend, geschieht tatsächlich, dass Keras die Funktion tensorflow resize_images aufruft , was im Wesentlichen eine Interpolation ist und nicht trainierbar.
Transponierte Faltung ist mehr beteiligt. Es ist in demselben Python-Skript definiert, das oben aufgeführt ist. Es ruft die Funktion tensorflow conv2d_transpose auf , hat den Kernel und ist trainierbar.
Hoffe das hilft.
quelle
Entfaltung im Kontext von Faltungs-Neuronalen Netzen ist gleichbedeutend mit der Transponierung von Faltung. Entfaltung kann in anderen Bereichen eine andere Bedeutung haben .
Die Transponierungsfaltung ist unter anderem eine Strategie zur Durchführung von Upsampling.
quelle
Hier ist eine ziemlich gute Illustration zum Unterschied zwischen 1) Transponierungsfaltung und 2) Upsampling + Faltung. https://distill.pub/2016/deconv-checkerboard/
Während die Transponierungsfaltung effizienter ist, befürwortet der Artikel Upsampling + Faltung, da sie nicht unter dem Schachbrettartefakt leidet.
quelle