Deep Learning – verschiedene Faltungen

1. Gewöhnliche Faltung

1.1 Was ist Faltung?

Faltung bezieht sich auf den Prozess des Extrahierens von Merkmalen während des Gleitens. Wir beginnen mit einer kleinen Gewichtsmatrix, dh dem Faltungskern (Kernel), und lassen ihn nach und nach die zweidimensionalen Eingabedaten „scannen“. Während der Faltungskern „gleitet“, berechnet er das Produkt aus der Gewichtsmatrix und der durch Scannen erhaltenen Datenmatrix und fasst die Ergebnisse dann in einem Ausgabepixel zusammen. Der Faltungsprozess kann auf die folgende Abbildung verwiesen werden:
Fügen Sie hier eine Bildbeschreibung ein

1.2 Was ist Polsterung?

Wenn die Größe des Faltungskerns größer als 1 ist, ist die Größe der Ausgabe-Feature-Map kleiner als die Größe des Eingabebildes. Wenn Sie mehrere Faltungen durchlaufen, nimmt die Größe des Ausgabebilds weiter ab. Um zu vermeiden, dass die Bildgröße nach der Faltung kleiner wird, wird normalerweise eine Auffüllung am Rand des Bildes durchgeführt. Die folgende Abbildung zeigt einen Faltungskern von 3 × 3 mit einer Auffüllung und einem Schritt (die Anzahl der von jedem Schatten gekreuzten Gitter) von 1. Der Faltungsprozess, wenn:
Fügen Sie hier eine Bildbeschreibung ein

蓝色部分为输入特征图,周围虚线部分为填充的padding,扫过的阴影部分为3*3大小的卷积核,绿色部分为输出特征图。

1.3 Was ist ein Faltungskern?

Bei der Faltung werden Merkmale extrahiert. Durch Auswahl verschiedener Faltungskerne werden unterschiedliche Merkmale extrahiert. Der Faltungskern definiert den Größenbereich der Faltung, der die Größe des Empfangsfelds im Netzwerk darstellt. Der häufigste zweidimensionale Faltungskern ist ein 3 * 3-Faltungskern. Im Allgemeinen gilt: Je größer der Faltungskern, desto größer das Empfangsfeld, desto mehr Bildinformationen werden angezeigt und desto besser sind die globalen Funktionen, die Sie erhalten. Ein großer Faltungskern führt jedoch zu einem plötzlichen Anstieg des Rechenaufwands und verringert die Rechenleistung.

传统图像处理一般叫滤波器,而在深度学习中叫卷积核。

1.3.1 Einkanalmodus

Unter der sogenannten Kanalzahl kann verstanden werden, wie viele zweidimensionale Matrixbilder vorhanden sind.
Fügen Sie hier eine Bildbeschreibung ein

1.3.2 Mehrkanalmodus

Mehrkanal ist auch leicht zu verstehen. Am typischsten ist die Verarbeitung von Farbbildern, die im Allgemeinen über drei Kanäle (RGB) verfügen: Tatsächlich kann ein Filter auch mehrere Matrizen, also Kernel, enthalten. Beispielsweise ein Filter mit Drei Kernel, für die Eingabe ist ein Bild von drei Kanälen:

Fügen Sie hier eine Bildbeschreibung einHier ist die Eingabeschicht eine 5 x 5 x 3-Matrix mit 3 Kanälen und die Filter sind eine 3 x 3 x 3-Matrix. Zunächst wird jeder Kernel in Filtern auf drei Kanäle in der Eingabeschicht angewendet und führt drei Faltungen durch, was zu drei Kanälen der Größe 3×3 führt.

Diese drei Kanäle werden dann (Element für Element) summiert, um einen einzelnen Kanal (3 x 3 x 1) zu bilden, der mithilfe von Filtern (3 x 3 x 3-Matrix) auf der Eingabeebene (5 x 5 x 3-Matrix) generiert wird. das Ergebnis der Faltung:Fügen Sie hier eine Bildbeschreibung ein

卷积核的channel = 输入特征图的channel
输出特征图的channel = 卷积核的个数

Bei der Bildverarbeitung können verschiedene Filter Bilder unterschiedlich verarbeiten. Beispielsweise gibt es viele Arten der Filterung, einschließlich linearer Filterung und nichtlinearer Filterung (erfahren Sie mehr über digitale Bildverarbeitung).

