Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Niedawno wydany artykuł, co pokazuje dobrą tendencję w uczeniu maszynowym w ostatnich latach. W skrócie: w ciągu ostatnich dwóch lat liczba start-upów zajmujących się uczeniem maszynowym gwałtownie spadła.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?
Dobrze. Przyjrzyjmy się, „czy bańka pękła”, „jak dalej żyć” i porozmawiajmy o tym, skąd w ogóle wzięła się ta zawijasa.

Najpierw porozmawiajmy o tym, co było wzmocnieniem tej krzywej. Skąd ona pochodzi? Pewnie wszystko zapamiętają zwycięstwo uczenie maszynowe w 2012 roku w konkursie ImageNet. W końcu to pierwsze wydarzenie o zasięgu globalnym! Ale w rzeczywistości tak nie jest. A wzrost krzywej rozpoczyna się nieco wcześniej. Podzieliłbym to na kilka punktów.

  1. W 2008 roku pojawił się termin „big data”. Ruszyły prawdziwe produkty pojawiają się od 2010. Big data jest bezpośrednio powiązana z uczeniem maszynowym. Bez big data stabilne działanie istniejących wówczas algorytmów jest niemożliwe. I to nie są sieci neuronowe. Do 2012 r. sieci neuronowe były domeną marginalnej mniejszości. Ale potem zaczęły działać zupełnie inne algorytmy, które istniały od lat, a nawet dziesięcioleci: SVM(1963,1993), Losowy las (1995) AdaBoost (2003),... Startupy tamtych lat kojarzą się przede wszystkim z automatycznym przetwarzaniem danych strukturalnych: kasy fiskalne, użytkownicy, reklamy i wiele innych.

    Pochodną tej pierwszej fali jest zestaw frameworków takich jak XGBoost, CatBoost, LightGBM itp.

  2. W latach 2011-2012 splotowe sieci neuronowe wygrał szereg konkursów rozpoznawania obrazu. Ich faktyczne wykorzystanie było nieco opóźnione. Powiedziałbym, że w 2014 roku zaczęły pojawiać się startupy i rozwiązania o ogromnym znaczeniu. Dwa lata zajęło zrozumienie, że neurony nadal działają, stworzenie wygodnych struktur, które można zainstalować i uruchomić w rozsądnym czasie, a także opracowanie metod, które ustabilizują i przyspieszą czas konwergencji.

    Sieci konwolucyjne umożliwiły rozwiązywanie problemów widzenia komputerowego: klasyfikacja obrazów i obiektów w obrazie, wykrywanie obiektów, rozpoznawanie obiektów i ludzi, ulepszanie obrazu itp. itp.

  3. 2015-2017. Boom na algorytmy i projekty oparte na sieciach rekurencyjnych lub ich analogach (LSTM, GRU, TransformerNet itp.). Pojawiły się dobrze funkcjonujące algorytmy zamiany mowy na tekst i systemy tłumaczenia maszynowego. Częściowo opierają się na sieciach splotowych w celu wyodrębnienia podstawowych funkcji. Częściowo dlatego, że nauczyliśmy się zbierać naprawdę duże i dobre zbiory danych.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

„Czy bańka pękła? Czy szum medialny jest przesadzony? Czy umarli jako blockchain?”
W przeciwnym razie! Jutro Siri przestanie działać na Twoim telefonie, a pojutrze Tesla nie będzie już rozróżniać skrętu od kangura.

Sieci neuronowe już działają. Są w kilkudziesięciu urządzeniach. Naprawdę pozwalają zarabiać pieniądze, zmieniać rynek i otaczający Cię świat. Hype wygląda trochę inaczej:

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Tyle, że sieci neuronowe nie są już czymś nowym. Tak, wiele osób ma wysokie oczekiwania. Jednak wiele firm nauczyło się wykorzystywać neurony i wytwarzać na ich podstawie produkty. Neurony zapewniają nową funkcjonalność, pozwalają na redukcję etatów i obniżenie cen usług:

  • Firmy produkcyjne integrują algorytmy w celu analizy defektów na linii produkcyjnej.
  • Hodowle hodowlane kupują systemy kontroli krów.
  • Kombajny automatyczne.
  • Zautomatyzowane centra telefoniczne.
  • Filtry w SnapChat. (no cóż, przynajmniej coś przydatnego!)

