Ich beschäftige mich mit CNNs (Convolutional Neural Networks) aufgrund ihrer Anwendungen in der Bildverarbeitung. Ich bin bereits mit standardmäßigen neuronalen Feed-Forward-Netzen vertraut, daher hoffe ich, dass einige Leute hier mir helfen können, den zusätzlichen Schritt zum Verständnis von CNNs zu machen. Folgendes denke ich über CNNs:
- In herkömmlichen Feed-Forward-NNs haben wir Trainingsdaten, bei denen jedes Element aus einem Merkmalsvektor besteht, den wir in den NN in der "Eingabeebene" eingeben. Bei der Bilderkennung könnte also jedes Pixel nur eine Eingabe sein. Das sind unsere Merkmalsvektoren. Alternativ könnten wir manuell andere - wahrscheinlich kleinere - Merkmalsvektoren erstellen.
- Der Vorteil des CNN besteht darin, dass es stärkere Merkmalsvektoren erzeugen kann, die gegenüber Bildverzerrung und Position unveränderlicher sind. Wie die folgende Abbildung zeigt (aus diesem Lernprogramm ), generieren CNNs Feature-Maps, die dann in ein standardmäßiges neuronales Netzwerk eingespeist werden (es handelt sich also wirklich um einen riesigen Vorverarbeitungsschritt).
- Die Art und Weise, wie wir diese "besseren" Merkmale erhalten, ist durch abwechselnde Faltung und Unterabtastung. Ich verstehe, wie die Unterabtastung funktioniert. Nehmen Sie für jede Feature-Map nur eine Teilmenge der Pixel, oder berechnen Sie den Durchschnittswert der Pixel.
Aber ich bin hauptsächlich verwirrt darüber, wie der Faltungsschritt funktioniert. Ich kenne die Faltungen aus der Wahrscheinlichkeitstheorie (Dichte für die Summe zweier Zufallsvariablen), aber wie funktionieren sie in CNNs und warum sind sie effektiv?
Meine Frage ähnelt dieser, aber ich bin mir nicht sicher, warum der erste Faltungsschritt funktioniert.
quelle
Ich habe keine Ahnung, was Sie mit "warum der erste Faltungsschritt funktioniert" meinen. Damit ein CNN erfolgreich ist, müssen viele Ebenen vorhanden sein. Eine der Grundideen hinter CNN und vielen anderen Deep-Learning-Ansätzen ist, dass größere Signale durch die räumliche Korrelation ihrer kleineren Teile identifiziert werden können, die spärlich dargestellt werden können. Mit anderen Worten, Bilder sehen zwar komplex aus, bestehen jedoch aus einer Kombination weniger grundlegender Teile. Für die Bildverarbeitung besteht die Grundstruktur in Bildern normalerweise aus Kanten und Ecken. CNN versucht, die Spärlichkeit der Struktur in einem Bild auszunutzen, indem nach gemeinsamen lokalisierten Strukturen gesucht wird. Das ist es, was die erste Schicht des CNN zu bestimmen versucht. Stellen Sie sich eine Faltung als Übereinstimmungsfilter vor, der nach Signalen sucht, die einer bestimmten Vorlage entsprechen. Wie gut es funktioniert, hängt von den vorliegenden Daten ab. Glücklicherweise ist die Welt im kleinen Maßstab voller Wiederholungen, sodass CNN gut für Computer-Vision-Aufgaben geeignet ist.
quelle
Dieses Video erklärt die Grundlagen der Faltung sehr gut.
quelle