1.4 Was ist ein rezeptives Feld?

  • In einem Faltungs-Neuronalen Netzwerk wird die Flächengröße der Eingabeschicht, die ein Element in der Ausgabe einer bestimmten Schicht bestimmt, als Empfangsfeld bezeichnet. Die gängige Erklärung ist, dass eine Einheit auf der Ausgabe-Feature-Map der Größe des Bereichs auf dem Eingabe-Layer entspricht.

  • Fügen Sie hier eine Bildbeschreibung ein

  • Wie in der Abbildung gezeigt, gibt es drei Feature-Map-Ausgaben. Diese Abbildung zeigt, dass zwei Conv-Ebenen von 3✖️3 eine Conv-Ebene von 5✖️5 ersetzen können

    • Das Quadrat in Schicht 1 kann als Element betrachtet werden, und das 3✖️3 grüne Quadrat ist ein 3✖️3-Faltungskern.
    • Schicht2 wird von einem Faltungskern von 3✖️3 durch eine Faltungsoperation ausgegeben. Die Ausgabegröße beträgt 3✖️3 (vorausgesetzt, Schritt = 1, Polsterung = 0). Es ist offensichtlich, dass das grüne Quadrat in Schicht2 das grüne Quadrat von 3✖️ ist 3 in Ebene 1. Wird durch das Format bestimmt. Dann ist das Empfangsfeld an dieser Position der grüne quadratische Bereich in Schicht 1
    • Layer3 wird von Layer2 bis 3✖️3 Conv-Layer ausgegeben, es gibt nur einen
      Fügen Sie hier eine Bildbeschreibung ein
  • Die obige Abbildung kann veranschaulichen, dass durch das Stapeln von drei Faltungskernen mit 33 anstelle von 77 Faltungskernen Parameter erheblich eingespart werden können. , diese Methode wird im VGG-Netzwerk verwendet, um die Anzahl der Parameter erheblich zu reduzieren. Einzelheiten finden Sie in der ausführlichen Erklärung zum VGG-Netzwerk.

1.5 Was ist Pooling?

Normalerweise gibt es zwei Arten von Pooling: Durchschnitts-Pooling und Maximal-Pooling sowie Zufalls-Pooling.
Fügen Sie hier eine Bildbeschreibung ein

2. Transponierte Faltung

Transponierte Faltung wird auch Entfaltung und Entfaltung genannt. Allerdings ist die transponierte Faltung derzeit der formalste und gebräuchlichste Name, da dieser Name den Berechnungsprozess der Faltung besser beschreibt.

Warum nennt man transponierte Faltung gerne Dekonvolution oder Dekonvolution? Lassen Sie uns zunächst ein Beispiel geben: Wenn eine 4x4-Eingabe durch einen 3x3-Faltungskern geleitet und dann einer gewöhnlichen Faltung unterzogen wird (kein Auffüllen, Schritt = 1), wird eine 2x2-Ausgabe erhalten. Die transponierte Faltung leitet eine 2x2-Eingabe durch einen Faltungskern derselben 3x3-Größe, um eine 4x4-Ausgabe zu erhalten, was der umgekehrte Prozess der gewöhnlichen Faltung zu sein scheint. So wie der umgekehrte Prozess der Addition eine Subtraktion und der umgekehrte Prozess der Multiplikation eine Division ist, denken die Menschen natürlich, dass diese beiden Operationen ein reversibler Prozess zu sein scheinen. Tatsächlich besteht jedoch keine Beziehung zwischen den beiden und der Operationsprozess ist nicht umkehrbar.

Beginnen wir zunächst damit, wie der Computer die Faltung verarbeitet. Die Faltungsoperation im Computer ähnelt nicht einem Schiebefenster, sondern wird für die Operation in einen Vektor umgewandelt, wie unten gezeigt.

  • Gewöhnliche Faltung
    -Qingqing Computerbetriebsmethode - Da unser 3x3-Faltungskern viermal an verschiedenen Positionen in der Eingabe gefaltet werden muss, Daher Die Faltungskerne werden durch Nullauffüllung an den vier Ecken einer 4x4-Matrix platziert. Auf diese Weise kann unsere Eingabe direkt mit diesen vier 4x4-Matrizen gefaltet werden, ohne den Schiebeschritt - Fügen Sie hier eine Bildbeschreibung ein
    Darüber hinaus strecken wir die Eingabe in einen langen Vektor, vier 4x4-Faltungen. Der Akkumulationskern wird ebenfalls gestreckt in lange Vektoren zerlegen und zusammenfügen, wie unten gezeigt
    Fügen Sie hier eine Bildbeschreibung ein
    Der Computer führt die Faltungsberechnung wie folgt durch:
    Fügen Sie hier eine Bildbeschreibung ein