Ale najważniejsze, a nie najbardziej oczywiste: „Nie ma już nowych pomysłów, bo inaczej nie przyniosą natychmiastowego kapitału”. Sieci neuronowe rozwiązały dziesiątki problemów. A oni zadecydują jeszcze więcej. Wszystkie oczywiste pomysły, które istniały, dały początek wielu startupom. Ale wszystko, co było na powierzchni, zostało już zebrane. Przez ostatnie dwa lata nie spotkałem się z ani jednym nowym pomysłem na wykorzystanie sieci neuronowych. Ani jednego nowego podejścia (no cóż, jest kilka problemów z sieciami GAN).

A każdy kolejny startup jest coraz bardziej złożony. Nie potrzeba już dwóch facetów, którzy trenują neuron przy użyciu otwartych danych. Wymaga programistów, serwera, zespołu markerów, kompleksowego wsparcia itp.

W rezultacie jest mniej start-upów. Ale jest więcej produkcji. Chcesz dodać funkcję rozpoznawania tablic rejestracyjnych? Na rynku działają setki specjalistów z odpowiednim doświadczeniem. Możesz kogoś zatrudnić i za kilka miesięcy Twój pracownik stworzy system. Lub kup gotowe. Ale robić nowy startup?.. Szalony!

Musisz stworzyć system śledzenia odwiedzających - po co płacić za kilka licencji, skoro możesz stworzyć własną w 3-4 miesiące, udoskonalić ją dla swojej firmy.

Obecnie sieci neuronowe podążają tą samą ścieżką, którą przeszły dziesiątki innych technologii.

Czy pamiętasz, jak od 1995 roku zmieniło się pojęcie „programisty stron internetowych”? Rynek nie jest jeszcze nasycony specjalistami. Profesjonalistów jest bardzo mało. Ale mogę się założyć, że za 5-10 lat nie będzie dużej różnicy między programistą Java a twórcą sieci neuronowej. Obu specjalistów będzie na rynku pod dostatkiem.

Będzie po prostu pewna klasa problemów, które mogą zostać rozwiązane przez neurony. Pojawiło się zadanie - zatrudnić specjalistę.

"Co dalej? Gdzie jest obiecana sztuczna inteligencja?”

Ale tu jest małe, ale ciekawe nieporozumienie :)

Stos technologii, który istnieje dzisiaj, najwyraźniej nie doprowadzi nas do sztucznej inteligencji. Pomysły i ich nowość w dużej mierze wyczerpały się. Porozmawiajmy o tym, co utrzymuje obecny poziom rozwoju.

Ograniczenia

Zacznijmy od samochodów autonomicznych. Wydaje się oczywiste, że przy dzisiejszej technologii możliwe jest wytwarzanie samochodów w pełni autonomicznych. Ale za ile lat to się stanie, nie jest jasne. Tesla wierzy, że stanie się to za kilka lat –


Jest wiele innych Eksperci, którzy szacują, że będzie to 5–10 lat.

Najprawdopodobniej, moim zdaniem, za 15 lat sama infrastruktura miast zmieni się w taki sposób, że pojawienie się samochodów autonomicznych stanie się nieuniknione i stanie się jego kontynuacją. Ale tego nie można uznać za inteligencję. Nowoczesna Tesla to bardzo złożony potok służący do filtrowania, wyszukiwania i przekwalifikowywania danych. Są to reguły-reguły-reguły, zbieranie danych i filtrowanie nad nimi (tutaj tutaj Napisałem o tym trochę więcej, czyli obejrzyjcie to znaki).

Pierwszy problem

I tu właśnie to widzimy pierwszy zasadniczy problem. Duże dane. To właśnie dało początek obecnej fali sieci neuronowych i uczenia maszynowego. W dzisiejszych czasach, aby zrobić coś złożonego i automatycznego, potrzeba dużej ilości danych. Nie tylko dużo, ale bardzo, bardzo dużo. Potrzebujemy zautomatyzowanych algorytmów do ich gromadzenia, oznaczania i wykorzystywania. Chcemy, aby samochód widział ciężarówki zwrócone w stronę słońca - najpierw musimy zebrać ich odpowiednią liczbę. Zależy nam aby auto nie zwariowało z rowerem przykręconym do bagażnika - więcej próbek.

Poza tym jeden przykład to za mało. Setki? Tysiące?

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Drugi problem

