One-Shot Learning z Siamese Network [do rozpoznawania twarzy]

Opublikowany: 2021-02-08

Poniższy artykuł mówi o potrzebie korzystania z uczenia jednokrotnego wraz z jego odmianami i wadami.

Na początek, aby wytrenować dowolny model uczenia głębokiego, potrzebujemy dużej ilości danych, aby nasz model skutecznie wykonał żądaną predykcję lub zadanie klasyfikacji. Na przykład wykrywanie psa na podstawie obrazów będzie wymagało wytrenowania modelu sieci neuronowej na setkach i tysiącach obrazów psów i innych, aby dokładnie odróżnić jeden od drugiego. Jednak ten model sieci neuronowej nie będzie działać, jeśli zostanie przeszkolony na jednym lub bardzo niewielu danych uczących.

Z powodu braku danych wyodrębnienie odpowiednich funkcji na różnych warstwach staje się trudne. Model nie będzie w stanie dobrze uogólniać między różnymi klasami, wpływając tym samym na jego ogólną wydajność.

Jako przykład rozważmy przykład rozpoznawania twarzy na lotnisku. W tym przypadku nie mamy swobody trenowania naszego modelu setek i tysięcy obrazów każdej osoby zawierających różne wyrażenia, oświetlenie tła i in. Przy ponad tysiącach pasażerów przybywających codziennie jest to niemożliwe! Poza tym przechowywanie tak dużej ilości danych zwiększa koszty.

Aby rozwiązać powyższy problem, stosujemy technikę, w której zadania klasyfikacji lub kategoryzacji można osiągnąć za pomocą jednego lub kilku przykładów, aby sklasyfikować wiele nowych przykładów. Ta technika nazywa się uczeniem jednorazowym.

W ostatnich latach technologia uczenia się jednym strzałem jest szeroko stosowana w rozpoznawaniu twarzy i sprawdzaniu paszportów. Zastosowana koncepcja to: Model pobiera 2 obrazy wejściowe; jeden to obraz z paszportu, a drugi to wizerunek osoby patrzącej w kamerę. Model następnie wyprowadza wartość, która jest podobieństwem między 2 obrazami. Jeśli wartość wyjścia jest niska, to oba obrazy są podobne, w przeciwnym razie są różne.

Spis treści

Sieć Syjamska

Architektura wykorzystywana do uczenia się jednym strzałem nosi nazwę Siamese Network. Ta architektura składa się z dwóch równoległych sieci neuronowych, z których każda pobiera inne dane wejściowe. Wynikiem modelu jest wartość lub wskaźnik podobieństwa, który wskazuje, czy dwa obrazy wejściowe są podobne, czy nie. Wartość poniżej wcześniej określonego progu odpowiada dużemu podobieństwu między dwoma obrazami i na odwrót.

Kiedy obrazy są przekazywane przez serię warstw splotowych, warstw z maksymalną pulą i w pełni połączonych warstw, uzyskujemy wektor, który koduje cechy obrazów. Tutaj, ponieważ wprowadzamy dwa obrazy, zostaną wygenerowane dwa wektory obejmujące cechy obrazów wejściowych. Wartość, o której mówiliśmy, to odległość między dwoma wektorami cech, którą można obliczyć, znajdując normę różnicy między tymi dwoma wektorami.

Funkcja strat trypletowych

Jak sama nazwa wskazuje, do trenowania modelu potrzebujemy trzech obrazów – jednego obrazu kotwicy (A), jednego obrazu pozytywnego (P) i jednego obrazu negatywnego (N). Ponieważ do modelu można wprowadzić dwa dane wejściowe, podawany jest obraz zakotwiczenia z obrazem pozytywnym lub negatywnym. Model uczy się parametru w taki sposób, że odległość pomiędzy obrazem zakotwiczonym a obrazem pozytywowym jest mała, a odległość pomiędzy obrazem zakotwiczonym a obrazem negatywowym jest duża.

Konstruktywna funkcja straty karze model, jeśli odległość między A i N jest mała lub A i P jest duża, podczas gdy zachęca model lub uczy się cech, gdy odległość między A i N jest duża, a A i P jest mała.

Aby lepiej zrozumieć kotwicę, pozytywne i negatywne obrazy, rozważmy poprzedni przykład tego na lotnisku. W takim przypadku obrazem zakotwiczonym będzie Twój obraz, gdy patrzysz w kamerę, pozytywem będzie ten ze zdjęcia paszportowego, a negatywowym przypadkowym obrazem pasażera obecnego na lotnisku.

Za każdym razem, gdy szkolimy sieć Siaseme, dostarczamy jej obrazy trio APN (kotwica, pozytyw i negatyw). Tworzenie tego zbioru danych jest znacznie prostsze i wymagałoby nauczenia mniejszej liczby obrazów.

Ograniczenia uczenia jednorazowego

Jednorazowe uczenie się jest wciąż dojrzałym algorytmem uczenia maszynowego i ma pewne ograniczenia. Na przykład model nie będzie działał dobrze, jeśli obraz wejściowy ma pewne modyfikacje – osoba w kapeluszu, okularach przeciwsłonecznych i in. Ponadto model, który jest wytrenowany dla jednej aplikacji, nie może być uogólniony dla innej aplikacji.

Idąc dalej, przyjrzyjmy się kilku odmianom nauki One-shot, która obejmuje naukę Zero-shot i Few-shot learning.

Nauka zero-shot

Uczenie się od zera to zdolność modelu do identyfikowania nowych lub niewidocznych danych oznaczonych etykietami podczas uczenia się na widzianych danych i znajomości cech semantycznych nowych lub niewidocznych danych. Na przykład dziecko, które widziało kota, może go rozpoznać po jego odrębnych cechach. Co więcej, jeśli dziecko jest świadome, że pies szczeka i ma bardziej solidne cechy niż kot, to nie będzie miało problemu z rozpoznaniem psa.

Podsumowując, możemy powiedzieć, że rozpoznawanie ZSL działa w sposób, który uwzględnia oznaczony zestaw treningowy widzianych klas w połączeniu z wiedzą o tym, jak każda niewidoczna klasa jest semantycznie powiązana z widzianymi klasami.

Nauka N-shot

Jak sama nazwa wskazuje, w nauce N shot będziemy mieli n oznaczonych danych każdej klasy dostępnych do treningu. Model jest szkolony na klasach K, z których każda zawiera n danych oznaczonych etykietami. Po wyodrębnieniu odpowiednich cech i wzorców model musi zaklasyfikować nowy obraz bez etykiety do jednej z klas K. Wykorzystują sieci dopasowujące, które działają w oparciu o podejście oparte na najbliższych sąsiadach, przeszkolone w pełni od końca do końca.

Wniosek

Podsumowując, dziedzina One-shot learning i jej odpowiedniki mają ogromny potencjał do rozwiązania niektórych trudnych problemów. Chociaż jest to stosunkowo nowy obszar badań, robi szybkie postępy, a naukowcy pracują nad wypełnieniem luki między maszynami a ludźmi.

Tym samym dotarliśmy do końca tego posta, mam nadzieję, że podobało Ci się jego czytanie.

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom IIIT-B i upGrad's PG Diploma in Machine Learning & AI, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Ucz się kursu ML z najlepszych światowych uniwersytetów. Zdobywaj programy Masters, Executive PGP lub Advanced Certificate Programy, aby przyspieszyć swoją karierę.

Poprowadź rewolucję technologiczną napędzaną sztuczną inteligencją

Złóż wniosek o zaawansowany program certyfikacji w uczeniu maszynowym i NLP