Wir multiplizieren einen 1x16-Zeilenvektor mit einer 16x4-Matrix, um einen 1x4-Zeilenvektor zu erhalten. Können wir also wiederum durch Multiplikation eines 1x4-Vektors mit einer 4x16-Matrix einen 1x16-Zeilenvektor erhalten?
Ja, das ist die Idee der transponierten Faltung.

Ein visuelles Verständnis des transponierten Faltungsprozesses finden Sie unterVisuelles Verständnis der transponierten Faltung

3. Atroöse Faltung

Dilatierte/atrous-Faltung (auf Chinesisch dilatierte Faltung oder erweiterte Faltung genannt) oder Faltung mit Löchern, was wörtlich leicht zu verstehen ist, besteht darin, Löcher in die Standard-Faltungskarte zu injizieren, um das Empfangsfeld zu vergrößern. Im Vergleich zur ursprünglichen normalen Faltung verfügt die erweiterte Faltung über einen weiteren Hyperparameter namens Dilatationsrate, der sich auf die Anzahl der Intervalle im Kernel bezieht (z. B. ist die normale Faltung die Dilatationsrate1).

  • Gewöhnliche Faltung
    Fügen Sie hier eine Bildbeschreibung ein

  • erweiterte Faltung
    Fügen Sie hier eine Bildbeschreibung ein

Die meisten Bildsegmentierungs-Frameworks durchlaufen eine Reihe von Faltungs- und Downsampling-Modulen und setzen dann die schichtübergreifende Fusion mit den vorherigen Faltungsergebnissen fort und durchlaufen eine Reihe von Faltungs- und Upsampling-Modulen, aber die Fusionsmethoden sind unterschiedlich Gleiches gilt für FCN für die direkte Addition Pixel für Pixel, U-NET für Kanaldimensionsspleißung und DFAnet für Matrixmultiplikation, aber der allgemeine Rahmen ist derselbe, hauptsächlich weil das vorherige Downsampling die Auflösung des Bildes verringert hat und wir nur dies tun können Die Methode kann nicht nur detaillierte Informationen rechtzeitig ergänzen, sondern auch die ursprüngliche Bildauflösung wiederherstellen. In der Einleitung des Papiers wird kühn darauf hingewiesen, dass die Hauptursache dieser Probleme in der Existenz von Pooling- und Downsampling-Schichten liegt und ihre Existenz nicht notwendig ist.

Vorteile der erweiterten Faltung:

  • Erweitern Sie das Empfangsfeld: Um das Empfangsfeld zu vergrößern und den Rechenaufwand zu reduzieren, wird im Deep Net immer ein Downsampling (Pooling oder S2/Conv) durchgeführt. Obwohl das Empfangsfeld erhöht werden kann, wird die räumliche Auflösung verringert. Um die Auflösung nicht zu verlieren (skeptisch) und dennoch das Empfangsfeld zu vergrößern, können Sie erweiterte Windungen verwenden. Dies ist bei Erkennungs- und Segmentierungsaufgaben sehr nützlich. Einerseits kann das große Empfangsfeld große Ziele erkennen und segmentieren, andererseits ermöglicht die hohe Auflösung eine genaue Lokalisierung von Zielen.
  • Erfassen Sie mehrskalige Kontextinformationen: Die atröse Faltung verfügt über einen Parameter zum Festlegen der Dilatationsrate. Die spezifische Bedeutung besteht darin, den Faltungskern mit Dilatationsrate-1 Null zu füllen. Daher sind die Empfangsfelder unterschiedlich, wenn unterschiedliche Dilatationsraten eingestellt werden. und das heißt, es werden mehrskalige Informationen erhalten. Multiskaleninformationen sind bei visuellen Aufgaben sehr wichtig.

These:Multi-Scale Context Aggregation by Dilated Convolutions
Innovationspunkte des Papiers:
 (1 ) Pooling- und Downsampling-Module verwerfen;
 (2) Konstruieren Sie eine neue Faltungsnetzwerkstruktur – erweiterte Faltung;
 (3) Schlagen Sie eine Methode vor, die beide Modelle integrieren kann Kontextinformationen ohne Reduzierung der Auflösung.

4. Gruppenfaltung

Gruppenfaltung (Gruppenfaltung), wie der Name schon sagt, unterteilt die Gruppenfaltung beim Falten der Feature-Map die Eingabe-Feature-Map in mehrere Gruppen in Kanalrichtung, faltet die Features jeder Gruppe separat und fügt sie dann zusammen. Reduzieren Sie die Anzahl Parameter und verbessern die Betriebsgeschwindigkeit