Drugi problem — wizualizacja tego, co zrozumiała nasza sieć neuronowa. To bardzo nietrywialne zadanie. Jak dotąd niewiele osób rozumie, jak to sobie wyobrazić. Artykuły te są bardzo aktualne, to tylko kilka przykładów, nawet jeśli odległych:
Wizualizacja obsesja na punkcie tekstur. Dobrze pokazuje, na czym skupia się neuron + co postrzega jako informację początkową.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?
Wizualizacja Uwaga o godz tłumaczenia. W rzeczywistości przyciąganie można często wykorzystać właśnie do pokazania, co spowodowało taką reakcję sieci. Widziałem takie rzeczy zarówno w przypadku debugowania, jak i rozwiązań produktowych. Istnieje wiele artykułów na ten temat. Jednak im bardziej złożone dane, tym trudniej jest zrozumieć, jak uzyskać solidną wizualizację.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Cóż, tak, stary dobry zestaw „zobacz, co jest w siatce filtry" Te zdjęcia były popularne 3-4 lata temu, ale wszyscy szybko zdali sobie sprawę, że są piękne, ale nie mają większego znaczenia.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Nie wspominałem o dziesiątkach innych gadżetów, metod, hacków, badań nad tym, jak wyświetlić wnętrze sieci. Czy te narzędzia działają? Czy pomagają szybko zrozumieć w czym tkwi problem i debugować sieć?.. Zdobądź ostatni procent? No to mniej więcej to samo:

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Możesz oglądać dowolne zawody na Kaggle. Oraz opis sposobu, w jaki ludzie podejmują ostateczne decyzje. Ułożyliśmy 100-500-800 jednostek modeli i zadziałało!

Oczywiście przesadzam. Jednak te podejścia nie zapewniają szybkich i bezpośrednich odpowiedzi.

Mając wystarczające doświadczenie i przeglądając różne opcje, możesz wydać werdykt, dlaczego Twój system podjął taką decyzję. Jednak skorygowanie zachowania systemu będzie trudne. Zainstaluj kulę, przesuń próg, dodaj zestaw danych, weź inną sieć zaplecza.

Trzeci problem

Trzeci podstawowy problem — siatki uczą statystyki, a nie logiki. Statystycznie to twarz:

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Logicznie rzecz biorąc, nie jest to zbyt podobne. Sieci neuronowe nie uczą się niczego skomplikowanego, chyba że są do tego zmuszone. Zawsze uczą najprostszych możliwych znaków. Czy masz oczy, nos, głowę? A więc to jest twarz! Lub podaj przykład, w którym oczy nie oznaczają twarzy. I znowu - miliony przykładów.

Na dole jest dużo miejsca

Powiedziałbym, że to właśnie te trzy globalne problemy ograniczają obecnie rozwój sieci neuronowych i uczenia maszynowego. A tam, gdzie te problemy go nie ograniczały, jest już aktywnie wykorzystywany.

To jest koniec? Czy sieci neuronowe działają?

Nieznany. Ale oczywiście wszyscy mają nadzieję, że nie.

Istnieje wiele podejść i kierunków rozwiązania podstawowych problemów, które podkreśliłem powyżej. Jednak jak dotąd żadne z tych podejść nie umożliwiło zrobienia czegoś zasadniczo nowego, rozwiązania czegoś, co nie zostało jeszcze rozwiązane. Jak dotąd wszystkie podstawowe projekty realizowane są w oparciu o podejścia stabilne (Tesla) lub pozostają projektami testowymi instytutów lub korporacji (Google Brain, OpenAI).

Z grubsza rzecz biorąc, głównym kierunkiem jest utworzenie reprezentacji danych wejściowych na wysokim poziomie. W pewnym sensie „pamięć”. Najprostszym przykładem pamięci są różne „Osadzania” – reprezentacje obrazu. Cóż, na przykład wszystkie systemy rozpoznawania twarzy. Sieć uczy się uzyskiwać z twarzy pewną stabilną reprezentację niezależną od obrotu, oświetlenia czy rozdzielczości. Zasadniczo sieć minimalizuje metrykę „różne twarze są daleko” i „identyczne twarze są blisko”.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Do takiego szkolenia potrzebne są dziesiątki i setki tysięcy przykładów. Ale wynik zawiera pewne podstawy „jednorazowego uczenia się”. Teraz nie potrzebujemy setek twarzy, żeby zapamiętać jakąś osobę. Tylko jedna twarz i to wszystko, czym jesteśmy Dowiedzmy Się!
Jest tylko jeden problem... Siatka może uczyć się tylko całkiem prostych obiektów. Próbując rozróżnić nie twarze, ale np. „ludzi po ubraniach” (zad Ponowna identyfikacja) - jakość spada o wiele rzędów wielkości. A sieć nie może już uczyć się dość oczywistych zmian kątów.

