ML Atlas

11 · Prawa i prawdy · 4 min czytania · aktualizacja

Na czym polega hipoteza losu na loterii (lottery ticket hypothesis) w sieciach neuronowych?

W skrócie

Duża losowa sieć zawiera małą podsieć, która trenowana od tych samych wag startowych dorównuje całej sieci. Dobrze potwierdzone w małej skali, sporne w dużej.

Co to jest

Gęsta, losowo zainicjowana sieć neuronowa zawiera rzadką podsieć („zwycięski los”), która trenowana w izolacji od swoich oryginalnych wag początkowych osiąga dokładność całej sieci w porównywalnej liczbie kroków. Hipotezę sformułowali Jonathan Frankle i Michael Carbin w 2019 roku.

Wiadomo było wcześniej, że wytrenowaną sieć da się mocno przyciąć — usunąć większość wag o małej wartości — bez straty jakości. Ale próby trenowania tak małej sieci od zera zwykle wypadały gorzej. Frankle i Carbin zauważyli, że kluczowe są wagi startowe: jeśli przyciętą strukturę cofnąć do jej oryginalnej inicjalizacji i wytrenować ponownie, uczy się ona dobrze; jeśli zainicjować ją na nowo losowo — często gorzej.

Metafora: trenowanie dużej sieci przypomina kupno wielu losów na loterii. Im więcej wag, tym większa szansa, że któraś podsieć dostała akurat szczęśliwą kombinację wag startowych. Trening w praktyce „znajduje” ten los.

Mechanizm — dlaczego tak działa

Procedura z oryginalnej pracy: wytrenuj sieć, usuń p% wag o najmniejszej wartości bezwzględnej, przywróć pozostałym wagom wartości z inicjalizacji, trenuj ponownie, powtarzaj (przycinanie iteracyjne). Na MNIST i CIFAR-10 autorzy znajdowali zwycięskie losy liczące poniżej 10–20% wag oryginału, które uczyły się szybciej i osiągały co najmniej tę samą dokładność.

Dlaczego wagi startowe mają znaczenie? Jedno z wyjaśnień: duża wartość wagi po treningu sygnalizuje, że ta waga od początku leżała w korzystnym miejscu krajobrazu straty, a zachowanie jej znaku i skali daje podsieci dobry punkt startu. Zhou i in. (2019) pokazali, że szczególnie ważne są znaki wag początkowych.

Status jest jednak niejednoznaczny i trzeba to powiedzieć wprost. Liu i in. (2019) w pracy „Rethinking the Value of Network Pruning” znaleźli wiele ustawień, w których losowo zainicjowana przycięta sieć radzi sobie równie dobrze — wtedy liczy się struktura, nie los. Frankle i in. (2020) przyznali, że w dużych sieciach (np. ResNet na ImageNet) cofanie do inicjalizacji nie działa; trzeba cofać do wag z wczesnego etapu treningu (rewinding), co osłabia pierwotną tezę. Przede wszystkim znalezienie losu wymaga wytrenowania pełnej sieci, nieraz wielokrotnie — hipoteza nie daje więc darmowego przyspieszenia, tylko mówi coś o naturze uczenia.

Na przykładzie

Własny eksperyment na Digits 8×8 (PyTorch): sieć 64–300–100–10, ok. 50 tys. wag, Adam, 60 epok, średnia z 5 ziaren. Pełna sieć: dokładność testowa 0,974. Przycięliśmy jednorazowo 95% wag w warstwach ukrytych i połowę tego w warstwie wyjściowej (zostaje ok. 6% wag). Podsieć cofnięta do oryginalnej inicjalizacji: 0,972. Ta sama struktura z nowymi losowymi wagami: 0,969. Przy przycięciu do ok. 3% wag: 0,937 wobec 0,936.

Uczciwy odczyt: rzadkie podsieci trenują się prawie tak dobrze jak pełna sieć — to potwierdza część hipotezy o nadmiarowości. Przewaga „zwycięskiego losu” nad losową reinicjalizacją jest tu jednak rzędu 0,001–0,003, czyli w granicach rozrzutu między ziarnami. Na tak prostym zadaniu struktura znaczy więcej niż szczęśliwe wagi — zgodnie z obserwacjami Liu i in.

Dane: Digits (ręcznie pisane cyfry 8×8)

W praktyce

  • Przycinanie w PyTorch: torch.nn.utils.prune.l1_unstructured i prune.global_unstructured; maskę trzeba utrzymywać podczas dalszego treningu.
  • Do wdrożenia częściej używa się przycinania strukturalnego (całe neurony lub kanały), bo rzadkie macierze rzadko przyspieszają obliczenia na zwykłym sprzęcie.
  • Przy dużych modelach cofaj do wag z wczesnego etapu treningu (np. po kilku procentach kroków), a nie do inicjalizacji.
  • Zawsze porównuj z kontrolą: ta sama maska z losową inicjalizacją. Bez niej nie wiadomo, czy zadziałał los, czy struktura.
  • Do kompresji modeli w praktyce częściej używa się kwantyzacji i destylacji niż poszukiwania losów.

Najczęstsze pytania

Czy to znaczy, że można od razu trenować małą sieć?
Nie w praktyce — nie wiadomo z góry, która podsieć jest zwycięska; trzeba ją znaleźć, trenując dużą. Istnieją metody przycinania przy inicjalizacji (np. SNIP), ale zwykle ustępują przycinaniu po treningu.
Czy hipoteza działa dla dużych modeli językowych?
Dowody są częściowe. W dużych sieciach potrzebne jest cofanie do wczesnych wag zamiast do inicjalizacji, a wyniki zależą od zadania i metody. Teza w oryginalnym brzmieniu nie została potwierdzona w tej skali.
Co ta hipoteza mówi o tym, dlaczego duże sieci działają?
Sugeruje, że nadmiar parametrów pomaga nie dlatego, że potrzebujemy ich wszystkich, ale dlatego, że zwiększa szansę na dobrą podsieć i ułatwia optymalizację. To jedna z kilku konkurencyjnych interpretacji przeparametryzowania.

Źródła

  • Frankle J., Carbin M. (2019). The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks. ICLR 2019, arXiv:1803.03635.
  • Frankle J., Dziugaite G. K., Roy D. M., Carbin M. (2020). Linear Mode Connectivity and the Lottery Ticket Hypothesis. ICML 2020.
  • Liu Z., Sun M., Zhou T., Huang G., Darrell T. (2019). Rethinking the Value of Network Pruning. ICLR 2019.
  • Zhou H., Lan J., Liu R., Yosinski J. (2019). Deconstructing Lottery Tickets: Zeros, Signs, and the Supermask. NeurIPS 2019.
  • Dokumentacja PyTorch: Pruning Tutorial, https://pytorch.org/tutorials/intermediate/pruning_tutorial.html

Zobacz też