Jaka jest „pojemność” modelu uczenia maszynowego?

15

Studiuję ten samouczek na temat Autoencoderów wariacyjnych autorstwa Carla Doerscha . Na drugiej stronie znajduje się:

Jednym z najpopularniejszych takich frameworków jest AutoCoder wariacyjny [1, 3], będący przedmiotem tego samouczka. Założenia tego modelu są słabe, a trening jest szybki dzięki propagacji wstecznej. Wartości VAE dokonują przybliżenia, ale błąd wprowadzony przez to przybliżenie jest prawdopodobnie niewielki, biorąc pod uwagę modele o dużej pojemności . Te cechy przyczyniły się do szybkiego wzrostu ich popularności.

Czytałem w przeszłości tego rodzaju twierdzenia na temat modeli o dużej pojemności , ale nie wydaje mi się, aby istniała dla nich jasna definicja. Znalazłem również to pytanie związane z przepełnieniem stosu, ale dla mnie odpowiedź jest bardzo niezadowalająca.

Czy istnieje definicja pojemności modelu? Czy potrafisz to zmierzyć?

Andrés Marafioti
źródło

Odpowiedzi:

13

Pojemność to termin nieformalny. Jest bardzo blisko (jeśli nie synonimem) złożoności modelu. To sposób na rozmowę o tym, jak skomplikowany wzór lub relacja może wyrazić model. Można oczekiwać, że model o większej pojemności będzie w stanie modelować więcej relacji między większą liczbą zmiennych niż model o niższej pojemności.

Czerpiąc analogię z potocznej definicji pojemności, możesz myśleć o niej jako o zdolności modelu do uczenia się na coraz większej liczbie danych, dopóki nie zostanie całkowicie „wypełniony” informacjami.

Istnieją różne sposoby sformalizowania pojemności i obliczenia jej wartości liczbowej, ale co ważne, są to tylko niektóre możliwe „operacjonalizacje” pojemności (w taki sam sposób, że gdyby ktoś wymyślił formułę obliczania piękna, zdajesz sobie sprawę, że formuła jest tylko jedną omylną interpretacją piękna).


Wymiar VC jest matematycznie rygorystycznym sformułowaniem pojemności. Jednak może istnieć duża luka między wymiarem VC modelu a faktyczną zdolnością modelu do dopasowania danych. Chociaż znajomość przyciemnienia VC wiąże się z błędem uogólnienia modelu, jest to zwykle zbyt luźne, aby było przydatne w sieciach neuronowych.

Inną linią badań, którą tu widzimy, jest zastosowanie normy widmowej macierzy masy w sieci neuronowej jako miary pojemności. Jednym ze sposobów na zrozumienie tego jest to, że norma widmowa ogranicza stałą Lipschitza sieci.

Najczęstszym sposobem oszacowania pojemności modelu jest policzenie liczby parametrów. Im więcej parametrów, tym wyższa ogólna pojemność. Oczywiście często mniejsza sieć uczy się modelować bardziej złożone dane lepiej niż większa sieć, więc ten środek również nie jest idealny.

Innym sposobem pomiaru pojemności może być trenowanie modelu z losowymi etykietami ( Neyshabur i in. ) - jeśli twoja sieć może poprawnie zapamiętać kilka danych wejściowych wraz z losowymi etykietami, zasadniczo pokazuje, że model ma zdolność zapamiętywania wszystkich tych punkty danych indywidualnie. Im więcej par wejścia / wyjścia można się „nauczyć”, tym większa jest pojemność.

ϵ

shimao
źródło
1
To lepsza odpowiedź niż ta z stackoverflow, dziękuję. Nadal mam problem z postrzeganiem luźno zdefiniowanych terminów jako uzasadnienia czegoś innego, ale myślę, że w ten sposób pole zmierza do przodu.
Andrés Marafioti
1
„może istnieć duża luka między wymiarem VC modelu a faktyczną wydajnością modelu”. jest to bardzo mylące stwierdzenie, ponieważ „rzeczywista pojemność” nie jest precyzyjnie określona. W rzeczywistości wymiar VC jest dobrą miarą wydajności modelu. Tylko dlatego, że sieci neuronowe wydają się rozwiązywać pewne problemy, nie czyni ich „wysoce wydajnymi”. W rzeczywistości przez większość czasu ludzie myślą, że sieci neuronowe rozwiązują problem, podczas gdy rozwiązują znacznie prostszy problem i w rzeczywistości często katastrofalnie zawodzą (ponieważ zostali „nieoczekiwanie” przeszkoleni do rozwiązywania prostszego problemu).
nbro