Dlaczego nie uczymy się hiper parametrów?

11

Wdrożyłem dość popularny artykuł „ WYJAŚNIANIE I PRZESYŁANIE PRZYKŁADÓW ADVERSARIALNYCH ”, a w artykule trenuje funkcję celu przeciwnika

J '' (θ) = αJ (θ) + (1 - α) J '(θ).

Traktuje α jako hiperparametr. α może wynosić 0,1, 0,2, 0,3 itd.

Niezależnie od tego konkretnego artykułu zastanawiam się, dlaczego po prostu nie uwzględnimy α w naszych parametrach i nie nauczymy się najlepszego α?

Jaka jest wada tego zrobić? Czy to z powodu nadmiernego dopasowania? Jeśli tak, to dlaczego uczenie się jeszcze jednego parametru powoduje tak duże przeregulowanie?

Aerin
źródło
Cóż, jeśli hiperparametr jest parametrem funkcji kosztu (a nie procesu generowania danych MZD), nie jest jasne, czy same dane zawierają informacje na jego temat.
kjetil b halvorsen
1
W wielu przypadkach używamy danych do wybrania , patrząc na wydajność modelu na zestawie sprawdzania poprawności. (tzn. proxy dla błędu generalizacji).α
Vimal

Odpowiedzi:

8

„Dlaczego nie uczymy się po prostu parametrów hiperłącza?”

To świetne pytanie! Spróbuję udzielić bardziej ogólnej odpowiedzi. Odpowiedź TL; DR jest taka, że ​​zdecydowanie możesz nauczyć się hiperparametrów, tylko nie z tych samych danych. Czytaj dalej, aby uzyskać nieco bardziej szczegółową odpowiedź.


Hyperparameter zazwyczaj odpowiada ustawieniu algorytmu uczenia, zamiast jednego z jego parametrów. Przykładowo, w kontekście głębokiego uczenia się, przykładem jest różnica między czymś takim jak liczba neuronów w danej warstwie (hiperparametr) a wagą konkretnej krawędzi (regularny, możliwy do nauczenia się parametr).

Dlaczego w ogóle jest różnica? Typowym przypadkiem przekształcenia parametru w hiperparametr jest to, że po prostu nie należy uczyć się tego parametru z zestawu szkoleniowego. Na przykład, ponieważ zawsze łatwiej jest obniżyć błąd treningowy poprzez dodanie większej liczby neuronów, ustawienie liczby neuronów w warstwie na regularny parametr zawsze zachęcałoby do bardzo dużych sieci, co jest faktem, o czym wiemy, że nie zawsze jest pożądane (z powodu nadmierne dopasowanie).

Na twoje pytanie nie chodzi o to, że wcale nie uczymy się hiperparametrów. Odkładając na bok wyzwania obliczeniowe, bardzo możliwe jest nauczenie się dobrych wartości dla hiperparametrów, a są nawet przypadki, w których jest to konieczne dla dobrej wydajności; cała dyskusja w pierwszym akapicie sugeruje, że z definicji nie można użyć tych samych danych do tego zadania .

