2016-06-27 16 views
7

Kontekst:Jaka jest różnica między częściowym dopasowaniem a ciepłym startem?

Używam pasywne agresora z scikit biblioteki i mylić czy używać gorącego startu lub częściowe dopasowanie.

Dotychczasowe wysiłki:

  1. Zaproszony wątek omówienie:

https://github.com/scikit-learn/scikit-learn/issues/1585

  1. przeszedł kod scikit do _fit i _partial_fit.

Moje obserwacje:

  1. _fit z kolei wywołuje _partial_fit.

  2. Kiedy warm_start jest ustawiony, _fit wzywa _partial_fit z self.coef_

  3. Kiedy _partial_fit nazywa bez coef_init parametr i self.coef_ jest ustawiony, nadal używa self.coef_

Pytanie:

czuję oba są ostatecznie zapewniając taką samą functionalities.Then, jaka jest zasadnicza różnica między nimi? W jakim kontekście używa się któregokolwiek z nich?

Czy brakuje mi czegoś oczywistego? Każda pomoc jest doceniana!

Odpowiedz

0

O różnicy. Warm start to tylko atrybut klasy. Częściowe dopasowanie jest to metoda tej klasy. To w zasadzie różne rzeczy.

Informacje o tych samych funkcjach. Tak, częściowe dopasowanie będzie używać self.coef_, ponieważ nadal potrzebne są pewne wartości do aktualizacji w okresie treningu. I dla pustych coef_init po prostu ustawiamy wartości zerowe na self.coef_ i przechodzimy do następnego etapu szkolenia.

Opis.

Do pierwszego uruchomienia: Niezależnie od tego, jak (z lub bez rozgrzanego startu).Będziemy ćwiczyć przy zerowych współczynnikach, ale w rezultacie zaoszczędzimy średnią naszych współczynników.

N + 1 początek:

Z ciepłym początkiem. Sprawdzimy metodami _allocate_parameter_mem naszych poprzednich współczynników i zabierzemy go do treningu. W rezultacie oszczędzamy nasze średnie współczynniki.

Bez rozgrzanego startu. Wstawimy współczynniki zerowe (jako pierwszy start) i przejdziemy do etapu szkolenia. W rezultacie nadal będziemy pisać średnie współczynniki do pamięci.