Różnica między „jądrem” a „filtrem” w CNN

37

Jaka jest różnica między terminami „jądro” i „filtr” w kontekście splotowych sieci neuronowych?

ryguy
źródło
5
Oni są tacy sami! Filtr lub jądro to prosta grupa wag dzielona w całej przestrzeni wejściowej.
yasin.yazici

Odpowiedzi:

42

W kontekście splotowych sieci neuronowych jądro = filtr = detektor cech.


Oto świetna ilustracja z samouczka głębokiego uczenia się Stanforda (również dobrze wyjaśnionego przez Denny'ego Britza ).

wprowadź opis zdjęcia tutaj

Filtr to żółte okno przesuwne, a jego wartość to:

[101010101]
Franck Dernoncourt
źródło
2
Czy istnieje konkretna nazwa filtra? Jak „Rozmycie” lub „Wykrywanie krawędzi”
Pratik Khadloya,
2
@PratikKhadloya nie, te nazwy są subiektywnie badane przez badaczy na podstawie tego, co filtr wydaje się wykrywać.
shadowtalker
1
@Frank Dernoncourt zgodnie z tym linkiem dodatdatascience.com/... różnią się, gdy mamy kilka kanałów. w rzeczywistości, gdy istnieje wiele kanałów Każdy filtr faktycznie jest kolekcją jąder, przy czym istnieje jedno jądro dla każdego kanału wejściowego do warstwy, a każde jądro jest unikalne. Byłbym szczęśliwy, mając twój pomysł
sariii
6

Mapa funkcji jest tym samym filtrem lub „jądrem” w tym konkretnym kontekście. Wagi filtra określają, jakie konkretne funkcje są wykrywane.

Na przykład Franck zapewnił świetną oprawę wizualną. Zauważ, że jego filtr / detektor cech ma x1 wzdłuż elementów ukośnych i x0 wzdłuż wszystkich pozostałych elementów. W ten sposób ważenie jądra wykrywa piksele na obrazie, które mają wartość 1 wzdłuż przekątnych obrazu.

Zauważ, że wynikowa zwinięta funkcja pokazuje wartości 4 wszędzie tam, gdzie obraz ma „1” wzdłuż wartości przekątnych filtra 3x3 (wykrywając w ten sposób filtr w tej konkretnej części obrazu 3x3), a niższe wartości 2 w obszarach obraz, na którym ten filtr nie pasował tak mocno.

JohnnyUtah
źródło
4

A może użyjemy terminu „jądro” w odniesieniu do tablicy wag 2D, a terminu „filtr” w przypadku struktury 3D wielu jąder ułożonych w stos? Wymiar filtra to (przy założeniu kwadratowych jąder). Każde z jąder które składają się na filtr, zostanie splecione z jednym z kanałów wejściowych (wymiary wejściowe , na przykład obraz RGB ). Sensowne jest użycie innego słowa do opisania macierzy 2D i innego dla struktury 3D odważników, ponieważ mnożenie odbywa się między tablicami 2D, a następnie wyniki są sumowane w celu obliczenia operacji 3D.k×k×dododoH.jan×H.jan×do32×32

Obecnie występuje problem z nomenklaturą w tej dziedzinie. Istnieje wiele terminów opisujących to samo, a nawet terminy używane zamiennie do różnych pojęć! Weźmy jako przykład terminologię stosowaną do opisywania wyników warstwy splotu: mapy obiektów, kanały, aktywacje, tensory, płaszczyzny itp.

Oparty na wikipedii, „W przetwarzaniu obrazu jądro jest małą matrycą”.

W oparciu o wikipedię „Matryca to prostokątna tablica ułożona w rzędy i kolumny”.

Jeśli jądro jest macierzą prostokątną, nie może to być trójwymiarowa struktura wag, która ogólnie ma wymiaryk1×k2)×do

Cóż, nie mogę argumentować, że jest to najlepsza terminologia, ale jest lepsza niż tylko używanie zamiennie terminów „jądro” i „filtr”. Ponadto potrzebujemy słowa, aby opisać koncepcję różnych tablic 2D tworzących filtr.

Jim
źródło
1

Istniejące odpowiedzi są doskonałe i wyczerpująco odpowiadają na pytanie. Chcę tylko dodać, że filtry w sieciach konwergentnych są wspólne dla całego obrazu (tzn. Dane wejściowe są splecione z filtrem, jak pokazano w odpowiedzi Francka). Pole recepcyjne konkretnego neuronu to wszystkie jednostki wejściowe, które wpływają na dany neuron. Pole odbiorcze neuronu w sieci konwergentnej jest generalnie mniejsze niż pole odbiorcze neuronu w gęstej sieci dzięki uprzejmości wspólnych filtrów (zwanych także współdzieleniem parametrów ).

Udostępnianie parametrów zapewnia CNN pewną korzyść, mianowicie właściwość zwaną równoważnością tłumaczenia . Oznacza to, że jeśli dane wejściowe są zaburzone lub przetłumaczone, dane wyjściowe są również modyfikowane w ten sam sposób. Ian Goodfellow stanowi doskonały przykład w książce Deep Learning Book dotyczącej tego, w jaki sposób praktykujący mogą wykorzystać równoważność w CNN:

Podczas przetwarzania danych szeregów czasowych oznacza to, że splot tworzy rodzaj osi czasu, która pokazuje, kiedy na wejściu pojawiają się różne funkcje. Jeśli później przeniesiemy zdarzenie na wejściu, dokładnie taka sama reprezentacja pojawi się na wyjściu, tylko później. Podobnie w przypadku obrazów, splot tworzy mapę 2D, w której określone elementy pojawiają się na wejściu. Jeśli przesuniemy obiekt na wejściu, jego reprezentacja przeniesie tę samą ilość na wyjściu. Jest to przydatne, gdy wiemy, że niektóre funkcje małej liczby sąsiednich pikseli są przydatne, gdy są stosowane do wielu lokalizacji wejściowych. Na przykład podczas przetwarzania obrazów przydatne jest wykrywanie krawędzi w pierwszej warstwie sieci splotowej. Te same krawędzie pojawiają się mniej więcej wszędzie na obrazie, więc praktyczne jest dzielenie parametrów na całym obrazie.

Pranav Vempati
źródło