Podstawy AI
Co to jest Transfer Learning?
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.