Korzystając z innego podziału danych (tworząc w ten sposób trzy rozłączne części: zestaw szkoleniowy, zestaw sprawdzania poprawności i zestaw testowy, teoretycznie możesz zrobić następującą procedurę optymalizacji zagnieżdżonej : w zewnętrznej pętli próbujesz znaleźć wartości dla hiperparametrów, które minimalizują utratę walidacji , aw wewnętrznej pętli próbujesz znaleźć wartości dla regularnych parametrów, które minimalizują utratę treningu .

Jest to teoretycznie możliwe, ale bardzo drogie obliczeniowo: każdy etap zewnętrznej pętli wymaga rozwiązania (do zakończenia lub gdzieś w pobliżu) pętli wewnętrznej, która zazwyczaj jest ciężka obliczeniowo. Co dodatkowo komplikuje to, że problem zewnętrzny nie jest łatwy: po pierwsze, przestrzeń wyszukiwania jest bardzo duża.

Istnieje wiele podejść do rozwiązania tego problemu poprzez uproszczenie powyższej konfiguracji (wyszukiwanie w siatce, wyszukiwanie losowe lub optymalizacja hiperparametrowa w oparciu o model), ale wyjaśnienie ich znacznie wykracza poza zakres pytania. Jak pokazuje również wspomniany artykuł, fakt, że jest to kosztowna procedura, często oznacza, że ​​badacze po prostu całkowicie ją pomijają lub próbują niewielu ustawień ręcznie, ostatecznie decydując się na najlepszy (ponownie, zgodnie z zestawem walidacyjnym). Na twoje pierwotne pytanie twierdzę jednak, że - choć bardzo uproszczony i przemyślany - jest to nadal forma „uczenia się”.

galoosh33
źródło
Cześć, dzięki za odpowiedź. Co się stanie, jeśli użyję tych samych danych?
Aerin
7

Hiperparametry takie jak w tym dokumencie są często używane do zrównoważenia wielu terminów w funkcji straty. Jeśli uczynisz je możliwymi do nauczenia, proces optymalizacji po prostu nauczy się przypisywać całą wagę do terminów, które są łatwiejsze do optymalizacji kosztem trudniejszych do optymalizacji warunków, co nie pozwala na zrównoważenie warunków.

Innym sposobem, aby to zobaczyć, jest to, że funkcja utraty jest odpowiednikiem rzeczywistego celu, który jest trudny do zdefiniowania lub zoptymalizowania, na przykład „generowanie obrazów wyjściowych powinno wyglądać realistycznie” lub „powinno być odporne na przeciwne przykłady”. W takim przypadku prawdziwym celem nie jest „znalezienie hiperparametrów w celu zminimalizowania utraty surogatu”, lecz „znalezienie hiperparametrów w taki sposób, że gdy uruchomimy SGD na pozostałych parametrach w celu optymalizacji surogatu, uzyskamy dobrą wydajność na prawdziwej cel".

shimao
źródło
4

Ponieważ pytałeś „niezależnie od pracy”, chciałbym wziąć prostszy przykład: karana regresja liniowa (Ridge / Lasso).

W tych przypadkach mogę wymyślić dwa powody: Ale najpierw zwróć uwagę, że istnieją tutaj dwie funkcje: (F1) Funkcja straty, która jest funkcją analityczną hiperparametru i danych (w powiązanym dokumencie, jego jot~; i (F2) oszacowanie błędu uogólnienia, który zależy od optymalnego rozwiązania (F1) i hiper-parametru, który wybrałeś (F1).

Zastrzeżenie: pobieżne spojrzenie na artykuł ujawnia, że ​​autorzy szkolą klasyfikator sieci neuronowej dla zestawu danych MNIST. Nie mówi wprost, jak wybrać hiperparametrα, ale wybrałbym jeden α co minimalizuje błąd sprawdzania poprawności najlepszego modelu.

  1. Funkcja celu optymalizacji hiperparametru jest wyrażeniem będącym proxy dla błędu generalizacji. Wyrażenie to trudno zapisać jako prostą funkcję analityczną, którą można zróżnicować, ale w pewnym momencie można ją łatwo ocenić, rozwiązując podstawowy problem optymalizacji.

  2. Ocena funkcji (F2) wymaga rozwiązania problemu optymalizacji, który może być kosztowny. Tak więc, nawet jeśli możesz przybliżać gradient dla F2, aby wykonać gradient opadania, byłoby to drogie i wolne. W takich przypadkach przeszukiwanie siatki jest często „wystarczająco dobre”.

To powiedziawszy, istnieją techniki optymalizacji funkcji celu czarnej skrzynki (takich jak F2) poprzez przyjęcie pewnej struktury gładkości ze względu na ich zależność od hiperparametru. Jako przykład możesz zobaczyć ten post, który pokazuje, w jaki sposób wydajność modelu Lasso zmienia się w zależności od jego hiper-parametruλ:

Wydajność modelu Lasso

(Zdjęcie pochodzi z tego postu: https://stats.stackexchange.com/a/26607/54725 )

Niektóre referencje:

Vimal
źródło
Czy konkretnie odnosisz się do drugiego terminu w pracy J (θ, x + esign (∇xJ (θ, x, y))) jako F2?
Aerin
@Aaron nr. jot jest funkcją kosztów; jot~to funkcja kosztów regulowanych. Ponieważ budują klasyfikator, powiedziałbym, że F2 może być funkcją utraty walidacji. Gazeta faktycznie mówi, że wybraliα być 0,5, ponieważ działało wystarczająco dobrze (nie badali innych wartości α, ani strategii do wyboru α).
Vimal
Więc co w tekście nazywacie F1 i F2?
Aerin
F1 jest jot~i użyłbym błędu sprawdzania poprawności jako F2. Zaktualizuję moją odpowiedź, aby to wyjaśnić.
Vimal
1

Zobaczmy, jak wyglądałby warunek pierwszego rzędu, jeśli podłączymy hiperparametr α i spróbuj nauczyć się tego w taki sam sposób jak θ z danych:

αjot(θ)=ααjot(θ)+α(1-α)jot(θ)=jot(θ)-jot(θ)=0
W związku z tym,
jot(θ)=jot(θ)

Kiedy ten hiperparametr zostanie zoptymalizowany, spowoduje to, że zarówno J, jak i J 'staną się tą samą funkcją, tj. Równymi wagami. Skończysz z trywialnym rozwiązaniem.

Jeśli chcesz bardziej ogólnego filozofowania, zastanów się: hiperparametry zwykle nie są splątane z danymi. Co mam na myśli? W sieci neuronowej lub nawet prostej regresji parametry modelu będą w pewien sposób oddziaływać bezpośrednio z danymi:

yL.=XL.βL.
zaL.=σ(yL.)
XL.+1=zaL.
i tak dalej w dół warstw. Widzisz jakβL.zaplątać się w swoje dane. Więc jeśli weźmiesz pochodną nad którąkolwiekβ funkcji celu otrzymujesz punkty danych wprowadzające wynik w sposób nieoczywisty do macierzy, Hesów, produktów krzyżowych itp.

Jednak, jeśli spróbujesz oszacować warunki pierwszego rzędu na podstawie hiperparametrów, nie uzyskasz tego efektu. Pochodne hiperparametrów często operują całymi częściami twojego modelu, nie tasując jego części jak pochodne nad parametrami. Dlatego optymalizacja hiperparametrów często prowadzi do trywialnych rozwiązań, takich jak to, które podałem dla konkretnego artykułu. Optymalizacja hiperparametrów nie przeszkadza Twojemu zestawowi danych i nie sprawia, że ​​jest wystarczająco niewygodny, aby stworzyć coś interesującego.

Aksakal
źródło