Ile danych do głębokiego uczenia się?

10

Uczę się o głębokim uczeniu się (w szczególności CNN) i o tym, jak zwykle wymaga ogromnej ilości danych, aby zapobiec nadmiernemu dopasowaniu. Jednak powiedziano mi również, że im wyższa pojemność / więcej parametrów modelu, tym więcej danych jest wymaganych, aby zapobiec nadmiernemu dopasowaniu. Dlatego moje pytanie brzmi: dlaczego nie możesz po prostu zmniejszyć liczby warstw / węzłów na warstwę w głębokiej sieci neuronowej i sprawić, by działała z mniejszą ilością danych? Czy istnieje podstawowa „minimalna liczba parametrów”, której wymaga sieć neuronowa, dopóki „nie uruchomi się”? Poniżej pewnej liczby warstw wydaje się, że sieci neuronowe nie działają tak dobrze, jak funkcje kodowane ręcznie.

Karnivaurus
źródło

Odpowiedzi:

11

To świetne pytanie i faktycznie przeprowadzono pewne badania dotyczące wspomnianych problemów dotyczących pojemności / głębokości.

Istnieje wiele dowodów na to, że głębia w splotowych sieciach neuronowych doprowadziła do uczenia się bogatszych i bardziej zróżnicowanych hierarchii cech. Empirycznie widzimy, że najlepiej działające sieci są „głębokie”: Oxford VGG-Net miał 19 warstw, architektura Google Inception jest głęboka, Microsoft Deep Residual Network ma zgłoszone 152 warstwy, a wszystkie one uzyskują bardzo imponujący test porównawczy ImageNet wyniki.

Na powierzchni faktem jest, że modele o większej pojemności mają tendencję do przeładowywania się, chyba że użyjesz jakiegoś regulizatora. Jednym ze sposobów, w jaki bardzo głębokie dopasowanie sieci może zaszkodzić wydajności jest to, że szybko osiągną bardzo niski błąd treningu w niewielkiej liczbie epok treningu, tj. Nie możemy trenować sieci dla dużej liczby przejść przez zestaw danych. Technika taka jak Dropout, stochastyczna technika regularyzacji, pozwala nam trenować bardzo głębokie sieci przez dłuższy czas. To w efekcie pozwala nam nauczyć się lepszych funkcji i poprawić naszą dokładność klasyfikacji, ponieważ dostajemy więcej przejść przez dane treningowe.

W odniesieniu do twojego pierwszego pytania:

Dlaczego nie można po prostu zmniejszyć liczby warstw / węzłów na warstwę w głębokiej sieci neuronowej i sprawić, by działała z mniejszą ilością danych?

Jeśli zmniejszymy rozmiar zestawu treningowego, jak wpłynie to na wydajność uogólnienia? Jeśli użyjemy mniejszego zestawu treningowego, może to skutkować nauczeniem się mniejszej reprezentacji funkcji rozproszonych, a to może zaszkodzić naszej zdolności do generalizacji. Ostatecznie chcemy być w stanie dobrze uogólniać. Posiadanie większego zestawu szkoleniowego pozwala nam poznać bardziej zróżnicowaną rozproszoną hierarchię funkcji.

W odniesieniu do drugiego pytania:

Czy istnieje podstawowa „minimalna liczba parametrów”, której wymaga sieć neuronowa, dopóki „nie uruchomi się”? Poniżej pewnej liczby warstw wydaje się, że sieci neuronowe nie działają tak dobrze, jak funkcje kodowane ręcznie.

Dodajmy teraz trochę niuansu do powyższej dyskusji na temat problemu głębi. Wydaje się, że biorąc pod uwagę obecny stan techniki, aby od zera wyszkolić wysokiej jakości konwekcję, stosowana jest głęboka architektura.

Ale istnieje szereg wyników, które koncentrują się na kompresji modelu . To nie jest bezpośrednia odpowiedź na twoje pytanie, ale jest powiązana. Kompresja modelu jest zainteresowana następującym pytaniem: Biorąc pod uwagę model o wysokiej wydajności (w naszym przypadku, powiedzmy, głęboką sieć konwekcyjną), czy możemy skompresować model, zmniejszając jego głębokość, a nawet liczbę parametrów, i zachować tę samą wydajność?

Jako nauczyciel możemy postrzegać sieć konwekcyjną o wysokiej wydajności i dużej pojemności . Czy możemy wykorzystać nauczyciela do szkolenia bardziej zwartego modelu ucznia ?

Nieoczekiwanie odpowiedź brzmi: tak . Pojawiła się seria wyników, dobrym artykułem z perspektywy konwekcji jest artykuł Rich Caruana i Jimmy Ba Do Deep Nets Naprawdę potrzebujesz być głęboki? . Są w stanie wytrenować płytki model, aby naśladować model głębszy, przy bardzo niewielkiej utracie wydajności. Było jeszcze trochę pracy na ten temat, na przykład:

między innymi pracami. Jestem pewien, że brakuje mi innych dobrych artykułów.

Dla mnie tego rodzaju wyniki podają w wątpliwość, ile naprawdę mają te płytkie modele. W artykule Caruana, Ba stwierdzają następującą możliwość:

„Wyniki sugerują, że siła głębokiego uczenia się może wynikać częściowo z dobrego dopasowania między głębokimi architekturami a bieżącymi procedurami szkoleniowymi oraz że możliwe jest opracowanie lepszych algorytmów uczenia się w celu trenowania dokładniejszych płytkich sieci sprzężenia zwrotnego. Dla danego liczba parametrów, głębokość może ułatwić naukę, ale nie zawsze może być niezbędna ”

Ważne jest, aby być jasnym: w artykule Caruana, Ba, nie trenują oni płytkiego modelu od zera, tj. Trenują tylko na podstawie etykiet klasy, aby uzyskać najnowszą wydajność. Uczą się raczej wysokowydajnego modelu głębokiego iz tego modelu wyodrębniają prawdopodobieństwa dziennika dla każdego punktu danych. Następnie trenujemy płytki model przewidywania tych prawdopodobieństw. Dlatego nie trenujemy płytkiego modelu na etykietach klas, ale raczej wykorzystujemy te prawdopodobieństwa logarytmiczne.

Niemniej jednak jest to dość interesujący wynik. Chociaż nie zapewnia to bezpośredniej odpowiedzi na twoje pytanie, istnieje kilka interesujących pomysłów, które są bardzo istotne.

Zasadniczo: zawsze należy pamiętać, że istnieje różnica między teoretyczną „wydajnością” modelu a znalezieniem dobrej konfiguracji modelu. To ostatnie zależy od metod optymalizacji.

Indie AI
źródło