Was ist der Unterschied zwischen einem Convolutional Neural Network und einem regulären Neural Network?


18

Ich habe diese Begriffe häufig auf dieser Website gesehen, insbesondere in den Tags und .

Ich weiß, dass ein neuronales Netzwerk ein System ist, das lose auf dem menschlichen Gehirn basiert. Aber was ist der Unterschied zwischen einem Convolutional Neural Network und einem regulären Neural Network? Ist man nur viel komplizierter und, ähem, gewunden als die andere?

Antworten:


23

TLDR: Das Faltungs-Neuronale-Netz ist eine Unterklasse von Neuronalen-Netzen, die mindestens eine Faltungsschicht aufweisen. Sie eignen sich hervorragend zum Erfassen lokaler Informationen (z. B. Nachbarpixel in einem Bild oder umgebende Wörter in einem Text) sowie zum Reduzieren der Komplexität des Modells (schnelleres Training, weniger Stichproben erforderlich, geringeres Risiko einer Überanpassung).

Siehe das folgende Diagramm , das die verschiedenen neuronalen Netze Architekturen einschließlich tiefer konventionellen-neuronalen Netzen zeigt: Visualisierung.


Neuronale Netze (NN) , genauer gesagt: Künstliche Neuronale Netze (ANN) , sind eine Klasse von Algorithmen für maschinelles Lernen, die in letzter Zeit (wieder!) Aufgrund der Verfügbarkeit von Big Data und schnellen Computereinrichtungen (die meisten von Deep Learning) große Beachtung fanden Algorithmen sind im Wesentlichen verschiedene Variationen von ANN.

Die Klasse von ANN deckt verschiedene Architekturen ab, einschließlich Convolutional Neural Networks ( CNN ), Recurrent Neural Networks ( RNN ), z. B. LSTM und GRU , Autoencoders und Deep Belief Networks . Daher ist CNN nur eine Art von ANN.

Im Allgemeinen ist ein ANN eine Ansammlung verbundener und abstimmbarer Einheiten (Knoten, Neuronen und künstliche Neuronen), die ein Signal (normalerweise eine reelle Zahl) von einer Einheit zu einer anderen weitergeben können. Die Anzahl (Schichten von) Einheiten, ihre Typen und die Art und Weise, wie sie miteinander verbunden sind, wird als Netzwerkarchitektur bezeichnet.

Insbesondere hat ein CNN eine oder mehrere Schichten von Faltungseinheiten . Eine Faltungseinheit erhält ihre Eingabe von mehreren Einheiten aus der vorherigen Schicht, die zusammen eine Nähe erzeugen. Daher teilen sich die Eingabeeinheiten (die eine kleine Nachbarschaft bilden) ihre Gewichte.

Die Faltungseinheiten (sowie Pooling-Einheiten) sind besonders vorteilhaft als:

  • Sie reduzieren die Anzahl der Einheiten im Netzwerk (da es sich um Mehrfachzuordnungen handelt ). Dies bedeutet, dass weniger Parameter zu lernen sind, was die Wahrscheinlichkeit einer Überanpassung verringert, da das Modell weniger komplex wäre als ein vollständig verbundenes Netzwerk.
  • Sie berücksichtigen den Kontext / die geteilten Informationen in den kleinen Stadtteilen. Diese Zukunft ist in vielen Anwendungen wie Bild-, Video-, Text- und Sprachverarbeitung / -abbau von großer Bedeutung, da die benachbarten Eingaben (z. B. Pixel, Frames, Wörter usw.) normalerweise verwandte Informationen enthalten.

Weitere Informationen zu (tiefen) CNNs finden Sie im Folgenden:

  1. ImageNet-Klassifizierung mit Deep Convolutional Neural Networks
  2. Mit Faltungen tiefer gehen

ps ANN ist kein "lose auf dem menschlichen Gehirn basierendes System" , sondern eine Klasse von Systemen, die von den Neuronenverbindungen inspiriert sind, die in tierischen Gehirnen existieren.


10

Convolutional Neural Networks (CNNs) sind neuronale Netze mit architektonischen Einschränkungen, um die Komplexität der Berechnungen zu verringern und die translatorische Invarianz sicherzustellen (das Netz interpretiert Eingabemuster unabhängig von der Übersetzung gleich - in Bezug auf die Bilderkennung: Eine Banane ist eine Banane, unabhängig davon, wo sie sich in der befindet Bild). Faltungs-Neuronale Netze weisen drei wichtige Architekturmerkmale auf.

