Transfer learning wykorzystuje wiedzę zdobytą przy rozwiązywaniu jednego problemu i zastosowaniu jej do szczególnego, ale związanego z nim problemu.

Na przykład, wiedza zdobyta podczas nauki uznawania samochodów często w pewnym stopniu nie pozwala na uznanie samochodów ciężarowych.

Szkolenie wstępne

Gdy szkolimy sieć na niedużym zbiorze danych (na przykład: ImageNet), szkolimy wszystkie parametry sieci neuronowej i w ten sposób uczymy się modelu. zajmie to wiele godzin na Twojej GPU.

Dokładne strojenie

Możemy dać nowy zestaw danych, aby dopracować wstępnie przeszkolony CNN. Należy wziąć pod uwagę, że nowy zestaw danych jest prawie taki sam jak oryginalny zestaw danych używany do wstępnego szkolenia. Ponieważ nowy zestaw danych jest analogiczny, równoważne wagi są często używane do wyodrębnienia cech z nowego zestawu danych.

Jeśli nowy zestaw danych jest bardzo mały, lepiej jest trenować tylko ostateczne warstwy sieci, aby uniknąć overfitu, utrzymując wszystkie inne warstwy na stałym poziomie. Tak więc usuń warstwy docelowe z wcześniej wyszkolonej sieci. Dodaj nowe warstwy. Trenować tylko nowe warstwy.

Jeśli nowy zbiór danych jest bardzo duży, przetrenować całą sieć z początkowymi wagami z modelu przetrenowanego.

Jak dokładnie dostroić, jeśli nowy zbiór danych jest bardzo różny od pierwotnego?

Wcześniejsze funkcje sieci ConvNet zawierają bardziej ogólne cechy (np. czujki krawędziowe lub kolorowe), ale późniejsze warstwy sieci ConvNet stają się coraz bardziej specyficzne dla małych wydruków klas zawartych w oryginalnym zbiorze danych.

Wcześniejsze warstwy mogą pomóc w wyodrębnieniu cech nowych danych. Dobrze więc będzie, jeśli naprawisz wcześniejsze warstwy i przekwalifikujesz pozostałe, jeśli kupisz tylko trochę wiedzy.

Jeśli posiadasz dużą wiedzę, przekwalifikujesz całą sieć z wagami zainicjowanymi z wcześniejszej sieci.