Czy model powinien zostać ponownie przeszkolony, jeśli dostępne są nowe obserwacje?

28

Nie znalazłem więc żadnej literatury na ten temat, ale wydaje się, że warto coś przemyśleć:

  • Jakie są najlepsze praktyki w szkoleniu i optymalizacji modeli, jeśli dostępne są nowe obserwacje?

  • Czy jest jakiś sposób na określenie okresu / częstotliwości ponownego szkolenia modelu, zanim prognozy zaczną się obniżać?

  • Czy przesadne jest optymalizowanie parametrów pod kątem danych zagregowanych?

Pamiętaj, że nauka niekoniecznie musi odbywać się online. Można chcieć zaktualizować istniejący model po zaobserwowaniu znacznej rozbieżności w nowszych prognozach.

użytkownik140323
źródło
Odpowiedź zależy w dużej mierze od domeny biznesowej i konkretnego modelu aplikacji.
Pete

Odpowiedzi:

16
  1. Po przeszkoleniu modelu i uzyskaniu nowych danych, które można wykorzystać do treningu, można załadować poprzedni model i trenować na nim. Na przykład możesz zapisać swój model jako.pickle plik i załadować go i trenować dalej, gdy będą dostępne nowe dane. Należy pamiętać, że za model do przewidywania poprawnie the new training data should have a similar distribution as the past data.
  2. Prognozy mają tendencję do obniżania się w zależności od używanego zestawu danych. Na przykład, jeśli próbujesz trenować przy użyciu danych z Twittera i zebrałeś dane dotyczące produktu, który jest szeroko tweetowany tego dnia. Ale jeśli użyjesz tweetów po kilku dniach, kiedy ten produkt nawet nie jest omawiany, może to być stronnicze.The frequency will be dependent on dataseti nie ma określonego czasu na wypowiedzenie się jako takie. If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model.
  3. Optymalizacja parametrów w danych zagregowanych nie jest nadmierna. Duże dane nie oznaczają przeładowania. Skorzystaj z weryfikacji krzyżowej, aby sprawdzić, czy nie jest za dużo.
Hima Varsha
źródło
Jeśli więc charakter danych wchodzących w skład zestawu danych pozostaje spójny, nie ma nic nowego, czego model mógłby się nauczyć?
user140323
Jeśli dane się nie zmienią i jeśli jesteś zadowolony z dokładności obecnego modelu, nie widzę sensu w jego ponownym szkoleniu.
Hima Varsha
@ Aayush, Może możesz użyć przychodzących danych jako zestawu sprawdzania poprawności i sprawdzić swój obecny model.
Hima Varsha
Wciąż za wcześnie, by to zaakceptować, ale ja to zrobię. Dzięki!
user140323
Witaj @ tktktk0711, obecnie nie mam kodu do pokazania. Ale po prostu przejdź przez to, co wskazuje na inny link z kodem. github.com/tflearn/tflearn/issues/39
Hima Varsha
20

Gdy dostępne są nowe obserwacje, istnieją trzy sposoby ponownego przeszkolenia modelu:

  1. Online: każdym razem, gdy dostępna jest nowa obserwacja, używasz tego pojedynczego punktu danych, aby dalej trenować swój model (np. Załadować swój obecny model i dalej trenować, wykonując propagację wsteczną z tą pojedynczą obserwacją). Dzięki tej metodzie Twój model uczy się sekwencyjnie i niejako dostosowuje się lokalnie do twoich danych, ponieważ na obserwacje będą miały większy wpływ niż na podstawie obserwacji starszych. Może to być przydatne w sytuacjach, w których model musi dynamicznie dostosowywać się do nowych wzorców w danych. Jest to również przydatne, gdy mamy do czynienia z bardzo dużymi zestawami danych, dla których szkolenie na wszystkich z nich jednocześnie jest niemożliwe.
  2. Offline: dodajesz nowe obserwacje do już istniejącego zestawu danych i całkowicie ponownie trenujesz swój model na tym nowym, większym zestawie danych. To generalnie prowadzi do lepszego globalnego przybliżenia funkcji celu i jest bardzo popularne, jeśli masz ustalony zestaw danych lub jeśli nie masz nowych obserwacji zbyt często. Jest to jednak niepraktyczne w przypadku dużych zestawów danych.
  3. nn

Obecnie większość modeli będzie używać partii / mini partii, a wybór rozmiaru partii zależy od zastosowania i modelu. Wybór odpowiedniej wielkości partii jest równoznaczny z wybraniem właściwej częstotliwości, z którą ponownie trenujesz swój model. Jeśli twoja nowa obserwacja ma niewielką wariancję z istniejącymi danymi, sugerowałbym większe partie (być może 256-512), a jeśli wręcz przeciwnie, nowe obserwacje zwykle różnią się znacznie od istniejących danych, użyj małych partii (8-256). Pod koniec dnia wielkość partii przypomina rodzaj hiperparametru, który należy dostroić i który jest specyficzny dla danych

tombarti
źródło
Cześć, chcę cię zapytać online: jak online o nowe dane. Czy ta metoda ogranicza niektóre modele ML, to znaczy nie całe uczenie maszynowe.
tktktk0711,
Czy znasz jakieś przykłady tensorflow, które używają partii ?
maxisme
1

Twój problem jest objęty metodami uczenia się online. Zakładając, że nadchodzi strumień danych, możesz użyć metody Stochastic Gradient Descent, aby zaktualizować parametry modelu na tym jednym przykładzie.

Jeśli twoja funkcja kosztów to:

minθjot(x,y,θ)

θxja,yja

θt=θt-1-θjot(xja,yja)

Zasadniczo jest to SGD z rozmiarem partii 1.

Jest jeszcze jedna sztuczka, możesz zastosować metodę opartą na oknie / buforze, w której buforujesz niektóre przykłady ze strumienia i traktujesz je jako partię i używasz partii SGD. W takim przypadku równanie aktualizacji stanie się:

θt=θt-1-jaθjot(xja,yja)

Jest to zasadniczo mini-partia SGD.

SHASHANK GUPTA
źródło
0

Pytanie: POWINNO przeszkolić?

Odpowiedź zależy od tego, co próbuje Twój model i w jakim środowisku jest zastosowane.

Pozwól, że wyjaśnię kilka przykładów:

Załóżmy, że Twój model próbuje przewidzieć zachowanie klientów, np. Jak prawdopodobne jest, że klient kupi Twój produkt, biorąc pod uwagę ofertę dostosowaną dla niego. Oczywiście rynek zmienia się z czasem, zmieniają się preferencje klientów, a konkurenci dostosowują się. Powinieneś również się dostosować, więc musisz okresowo przekwalifikowywać się. W takim przypadku zaleciłbym dodanie nowych danych, ale także pominięcie starych danych, które nie są już istotne. Jeśli rynek szybko się zmienia, powinieneś rozważyć okresowe przekwalifikowanie w oparciu tylko o nowe dane.

Z drugiej strony, jeśli Twój model klasyfikuje obrazowanie (np. Prześwietlenie lub MRI) do warunków medycznych, a model działa dobrze, nie musisz przekwalifikowywać się, jeśli nie nastąpi zmiana technologii lub wiedzy medycznej . Dodanie większej ilości danych nie poprawi się znacznie.

Yossi Levy
źródło