Gibt es irgendetwas, das sicherstellt, dass Faltungsfilter nicht gleich sind?

Dec 11 2020

Ich habe ein einfaches Modell trainiert, um handgeschriebene Zahlen aus dem Mnist-Datensatz zu erkennen. Hier ist es:

model = Sequential([
    Conv2D(filters=1, kernel_size=(3,1), padding='valid', strides=1, input_shape=(28, 28, 1)),
    Flatten(),
    Dense(10, activation='softmax')])

Ich experimentierte mit der Variation der Anzahl der Filter für die Faltungsschicht, während andere Parameter konstant gehalten wurden (Lernrate = 0,0001, Anzahl der Episoden = 2000, Trainingschargengröße = 512). Ich habe 1, 2, 4, 8 und 16 Filter verwendet, und die Modellgenauigkeit betrug für jeden von ihnen 92-93%.

Nach meinem Verständnis können die Filter während des Trainings lernen, verschiedene Arten von Kanten im Bild zu erkennen (z. B. vertikal, horizontal, rund). Bei diesem Experiment habe ich mich gefragt, ob einer der Filter doppelt vorhanden ist - mit gleichem oder ähnlichem Gewicht. Gibt es etwas, das sie daran hindert?

Antworten

4 user3667125 Dec 11 2020 at 13:16

Nein, nichts hindert die Gewichte wirklich daran, unterschiedlich zu sein. In der Praxis sind sie jedoch fast immer unterschiedlich, da das Modell dadurch ausdrucksvoller (dh leistungsfähiger) wird, sodass der Gradientenabstieg dies lernt. Wenn ein Modell hat$n$ Funktionen, aber 2 von ihnen sind die gleichen, dann hat das Modell effektiv $n-1$ Funktionen, die ein weniger aussagekräftiges Modell als das von ist $n$ Merkmale und hat daher in der Regel eine größere Verlustfunktion.

Aber selbst wenn die Gewichte unterschiedlich sind, können einige von ihnen sehr ähnlich sein. Wenn Sie die erste Ebene Ihrer Faltungsfilter visualisieren und eine große Anzahl davon haben (z. B. 100), werden Sie feststellen, dass einige von ihnen lernen, ungefähr dieselben Kanten zu erkennen (gleiche Ausrichtung und Platzierung). Diese Funktionen sind so ähnlich, dass sie im Modell effektiv redundant sind und nicht zu seiner Vorhersagekraft beitragen.

Es gibt tatsächlich ein ganzes Forschungsgebiet, um redundante Merkmale zu identifizieren und zu beschneiden. Le Cun zeigt in Optimal Brain Damage, dass das Herausschneiden redundanter Funktionen das Modell nicht nur kleiner und schneller macht, sondern auch die Genauigkeit des Modells verbessern kann.

Hier ist ein Blog-Beitrag für einen allgemeinen Überblick über eine der Schnittmethoden, um weitere Informationen zu erhalten.