Cześć! Nowy sposób na trenowanie sieci neuronowych: oparty na przearanżowaniu starych pomysłów AI zmieszanych z "save scumming" z gier wideo. To sposób na wymuszenie "kopnięcia", które może uratować niektóre typy modeli (szczególnie małe lub egzotyczne topologie), gdy utkną. Ślepy. Ewolucyjny. Nacisk.
Nazywam to "Frustracja": to jak ponowne uruchomienie zapisanej gry wideo i ponowne podejście do walki z bossem. Jak? Weź ostatnią znaną dobrą (LKG) epokę, POTEM zabij neuron. Następnie przetrenuj. W przeciwieństwie do Dropout, uszkodzenie nie jest przejściowym szumem podczas partii. Łamiemy model PO tym, jak się poprawi.
W Frustracji (Persistent [Stochastic] Ablation) uszkodzenie to dziura w jezdni, którą należy unikać i jednocześnie wypełniać w następnym epoku. 2 strategie: zabić wszystkie wagi (jak w warstwie ukrytej) dla neuronu, lub tylko te przychodzące (jak dla logitu wyjściowego).
Testowaliśmy proste topologie sieci MLP, od milionów parametrów do setek, katalogując ich "zdolność do uczenia" w oparciu o szerokość (# neuronów) w porównaniu do głębokości (# warstw). PSA uratowało niektóre modele, które Dropout i Weight Decay nie mogły: chaotyczny reżim (na niebiesko).
To działa nawet w uszkodzonych projektach, gdzie problem znikającego gradientu sprawia, że wsteczna propagacja jest bezużyteczna. (Co, gdy nie masz połączeń przeskakujących, nie jest tak wiele warstw!) Możesz również podzielić uszkodzenia i trenować wiele uszkodzonych LKG jednocześnie na różnych GPU.
Dokument odzwierciedla pierwszy dowód koncepcji, a tak, cały pomysł ma *wiele* ograniczeń. Szczególnie jak obliczeniowo marnotrawny jest mechanizm zapadkowy, czy że był na zbiorze danych MNIST (zabawka), a nie na ImageNet. Ale dobra wiadomość! Wczesne testy ResMLP pokazują obiecujące wyniki!
Staraliśmy się być dokładni. Przetestowaliśmy 98 topologii, z których wiele miało konfiguracje dopasowujące parametry (różne wymiary, ta sama liczba wynikowych parametrów). Zmierzono 3 różne techniki PSA w porównaniu do 3 kontrolnych, w 10 próbach każda. Łącznie 5 880 prób. Odtwarzalne.
Nawet w warunkach, w których Problem Znikającego Gradientu powinien uniemożliwić trening (jak w prostym MLP 18x18), PSA był w stanie przeprowadzić trening, atakując logity wyjściowe na MNIST. Nie wierzysz mi? Spróbuj i zobacz!
Jest tu mnóstwo fajnych małych momentów "aha". Pamiętaj, że żadne z podstawowych pomysłów nie są nowe. Po prostu uporządkowaliśmy je w nowy sposób, aby spróbować czegoś, co jest naprawdę możliwe tylko teraz, gdy GPU są tak potężne.
Praca w przyszłości: • Reprodukcja oryginalnych testów na ResMLP, CNN i Transformerach (ResMLP naprawia VGP, ale w przypadku patologicznych topologii wydaje się, że PSA nadal pomaga) • Próba na ImageNet <- kosztowne, ale to jest prawdziwy dowód, którego potrzebujemy.
Obserwacje: • Zabijanie tego samego logitu wyjściowego konsekwentnie tworzy modele "anty-ekspertów", a gdy spojrzysz na ich macierze pomyłek, możesz zobaczyć dysleksję w akcji (zabij 2, a klasyfikacja przelewa się na 5, 7 i 8) • Nie musimy trzymać się stochastycznych ataków
Dlaczego to jest cenne? • Jeśli działa na większych zbiorach danych i nowoczesnych architekturach modeli, to mam nadzieję, że może to być cenne narzędzie w budowaniu Małych Modeli Językowych (SLM).
GitHub z dokumentem i kodem tutaj:
1,51K