Group Convolution entstand 2012 aus AlexNet – „ImageNet Classification
with Deep Convolutional Neural Networks“. Aufgrund der damaligen Einschränkungen der Hardwareressourcen teilte der Autor Feature
Maps zur Verarbeitung auf mehrere GPUs auf und fusionierte schließlich die Ergebnisse mehrerer GPUs

Fügen Sie hier eine Bildbeschreibung ein

depthwise separable convolution可视作一种特殊的组卷积,使每一个分组只包含一个通道。

Bei der gruppierten Faltung werden Filter in verschiedene Gruppen aufgeteilt. Jede Gruppe ist für die Arbeit der herkömmlichen 2D-Faltung mit einer bestimmten Tiefe verantwortlich. Das folgende Beispiel zeigt es deutlicher:

  • Traditionelle Faltung
    Fügen Sie hier eine Bildbeschreibung ein
  • Gruppenfaltung
    Fügen Sie hier eine Bildbeschreibung ein
    Die obige Abbildung zeigt eine Gruppenfaltung, die in zwei Filter aufgeteilt ist. Jede Filtergruppe hat Dout/2-Filter. Die Tiefe jeder Filtergruppe ist gleich den Tiefen der Eingabe-Feature-Maps sind halb gleich, d. h. Din/2; die beiden Gruppen werden separat gefaltet und schließlich zur Ausgabeebene hinzugefügt und gestapelt, um eine Ausgabe-Feature-Map mit einer Tiefe von Dout zu erhalten.

Standard-2D-Faltung: B × H × Din × Dint

Gruppierte Faltung: B × H × Din/2× Din/2 × 2

Gut! Sieh den Unterschied! Die Anzahl der Parameter wird auf die Hälfte des Originals reduziert! Wenn die Gruppe 4 beträgt, wird die Anzahl der Parameter auf 1/4 des Originals reduziert

5. In der Tiefe trennbare Faltung

Einige Zusammenhänge und Unterschiede zwischen gruppierten Faltungen und in der Tiefe trennbaren Faltungen, die in Tiefenfaltungen verwendet werden. Wenn die Anzahl der Filtergruppen mit der Anzahl der Kanäle der Eingangsschicht übereinstimmt, beträgt die Tiefe jedes Filters Din/Din=1, was der Tiefe der Filter bei der Tiefenfaltung entspricht.

5.1 Tiefenweise Faltung

Die tiefenweise trennbare Faltung besteht aus einer tiefenweisen (DW) Faltung und einer punktweisen (PW) Faltung. Diese Struktur ähnelt der herkömmlichen Faltung und kann zum Extrahieren von Merkmalen verwendet werden. Im Vergleich zur herkömmlichen Faltung sind jedoch das Parametervolumen und die Betriebskosten geringer, sodass diese Struktur häufig in einigen leichten Netzwerken wie MobileNet und ShuffleNet verwendet wird.
Anders als bei herkömmlichen Faltungsoperationen ist ein Faltungskern der Tiefenfaltung für einen Kanal verantwortlich, und ein Kanal wird nur von einem Faltungskern gefaltet
Fügen Sie hier eine Bildbeschreibung ein

Die Anzahl der Feature-Maps nach der Tiefenfaltung entspricht der Anzahl der Kanäle der Eingabeebene und die Anzahl der Feature-Maps kann nicht erweitert werden. Darüber hinaus führt diese Operation eine Faltungsoperation für jeden Kanal der Eingabeschicht unabhängig durch und nutzt die Merkmalsinformationen verschiedener Kanäle an derselben räumlichen Position nicht effektiv aus. Daher ist eine punktweise Faltung erforderlich, um diese Feature-Maps zu kombinieren und neue Feature-Maps zu generieren.

Indexparameter:
Fügen Sie hier eine Bildbeschreibung ein

5.2 Punktweise Faltung

Die Operation der punktweisen Faltung ist der herkömmlichen Faltungsoperation sehr ähnlich. Die Größe ihres Faltungskerns beträgt 1 × 1 × M, und M ist die Anzahl der Kanäle der vorherigen Schicht. Daher wird bei der Faltungsoperation hier die vorherige Karte in Tiefenrichtung gewichtet kombiniert, um eine neue Feature-Map zu generieren. Es gibt mehrere Ausgabe-Feature-Maps, so viele Faltungskerne wie vorhanden sind. (Die Form des Faltungskerns ist: 1 x 1 x Anzahl der Eingangskanäle x Anzahl der Ausgangskanäle)

Fügen Sie hier eine Bildbeschreibung ein
Indexparameter:
Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/m0_47005029/article/details/129270974
Recomendado
Clasificación