ciot Ce este Transfer Learning? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce este Transfer Learning?

mm
Actualizat on

Ce este Transfer Learning?

Când practicați învățarea automată, antrenarea unui model poate dura mult timp. Crearea unei arhitecturi de model de la zero, antrenamentul modelului și apoi modificarea modelului reprezintă o cantitate enormă de timp și efort. O modalitate mult mai eficientă de a antrena un model de învățare automată este utilizarea unei arhitecturi care a fost deja definită, potențial cu ponderi care au fost deja calculate. Aceasta este ideea principală din spate transfer de învățare, luând un model care a fost deja folosit și reutilizandu-l pentru o nouă sarcină.

Înainte de a explora diferitele moduri în care învățarea prin transfer poate fi utilizată, să ne acordăm un moment pentru a înțelege de ce învățarea prin transfer este o tehnică atât de puternică și utilă.

Rezolvarea unei probleme de învățare profundă

Când încercați să rezolvați o problemă de învățare profundă, cum ar fi construirea unui clasificator de imagini, trebuie să creați o arhitectură a modelului și apoi să antrenați modelul pe datele dvs. Antrenarea clasificatorului de model presupune ajustarea greutăților rețelei, proces care poate dura ore sau chiar zile, în funcție de complexitatea atât a modelului, cât și a setului de date. Timpul de antrenament se va scala în funcție de dimensiunea setului de date și de complexitatea arhitecturii modelului.

În cazul în care modelul nu atinge tipul de precizie necesar pentru sarcină, va trebui probabil să se facă modificări ale modelului și apoi modelul va trebui să fie recalificat. Acest lucru înseamnă mai multe ore de antrenament până când se poate găsi o arhitectură optimă, durata antrenamentului și partiția setului de date. Când luați în considerare câte variabile trebuie aliniate una cu cealaltă pentru ca un clasificator să fie util, este logic ca inginerii de învățare automată să caute mereu modalități mai simple și mai eficiente de a antrena și implementa modele. Din acest motiv, a fost creată tehnica de învățare prin transfer.

După proiectarea și testarea unui model, dacă modelul s-a dovedit util, acesta poate fi salvat și reutilizat ulterior pentru probleme similare.

Tipuri de învățare prin transfer

În general, sunt două diferite tipuri de învățare prin transfer: dezvoltarea unui model de la zero și utilizarea unui model pre-antrenat.

Când dezvoltați un model de la zero, va trebui să creați o arhitectură de model capabilă să interpreteze datele de antrenament și să extragă modele din acesta. După ce modelul este antrenat pentru prima dată, probabil că va trebui să-i faceți modificări pentru a obține performanța optimă a modelului. Apoi puteți salva arhitectura modelului și o puteți utiliza ca punct de plecare pentru un model care va fi folosit pentru o sarcină similară.

În a doua condiție – utilizarea unui model pre-antrenat – trebuie doar să selectați un model pre-antrenat pe care să îl utilizați. Multe universități și echipe de cercetare vor pune la dispoziție specificațiile modelului lor pentru uz general. Arhitectura modelului poate fi descărcată împreună cu greutățile.

Atunci când se desfășoară învățarea prin transfer, întreaga arhitectură a modelului și greutățile pot fi utilizate pentru sarcina în cauză sau pot fi utilizate doar anumite porțiuni/straturi ale modelului. Folosind doar o parte din modelul pre-antrenat și antrenarea restului modelului este denumit reglaj fin.

Reglarea fină a unei rețele

Reglarea fină a unei rețele descrie procesul de antrenare doar a unor straturi dintr-o rețea. Dacă un nou set de date de antrenament seamănă mult cu setul de date folosit pentru a antrena modelul original, pot fi utilizate multe dintre aceleași ponderi.

Numărul de straturi din rețea care ar trebui dezghețate și reantrenate ar trebui să se extindă în funcție de dimensiunea noului set de date. Dacă setul de date pe care se antrenează este mic, este o practică mai bună să păstrezi majoritatea straturilor așa cum sunt și să antrenezi doar ultimele câteva straturi. Acest lucru este pentru a preveni supraadaptarea rețelei. Alternativ, straturile finale ale rețelei pre-antrenate pot fi îndepărtate și sunt adăugate noi straturi, care sunt apoi antrenate. În schimb, dacă setul de date este un set de date mare, potențial mai mare decât setul de date original, întreaga rețea ar trebui reeducată. Pentru a utiliza rețeaua ca un extractor de caracteristici fixe, majoritatea rețelei poate fi utilizată pentru a extrage caracteristicile, în timp ce doar stratul final al rețelei poate fi dezghețat și antrenat.

Când reglați o rețea, amintiți-vă că straturile anterioare ale ConvNet sunt cele care conțin informațiile reprezentând caracteristicile mai generice ale imaginilor. Acestea sunt caracteristici precum marginile și culorile. În contrast, straturile ulterioare ale ConvNet conțin detalii care sunt mai specifice claselor individuale deținute în setul de date pe care modelul a fost antrenat inițial. Dacă antrenați un model pe un set de date care este destul de diferit de setul de date inițial, probabil că veți dori să utilizați straturile inițiale ale modelului pentru a extrage caracteristici și doar reantrenați restul modelului.

Exemple de transfer de învățare

Cele mai comune aplicații ale învățării prin transfer sunt probabil cele care folosesc date de imagine ca intrări. Acestea sunt adesea sarcini de predicție/clasificare. Modul în care Rețele neuronale convoluționale interpretarea datelor de imagine se pretează la reutilizarea aspectelor modelelor, deoarece straturile convoluționale disting adesea caracteristici foarte asemănătoare. Un exemplu de problemă comună de învățare prin transfer este sarcina ImageNet 1000, un set de date masiv plin de 1000 de clase diferite de obiecte. Companiile care dezvoltă modele care ating performanțe ridicate pe acest set de date își lansează adesea modelele sub licențe care permit altora să le refolosească. Unele dintre modelele care au rezultat în urma acestui proces includ Model Microsoft ResNet, Google Inception Model și Modelul Oxford VGG grup.

Blogger și programator cu specialități în Invatare mecanica și Invatare profunda subiecte. Daniel speră să-i ajute pe alții să folosească puterea AI pentru binele social.