Wczesne zatrzymanie w przypadku utraty weryfikacji lub dokładności?


10

Obecnie uczę sieci neuronowej i nie mogę zdecydować, którego użyć, aby wdrożyć moje kryteria wczesnego zatrzymania: utratę walidacji lub mierniki takie jak dokładność / f1score / auc / cokolwiek obliczone na zestawie walidacyjnym.

W swoich badaniach natknąłem się na artykuły broniące obu punktów widzenia. Wygląda na to, że Keras domyślnie utracił sprawdzanie poprawności, ale natknąłem się również na przekonujące odpowiedzi na przeciwne podejście (np. Tutaj ).

Czy ktoś ma wskazówki, kiedy najlepiej użyć utraty sprawdzania poprawności, a kiedy użyć określonej miary?

Odpowiedzi:


6

TLDR; Monitoruj straty, a nie dokładność

Odpowiem na własne pytanie, ponieważ uważam, że otrzymane odpowiedzi nie dotarły do ​​sedna i pewnego dnia ktoś może mieć ten sam problem.

Po pierwsze, pozwól mi szybko wyjaśnić, że korzystanie z wczesnego zatrzymywania jest całkowicie normalne podczas szkolenia sieci neuronowych (zobacz odpowiednie sekcje w książce Deep Learning Goodfellow i wsp., Większość dokumentów DL oraz dokumentację dotyczącą oddzwaniania EarlyStopping keras).

Teraz, jeśli chodzi o ilość do monitorowania: wolę stratę niż dokładność. Dlaczego? Strata określa ilościowo, jak pewny jest model w stosunku do prognozy (zasadniczo ma wartość bliską 1 w odpowiedniej klasie i blisko 0 w pozostałych klasach). Dokładność uwzględnia jedynie liczbę poprawnych prognoz. Podobnie, wszelkie wskaźniki wykorzystujące twarde przewidywania, a nie prawdopodobieństwa, mają ten sam problem.

Oczywiście, niezależnie od tego, jakie metryki wybierzesz, musisz je obliczyć na podstawie zestawu sprawdzania poprawności, a nie zestawu szkoleniowego (w przeciwnym razie całkowicie nie masz sensu używania EarlyStopping)


Jeśli wartości mieszczą się w zakresie od 0 do 1, cross_entropyutrata jest bardziej preferowanym kandydatem niż MSElub MAE. Zapoznaj się z sekcją podsumowania tego artykułu i tego postu na temat statystyk .
Esmailian

@Esmailian nie jest to kwestia preferencji; w przypadku problemów z klasyfikacją MSE i MAE są po prostu nieodpowiednie.
desertnaut

4

Moim zdaniem jest to subiektywne i specyficzne dla problemu. Powinieneś użyć tego, co jest najważniejszym czynnikiem w twoim umyśle, jako metryki jazdy, ponieważ może to sprawić, że twoje decyzje dotyczące zmiany modelu będą lepiej skoncentrowane.

L1

Na przykład, jeśli zgłosisz wynik F1 w raporcie / do swojego szefa itp. (I zakładając, że to jest to, na czym naprawdę im zależy), to użycie tej metryki może mieć sens. F1-score, na przykład, bierze precyzję i przywołanie pod uwagę to znaczy opisuje związek pomiędzy dwoma bardziej drobnoziarnista metryk.

Łącząc te rzeczy, obliczanie wyników innych niż normalna utrata może być przyjemna dla przeglądu i aby zobaczyć, jak końcowa metryka jest zoptymalizowana w trakcie iteracji treningu. Ten związek może być może dać ci głębszy wgląd w problem,

Zazwyczaj najlepiej jest wypróbować kilka opcji, ponieważ optymalizacja pod kątem utraty sprawdzania poprawności może pozwolić na dłuższe treningi, co w końcu może również dać lepszy wynik F1 . Precyzja i wycofanie mogą kołysać się wokół lokalnych minimów, generując prawie statyczny wynik F1 - więc przestaniesz trenować. Jeśli optymalizowałeś czystą stratę, mógłbyś odnotować wystarczającą fluktuację strat, abyś mógł trenować dłużej.


Dlaczego użycie utraty sprawdzania poprawności pozwoliłoby na szkolenie dłużej niż stosowanie mierników? Czy potrafisz też wyjaśnić różnicę między tymi dwiema opcjami? Czy widzisz przypadek, w którym niewłaściwe byłoby użycie metryki zamiast straty?
qmeeus,

@ id-2205 - zobacz moją zredagowaną odpowiedź.
n1k31t4,

ciekawy punkt! Obecnie używam dokładności do wczesnego zatrzymania, ale spróbuję użyć utraty sprawdzania poprawności. Nie oczekuję jednak żadnych zmian w procesie szkolenia! Dziękuję za odpowiedź
qmeeus

1

Obecnie uczę sieci neuronowej i nie mogę zdecydować, którego użyć, aby wdrożyć moje kryteria wczesnego zatrzymania: utratę walidacji lub mierniki takie jak dokładność / f1score / auc / cokolwiek obliczone na zestawie walidacyjnym.

Jeśli trenujesz głęboką sieć, zdecydowanie nie zalecam wczesnego zatrzymywania. W głębokim uczeniu się nie jest to zbyt zwyczajowe. Zamiast tego możesz zastosować inne techniki, takie jak rezygnacja z dobrego generalizowania. Jeśli nalegasz na to, wybór kryterium zależy od twojego zadania. Jeśli masz niezrównoważone dane, musisz zastosować F1wynik i ocenić go na podstawie danych z walidacji krzyżowej. Jeśli masz zbilansowane dane, spróbuj użyć dokładności danych weryfikacji krzyżowej. Inne techniki w dużym stopniu zależą od twojego zadania.

Gorąco zachęcam do znalezienia modelu, który bardzo dobrze pasuje do twoich danych, a następnie skorzystaj z rezygnacji. Jest to najbardziej zwyczajowa rzecz, której ludzie używają do głębokich modeli.


2
Używam również rezygnacji. Nie mogę jednak znaleźć powodu, dla którego nie należy stosować wczesnego zatrzymania ...
qmeeus

Early stop próbuje rozwiązać zarówno problemy związane z uczeniem się, jak i generalizacją. Z drugiej strony rezygnacja po prostu próbuje przezwyciężyć problem uogólnienia.
Media

1
Nie odpowiadasz na moje pytanie ... Nie przeczę, że porzucenie jest przydatne i powinno być użyte w celu ochrony przed nadmiernym dopasowaniem, nie mogłem zgodzić się więcej na ten temat. Moje pytanie brzmi: dlaczego mówicie, że wczesnego zatrzymania nie powinno się stosować z ANN? (por. pierwsze zdanie: jeśli
trenujesz

Czy czytałeś mój ostatni komentarz? Dokładnie odpowiada na twoje pytanie. To słynny cytat z pr. Ng w swojej klasie głębokiego uczenia się, drugi kurs. Ten drugi przypadek jest łatwiejszym zadaniem, ponieważ nie ma trudności z jednoczesnym rozwiązywaniem wielu zadań.
Media

3
Aby go znaleźć i znaleźć odpowiedni zestaw hiperparametrów, stosuję pewnego rodzaju ukierunkowane wyszukiwanie siatki z wczesnym zatrzymaniem z powodów, które wyjaśniłem powyżej. Punkt jednak wzięty pod uwagę i kiedy już wybiorę ostateczny model i będę go trenował, nie użyję wczesnego zatrzymania. Dziękujemy za tę interesującą dyskusję i porady
qmeeus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.