Wąskie gardło stosowania głębokiego uczenia się w praktyce

9

Po przeczytaniu wielu artykułów do głębokiego uczenia się, rodzajem szorstkiego odczucia jest to, że istnieje wiele sztuczek w szkoleniu sieci, aby uzyskać lepszą niż zwykle wydajność. Z punktu widzenia aplikacji branżowych bardzo trudno jest opracować tego rodzaju sztuczki, z wyjątkiem elitarnych grup badawczych w dużych firmach technologicznych, np. Google lub facebook. Więc jaki jest najlepszy sposób na zastosowanie algorytmów głębokiego uczenia w praktyce. Wszelkie uwagi i sugestie będą mile widziane.

użytkownik3269
źródło

Odpowiedzi:

9

To prawda, że ​​niektóre szczegóły użyte do poprawy wydajności są uważane za sztuczki i nie zawsze będziesz wiedział, czy te sztuczki dają takie samo ulepszenie dla twoich danych i sieci.

Niektóre rzeczy, których na pewno będziesz potrzebować:

  • Dane , dużo
  • Procesory graficzne pozwalają szybciej przeprowadzać eksperymenty i wypróbowywać więcej rzeczy w krótszym czasie.
  • Analiza krzywej uczenia się. Ostatecznie sprowadza się to do wydajności zestawu testowego, ale patrząc na metrykę pociągu i testu można zidentyfikować przyczyny złej wydajności. Mocne nastawienie? Przepełnianie ze zbyt wielu ukrytych węzłów?
  • Funkcja aktywacji . Nie sądzę, że liczy się sztuczka, aby wiedzieć, jakiej funkcji aktywacji potrzebujesz. ReLU mają charakter krytyczny, ponieważ nie nasycają się jak sigmoidy i tanh. Neuron z ReLU będzie miał wyjście podobne do prawdopodobieństwa, ale i tak nie potrzebujesz tego dla neuronów w warstwach średniego poziomu. Zaletą jest ograniczenie znikania lub eksplozji gradientów i przyspieszenie konwergencji.
  • Uregulowanie . Może się to przydać jako sztuczka, ale jeśli korzystasz z którejkolwiek z głównych bibliotek do głębokiego uczenia się, możesz uzyskać gotowe implementacje do uregulowania poprzez rezygnację.
  • Zwiększanie danych Zasadniczo rozszerzasz swój zestaw danych syntetycznie, bez dodatkowych kosztów ręcznych adnotacji. Kluczem jest powiększenie danych za pomocą transformacji, które mają sens. Aby sieć mogła zobaczyć warianty danych, które może napotkać w fazie testowej lub po wdrożeniu w produkcie. W przypadku danych wizualnych przerzucanie w poziomie jest trywialne i zapewnia wiele korzyści. Jitter prawdopodobnie zależy od rodzaju danych i tego, jak głośny jest.
  • Nurkowanie w eksploracji hiperparametrów może być frustrujące. Zacznij od małych sieci i prostych procedur szkoleniowych. Mniejsze sieci szybciej trenują. Dodaj więcej warstw, gdy zobaczysz oznaki przeregulowania.
  • Dobra inicjalizacja . Losowa inicjalizacja jest odpowiednia do oceny zdolności sieci do konwergencji, ale niekoniecznie doprowadzi do optymalnej wydajności. Jednocześnie ciągłe powtarzanie może doprowadzić do niedopasowania sieci do danych szkoleniowych. Jeśli to możliwe, użyj wstępnie przeszkolonej sieci, która nauczyła się już reprezentacji i dostosuj ją do swojego zestawu danych. Bezobsługowy trening przedtreningowy to kolejna droga, która może pozwolić na rozpoczęcie nadzorowanej procedury treningowej od znacznie bardziej obiecującej pozycji w przestrzeni wagowej.
  • Lustrowaćwydziwianie. Zrozum, co naprawdę robi sztuczka. Artykuł opisujący mały szczegół, który został wykorzystany do poprawy wydajności sieci, skoncentruje się na tym nowym aspekcie. Artykuł może stanowić część szeregu projektów, nad którymi pracowali autorzy. Kontekst sztuczki może nie zawsze być od razu jasny, ale dla autorów nie jest to sztuczka, ale technika, która rozwiązuje problem, który mieli. Czasami pojawia się technika, która jest traktowana jako sztuczka, a później ktoś przeanalizuje jej wpływ i określi jej funkcję. Na przykład, że ta sztuczka jest równoważna z regularyzacją L2, którą zna więcej osób. Możemy zdecydować, czy powinniśmy wypróbować tę nową technikę, czy trzymać się regularyzacji L2, o której już wiemy. Wiele z tych sztuczek próbuje rozwiązać problemy w głębokim uczeniu się, takie jak ryzyko nadmiernego dopasowania, kosztowne obliczenia, nadmierna parametryzacja i wysoce zbędne wagi. Warto poświęcić czas na zrozumienie, co naprawdę robią te sztuczki. Rozumiejąc problem, który próbują rozwiązać, możemy ocenić przydatność różnych sztuczek i wybrać ten, który działa dobrze z ograniczeniami, które możemy mieć (np. Mała moc obliczeniowa, mały zestaw danych)
