Czym jest niezmienność translacji w wizji komputerowej i splotowej sieci neuronowej?

38

Nie mam tła z zakresu widzenia komputerowego, ale kiedy czytam artykuły i artykuły dotyczące przetwarzania obrazów i splotowych sieci neuronowych, ciągle spotykam się z tym terminem translation invariance, lub translation invariant.
Czy czytam dużo, że zapewnia to konwolucja translation invariance? !! co to znaczy?
Sam zawsze tłumaczyłem to sobie, jakby to znaczyło, że jeśli zmienimy obraz w jakimkolwiek kształcie, rzeczywista koncepcja obrazu się nie zmieni.
Na przykład, jeśli obrócę obraz drzewa powiedzmy, to znowu jest to drzewo, bez względu na to, co zrobię z tym obrazem.
A ja uważam, że wszystkie operacje, które mogą się zdarzyć na obrazie i przekształcić go w taki sposób (przyciąć, zmienić rozmiar, skali szarości, pokolorować itp.) Są w ten sposób. Nie mam pojęcia, czy to prawda, więc byłbym wdzięczny, gdyby ktokolwiek mógł mi to wyjaśnić.

Rika
źródło

Odpowiedzi:

61

Jesteś na dobrej drodze.

Niezmienność oznacza, że ​​można rozpoznać obiekt jako obiekt, nawet jeśli jego wygląd różni się w pewien sposób. Zasadniczo jest to dobra rzecz, ponieważ zachowuje tożsamość obiektu, kategorię (itp.) We wszystkich zmianach w szczegółach wizualnych danych wejściowych, takich jak względne pozycje widza / kamery i obiektu.

Poniższy obraz zawiera wiele widoków tego samego posągu. Ty (i dobrze wyszkolone sieci neuronowe) możesz rozpoznać, że ten sam obiekt pojawia się na każdym obrazie, nawet jeśli rzeczywiste wartości pikseli są zupełnie inne.

Wykazano różne rodzaje niezmienniczości

Zauważ, że tłumaczenie tutaj ma określone znaczenie w wizji, zapożyczone z geometrii. Nie odnosi się do żadnego rodzaju konwersji, inaczej niż w przypadku tłumaczenia z francuskiego na angielski lub między formatami plików. Zamiast tego oznacza to, że każdy punkt / piksel na obrazie został przesunięty o tę samą wartość w tym samym kierunku. Alternatywnie możesz myśleć o pochodzeniu, które zostało przesunięte o taką samą wartość w przeciwnym kierunku. Na przykład możemy wygenerować drugi i trzeci obraz w pierwszym rzędzie od pierwszego, przesuwając każdy piksel o 50 lub 100 pikseli w prawo.


fasolfasolfasol

Jednym z podejść do rozpoznawania obiektów niezmiennych w tłumaczeniu jest wzięcie „szablonu” obiektu i splot z każdym możliwym położeniem obiektu na obrazie. Jeśli otrzymasz dużą odpowiedź w danej lokalizacji, sugeruje to, że obiekt podobny do szablonu znajduje się w tej lokalizacji. Takie podejście jest często nazywane dopasowywaniem szablonów .


Niezmienność vs. ekwiwariancja

Odpowiedź Santanu_Pattanayak ( tutaj ) wskazuje, że istnieje różnica między niezmiennością tłumaczenia a równoważnością tłumaczenia . Niezmienność tłumaczenia oznacza, że ​​system generuje dokładnie taką samą odpowiedź, niezależnie od tego, jak zmienia się wprowadzane dane. Na przykład wykrywacz twarzy może zgłaszać „FACE FOUND” dla wszystkich trzech obrazów w górnym rzędzie. Równoważność oznacza, że ​​system działa równie dobrze między pozycjami, ale jego reakcja zmienia się wraz z pozycją celu. Na przykład mapa cieplna „twarzy” ma podobne nierówności po lewej, w środku i po prawej, gdy przetwarza pierwszy rząd obrazów.

Jest to czasem ważne rozróżnienie, ale wiele osób nazywa oba zjawiska „niezmiennością”, zwłaszcza, że ​​przekształcenie równoważnej odpowiedzi w niezmienną zwykle jest banalne - wystarczy zignorować wszystkie informacje o pozycji).

