Dziecko w wieku 2 lat potrzebuje około 5 egzemplarzy samochodu, aby móc je zidentyfikować z rozsądną dokładnością niezależnie od koloru, marki itp. Gdy mój syn miał 2 lata, był w stanie zidentyfikować tramwaje i pociągi, mimo że widział tylko kilka. Ponieważ zwykle mylił się ze sobą, najwyraźniej jego sieć neuronowa nie była wystarczająco wyszkolona, ale nadal.
Czego brakuje sztucznych sieci neuronowych, które uniemożliwiają im szybszą naukę? Czy nauka transferu jest odpowiedzią?
neural-networks
neuroscience
Marcin
źródło
źródło
Odpowiedzi:
Przestrzegam przed oczekiwaniem silnego podobieństwa między biologicznymi i sztucznymi sieciami neuronowymi. Myślę, że nazwa „sieci neuronowe” jest nieco niebezpieczna, ponieważ skłania ludzi do oczekiwania, że procesy neurologiczne i uczenie maszynowe powinny być takie same. Różnice między biologicznymi i sztucznymi sieciami neuronowymi przeważają nad podobieństwami.
Jako przykład tego, jak może się to nie udać, możesz również obrócić rozumowanie w oryginalnym poście na głowie. Możesz trenować sieć neuronową, aby nauczyć się rozpoznawać samochody po południu, pod warunkiem, że masz dość szybki komputer i pewną ilość danych treningowych. Możesz sprawić, że będzie to zadanie binarne (samochód / nie samochód) lub zadanie wielozadaniowe (samochód / tramwaj / rower / samolot / łódź) i nadal będziesz mieć pewność sukcesu.
Z drugiej strony nie spodziewałbym się, że dziecko będzie mogło wybrać samochód w ciągu dnia - a nawet tygodnia - po urodzeniu, nawet po tym, jak zobaczyło „tak wiele przykładów treningu”. Coś wyraźnie różni się między dwulatkiem a niemowlęciem, co tłumaczy różnicę w zdolnościach uczenia się, podczas gdy sieć neuronowa klasyfikacji obrazów waniliowych jest w pełni zdolna do przechwycenia klasyfikacji obiektów natychmiast po „urodzeniu”. Myślę, że istnieją dwie ważne różnice: (1) względna ilość dostępnych danych szkoleniowych i (2) mechanizm samokształcenia, który rozwija się w czasie z powodu dużej ilości danych szkoleniowych.
Oryginalny post przedstawia dwa pytania. W tytule i treści pytania pytamy, dlaczego sieci neuronowe potrzebują „tylu przykładów”. W porównaniu z doświadczeniem dziecka sieci neuronowe wyszkolone przy użyciu wspólnych testów porównawczych obrazu mają stosunkowo niewiele danych.
Ponownie sformułuję pytanie w tytule na
„W jaki sposób szkolenie sieci neuronowej dla wspólnego testu porównawczego obrazu porównuje i kontrastuje z doświadczeniami uczenia się dziecka?”
Dla porównania rozważę dane CIFAR-10, ponieważ jest to wspólny test porównawczy obrazu. Część oznaczona składa się z 10 klas obrazów z 6000 obrazów na klasę. Każdy obraz ma wymiary 32 x 32 pikseli. Jeśli w jakiś sposób ułożysz oznaczone zdjęcia z CIFAR-10 i nagrałeś standardowy film z 48 klatkami na sekundę, będziesz miał około 20 minut materiału.
Dziecko w wieku 2 lat, które obserwuje świat przez 12 godzin dziennie, ma około 263000 minut (ponad 4000 godzin) bezpośrednich obserwacji świata, w tym informacji zwrotnych od dorosłych (etykiety). (Są to tylko figury na boisku - nie wiem, ile minut typowy dwulatek spędził na obserwowaniu świata.) Co więcej, dziecko będzie miało kontakt z wieloma, wieloma przedmiotami poza 10 klasami, które obejmują CIFAR- 10
W grze jest więc kilka rzeczy. Jednym z nich jest to, że dziecko ma kontakt z większą ilością danych i bardziej zróżnicowanym źródłem danych niż model CIFAR-10. Różnorodność danych i ich objętość są ogólnie uznawane za warunki wstępne dla solidnych modeli. W tym świetle nie wydaje się zaskakujące, że sieć neuronowa jest gorsza w tym zadaniu niż dziecko, ponieważ sieć neuronowa wyuczona na CIFAR-10 jest pozytywnie głodna pod względem danych treningowych w porównaniu z dwulatkiem. Rozdzielczość obrazu dostępna dla dziecka jest lepsza niż dla obrazów CIFAR-10 32x32, dzięki czemu dziecko może uzyskać informacje na temat drobnych szczegółów obiektów.
Porównanie CIFAR-10 z dwuletnim nie jest idealne, ponieważ model CIFAR-10 prawdopodobnie będzie trenowany z wieloma przejściami po tych samych statycznych obrazach, podczas gdy dziecko zobaczy, używając widzenia obuocznego, jak obiekty są ułożone w trzy -wymiarowy świat poruszający się z różnymi warunkami oświetleniowymi i perspektywami na te same obiekty.
Anegdota o dziecku OP pociąga za sobą drugie pytanie:
„Jak sieci neuronowe mogą stać się samoukami?”
Dziecko ma talent do samokształcenia, dzięki czemu z czasem można dodawać nowe kategorie przedmiotów bez konieczności rozpoczynania od nowa.
Uwaga OP na temat uczenia się przez transfer określa jeden rodzaj adaptacji modelu w kontekście uczenia maszynowego.
W komentarzach inni użytkownicy zwracali uwagę, że uczenie się jednym i kilkoma strzałami * to kolejny obszar badań nad uczeniem maszynowym.
Ponadto uczenie się o wzmocnieniu odnosi się do modeli samokształceniowych z innej perspektywy, zasadniczo umożliwiając robotom eksperymentowanie metodą prób i błędów w celu znalezienia optymalnych strategii rozwiązywania określonych problemów (np. Gry w szachy).
Prawdopodobnie prawdą jest, że wszystkie trzy z tych paradygmatów uczenia maszynowego są związane z poprawą sposobu, w jaki maszyny dostosowują się do nowych zadań widzenia komputerowego. Szybkie dostosowywanie modeli uczenia maszynowego do nowych zadań jest aktywnym obszarem badań. Ponieważ jednak praktyczne cele tych projektów (identyfikacja nowych przypadków złośliwego oprogramowania, rozpoznawanie oszustów na zdjęciach paszportowych, indeksowanie Internetu) i kryteria sukcesu różnią się od celów dziecka uczącego się o świecie, a fakt, że jest on realizowany komputer wykorzystujący matematykę, a drugi wykonany w materiale organicznym za pomocą chemii, bezpośrednie porównania między nimi pozostaną obarczone.
Nawiasem mówiąc, interesujące byłoby zbadanie, jak odwrócić problem CIFAR-10 i wytrenowanie sieci neuronowej w rozpoznawaniu 6000 obiektów z 10 przykładów każdego z nich. Ale nawet to nie byłoby uczciwe porównanie do 2-latka, ponieważ nadal istniałaby duża rozbieżność w całkowitej objętości, różnorodności i rozdzielczości danych treningowych.
* Obecnie nie mamy tagów do nauki za jednym podejściem lub za pomocą kilku ćwiczeń.
źródło
Po pierwsze, w wieku dwóch lat dziecko wie dużo o świecie i aktywnie stosuje tę wiedzę. Dziecko często „przenosi naukę”, stosując tę wiedzę do nowych koncepcji.
Po drugie, zanim zobaczy pięć „oznakowanych” przykładów samochodów, dziecko widzi wiele samochodów na ulicy, w telewizji, samochodach z zabawkami itp., Więc wcześniej dzieje się też wiele „nauki bez nadzoru”.
Wreszcie sieci neuronowe nie mają prawie nic wspólnego z ludzkim mózgiem, więc porównywanie ich nie ma większego sensu. Zauważ też, że istnieją algorytmy uczenia się za jednym zamachem, i obecnie odbywa się prawie wiele badań.
źródło
Jednym z głównych aspektów, którego nie widzę w obecnych odpowiedziach, jest ewolucja .
Mózg dziecka nie uczy się od zera. Podobnie jest z pytaniem, w jaki sposób jelenie i żyrafy mogą chodzić kilka minut po urodzeniu. Ponieważ rodzą się z mózgami już przygotowanymi do tego zadania. Oczywiście konieczne jest pewne dostrajanie, ale młode jelenie nie uczą się chodzić po „losowej inicjalizacji”.
Podobnie z faktem, że istnieją duże ruchome obiekty, które należy śledzić, to coś, z czego się rodzimy.
Myślę więc, że założenie tego pytania jest po prostu fałszywe. Ludzkie sieci neuronowe miały okazję zobaczyć tony - może nie samochodów, ale - poruszających się, obracających się obiektów 3D o trudnych teksturach i kształtach itp., Ale działo się to przez wiele pokoleń, a nauka odbywała się za pomocą algorytmów ewolucyjnych, tj. Tych, których mózg był lepiej skonstruowany do tego zadania, mógł żyć z większą szansą na reprodukcję, pozostawiając kolejnej generacji lepsze i lepsze okablowanie mózgu od samego początku.
źródło
Niewiele wiem o sieciach neuronowych, ale wiem trochę o dzieciach.
Wielu dwulatków ma wiele problemów z tym, jak powinny wyglądać ogólne słowa. Na przykład w tym wieku dzieci używają „psa” w przypadku czworonożnego zwierzęcia. To trudniejsze rozróżnienie niż „samochód” - wystarczy pomyśleć, jak pudel wygląda inaczej niż na przykład wielki Duńczyk, a mimo to obaj są „psami”, a kot nie.
A dziecko w wieku 2 lat widziało wiele więcej niż 5 przykładów „samochodu”. Dziecko widzi dziesiątki, a nawet setki przykładów samochodów za każdym razem, gdy rodzina jedzie na przejażdżkę. I wielu rodziców komentuje „spójrz na samochód” dużo więcej niż 5 razy. Ale dzieci mogą również myśleć w sposób, o którym im nie powiedziano. Na przykład na ulicy dziecko widzi wiele rzeczy w szeregu. Jego tata mówi (jednego) „spójrz na błyszczący samochód!” a dziecko myśli: „może te wszystkie inne rzeczy w szeregu to także samochody?”
źródło
To fascynujące pytanie, nad którym również dużo się zastanawiałem, i może wyjaśnić kilka powodów.
źródło
Pojęcie „instancji” łatwo staje się mętne. Podczas gdy dziecko mogło zobaczyć 5 wyjątkowych egzemplarzy samochodu, w rzeczywistości widział tysiące tysięcy ramek w wielu różnych środowiskach. Prawdopodobnie widzieli samochody w innych kontekstach. Mają też intuicję dla świata fizycznego rozwijanego przez całe życie - pewnie dzieje się tutaj pewna nauka transferowa. A jednak podsumowujemy to wszystko w „5 przypadkach”.
Tymczasem każda pojedyncza klatka / obraz przekazywany do CNN jest uważany za „przykład”. Jeśli zastosujesz spójną definicję, oba systemy naprawdę wykorzystują znacznie podobną ilość danych szkoleniowych.
Chciałbym również zauważyć, że splotowe sieci neuronowe - CNN - są bardziej przydatne w wizji komputerowej niż ANN i faktycznie zbliżają się do ludzkiej wydajności w zadaniach takich jak klasyfikacja obrazów. Głębokie uczenie się (prawdopodobnie) nie jest panaceum, ale sprawdza się znakomicie w tej dziedzinie.
źródło
Jak zauważyli inni, wydajność danych sztucznych sieci neuronowych różni się dość znacząco, w zależności od szczegółów. W rzeczywistości istnieje wiele tak zwanych metod uczenia się jednym strzałem, które mogą rozwiązać zadanie znakowania tramwajów z dość dobrą dokładnością, przy użyciu tylko jednej próbki oznakowanej.
Jednym ze sposobów na to jest tak zwane uczenie się przez transfer; sieć wyszkolona w zakresie innych etykiet jest zazwyczaj bardzo skutecznie przystosowalna do nowych etykiet, ponieważ ciężka praca w rozsądny sposób rozkłada komponenty obrazu niskiego poziomu.
Nie potrzebujemy jednak takich oznakowanych danych, aby wykonać takie zadanie; podobnie jak dzieci nie potrzebują prawie tyle samo oznakowanych danych, co sieci neuronowe, o których myślisz.
Na przykład jedną z takich nienadzorowanych metod, którą z powodzeniem zastosowałem również w innych kontekstach, jest zrobienie nieznakowanego zestawu obrazów, losowe obracanie ich i wyszkolenie sieci, aby przewidzieć, która strona obrazu jest „w górę”. Nie wiedząc, czym są widoczne obiekty ani jak się je nazywa, zmusza to sieć do uczenia się ogromnej ilości struktur na temat obrazów; i może to stanowić doskonałą podstawę do bardziej efektywnego, opartego na danych uczenia się w dalszej kolejności.
Chociaż prawdą jest, że sztuczne sieci różnią się od rzeczywistych pod prawdopodobnie znaczącymi względami, takimi jak brak oczywistego analogu propagacji wstecznej, bardzo prawdopodobne jest, że prawdziwe sieci neuronowe wykorzystują te same sztuczki, próbując nauczyć się struktura danych sugerowana przez niektóre proste priorytety.
Innym przykładem, który prawie na pewno odgrywa rolę u zwierząt i który również okazał się bardzo obiecujący w zrozumieniu wideo, jest założenie, że przyszłość powinna być przewidywalna z przeszłości. Rozpoczynając od tego założenia, możesz wiele nauczyć sieci neuronowej. Lub na poziomie filozoficznym jestem skłonny wierzyć, że to założenie leży u podstaw prawie wszystkiego, co uważamy za „wiedzę”.
Nie mówię tu nic nowego; ale jest stosunkowo nowy w tym sensie, że możliwości te są zbyt młode, aby znaleźć jeszcze wiele aplikacji, i nie spoglądają jeszcze na podręcznikowe zrozumienie „tego, co może zrobić ANN”. Tak więc, aby odpowiedzieć na pytanie PO; ANN zastąpiły już większość opisywanej luki.
źródło
Jednym ze sposobów trenowania głębokiej sieci neuronowej jest potraktowanie jej jako stosu auto-koderów ( Restricted Boltzmann Machines ).
Teoretycznie auto-koder uczy się w sposób nienadzorowany: pobiera dowolne, nieznakowane dane wejściowe i przetwarza je w celu wygenerowania danych wyjściowych. Następnie pobiera te dane wyjściowe i próbuje ponownie wygenerować swoje dane wejściowe. Poprawia parametry swoich węzłów, dopóki nie będzie w stanie zbliżyć danych w obie strony. Jeśli się nad tym zastanowić, auto-enkoder pisze własne automatyczne testy jednostkowe. W efekcie przekształca „nieznakowane dane wejściowe” w dane oznaczone : Oryginalne dane służą jako etykieta danych w obie strony.
Po przeszkoleniu warstw automatycznych koderów sieć neuronowa jest dostrajana za pomocą oznaczonych danych w celu spełnienia zamierzonej funkcji. W efekcie są to testy funkcjonalne.
Oryginalny plakat pyta, dlaczego potrzeba dużo danych, aby wyszkolić sztuczną sieć neuronową, i porównuje to z rzekomo małą ilością danych treningowych potrzebnych dwuletniemu człowiekowi. Oryginalny plakat porównuje jabłka do pomarańczy: Ogólny proces treningu sztucznej sieci neuronowej w porównaniu z dopracowaniem z etykietami dla dwulatka.
Ale w rzeczywistości dwulatek od ponad dwóch lat trenuje swoje automatyczne kodery na losowych, oznakowanych danych. Niemowlęta śnią, gdy są w macicy . (Podobnie jak kocięta.) Naukowcy opisali te sny jako związane z przypadkowymi wyrzutami neuronów w ośrodkach przetwarzania wzrokowego.
źródło
Nie uczymy się „widzieć samochodów”, dopóki nie nauczymy się widzieć
Zajmuje to dość dużo czasu i wielu przykładów, aby dziecko nauczyło się widzieć przedmioty jako takie. Następnie dziecko może nauczyć się identyfikować określony typ obiektu na podstawie zaledwie kilku przykładów. Jeśli porównasz dwuletnie dziecko z systemem uczenia się, który dosłownie zaczyna się od pustej tablicy, to porównanie jabłek i pomarańczy; w tym wieku dziecko widziało tysiące godzin „materiału wideo”.
W podobny sposób potrzeba sztucznej sieci neuronowej wielu przykładów, aby nauczyć się „jak widzieć”, ale potem można przenieść tę wiedzę na nowe przykłady. Uczenie się przez przeniesienie to cała dziedzina uczenia maszynowego, a rzeczy takie jak „uczenie się jednym strzałem” są możliwe - możesz budować ANN, które nauczą się identyfikować nowe typy obiektów, których nie widział wcześniej z jednego przykładu, lub identyfikować konkretna osoba z jednego zdjęcia ich twarzy. Ale wykonanie tej wstępnej części „uczenie się patrzeć” wymaga sporo danych.
Co więcej, istnieją pewne dowody na to, że nie wszystkie dane treningowe są równe, a mianowicie, że dane, które „wybierasz” podczas uczenia się, są bardziej skuteczne niż dane, które są po prostu dostarczane. Np. Eksperyment z kotkami bliźniakami Held & Hein. https://www.lri.fr/~mbl/ENS/FONDIHM/2013/papers/about-HeldHein63.pdf
źródło
Jednej rzeczy, której do tej pory nie widziałem w odpowiedziach, jest fakt, że jedna „instancja” obiektu świata rzeczywistego widziana przez ludzkie dziecko nie odpowiada instancji w kontekście szkolenia NN.
Załóżmy, że stoisz na skrzyżowaniu z pięcioletnim dzieckiem i obserwujesz, jak 5 pociągów mija w ciągu 10 minut. Teraz możesz powiedzieć: „Moje dziecko widziało tylko 5 pociągów i może niezawodnie identyfikować inne pociągi, podczas gdy NN potrzebuje tysięcy zdjęć!”. Chociaż jest to prawdopodobnie prawda, całkowicie ignorujesz fakt, że każdy pociąg, który widzi Twoje dziecko, zawiera DUŻO więcej informacji niż pojedynczy obraz pociągu. W rzeczywistości mózg twojego dziecka przetwarza kilkadziesiąt zdjęć pociągu na sekundę podczas przejazdu, każdy pod nieco innym kątem, z różnymi cieniami itp., Podczas gdy pojedynczy obraz dostarczy NN bardzo ograniczonych informacji. W tym kontekście Twoje dziecko ma nawet informacje, które nie są dostępne dla NN, na przykład prędkość pociągu lub dźwięk wydawany przez pociąg.
Co więcej, Twoje dziecko może mówić i ZADAĆ PYTANIA! „Pociągi są bardzo długie, prawda?” „Tak.”, „I one też są bardzo duże, prawda?” "Tak.". Dzięki dwóm prostym pytaniom Twoje dziecko nauczy się dwóch bardzo istotnych funkcji w mniej niż minutę!
Kolejnym ważnym punktem jest wykrywanie obiektów. Twoje dziecko jest w stanie natychmiast zidentyfikować, na którym obiekcie, tj. Na której części obrazu musi się skupić, podczas gdy NN musi nauczyć się wykrywać odpowiedni obiekt, zanim będzie mógł go sklasyfikować.
źródło
Twierdziłbym, że wydajność nie jest tak różna, jak można się spodziewać, ale zadajesz świetne pytanie (patrz ostatni akapit).
Jak wspomniałeś, uczenie się przez przeniesienie: Aby porównać jabłka z jabłkami, musimy sprawdzić, ile zdjęć w sumie i ile zdjęć klasy zainteresowań „widzi” człowiek / sieć neuronowa.
1. Na ile zdjęć patrzy człowiek?
Ruch oka człowieka zajmuje około 200 ms, co można uznać za rodzaj „zdjęcia biologicznego”. Zobacz wykład eksperta od wizji komputerowej Fei-Fei Li: https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures#t-362785 .
Ona dodaje:
W ImageNet, wiodącej bazie danych do wykrywania obiektów, znajduje się około 14 milionów zdjęć z etykietami . Sieć neuronowa trenowana w ImageNet zobaczyłaby tyle zdjęć, co 14000000/5/60/60/24 * 2–64-dniowe dziecko, czyli dwa miesiące (zakładając, że dziecko nie śpi połowę swojego życia). Szczerze mówiąc, trudno powiedzieć, ile z tych zdjęć jest oznaczonych. Co więcej, zdjęcia, jak widzi dziecko, nie są tak różnorodne, jak w ImageNet. (Prawdopodobnie dziecko widzi, że jej matka ma czas, ...;). Uważam jednak, że uczciwie jest powiedzieć, że twój syn widział setki milionów zdjęć (a następnie stosuje naukę transferu).
Ile zdjęć potrzebujemy nauczyć się nowej kategorii, mając solidną bazę powiązanych zdjęć, z których można się (przenosić) uczyć?
Pierwszy znaleziony post na blogu to: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html . Używają 1000 przykładów na klasę. Mogłem sobie wyobrazić, że 2,5 roku później potrzeba nawet o wiele mniej. Jednak 1000 zdjęć może zobaczyć człowiek w 1000/5/60 w 3,3 minuty.
Napisałeś:
Byłoby to równoznaczne z czterdziestoma sekundami na instancję (z różnymi kątami tego obiektu, aby był porównywalny).
Podsumowując: Jak wspomniałem, musiałem poczynić kilka założeń. Ale myślę, że widać, że wydajność nie różni się tak, jak można się spodziewać.
Uważam jednak, że zadajesz świetne pytanie i oto dlaczego:
2. Czy sieć neuronowa działałaby lepiej / inaczej, gdyby działała bardziej jak mózg? (Geoffrey Hinton mówi tak).
W wywiadzie https://www.wired.com/story/googles-ai-guru-computers-think-more-like-brains/ pod koniec 2018 r. Porównuje obecne wdrożenia sieci neuronowych z mózgiem. Wspomina, pod względem wag, sztuczne sieci neuronowe są mniejsze niż mózg 10 000 razy. Dlatego mózg potrzebuje znacznie mniej iteracji treningów. Aby umożliwić sztuczne sieci neuronowe, aby działały bardziej jak nasze mózgi, podąża za innym trendem sprzętowym, brytyjskim startupem o nazwie Graphcore. Skraca czas obliczeń dzięki inteligentnemu sposobowi przechowywania ciężarów sieci neuronowej. Dlatego też można zastosować więcej ciężarów, a czas szkolenia sztucznych sieci neuronowych może ulec skróceniu.
źródło
Jestem w tym ekspertem. Jestem człowiekiem, byłem dzieckiem, mam samochód i wykonuję sztuczną inteligencję.
Powodem, dla którego dzieci wybierają samochody z dużo bardziej ograniczonymi przykładami, jest intuicja. Ludzki mózg ma już struktury do radzenia sobie z obrotami 3D. Są też dwoje oczu, które zapewniają paralaksę do mapowania głębokości, co naprawdę pomaga. Możesz intuicyjnie między samochodem a obrazem samochodu, ponieważ obraz nie ma rzeczywistej głębi. Hinton (badacz AI) zaproponował koncepcję sieci kapsułowych, która byłaby w stanie poradzić sobie z tym bardziej intuicyjnie. Niestety w przypadku komputerów dane szkoleniowe to (zwykle) obrazy 2D, tablice płaskich pikseli. Aby nie zmieścić się w zbyt dużym rozmiarze, wymagana jest duża ilość danych, więc uogólnienie orientacji samochodów na zdjęciach jest uogólnione. Mały mózg może to zrobić już i może rozpoznać samochód w dowolnej orientacji.
źródło