Uczenie się na milionach przykładów to także świetna zabawa.

Trwają prace nad znacznym ograniczeniem liczby wyborów. Na przykład można od razu przywołać jedno z pierwszych dzieł Nauka OneShota z Google'a:

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Takich dzieł jest wiele np 1 lub 2 lub 3.

Jest tylko jeden minus – zazwyczaj trening sprawdza się na kilku prostych, „MNISTOWYCH” przykładach. A przy przechodzeniu do skomplikowanych zadań potrzebna jest duża baza danych, model obiektów lub jakiś rodzaj magii.
Generalnie praca nad szkoleniami One-Shot to bardzo ciekawy temat. Znajdziesz mnóstwo pomysłów. Ale w większości dwa problemy, które wymieniłem (wstępne szkolenie na ogromnym zbiorze danych/niestabilność na złożonych danych) znacznie zakłócają uczenie się.

Z drugiej strony GAN – generatywne sieci kontradyktoryjne – podchodzą do tematu osadzania. Prawdopodobnie czytałeś wiele artykułów na temat Habré na ten temat. (1, 2,3)
Cechą GAN jest tworzenie pewnej wewnętrznej przestrzeni stanów (w zasadzie tego samego osadzania), która pozwala na narysowanie obrazu. To może być twarze, może być działania.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Problem z GAN polega na tym, że im bardziej złożony jest wygenerowany obiekt, tym trudniej jest go opisać w logice „generator-dyskryminator”. W rezultacie jedynymi rzeczywistymi zastosowaniami GAN, o których się słyszy, jest DeepFake, który ponownie manipuluje reprezentacjami twarzy (na co istnieje ogromna baza).

Widziałem bardzo niewiele innych przydatnych zastosowań. Zwykle jakiś trik polegający na dokańczaniu rysunków obrazków.

I jeszcze raz. Nikt nie ma pojęcia, jak to pozwoli nam wejść w lepszą przyszłość. Reprezentowanie logiki/przestrzeni w sieci neuronowej jest dobre. Ale potrzebujemy ogromnej liczby przykładów, nie rozumiemy, jak neuron sam w sobie to reprezentuje, nie rozumiemy, jak sprawić, by neuron zapamiętał jakąś naprawdę złożoną ideę.

Uczenie się przez wzmocnienie – to podejście z zupełnie innego kierunku. Na pewno pamiętacie, jak Google pokonał wszystkich w Go. Ostatnie zwycięstwa w Starcraft i Dota. Ale tutaj wszystko nie jest tak różowe i obiecujące. Najlepiej opowiada o RL i jego zawiłościach ten artykuł.

Krótko podsumowując to co napisał autor:

  • Modele gotowe do użycia w większości przypadków nie pasują/działają słabo
  • Praktyczne problemy łatwiej rozwiązać innymi sposobami. Boston Dynamics nie używa RL ze względu na jego złożoność/nieprzewidywalność/złożoność obliczeniową
  • Aby RL działał, potrzebujesz złożonej funkcji. Tworzenie/pisanie jest często trudne
  • Modele trudne do trenowania. Trzeba spędzić dużo czasu, żeby się napompować i wyjść z lokalnych optimów
  • W efekcie trudno jest powtórzyć model, model jest niestabilny przy najmniejszych zmianach
  • Często przesadza z niektórymi losowymi wzorcami, nawet z generatorem liczb losowych

Kluczową kwestią jest to, że RL nie działa jeszcze w produkcji. Google ma kilka eksperymentów ( 1, 2 ). Ale nie widziałem jednego systemu produktów.

Pamięć. Minusem wszystkiego, co opisano powyżej, jest brak struktury. Jednym ze sposobów uporządkowania tego wszystkiego jest zapewnienie sieci neuronowej dostępu do oddzielnej pamięci. Żeby mogła tam rejestrować i przepisywać rezultaty swoich kroków. Następnie sieć neuronową można określić na podstawie aktualnego stanu pamięci. Jest to bardzo podobne do klasycznych procesorów i komputerów.

