Tot i que cada projecte d'aprenentatge automàtic és diferent, en tots se segueix el mateix flux de treball:
Identificar el problema
Recopilar i preparar les dades
Dividir les dades
Entrenar el model
Avaluar i ajustar el model
Exportar i implementar el model
A continuació veurem amb més detall els passos 2, 3, 4 i 5. El primer pas (identificar el problema) consisteix en definir bé què és allò que volem solucionar i quin resultat volem aconseguir. És important tenir clar si es tracta d'un problema de regressió, classificació o agrupament. El darrer pas (exportar i implementar el model) consisteix en la implementació del model a l'eina o aplicació on s'utilitzarà.
Després d'establir el vostre cas d'ús, haureu de recopilar dades per entrenar el model. L'obtenció i preparació de dades són passos fonamentals per crear un model d'aprenentatge automàtic. Les dades que tingues disponibles dictaminaran el tipus de problemes que pots resoldre. Quantes dades tens disponibles? Les teves dades són rellevants per a les preguntes que intentes respondre? Mentre recopiles les teves dades, tingues en compte les consideracions clau que s'esmenten a continuació:
Selecciona les característiques rellevants: Una característica és un atribut d'entrada que es fa servir per a l'entrenament del model. Les característiques són la manera com el teu model identifica patrons per tal de fer prediccions, per la qual cosa han de ser rellevants per a problema. Per exemple, per crear un model que predigui si la transacció d'una targeta de crèdit és fraudulenta o no, haureu de compilar un conjunt de dades que continguin detalls de la transacció, com ara el comprador, el venedor, l'import, la data, l'hora i els articles comprats. Altres atributs útils poden ser la informació històrica sobre el comprador, el venedor i la freqüència amb què l'article en qüestió ha estat objecte de frau.
Inclou suficients dades: En general, com més exemples d'entrenament tinguis, millor serà el resultat. La quantitat de dades d'exemple necessàries també s'ajusta a la complexitat del problema que intenteu resoldre.
Comprèn la varietat: El vostre conjunt de dades hauria d'abastar la diversitat de la dimensió del problema. Com més diversos siguin els exemples que veu un model durant l'entrenament, amb més facilitat podrà generalitzar exemples nous o no tan comuns.
Distribueix exemples per igual a totes les categories: És important recopilar quantitats semblants d'exemples d'entrenament per a cada categoria. Fins i tot si tens una gran quantitat de dades que corresponen a una etiqueta, és millor tenir una distribució equitativa per a cadascuna. És com escriure una prova d'opció múltiple on gairebé totes les respostes correctes són “C”. Aviat, una persona intel·ligent sabrà que pot respondre “C” sempre, sense ni tan sols mirar la pregunta.
Un cop hàgiu identificat les dades disponibles, us heu d'assegurar que estiguin a punt per a l'entrenament. Si les vostres dades tenen biaixos o valors erronis o faltants, això afecta la qualitat del model.
La divisió d'un conjunt de dades abans de l'entrenament d'un model d'aprenentatge automàtic és una pràctica comuna per avaluar la capacitat del model per generalitzar a noves dades. En general, es divideix el conjunt de dades en dos grups:
Conjunt d'entrenament: Aquest conjunt és utilitzat per ajustar els paràmetres del model durant el procés d'entrenament. Aquesta part de les dades és la que el model veu durant l'entrenament i s'utilitza per aprendre els patrons i les relacions entre les dades.
Conjunt de prova: Aquest conjunt és utilitzat per avaluar la capacitat del model per generalitzar a noves dades. Aquesta part de les dades no és utilitzada durant l'entrenament i és utilitzada per avaluar la precisió del model.
En general el conjunt de proves sol ser d'entre el 10% i el 20% de les dades.
El procés de divisió de dades també pot incloure un tercer conjunt anomenat conjunt de validació. Aquest conjunt és utilitzat per ajustar els hiperparàmetres del model, com ara el nombre d'èpoques d'entrenament o la taxa d'aprenentatge.
Gairebé tots els processos d'entrenament segueixen aquest mateix patró:
Predir: El model constarà de regles sobre com tractar les diferents característiques de les vostres dades. Les regles inicials solen ser aleatòries, per donar a l'algorisme un lloc on començar. Aleshores, el model utilitzarà aquestes regles per fer una predicció sobre el resultat de les dades.
És possible que no utilitzi totes les dades alhora, sinó que les fraccioni en lots. El procés d'entrenament seria molt més lent si el model hagués de comprovar tots els errors i ajustar-se després de cada punt de dades, de manera que el model s'actualitza després de cada lot. Quan el vostre model ha examinat tots els punts de dades, s'anomena època (epoch). En un procés d'entrenament típic, hi ha diverses èpoques, ja que el procés es repeteix fins que l'error és el més petit possible.
Error/pèrdua: Un cop el model hagi fet les seves prediccions, l'algoritme comprovarà la precisió del model. Aquest procés s'anomena error/pèrdua. El model necessita alguna manera de puntuar-se; normalment, això es genera utilitzant una funció d'error o pèrdua que retorna un valor únic que mostra com de diferents són les prediccions del model respecte al resultat real.
Ajust: Abans de la següent iteració, l'algoritme ajustarà les regles del model. La mida d'aquest canvi vindrà determinada per la quantitat d'error i per la taxa d'aprenentatge que establiu abans de començar l'entrenament. La taxa d'aprenentatge determina la mida del pas que l'algoritme utilitza per canviar les regles del model; com més gran sigui l'error en la iteració, més passos utilitzarà l'algorisme per ajustar el model. Una gran taxa d'aprenentatge farà que el procés d'entrenament sigui més ràpid, ja que els passos grans condueixen ràpidament a altiplans en la quantitat d'error. Tanmateix, trobar el punt dolç perfecte requereix ajustos precisos, de manera que, tot i que pot trigar més temps, una taxa d'aprenentatge més baixa tendeix a conduir a un model més precís.
El cicle d'entrenament s'acabarà quan el model arriba a un punt en què una ronda d'ajust només condueix a un canvi insignificant en l'error o quan arribi al nombre màxim d'iteracions (o èpoques) que li hem fixat.
Un cop hem entrenat el model hem d'avaluar-lo per assegurar-nos que actuarà com esperem davant de noves dades. Per avaluar el model s'utilitzen diverses mètriques com ara:
Error quadràtic mitjà (MSE): aquesta mètrica s'utilitza en problemes de regressió per avaluar la precisió dels valors que el model prediu. Es calcula prenent la diferència entre el valor real i el valor predit per cada instància, quadrant aquesta diferència, i després calculant la mitjana de totes les dades.
La matriu de confusió: és una mètrica d'avaluació comuna que s'utilitza en problemes de classificació per avaluar el rendiment d'un model de classificació. La matriu de confusió és una taula que mostra el nombre de prediccions correctes i incorrectes que fa el model per a cada classe.
Si les mètriques no són bones, es poden prendre mesures per millorar el model, com ara:
Ajustar els hiperparàmetres (nombre d'èpoques i taxa d'aprenentatge)
Canviar l'algoritme
Millorar el conjunt de dades d'entrenament.
El sobreentrenament (overfitting en anglès) és un problema que es produeix quan un model de machine learning s'ajusta massa a les dades d'entrenament i, per tant, perd la capacitat de generalització per a altres dades noves.
Això es deu al fet que el model ha après a detectar patrons o relacions específiques a les dades d'entrenament que no són necessàriament aplicables a altres dades. Això porta a un rendiment pobre del model en les dades noves, ja que està massa especialitzat en les dades d'entrenament i no és capaç de reconèixer les característiques generals del problema.
Per prevenir el sobreentrenament, es fan servir diferents tècniques, com ara la regularització, l'ús de conjunts de validació per a la selecció de models, la reducció de la complexitat del model o augmentar el nombre de dades.