ypx
źródło
2

Oto interesująca książka Neural Networks: Tricks of the Trade , zaktualizowana wersja książki z 2012 roku. Wiele artykułów autorstwa niektórych z pionierów sieci neuronowych.

Ypx wspaniale poruszył wiele praktycznych zagadnień związanych ze szkoleniem, więc aby poruszyć inne poruszone kwestie: wiele elitarnych laboratoriów przemysłowych wciąż publikuje swoje wyniki. Na przykład zespół Microsoft Research właśnie wygrał ImageNet 2015 i wydał raport techniczny opisujący ich nowy moduł głębokiej sieci: Deep Residual Learning for Image Recognition , zespół Google również opublikował architekturę Inception, Going Deeper with Convolutions . W nietrywialnym stopniu nadal istnieje kultura uczenia maszynowego (na razie) dzielenia się dużymi innowacjami. Być może dlatego, że kluczem jest dostęp do danych. Google i Facebook mają po prostu dostęp do danych, których my nie mamy. Trudno powiedzieć, ile przypisuje się surowym innowacjom algorytmicznym, a ile ogromnej ilości danych.

Co się stanie w przyszłości? Ciężko powiedzieć. Jest to problem, który wiele osób poruszyło, biorąc pod uwagę, jak cenne stały się te firmy oparte na danych i jak konkurencyjny jest rynek. Ale na razie uważam, że istnieje wystarczająca równowaga między tym, co przemysłowe laboratoria badawcze dzielą, a czego nie. Rozumiem, że nie udostępniają dokładnej implementacji kodu. Ale dzielą się kilkoma nowatorskimi innowacjami.

Znajdź badaczy, którzy publikują ważne wyniki i czytają, czytają, czytają. Wierzę w AMA Yanna LeCuna na Reddit, który wspomniał, że jest żarłocznym czytelnikiem. Uważam, że to jest najważniejsze. W zakresie, w jakim jest to praktyczne, spróbuj odtworzyć ich testy porównawcze lub zastosować ich metodę do zestawu danych, który mieści się w Twoim budżecie.

Myślę, że bez względu na to, gdzie jesteś i jaka jest Twoja stacja życiowa, jest to najlepszy sposób, aby zachować czujność i nadal rozwijać swoje umiejętności. Bądź żarłocznym czytelnikiem, wdrażaj rzeczy i buduj intuicję. Osobiście nie mam zasobów, aby brać udział w konkursach ImageNet, ale przeczytanie wszystkich artykułów grupy ImageNet, które osiągnęły najlepsze wyniki, bardzo mi pomogło.

Indie AI
źródło