Najbardziej znany i popularny artykuł — z DeepMind:

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Wydaje się, że to jest klucz do zrozumienia inteligencji? Ale prawdopodobnie nie. System w dalszym ciągu wymaga ogromnej ilości danych do szkolenia. Działa głównie z ustrukturyzowanymi danymi tabelarycznymi. Co więcej, gdy Facebook zdecydowany podobny problem, potem wybrali ścieżkę „zaburzyć pamięć, po prostu sprawić, by neuron był bardziej skomplikowany i mieć więcej przykładów – a będzie się uczył sam”.

Rozwikłanie. Innym sposobem na stworzenie znaczącej pamięci jest przyjmowanie tych samych osadzań, ale w trakcie treningu wprowadzaj dodatkowe kryteria, które pozwolą ci uwypuklić w nich „znaczenia”. Na przykład chcemy wytrenować sieć neuronową, aby rozróżniała zachowania ludzi w sklepie. Gdybyśmy podążali standardową ścieżką, musielibyśmy stworzyć kilkanaście sieci. Jedno szuka osoby, drugie określa, czym się zajmuje, trzecie to jej wiek, czwarte to jego płeć. Oddzielna logika sprawdza część sklepu, w której to robi/jest do tego przeszkolona. Trzeci określa jego trajektorię itp.

Lub, gdyby istniała nieskończona ilość danych, wówczas możliwe byłoby wytrenowanie jednej sieci pod kątem wszystkich możliwych wyników (oczywiście takiej tablicy danych nie da się zebrać).

Podejście rozplątujące mówi nam - wytrenujmy sieć tak, aby sama potrafiła rozróżniać pojęcia. Tak, aby stanowiło to osadzenie oparte na filmie, gdzie jeden obszar określałby akcję, drugi określałby położenie na podłodze w czasie, określałby wzrost osoby i określałby płeć osoby. Jednocześnie, na szkoleniach, chciałbym niemal nie podsuwać sieci takich kluczowych pojęć, a raczej, żeby wyróżniała i grupowała obszary. Takich artykułów jest sporo (niektóre z nich 1, 2, 3) i w ogóle są one dość teoretyczne.

Ale ten kierunek, przynajmniej teoretycznie, powinien obejmować problemy wymienione na początku.

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Rozkład obrazu według parametrów „kolor ściany/kolor podłogi/kształt obiektu/kolor obiektu/etc.”

Czy bańka uczenia maszynowego pękła, czy może jest to początek nowego świtu?

Rozkład twarzy według parametrów „rozmiar, brwi, orientacja, kolor skóry itp.”

inny

Istnieje wiele innych, mniej globalnych obszarów, które pozwalają w jakiś sposób zredukować bazę danych, pracować z bardziej heterogenicznymi danymi itp.

Uwaga. Prawdopodobnie nie ma sensu oddzielać tego jako osobnej metody. Po prostu podejście, które ulepsza innych. Wiele artykułów jest mu poświęconych (1,2,3). Celem uwagi jest wzmocnienie reakcji sieci szczególnie na istotne obiekty podczas uczenia. Często przez jakiś zewnętrzny cel lub małą sieć zewnętrzną.

Symulacja 3D. Jeśli zrobisz dobry silnik 3D, często możesz pokryć nim 90% danych treningowych (widziałem nawet przykład, w którym prawie 99% danych zostało objętych dobrym silnikiem). Istnieje wiele pomysłów i trików, jak sprawić, by sieć wyszkolona na silniku 3D działała przy użyciu rzeczywistych danych (dostrajanie, transfer stylu itp.). Często jednak stworzenie dobrego silnika jest o kilka rzędów wielkości trudniejsze niż zebranie danych. Przykłady kiedy wykonano silniki:
Szkolenie robotów (google, ogród mózgów)
szkolenie uznanie towary w sklepie (ale w dwóch projektach, które zrobiliśmy, z łatwością obeszliśmy się bez tego).
Szkolenie w Tesli (ponownie film powyżej).

odkrycia

Cały artykuł to w pewnym sensie wnioski. Prawdopodobnie głównym przesłaniem, jakie chciałem przekazać, było: „Skończyły się gratisy, neurony nie zapewniają już prostych rozwiązań”. Teraz musimy ciężko pracować, aby podejmować złożone decyzje. Lub ciężko pracuj, przeprowadzając złożone badania naukowe.

Generalnie temat jest dyskusyjny. Może czytelnicy mają ciekawsze przykłady?

Źródło: www.habr.com

Dodaj komentarz