Czy jest coś, co zapewnia, że filtry splotowe nie kończą się tak samo?
Wyszkoliłem prosty model rozpoznawania odręcznych liczb ze zbioru danych mnist. Oto ona:
model = Sequential([
Conv2D(filters=1, kernel_size=(3,1), padding='valid', strides=1, input_shape=(28, 28, 1)),
Flatten(),
Dense(10, activation='softmax')])
Eksperymentowałem z różnicowaniem liczby filtrów dla warstwy splotowej, przy zachowaniu stałych pozostałych parametrów (szybkość uczenia = 0,0001, liczba epizodów = 2000, rozmiar partii treningowej = 512). Użyłem filtrów 1, 2, 4, 8 i 16, a dokładność modelu dla każdego z nich wynosiła 92-93%.
Z mojego zrozumienia podczas szkolenia filtry mogą nauczyć się rozpoznawać różne typy krawędzi obrazu (np. Pionowe, poziome, okrągłe). Ten eksperyment sprawił, że zacząłem się zastanawiać, czy któryś z filtrów nie zostanie zduplikowany - mając taką samą lub podobną wagę. Czy jest coś, co im przed tym stoi?
Odpowiedzi
Nie, nic tak naprawdę nie stoi na przeszkodzie, aby ciężary były inne. W praktyce jednak kończą się one prawie zawsze inaczej, ponieważ sprawia, że model jest bardziej wyrazisty (tj. Mocniejszy), więc zejście gradientowe uczy się tego robić. Jeśli model ma$n$ funkcje, ale 2 z nich są takie same, to model faktycznie ma $n-1$ funkcje, które są mniej wyrazistym modelem niż model $n$ funkcje, a zatem zwykle ma większą funkcję strat.
Ale nawet jeśli wagi są różne, niektóre z nich mogą być bardzo podobne. Jeśli wizualizujesz pierwszą warstwę swoich filtrów splotu i masz ich dużą liczbę (np. 100), zobaczysz, że niektóre z nich uczą się wykrywać z grubsza te same krawędzie (ta sama orientacja i położenie). Cechy te są tak podobne, że w modelu są efektywnie redundantne i nie zwiększają jego mocy predykcyjnej.
W rzeczywistości istnieje całe pole badań nad identyfikowaniem zbędnych funkcji i ich przycinaniem. Le Cun pokazuje w Optimal Brain Damage, że usunięcie zbędnych funkcji nie tylko sprawia, że model jest mniejszy i szybszy do wnioskowania, ale może nawet poprawić dokładność modelu.
Tutaj znajduje się wpis na blogu zawierający ogólny przegląd jednej z metod przycinania, aby uzyskać więcej informacji.