Lokale Konnektivität: Neuronen in einer Schicht werden nur mit Neuronen in der nächsten Schicht verbunden, die sich räumlich in ihrer Nähe befinden. Durch dieses Design werden die meisten Verbindungen zwischen aufeinanderfolgenden Ebenen gekürzt, aber diejenigen, die die nützlichsten Informationen enthalten, bleiben erhalten. Hierbei wird davon ausgegangen, dass die Eingabedaten räumlich bedeutsam sind, oder dass im Beispiel der Computersicht die Beziehung zwischen zwei entfernten Pixeln wahrscheinlich weniger bedeutsam ist als bei zwei nahen Nachbarn.

Geteilte Gewichte: Dies ist das Konzept, das CNNs "Faltung" macht. Indem die Neuronen einer Schicht gezwungen werden, Gewichtungen zu teilen, wird der Vorwärtsdurchlauf (Zuführen von Daten durch das Netzwerk) gleichbedeutend mit dem Falten eines Filters über dem Bild, um ein neues Bild zu erzeugen. Das Training von CNNs wird dann zur Aufgabe des Lernens von Filtern (Entscheiden, nach welchen Merkmalen Sie in den Daten suchen sollten).

Pooling und ReLU: CNNs weisen zwei Nichtlinearitäten auf: Pooling-Layer und ReLU-Funktionen. Pooling-Layer betrachten einen Block von Eingabedaten und geben einfach den Maximalwert weiter. Dadurch wird die Größe der Ausgabe reduziert und es müssen keine zusätzlichen Parameter gelernt werden. Daher werden häufig Pooling-Layer verwendet, um die Größe des Netzwerks zu regulieren und das System unter einem Rechengrenzwert zu halten. Die ReLU-Funktion nimmt eine Eingabe, x, und gibt das Maximum von {0, x} zurück. ReLU(x) = argmax(x, 0). Dies führt einen ähnlichen Effekt wie tanh (x) oder sigmoid (x) als Nichtlinearitäten ein, um die Ausdruckskraft des Modells zu erhöhen.


Weitere Lektüre

Wie bereits erwähnt, wird dies in Stanfords CS 231n-Kurs ausführlich behandelt. Weitere Informationen finden Sie in diesem schriftlichen Leitfaden und in dieser Vorlesung . Blog-Posts wie dieser und dieser sind ebenfalls sehr hilfreich.

Wenn Sie immer noch neugierig sind, warum CNNs die Struktur haben, die sie haben, dann schlage ich vor, das Papier zu lesen , in dem sie vorgestellt wurden, obwohl dies ziemlich lang ist, und die Diskussion zwischen Yann Lecun und Christopher Manning über angeborene Vorgänger (die Annahmen, die wir machen, wenn Wir entwerfen die Architektur eines Modells.


2
"und die translationale Invarianz sicherstellen" Was zum Teufel ist die translationale Invarianz? Wenn Sie einen solch mysteriösen Begriff erwähnen, sollten Sie ihn zumindest intuitiv definieren.
nbro

1
Hoppla, ich stimme zu - ich habe eine kurze Beschreibung hinzugefügt.
Jackson Waschura

1
Dies ist eine bessere Antwort für mich, da es genau erklärt, wie CNNs eine bestimmte Art von NN sind. Andere Antworten erwähnen nicht, dass die Gewichtsverteilung erzwungen wird.
Denziloe

5

Ein neuronales Faltungsnetz ist eines, das Faltungsschichten aufweist. Wenn ein allgemeines neuronales Netzwerk lose von einem menschlichen Gehirn inspiriert wird (was nicht sehr genau ist), wird das neuronale Faltungsnetzwerk von dem visuellen Kortexsystem bei Menschen und anderen Tieren inspiriert (was näher an der Wahrheit liegt). . Wie der Name schon sagt, wendet diese Ebene die Faltung mit einem lernbaren Filter (auch als Kernel bezeichnet ) an. Das Netzwerk lernt daher die Muster in den Bildern: Kanten, Ecken, Bögen und dann komplexere Figuren. Das neuronale Faltungsnetzwerk kann auch andere Schichten enthalten, üblicherweise Pool- und dichte Schichten.

Sehr empfehlenswertes CS231n-Tutorial zu diesem Thema: Es ist sehr detailliert und enthält viele sehr schöne Visualisierungen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.