En termes generals es pot definir com al conjunt de totes les tasques en què un ordinador pren decisions. Però nosaltres ja sabem fer programes on un ordinador pren decisions, p.ex. utilitzant els condicionals if. Una cosa que totes les IA tenen en comú és que ajuden a resoldre problemes on hi ha algun tipus d'incertesa sobre la sortida correcta. La incertesa pot venir de molts llocs, de vegades és un problema complex amb molts factors, per la qual cosa predir el resultat manualment seria molt complicat o també pot haver-hi certa incertesa sobre quin resultat és adequat per a una situació concreta.
Així, si un programa segueix un conjunt de regles "si... aleshores", es podria dir que no és gaire intel·ligent artificialment perquè el programador ha creat directament les regles que determinen quines entrades haurien de donar sortides particulars. Tanmateix, si el programa ha estudiat un conjunt de dades i ha compilat el seu propi conjunt de regles, es pot considerar que és bastant intel·ligent artificialment, ja que el programador tenia molt menys control sobre la sortida final.
L'aprenentatge automàtic (o machine learning) és similar a la intel·ligència artificial i sovint les seves definicions són confuses. L'aprenentatge automàtic és un conjunt d'eines i pràctiques que utilitzen dades per entrenar un algorisme d'IA per produir una sortida millor i més precisa.
En general, els humans prenem decisions de dues maneres:
Utilitzant la lògica i el raonament.
Segons l'experiència.
Per exemple, imaginem que estem intentant decidir quin cotxe comprar. Podem mirar amb atenció les especificacions dels cotxes, com ara el preu, el consum, els accessoris i intentar trobar la millor combinació. Això és utilitzar la lògica i el raonament. Si, en canvi, demanem a tots els nostres amics quins cotxes tenen i què els agrada i què no, formem una llista d'informació i utilitzem aquesta llista per decidir, llavors estem utilitzant l'experiència (en aquest cas, les experiències dels nostres amics).
L'aprenentatge automàtic és el segon mètode: prendre decisions utilitzant l'experiència (les dades).
Fins fa un temps, si volíem que un ordinador fes una tasca, havíem d'escriure un programa, és a dir, tot un conjunt d'instruccions que l'ordinador hagués de seguir. Aquest procés és bo per a tasques senzilles, però algunes tasques són massa complicades per a aquest marc. Per exemple, considereu la tasca d'identificar si una imatge conté una poma. Si comencem a escriure un programa informàtic per desenvolupar aquesta tasca, ràpidament ens adonem que és força complicat.
Fem un pas enrere i fem la següent pregunta. Com hem après els humans a identificar una poma? La manera com vam aprendre la majoria de paraules no va ser que algú ens expliqués què volien dir; les hem après repetint. Vam veure molts objectes durant la nostra infància, i els adults ens explicaven quins eren aquests objectes. Per saber què era una poma, vam veure moltes pomes al llarg dels anys mentre sentíem la paraula poma. En l'aprenentatge automàtic, això és el que fem amb l'ordinador. Mostrem a l'ordinador moltes imatges, i li diem quines contenen una poma (que constitueix les nostres dades). Repetim aquest procés fins que l'ordinador capta els patrons i els atributs adequats que constitueixen una poma. Al final del procés, quan mostrem a l'ordinador una imatge nova, aquest pot utilitzar aquests patrons per determinar si la imatge conté una poma. Evidentment, encara hem de programar l'ordinador perquè capti aquests patrons. Per a això, disposem de diverses tècniques, en aquest curs en veurem algunes.
De la mateixa manera que l'aprenentatge automàtic forma part de la intel·ligència artificial, l'aprenentatge profund és una part de l'aprenentatge automàtic. A l'apartat anterior, hem après que tenim diverses tècniques que fem servir per aconseguir que l'ordinador aprengui de les dades. Una d'aquestes tècniques, les xarxes neuronals, ha funcionat molt bé, per la qual cosa té el seu propi camp d'estudi anomenat aprenentatge profund o deep learning (DL).
L'aprenentatge profund és possiblement el tipus d'aprenentatge automàtic més utilitzat perquè funciona molt bé. Si ens fixem en qualsevol de les aplicacions actuals d'IA, com ara el reconeixement d'imatges, la generació de text, els cotxes autònoms, gairebé totes estan basades en les xarxes neuronals i l'aprenentatge profund.
L'aprenentatge automàtic té moltes aplicacions importants en diferents camps. Algunes de les aplicacions més destacades inclouen:
Reconeixement de veu i processament del llenguatge natural: L'aprenentatge automàtic és utilitzat en sistemes de reconeixement de veu i de processament del llenguatge natural, com ara assistents virtuals i traductors automàtics.
Visió per computador: L'aprenentatge automàtic és utilitzat en aplicacions de visió per computador, com ara la detecció d'objectes, la segmentació d'imatges, la detecció de cares, la reconeixement de gestos i la interpretació de vídeos.
Anàlisi de dades i predicció: L'aprenentatge automàtic és utilitzat per analitzar dades i identificar patrons i tendències que poden ser útils per a les empreses i institucions. També s'utilitza per a la predicció de resultats en molts camps, com ara la salut, la finances, l'automoció i altres.
Medicina: L'aprenentatge automàtic és utilitzat en aplicacions de medicina, com ara la diagnosi de malalties, la identificació de mutacions genètiques i la investigació de nous tractaments.
Robòtica: L'aprenentatge automàtic és utilitzat en la programació de robots perquè puguin prendre decisions autònomes basades en les seves entrades sensorials.
Jocs i entreteniment: L'aprenentatge automàtic és utilitzat en jocs i aplicacions d'entreteniment per crear personatges i entorns interactius, i per millorar l'experiència dels usuaris.
Seguretat cibernètica: L'aprenentatge automàtic és utilitzat en la detecció i prevenció d'atacs cibernètics i en la millora de la seguretat dels sistemes informàtics.
En resum, l'aprenentatge automàtic té moltes aplicacions importants en diferents camps i ha estat una tecnologia clau en molts avenços tecnològics recents.
Els models d'aprenentatge automàtic s'agrupen en diferents tipus, segons la forma en què funcionen. Les tres famílies principals de models d'aprenentatge automàtic són: aprenentatge supervisat, no supervisat i de reforç.
L'aprenentatge supervisat és una forma d'aprenentatge automàtic on el model s'entrena utilitzant dades de les quals ja es coneix la sortida correcta. Es fan prediccions basades en un procés d'aprenentatge on les dades d'entrada s'han etiquetat amb la sortida/classe correcta. L'element de supervisió el fa en part un humà que etiqueta les entrades amb la classe/sortida correcta, però el seguiment de la precisió i l'ajustament de l'algoritme es realitza pel propi algorisme.
Si per exemple tenim un conjunt d'imatges de gossos i gats, i les etiquetes són "gos" i "gat". Per a aquest conjunt de dades, el model d'aprenentatge automàtic utilitzaria dades anteriors per predir l'etiqueta dels nous punts de dades. Això vol dir que si introduïm una imatge nova sense etiqueta, el model endevinarà si la imatge és d'un gos o d'un gat, predient així l'etiqueta del punt de dades:
Ara bé, les etiquetes també poden ser números (p.ex. el pes de la mascota), no només categories o estats (com gat i gos). Els números (dades quantitatives) i els estats (dades categòriques) són els dos tipus de dades que trobarem als models d'aprenentatge supervisat.
Això dona lloc a dos tipus de models d'aprenentatge supervisat:
Els models de regressió són els tipus de models que prediuen dades numèriques. La sortida d'un model de regressió és un nombre, com ara el pes de l'animal.
Els models de classificació són els tipus de models que prediuen dades categòriques. La sortida d'un model de classificació és una categoria o un estat, com ara el tipus d'animal (gat o gos).
L'aprenentatge no supervisat també és un tipus d'aprenentatge automàtic molt comú. Es diferencia de l'aprenentatge supervisat perquè les dades no estan etiquetades. L'objectiu d'un model d'aprenentatge no supervisat és extreure tanta informació com sigui possible d'un conjunt de dades que no té etiquetes ni objectius a predir.
En l'aprenentatge no supervisat, l'algoritme observa les dades i descobreix patrons i semblances. Com a humans, podem aprendre observant patrons en el món real. Per exemple, fins i tot sense saber els noms dels cotxes, podríem mirar molts cotxes i agrupar-los en diferents tipus, en funció de característiques com la seva forma, mida o nombre de rodes. Això és el que s'aconsegueix amb l'aprenentatge no supervisat.
L'objectiu de l'aprenentatge no supervisat és trobar els punts de dades que són semblants i dir a l'usuari quines són les semblances. És el què es coneix com a agrupaments o clusters.
A diferència dels algorismes supervisats i no supervisats, l'aprenentatge per reforç pren decisions en temps real, aprenent dels seus errors i millorant constantment.
L'aprenentatge de reforç implica entrenar un programari, anomenat agent, per prendre decisions i reaccionar al seu entorn. En lloc de separar les fases d'entrenament i de prova, com en l'aprenentatge supervisat, un agent d'aprenentatge de reforç aprendrà mentre el proveu.
L'aprenentatge de reforç és molt semblant a com els nens aprenen a caminar. Intenten aixecar-se i després caure, la pròxima vegada s'ajusten una mica, intentant corregir els seus errors. Finalment, aprenen a posar-se dempeus i després caminar per l'experiència; L'aprenentatge de reforç funciona de la mateixa manera.
El model és el conjunt de regles que representen les nostres dades i que es poden utilitzar per fer prediccions. Podem pensar en un model com una representació de la realitat utilitzant un conjunt de regles que imiten al màxim les dades existents. Aquesta representació pot ser exacta o no, però segons les nostres dades, és la representació més precisa de la realitat que podem formular. Més tard fem servir aquesta regla per fer prediccions sobre dades no vistes.
Un algorisme és un procediment, o conjunt de passos, utilitzat per resoldre un problema o realitzar un càlcul. En aquest cas, l'objectiu d'un algorisme és construir un model. D'algorismes n'hi ha bastants de diferents i un mateix algorisme pot servir per a un problema de regressió i per classificació, o no. En aquesta taula es llisten els més importants:
Un model és el que fem servir per fer prediccions i un algorisme és el que fem servir per construir el model.
Tenim bàsicament dos grans grups d'eines que es poden utilitzar per a fer aplicacions de machine learning:
El primer grup són eines automàtiques que han desenvolupat diverses empreses per tal que tothom pugui utilitzar la potència de l'aprenentatge automàtic. Són eines pensades per a l'ús general i en la majoria dels casos són de pagament. Algunes de les més conegudes són:
DataRobot, Vertex AI, BigML ó TeachableMachine
A part del preu, aquestes eines poden tenir alguna limitació a l'hora d'escollir els algoritmes, hiperparàmetres o mètriques.
El segon grup són les eines que utilitzen els científics i programadors. Normalment basades en un llenguatge informàtic i concretament en Python. Hi ha moltes llibreries que ens faciliten la feina, les més conegudes són:
scikit-learn, turicreate, PyTorch i TensorFlow
Una eina molt potent que utilitzen els científics de dades, els programadors i altres professionals que necessiten escriure i executar codi, són els notebooks com Jupyter o Colab. Són útils per explorar dades, experimentar amb algoritmes i crear informes interactius i visualitzacions. A més, permeten la col·laboració i l'accés des de qualsevol lloc, el que els fa una eina imprescindible per a molts usuaris.