taló Què és Transfer Learning? - Unite.AI
Connecteu-vos amb nosaltres
Classe magistral d'IA:

IA 101

Què és Transfer Learning?

mm
actualitzat on

Què és Transfer Learning?

Quan es practica l'aprenentatge automàtic, entrenar un model pot trigar molt de temps. Crear una arquitectura de model des de zero, entrenar el model i, a continuació, ajustar-lo és una quantitat enorme de temps i esforç. Una manera molt més eficient d'entrenar un model d'aprenentatge automàtic és utilitzar una arquitectura que ja s'ha definit, potencialment amb pesos que ja s'han calculat. Aquesta és la idea principal darrere transferència d’aprenentatge, agafant un model que ja s'ha utilitzat i reutilitzant-lo per a una nova tasca.

Abans d'aprofundir en les diferents maneres en què es pot utilitzar l'aprenentatge per transferència, prenem un moment per entendre per què l'aprenentatge per transferència és una tècnica tan potent i útil.

Resolució d'un problema d'aprenentatge profund

Quan intenteu resoldre un problema d'aprenentatge profund, com ara construir un classificador d'imatges, heu de crear una arquitectura de model i després entrenar el model amb les vostres dades. Entrenar el classificador de models implica ajustar els pesos de la xarxa, un procés que pot durar hores o fins i tot dies depenent de la complexitat tant del model com del conjunt de dades. El temps d'entrenament s'escalarà d'acord amb la mida del conjunt de dades i la complexitat de l'arquitectura del model.

Si el model no aconsegueix el tipus de precisió necessari per a la tasca, probablement s'haurà de fer un ajustament del model i, aleshores, caldrà reentrenar el model. Això significa més hores de formació fins que es pugui trobar una arquitectura òptima, una durada de l'entrenament i una partició del conjunt de dades. Quan considereu quantes variables s'han d'alinear entre si perquè un classificador sigui útil, té sentit que els enginyers d'aprenentatge automàtic sempre busquen maneres més fàcils i eficients d'entrenar i implementar models. Per aquest motiu, es va crear la tècnica d'aprenentatge per transferència.

Després de dissenyar i provar un model, si el model ha resultat útil, es pot desar i reutilitzar més tard per a problemes similars.

Tipus d'aprenentatge de transferència

En general, n'hi ha dos diferents tipus d'aprenentatge transferit: desenvolupar un model des de zero i utilitzar un model pre-entrenat.

Quan desenvolupeu un model des de zero, haureu de crear una arquitectura de model capaç d'interpretar les vostres dades d'entrenament i extreure'n patrons. Després d'entrenar el model per primera vegada, probablement haureu de fer-hi canvis per tal d'aconseguir el rendiment òptim del model. A continuació, podeu desar l'arquitectura del model i utilitzar-la com a punt de partida per a un model que s'utilitzarà en una tasca similar.

En la segona condició, l'ús d'un model pre-entrenat, només heu de seleccionar un model pre-entrenat per utilitzar-lo. Moltes universitats i equips de recerca posaran a disposició les especificacions del seu model per a un ús general. L'arquitectura del model es pot descarregar juntament amb els pesos.

Quan es duu a terme l'aprenentatge de transferència, es poden utilitzar tota l'arquitectura i els pesos del model per a la tasca en qüestió, o només es poden utilitzar certes parts/capes del model. L'ús només d'una part del model pre-entrenat i l'entrenament de la resta del model s'anomena afinació.

Ajustant una xarxa

Ajustar una xarxa descriu el procés d'entrenar només algunes de les capes d'una xarxa. Si un conjunt de dades d'entrenament nou és molt semblant al conjunt de dades utilitzat per entrenar el model original, es poden utilitzar molts dels mateixos pesos.

El nombre de capes de la xarxa que s'han de descongelar i tornar a entrenar s'hauria d'escalar d'acord amb la mida del nou conjunt de dades. Si el conjunt de dades en què s'està entrenant és petit, és millor mantenir la majoria de les capes tal com són i entrenar només les últimes capes. Això és per evitar que la xarxa s'ajusti en excés. Alternativament, es poden eliminar les capes finals de la xarxa prèviament entrenada i s'afegeixen capes noves, que després s'entrenen. En canvi, si el conjunt de dades és un conjunt de dades gran, potencialment més gran que el conjunt de dades original, s'hauria de tornar a entrenar tota la xarxa. Per utilitzar la xarxa com a un extractor de funcions fixes, la majoria de la xarxa es pot utilitzar per extreure les funcions, mentre que només la capa final de la xarxa es pot descongelar i entrenar.

Quan esteu ajustant una xarxa, només recordeu que les capes anteriors de ConvNet són les que contenen la informació que representa les característiques més genèriques de les imatges. Aquestes són característiques com les vores i els colors. En canvi, les capes posteriors de ConvNet contenen els detalls més específics de les classes individuals que es mantenen dins del conjunt de dades en què es va entrenar el model inicialment. Si esteu entrenant un model en un conjunt de dades que és força diferent del conjunt de dades original, probablement voldreu utilitzar les capes inicials del model per extreure característiques i només entrenar la resta del model.

Exemples d'aprenentatge de transferència

Les aplicacions més habituals d'aprenentatge per transferència són probablement les que utilitzen dades d'imatge com a entrades. Sovint són tasques de predicció/classificació. El camí Xarxes neuronals revolucionàries interpretar dades d'imatge es presta a reutilitzar aspectes dels models, ja que les capes convolucionals solen distingir característiques molt similars. Un exemple d'un problema comú d'aprenentatge de transferència és la tasca ImageNet 1000, un conjunt de dades massiu ple de 1000 classes diferents d'objectes. Les empreses que desenvolupen models que aconsegueixen un alt rendiment en aquest conjunt de dades sovint publiquen els seus models amb llicències que permeten que altres els reutilitzin. Alguns dels models que han resultat d'aquest procés inclouen el Model Microsoft ResNet, el model d'inici de Google i el Model Oxford VGG grup.

Blogger i programador amb especialitats en Aprenentatge automàtic i Aprenentatge profund temes. Daniel espera ajudar els altres a utilitzar el poder de la IA per al bé social.