Na przykład załóżmy, że budujemy estymator wieku na podstawie obrazu osoby. Poniżej mamy dwie osoby w garniturach, ale pierwsza jest wyraźnie młodsza niż druga.
(źródło: tinytux.com )
Sugeruje to wiele funkcji, na przykład struktura twarzy. Jednak najbardziej wymowną cechą jest stosunek wielkości głowy do wielkości ciała :
(źródło: wikimedia.org )
Załóżmy więc, że wyszkoliliśmy regresję CNN, aby przewidzieć wiek osoby. W wielu predyktorach wieku, które wypróbowałem, powyższe zdjęcie dziecka wydaje się oszukiwać prognozy, aby myśleć, że jest starszy, z powodu koloru i prawdopodobnie dlatego, że opierają się głównie na twarzy:
Zastanawiam się, jak dobrze architektura waniliowa CNN może wywnioskować stosunek głowy do tułowia?
W porównaniu z regionalnym RCNN, który jest w stanie uzyskać granice na ciele i głowie, czy waniliowa CNN zawsze będzie działać gorzej?
Tuż przed globalnym spłaszczeniem waniliowej CNN (tj. Tuż po wszystkich zwojach) każde wyjście ma odpowiadające mu pole odbiorcze, które powinno mieć poczucie skali. Wiem, że szybszy RCNN wykorzystuje to, tworząc propozycje ramek ograniczających dokładnie na tym etapie, dzięki czemu wszystkie wcześniejsze filtry splotowe automatycznie trenują do wszystkich skal.
Sądzę więc, że waniliowy CNN powinien być w stanie wywnioskować stosunek wielkości głowy do tułowia? Czy to jest poprawne? Jeśli tak, to czy jedyną korzyścią z zastosowania szybszego frameworka RCNN w celu wykorzystania faktu, który mógł być wcześniej przeszkolony w zakresie wykrywania ludzi?
źródło
Odpowiedzi:
Po pierwsze, dziękuję za postawienie bardzo interesującego pytania.
Aby odpowiedzieć na to wkrótce, wyszkolony waniliowy konwerter końca 2-końca do przewidywania wieku na podstawie zdjęcia będzie ogólnie skłonny do błędnej klasyfikacji zdjęć, takich jak ten, który opublikowałeś . Po drugie, należy pamiętać, że dokładne oszacowanie wieku osoby jest prawie niemożliwym zadaniem 1 .
Główną różnicą w stosunku do proponowanego podejścia polegającego na użyciu niektórych detektorów obiektów (RCNN, Faster RCNN, YOLO lub SSD) jest to, że używasz różnych informacji do szkolenia modeli. CNN jest przeszkolony tylko w zakresie obrazów i musi samodzielnie znaleźć wszystkie niezbędne funkcje. Najprawdopodobniej znajdzie różne rysy twarzy, ale będzie też polegać na odzieży i być może scenach (dzieci mogą często znajdować się na zdjęciu z niektórymi zabawkami, dorośli będą częściej w środowisku biurowym itp.). Funkcje te nie będą odporne na kontrprzykład.
Z drugiej strony, jeśli trenujesz sieć, aby jawnie wykrywała obiekty jako „tułów” i „głowa”, dostarczasz dodatkowych informacji, że obiekty te są ważne dla zadania, a tym samym upraszczasz problem 2 .
Choć podejście polegające na wykrywaniu głowy i tułowia, a następnie ocenie stosunku wielkości obwiedni brzmi interesująco, widzę kilka przeszkód:
Wszystkie te problemy sugerują, że podejście stosunek głowy do tułowia również nie będzie działało idealnie, chociaż może być bardziej odporne na konkretny kontrprzykład.
Myślę, że najlepszym sposobem na wykonanie tego zadania byłoby 1) wykrycie twarzy, 2) przewidywanie wieku tylko na podstawie przycięcia twarzy (usuwa potencjalnie wprowadzające w błąd informacje). Zauważ, że niektóre architektury podobne do R-CNN korzystające z puli ROI mogłyby zostać przeszkolone do wykonywania tego typu koniec-koniec.
1 Nawet przy użyciu bardzo wyrafinowanych metod medycznych (które są prawdopodobnie o wiele bardziej pouczające niż zdjęcie osoby) nie można tego dokładnie zrobić. Zobacz ten wątek Quora, aby uzyskać więcej informacji .
2 Sprawdź artykuł Sprawy wiedzy: Znaczenie wcześniejszych informacji dla optymalizacji, na przykład, w jaki sposób przekazanie częściowej wiedzy na temat zadania może znacznie uprościć naukę.
źródło
CNN są zbyt dużą klasą modeli, aby odpowiedzieć na to pytanie. LeNet, AlexNet, ZFNet i VGG16 będą zachowywać się zupełnie inaczej niż GoogLeNet, który został zbudowany specjalnie w celu wykonywania większości tego, co robią R-CNN, z architekturą CNN (możesz znać GoogLeNet o nazwie Inception, chociaż ściśle mówiąc Inception jest po prostu podstawowa jednostka (podsieć), na której zbudowana jest GoogLeNet). Wreszcie ResNets będą zachowywać się inaczej. Wszystkie te architektury nie zostały zbudowane w celu klasyfikacji klas wiekowych, ale 1000 klas ImageNet, które nie zawierają klas wiekowych dla ludzi. Można zastosować uczenie się metodą transferu(jeśli masz wystarczającą liczbę zdjęć szkoleniowych), aby wyszkolić jeden z szeroko dostępnych modeli przeszkolonych powyżej i zobaczyć, jak działają. Zasadniczo jednak szczególnie starsze architektury (powiedzmy do VGG16) mają trudności z nauką „cech globalnych”, które wymagają poznania „głowy” (już złożonej cechy), „tułowia” (innej złożonej cechy) i ich współczynnik (co również wymaga, aby te dwie cechy były w pewnym związku przestrzennym). Tego rodzaju rzeczy powinny być w stanie zrobić Capsule Networks.
Narodziły się Convnets, aby robić dokładnie odwrotnie: być wrażliwym na lokalne cechy i stosunkowo niewrażliwym na ich względną pozycję / skalę. Dobry Convnet powinien rozpoznać „białego kota”, bez względu na to, czy jest to zdjęcie z bliska czy z amerykańskiego ujęcia. Połączenie warstw splotowych (które są wrażliwe na cechy lokalne) z warstwami pulującymi (które usuwają część wrażliwości na zmiany skali lub translację obrazu) daje architekturę, która w swojej najbardziej podstawowej formie nie jest doskonała do nauki rodzaju przestrzeni relacje między obiektami, których szukasz. Był gdzieś przykład (ale nie mogę go już znaleźć), w którym po podzieleniu obrazu kota na różne prostokątne nie nakładające się płytki i ułożeniu ich w losowej kolejności, CNN nadal identyfikowałby obraz jako
cat
. Oznacza to, że CNN są bardziej wrażliwe na cechy lokalne (tekstury lub coś w tym rodzaju) niż na relacje przestrzenne między obiektami wysokiego poziomu. Zobacz także artykuł na temat sieci Capsule, aby uzyskać trochę dyskusji na ten temat. Hinton pokazał również przykład tego w filmie o limitach sieci .Zgaduję, że jedna z najnowszych architektur byłaby w pełni zdolna (biorąc pod uwagę wystarczającą ilość danych) do odróżnienia mężczyzn od dzieci, ale nie z powodu „progu” w stosunku metrycznym między funkcjami wysokiego poziomu, takimi jak „głowa” i „tułów” . Nauczyłby się pewnej statystycznej prawidłowości, być może zupełnie niezauważalnej dla ludzi, która oddziela obrazy dorosłych od obrazów dzieci w zestawie treningowym.
źródło
Wszystko zależy od tego, jak tworzony jest zestaw danych. Z mojego doświadczenia wynika, że sieci neuronowe szukają najprostszych wyjaśnień. A wnioskowanie o wieku na podstawie tego zestawu jest w rzeczywistości prostsze niż stosowanie stosunku głowy do ciała. Jeśli możesz rozszerzyć zestaw danych, mając to na uwadze, Twój CNN powinien działać zgodnie z oczekiwaniami.
źródło