Matt Krause
źródło
2
Cieszę się, że mogłem pomóc. To jedno z moich dużych zainteresowań badawczych, więc jeśli jest coś jeszcze, co byłoby przydatne, zobaczę, co mogę zrobić.
Matt Krause,
Czy możesz wyjaśnić, w jaki sposób osiągnięto niezmienność tłumaczenia za pomocą CNN? Aktywacje warstwy splotowej w CNN nie są niezmienne pod tłumaczeniami: poruszają się wraz z ruchem obrazu (tj. Są bardziej ekwiwalentne niż niezmienne dla tłumaczeń). Aktywacje te są zwykle wprowadzane do warstwy puli, która również nie jest niezmienna dla tłumaczeń. A warstwa puli może być przekazywana do w pełni połączonej warstwy. Czy wagi w pełni połączonej warstwie w jakiś sposób zmieniają zachowanie ekwiwalentne dla tłumaczenia na zachowanie niezmienne dla tłumaczenia?
maks.
@max, Pooling zwiększa niezmienność tłumaczenia, szczególnie max-pooling (!), który całkowicie ignoruje informacje przestrzenne w sąsiedztwie poolingu. Zobacz rozdział 9 Deep Learning deeplearningbook.org/contents/convnets.html (począwszy od s. 335). Pomysł ten jest również popularny w neurologii - model HMAX (np. Tutaj: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) wykorzystuje kombinację uśredniania i maksymalizacji puli do generowania tłumaczenia (i innych rodzajów ) niezmienność.
Matt Krause,
1
No tak, pula zapewnia niezmienność w stosunku do małych tłumaczeń (myślałem o większych zmianach, ale być może każda kolejna warstwa puli może obsługiwać stopniowo większe zmiany). Ale co z sieciami w pełni splotowymi ? Bez łączenia, co zapewnia (przynajmniej przybliżoną) niezmienność?
maks.
1
@Fredom, to może być lepsze jako nowe pytanie, ale w skrócie - sygnał audio brzmi tak samo, nawet gdy przesuwasz go do przodu w czasie (np. Dodając na początku ciszy). Jeśli jednak przesuniesz go w dziedzinie częstotliwości, brzmi to inaczej: nie tylko przesunięcie widma, ale także relacje między częstotliwościami (np. Harmonicznymi) są zniekształcone.
Matt Krause,
4

Myślę, że istnieje pewne zamieszanie co do tego, co rozumie się przez niezmienność translacyjną. Konwolucja zapewnia równoważność translacji, co oznacza, że ​​jeśli obiekt na obrazie znajduje się w obszarze A, a przez splot wykrywana jest funkcja na wyjściu w obszarze B, to ta sama cecha byłaby wykrywana, gdy obiekt na obrazie zostanie przetłumaczony na A '. Pozycja funkcji wyjściowej zostałaby również przetłumaczona na nowy obszar B 'w oparciu o rozmiar jądra filtra. Nazywa się to ekwiwalencją translacyjną, a nie niezmienniczością translacyjną.

Santanu_Pattanayak
źródło
2

Odpowiedź jest trudniejsza, niż się wydaje. Ogólnie rzecz biorąc, niezmienność translacyjna oznacza, że ​​rozpoznaje się obiekt bez względu na to, gdzie pojawia się na ramce.

Na następnym zdjęciu w ramkach A i B rozpoznajesz słowo „zestresowane”, jeśli Twoja wizja obsługuje niezmienność tłumaczenia słów . wprowadź opis zdjęcia tutaj

Podkreśliłem termin słowa, ponieważ jeśli twoja niezmienność jest obsługiwana tylko na literach, wówczas ramka C będzie również równa ramkom A i B: ma dokładnie takie same litery.

W praktyce, jeśli ćwiczyłeś CNN na literach, to takie rzeczy, jak MAX POOL, pomogą osiągnąć niezmienność tłumaczenia liter, ale niekoniecznie prowadzić do niezmienności tłumaczenia słów. Łączenie wyciąga obiekt (który jest wyodrębniany przez odpowiednią warstwę) bez związku z lokalizacją innych obiektów, więc traci znajomość względnej pozycji liter D i T oraz słów STRESZCZONYCH i DESERTY będą wyglądały tak samo.

Sam termin prawdopodobnie pochodzi z fizyki, gdzie symetria ranslacyjna oznacza, że ​​równania pozostają takie same, niezależnie od translacji w przestrzeni.

Aksakal
źródło
1

@Santanu

Twoja odpowiedź jest częściowo poprawna i prowadzi do zamieszania. Prawdą jest, że same warstwy splotowe lub mapy obiektów wyjściowych są równoważne translacji. Warstwy maksymalizacji puli zapewniają pewną niezmienność tłumaczenia, jak wskazuje @Matt.

Innymi słowy, równoważność w mapach obiektów w połączeniu z funkcją warstwy maksymalnej puli prowadzi do niezmienności translacji w warstwie wyjściowej (softmax) sieci. Pierwszy zestaw obrazów powyżej nadal generowałby prognozę zwaną „statuą”, nawet jeśli została przetłumaczona w lewo lub w prawo. Fakt, że prognoza pozostaje „statuą” (tj. Ta sama) pomimo tłumaczenia danych wejściowych, oznacza, że ​​sieć osiągnęła pewną niezmienność tłumaczenia.

pan e
źródło
Nie jestem pewien, czy łączenie prowadzi do niezmienności tłumaczenia.
Aksakal
Umiarkowanie tak. Pamiętaj, że operator maksymalnej puli przyjmuje maksymalną wartość piksela jako wynik w danym oknie. To matematycznie wymaga pewnej niezmienniczości, ponieważ przestrzenne położenie maksymalnych wartości pikseli nie ma znaczenia (w ramach pewnej tolerancji).
mr e