Les xarxes neuronals són algorismes que imiten parts de com les cèl·lules del nostre cervell (neurones) col·laboren per prendre decisions.
Podeu utilitzar xarxes neuronals per classificar dades i aplicar etiquetes, també poden predir resultats numèrics i, fins i tot, processar el llenguatge natural per entendre les ordres. Tot i que són extremadament útils, crear i entrenar una xarxa neuronal requereix molt de temps i processadors extremadament potents.
A dalt hi ha un exemple de xarxa neuronal simple, representada com un gràfic format per nodes i connexions.
Els cercles s'anomenen nodes o neurones i s'organitzen en capes, cada columna de nodes representa una única capa. La primera capa de qualsevol xarxa neuronal s'anomena capa d'entrada i cadascun dels nodes rebrà un únic atribut del punt de dades en què està treballant actualment la xarxa neuronal. Per exemple, la capa d'entrada d'una xarxa neuronal que s'utilitza per predir els preus de l'habitatge podria semblar així:
La capa final de cada xarxa neuronal és la capa de sortida. Si el resultat desitjat és un valor únic, com un nombre per a un problema de regressió, només hi haurà un node a la capa de sortida. Si s'utilitza una xarxa per classificar, necessitareu un node de sortida per a cada etiqueta potencial.
Entre aquestes dues capes hi ha capes ocultes, que pot ser una sola capa o moltes capes connectades entre si. Aquestes capes s'anomenen "ocultes", ja que el programador no té cap manera d'interaccionar directament amb elles.
Els nodes de les capes ocultes generaran valors a partir de les seves entrades (nodes que s'hi connecten des de les capes anteriors) aplicant pesos a ells. Cada connexió en una xarxa neuronal té un pes. Com més gran sigui el pes, més influeix aquesta entrada en el valor d'un node. Els nodes i connexions de les capes ocultes combinen múltiples entrades.
Les xarxes neuronals són molt bones per aprendre i representar relacions complexes entre parts d'una entrada i el resultat desitjat. Per exemple, en un conjunt de dades de pel·lícules, una xarxa neuronal podria modelar la influència que tenen les combinacions de temps d'execució, nombre de línies de diàleg i gènere en les vendes de taquilla, mentre que altres mètodes poden no detectar aquestes relacions.
Podeu pensar que cada node és una funció de mapeig que combina diferents parts de l'entrada per crear una característica — una combinació d'entrades i els seus pesos que representen una relació en les dades. Aquestes característiques actuen com a entrades per a altres nodes i més funcions de mapeig. La combinació de totes aquestes funcions de mapeig fa que les xarxes neuronals siguin molt més precises que altres mètodes d'aprenentatge automàtic quan es treballen amb dades complexes (com imatges).
La manera com els nodes estan connectats entre si determina la topologia de la xarxa.
En les xarxes neuronals feed-forward tots els nodes d'una capa estan connectats a tots els nodes de la capa següent. Això vol dir que tots els nodes de la capa d'entrada estan connectats a tots els nodes de la primera capa oculta i així successivament fins a la capa de sortida.
S'anomenen feed-forward perquè la direcció del flux de dades sempre és cap endavant.
Les xarxes neuronals recurrents permetre que les connexions vagin cap enrere, de manera que la sortida d'un node es pot introduir a una capa anterior per a la següent iteració del model.
Això és útil per a situacions en què un resultat anterior d'un node té un impacte en la següent sortida, com ara en el text predictiu on les últimes paraules tenen un gran impacte en la següent recomanació.
Mentre que les xarxes neuronals no funcionen exactament com ho fa el cervell, és una analogia útil per ajudar-vos a entendre la tècnica. Dins del cervell, les cèl·lules cerebrals individuals estan connectades entre si mitjançant sinapsis. Podeu pensar en els nodes d'una xarxa neuronal com a cèl·lules cerebrals i les connexions com a sinapsis.
La informació es transmet entre les cèl·lules cerebrals en forma de senyals elèctrics, i les cèl·lules receptores combinen aquests senyals per decidir si també haurien d'enviar un senyal. Aprenem perquè el nostre cervell enforteix les connexions neuronals útils i debilita (o "poda") les connexions menys útils. Les xarxes neuronals també ho fan ajustant els pesos a mesura que aprenen, amplificant les connexions útils mentre anul·len els altres posant el seu pes a zero.
El funcionament intern de les xarxes neuronals és famós complex i difícil d'entendre, fins i tot per als professionals que hi treballen cada dia. La manera com els nodes transformen les dades sovint no està clara i el propòsit d'aquesta transformació pot ser encara més difícil d'entendre.
En els propers apartats, veurem una visió general de com les xarxes neuronals processen diferents tipus de dades, però evitaré entrar en les matemàtiques que succeeixen dins de la xarxa. Tot el que heu de saber és que durant l'entrenament, els pesos de les connexions s'ajusten per minimitzar l'error, igual que en altres tipus d'aprenentatge automàtic.
Les entrades d'una xarxa neuronal s'han de representar com un nombre, com ara els valors de color dels píxels que representen una imatge. Es pot emmagatzemar una imatge en escala de grisos utilitzant un valor per a cada píxel, un nombre entre 1 (totalment negre) i 0 (blanc).
Per alimentar imatges a una xarxa neuronal, necessiteu un node d'entrada per a cada valor que representi part de la imatge. Per a l'exemple anterior, una imatge en escala de grisos, només necessitareu un node per píxel:
Per a les imatges en color, el color de cada píxel s'emmagatzema com a tres valors RGB separats, de manera que cada píxel necessitaria tres nodes d'entrada. La imatge d'exemple que vaig utilitzar anteriorment tenia només 16 píxels i requeriria 48 (16 × 3) nodes d'entrada. Una imatge HD típica té 2.073.600 píxels.
Durant l'entrenament, la xarxa s'exposa a moltes imatges i les capes ocultes s'ajustaran fins que responguin constantment a patrons específics que són comuns a totes les imatges d'entrenament. Si estiguéssiu entrenant una xarxa neuronal per identificar gossos, aprendria a respondre a patrons similars a partir de diverses imatges, patrons que reconeixeríem com a orelles, nas més llargs, pelatge, cues i, potencialment, una llengua que sobresurt.
La xarxa neuronal no té ni idea que aquests patrons són parts del cos, sinó que l'algoritme d'aprenentatge automàtic ha ajustat els pesos perquè les connexions corresponents a aquests patrons siguin més fortes. La xarxa ha après que quan troba un munt d'aquests patrons combinats, hauria de predir que la imatge conté un gos.
Les xarxes neuronals també es poden utilitzar per detectar patrons complexos en altres tipus de dades, com ara registres en una base de dades.
Hauríeu d'utilitzar un node d'entrada per atribut que té una peça individual de dades d'entrenament. En el pas anterior, vaig utilitzar l'exemple d'un programa que estima el preu d'una casa. La capa d'entrada d'aquest context tindria un node d'entrada per a cada atribut d'una casa, com aquest:
L'algoritme d'aprenentatge automàtic ajustarà els pesos a la xarxa neuronal per crear regles complexes. Per exemple, la xarxa neuronal que es mostra a dalt pot tenir un node que hagi trobat una relació entre el nombre d'habitacions, la distància a les escoles i el preu final. El node aprendria d'exemples que en determinats barris, la distància a les escoles i el nombre d'atributs de dormitoris tenen un gran impacte en el preu final, probablement a causa de l'augment de la demanda d'habitacions per a famílies que volen viure a prop de les escoles. Aquesta combinació d'atributs constituiria una única "funció" a la xarxa neuronal, que es combinaria amb altres per calcular el preu final.
No totes les connexions són tan fàcils de descriure com les anteriors, però totes segueixen el mateix concepte: combinar atributs que en conjunt tindran un impacte en la producció final (el preu d'una casa).
Un dels desenvolupaments més emocionants en l'aprenentatge automàtic dels darrers 10 anys, ha sigut la capacitat d'utilitzar xarxes neuronals per crear artefactes digitals com ara imatges, text i sons.
La creativitat és un aspecte de la intel·ligència humana que alguns creien que mai no seria possible amb les màquines. La creativitat és difícil de definir, però les màquines sens dubte estan creant imatges, vídeos, text i àudio. Si ho fan o no "de manera creativa" encara està pendent de debat.
Quina d'aquestes dues imatges creus que es va generar mitjançant una xarxa neuronal?
De fet, ambdues imatges van ser generades per un lloc anomenat This Person Does Not Exist utilitzant una xarxa neuronal.
És possible que també hagis vist que les xarxes neuronals es poden utilitzar per generar text, com ara scripts o articles. Un exemple famós va ser una IA entrenada amb aprenentatge automàtic per escriure nous episodis de la popular sèrie de televisió Friends. Podeu veure un exemple de guió escrit amb IA en AQUEST article.
El procés de generació d'aquests artefactes es pot pensar que executa una xarxa neuronal tradicional al revés. Aquest tipus de xarxes s'anomenen xarxes generatives.
En una xarxa neuronal de classificació d'imatges típica, proporcioneu una imatge i la xarxa genera una etiqueta prevista. Per generar una imatge, podeu girar aquest procés, en lloc d'introduir l'etiqueta del que voleu veure a la imatge. Aleshores, la xarxa emet una imatge que utilitzaria aquesta etiqueta per classificar.
Recordeu que les xarxes neuronals estan dissenyades per identificar patrons en una imatge i, a continuació, agrupar tots els patrons que trobi per endevinar què conté la imatge. Si es tractés d'identificar gats, buscaria dues orelles punxegudes, uns bigotis llargs, pelatge i una cua. Quan l'executem al revés, la xarxa comença amb els patrons i després intenta muntar-los en una imatge. Això de vegades té conseqüències divertides, com les imatges següents.
En aquests casos, la xarxa neuronal ha reunit totes les peces adequades però no als llocs correctes. Podeu veure que totes les característiques d'un gat estan presents però no en la configuració correcta. Hi ha una manera de combatre això, i és utilitzant una segona xarxa neuronal.
Xarxes adversàries generatives (GAN):
Aquests són un tipus de tipologia de la xarxa neuronal que posa dues xarxes neuronals de punta a punta per ajudar a millorar la qualitat de la sortida. Les dues xarxes s'anomenen el generador i el discriminador i s'organitzen per oposar-se, per això se'ls diu adversàries.
El generador comença reunint patrons a partir de píxels i, a continuació, agrupa aquests patrons en una imatge. El discriminador ha estat entrenat amb mostres reals de tot el que el GAN està intentant produir i utilitza les seves regles per avaluar els productes del generador, classificant-los essencialment com a reals o falsos. L'objectiu del generador és enganyar el discriminador, que al seu torn intenta atrapar les falsificacions.
Quan el discriminador identifica una imatge com a falsa, els motius d'aquesta decisió es tornen a enviar al generador per ajudar-lo a evitar els mateixos errors la propera vegada.
Finalment, tot el sistema aprèn a crear productes extremadament realistes, especialment imatges.
La generació de text creïble és una cosa en què els investigadors estan treballant activament, ja que els matisos del llenguatge són molt més difícils d'organitzar programàticament.