Podstawy AI

Co to jest Transfer Learning?

mm
Dodaj Unite.AI do preferowanych ÅšrÃģdeł w Google

Co to jest Transfer Learning?

Podczas praktykowania machine learningu, szkolenie modelu moÅže zająć duÅžo czasu. Tworzenie architektury modelu od podstaw, szkolenie modelu, a następnie dostosowywanie modelu to ogromna ilość czasu i wysiłku. O wiele bardziej efektywny sposÃģb szkolenia modelu machine learningowego jest uÅžycie architektury, ktÃģra juÅž została zdefiniowana, potencjalnie z wagami, ktÃģre juÅž zostały obliczone. To jest głÃģwny pomysł za transfer learning, pobranie modelu, ktÃģry juÅž został uÅžyty i przystosowanie go do nowego zadania.

Przed zagłębieniem się w rÃģÅžne sposoby, w jakie transfer learning moÅže być uÅžyty, spÃģjrzmy na to, dlaczego transfer learning jest tak potęŞną i uÅžyteczną techniką.

Rozwiązywanie problemu Deep Learning

Kiedy prÃģbujesz rozwiązać problem głębokiego uczenia, jak budowanie klasyfikatora obrazÃģw, musisz stworzyć architekturę modelu, a następnie wyszkolić model na Twoich danych. Szkolenie klasyfikatora modelu obejmuje dostosowywanie wag sieci, proces, ktÃģry moÅže zająć godziny lub nawet dni, w zaleÅžności od złoÅžoności modelu i danych. Czas szkolenia będzie skalował się wraz z rozmiarem danych i złoÅžonością architektury modelu.

Jeśli model nie osiąga poŞądanej dokładności dla zadania, najprawdopodobniej konieczne będzie dostosowanie modelu, a następnie ponowne szkolenie. Oznacza to kolejne godziny szkolenia, aÅž do znalezienia optymalnej architektury, długości szkolenia i podziału danych. Kiedy uwzględnisz, ile zmiennych musi być dopasowanych do siebie, aby klasyfikator był uÅžyteczny, ma sens, Åže inÅžynierowie machine learningu zawsze szukają łatwiejszych, bardziej efektywnych sposobÃģw szkolenia i wdraÅžania modeli. Dlatego teÅž powstała technika transfer learningu.

Po zaprojektowaniu i przetestowaniu modelu, jeśli model okazał się przydatny, moÅže być zapisany i ponownie uÅžyty pÃģÅšniej do podobnych problemÃģw.

Typy Transfer Learning

OgÃģlnie rzecz biorąc, istnieją dwa rÃģÅžne rodzaje transfer learning: tworzenie modelu od podstaw i uÅžycie wstępnie wyszkolonego modelu.

Kiedy tworzysz model od podstaw, musisz stworzyć architekturę modelu, ktÃģra moÅže interpretować Twoje dane szkoleniowe i wyodrębnić z nich wzorce. Po pierwszym szkoleniu modelu najprawdopodobniej będziesz musiał wprowadzić zmiany, aby uzyskać optymalną wydajność modelu. MoÅžesz następnie zapisać architekturę modelu i uÅžyć jej jako punktu wyjścia dla modelu, ktÃģry będzie uÅžywany do podobnego zadania.

W drugim przypadku – uÅžyciu wstępnie wyszkolonego modelu – musisz po prostu wybrać wstępnie wyszkolony model do uÅžycia. Wiele uczelni i zespołÃģw badawczych udostępnia specyfikacje swoich modeli do ogÃģlnego uÅžycia. Architektura modelu moÅže być pobrana wraz z wagami.

Podczas przeprowadzania transfer learningu cała architektura modelu i wagi mogą być uÅžyte do zadania, lub tylko niektÃģre części/warstwy modelu mogą być uÅžyte. UÅžycie tylko części wstępnie wyszkolonego modelu i szkolenie reszty modelu nazywa się fine-tuningiem.

Dopracowywanie sieci

Dopracowywanie sieci opisuje proces szkolenia tylko niektÃģrych warstw sieci. Jeśli nowy zestaw danych szkoleniowych jest bardzo podobny do zestawu danych uÅžytego do szkolenia oryginalnego modelu, wiele tych samych wag moÅže być uÅžytych.

Liczba warstw w sieci, ktÃģre powinny być odblokowane i przeszkolone, powinna skalować się wraz z rozmiarem nowego zestawu danych. Jeśli zestaw danych, na ktÃģrym szkolisz, jest mały, lepszą praktyką jest pozostawienie większości warstw takimi, jakie są, i szkolenie tylko kilku ostatnich warstw. To w celu zapobiegania przeuczeniu się sieci. Alternatywnie, ostatnie warstwy wstępnie wyszkolonej sieci mogą być usunięte, a nowe warstwy mogą być dodane, ktÃģre są następnie szkolone. Z drugiej strony, jeśli zestaw danych jest duÅžy, potencjalnie większy niÅž oryginalny zestaw danych, cała sieć powinna być przeszkolona. Aby uÅžyć sieci jako stałego wyodrębniania cech, większość sieci moÅže być uÅžyta do wyodrębniania cech, a tylko ostatnia warstwa sieci moÅže być odblokowana i szkolona.

Kiedy dopracowujesz sieć, pamiętaj, Åže wczesne warstwy sieci ConvNet zawierają informacje reprezentujące bardziej ogÃģlne cechy obrazÃģw. Są to cechy takie jak krawędzie i kolory. Z drugiej strony, pÃģÅšniejsze warstwy sieci ConvNet zawierają szczegÃģły, ktÃģre są bardziej specyficzne dla poszczegÃģlnych klas zawartych w zestawie danych, na ktÃģrym model był początkowo szkolony. Jeśli szkolisz model na zestawie danych, ktÃģry jest bardzo rÃģÅžny od oryginalnego zestawu danych, najprawdopodobniej będziesz chciał uÅžyć wczesnych warstw modelu do wyodrębniania cech i tylko resztę modelu przeszkolić.

Przykłady Transfer Learning

Najczęstsze zastosowania transfer learningu to prawdopodobnie te, ktÃģre wykorzystują dane obrazowe jako dane wejściowe. Są to często zadania predykcji/klasyfikacji. SposÃģb, w jaki sieci neuronowe konwolucyjne interpretują dane obrazowe, sprzyja ponownemu uÅžyciu aspektÃģw modeli, poniewaÅž warstwy konwolucyjne często rozrÃģÅžniają bardzo podobne cechy. Jednym z przykładÃģw powszechnego problemu transfer learningu jest zadanie ImageNet 1000, ogromny zestaw danych zawierający 1000 rÃģÅžnych klas obiektÃģw. Firmy, ktÃģre rozwijają modele, ktÃģre osiągają wysoką wydajność na tym zestawie danych, często udostępniają swoje modele na licencjach, ktÃģre pozwalają innym na ich ponowne uÅžycie. NiektÃģre z modeli, ktÃģre powstały w wyniku tego procesu, to model Microsoft ResNet (MSFT ), model Google (GOOGL ) Inception i grupa modeli Oxford VGG.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, Åže pomoÅže innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.