Intelligence

Codificadors automàtics dispersos


Temps de lectura: 4 minuts


Els codificadors automàtics dispersos ens poden ajudar a entendre com donar sentit a lactivitat neuronal de les IAs. Entendrem com funcionen les IAs?



El problema

Actualment estem a la recerca de l'AGI (Intel·ligència artificial general, d'ús multidisciplinar) i estem fent progressos, davant dels quals, alguns ho veuen com a imminent. Però el problema més gran per als investigadors és que no entenem com donar sentit a l'activitat neuronal dins dels models de llenguatge. És a dir, no sabem com funciona.

Les xarxes neuronals no es dissenyen directament, es fa malbé l'arquitectura, però no n'establim el contingut; en canvi, sí que dissenyem els algorismes que els entrenen i, en aquest procés, els donen el contingut.

Les xarxes resultants no es comprenen bé i no es poden descompondre fàcilment a parts identificables. Per tant, no podem raonar sobre la seguretat de la IA de la mateixa manera que raonem sobre alguna cosa com la seguretat dels automòbils, que dissenyem i entenem peça a peça.

Fa por, eh?

Michela Massi
Codificador i decodificador
Capes de codificador i decodificador 

Codificadors automàtics

Els codificadors automàtics són un tipus de xarxa neuronal que tenen com a objectiu aprendre representacions eficients de dades d'entrada codificant-les als nodes de la xarxa, amb menor nombre de dimensions, i després reconstruint-les per obtenir les dades originals. És com una abstracció o compressió de les dades.

Consten de dues parts simètriques: el codificador, que comprimeix les dades d'entrada en una representació latent, i el descodificador, que reconstrueix les dades originals a partir d'aquesta representació latent.

La reconstrucció de les dades hauria de ser exacta a l'original, però no és totalment així, i si minimitzem la diferència entre les dades d'entrada i les reconstruïdes, els codificadors automàtics poden extreure característiques significatives que es poden fer servir per a diverses tasques. Més endavant enumero algunes aplicacions.

Això es pot representar així: donat un conjunt de dades x, codifiquem en h

h = E(x)

I recuperem amb el descodificador:

x' = D(h) = D(E(x))

L'objectiu és minimitzar la pèrdua de reconstrucció, la funció L(x, y), que mesura la diferència entre l'entrada original i la sortida reconstruïda. És la funció de pèrdua:

L(x, x') = (1/n) ∑ (xᵢ – x'ᵢ)²

A la qual s'afegeix la regularització per evitar l'overfitting:

Lf = L(x, x') + regularización

Els codificadors automàtics tenen diverses aplicacions:

  • Reducció de dimensionalitat. En reduir la dimensionalitat de les dades d'entrada, els codificadors automàtics poden simplificar conjunts de dades complexes i alhora preservar informació important.
  • Extracció de característiques. La representació latent apresa pel codificador es pot utilitzar per extreure característiques útils per a tasques com ara la classificació d'imatges o identificar persones.
  • Detecció d'anomalies. Els codificadors automàtics es poden entrenar per reconstruir patrons de dades normals, fent-los eficaços a l'hora d'identificar anomalies que es desvien d'aquests patrons, com ara trobar un tumor en una tomografia.
  • Generació d'imatges. Algunes variants poden generar noves mostres de dades similars a les dades d'entrenament per obtenir imatges a petició o per entrenar altres models.

https://blog.keras.io/
Codificació d
Codificació d'una imatge i reconstrucció 

La possible solució

Els codificadors automàtics dispersos (SAE per les sigles en anglès) funcionen de la mateixa manera, però incorporen una penalització en la funció de pèrdua. Aquesta penalització fa que la majoria de nodes ocults no s'activin, de manera que només un petit subconjunt d'unitats estigui actiu en un moment determinat.

La funció de pèrdua per entrenar un codificador automàtic dispers inclou la pèrdua de reconstrucció i la penalització:

Lt = L( x, y ) +regularización + λ penalización

De manera intuïtiva podem explicar-ho amb un exemple: si un home afirma ser un expert en matemàtiques, informàtica, psicologia i música clàssica, en general aprèn coneixements força superficials en cadascuna de les matèries. Tot i això, si només és expert en matemàtiques, segurament ens donarà informació més precisa, útil i detallada. I el mateix passa amb els codificadors automàtics: activar menys nodes mantenint el seu rendiment garantiria que el codificador automàtic aprengués representacions latents en lloc d'informació redundant i confusa de les dades d'entrada.

Resultats esperats

La idea és descompondre lactivació en característiques. I fer servir el mínim d'activacions per tenir-les clares.

Hi ha evidència empírica significativa que suggereix que les xarxes neuronals tenen adreces lineals interpretables a l'espai d'activació.

Si les adreces lineals són interpretables, és natural pensar que hi ha un conjunt bàsic d'adreces significatives a partir del qual es poden crear adreces més complexes.

Aquestes adreces són les anomenades característiques, en què ens agradaria descompondre els models.

Casos pràctics, Claude 3

L'equip d'Anthropic va entrenar diversos SAE sobre la capa mitjana del model Claude 3 i es van escollir diferents característiques detectades amb els SAE. Els resultats dels exemples es poden veure vegeu aquí. Una de les característiques extretes era “El pont Golden Gate”. Les seves activacions més importants són essencialment totes referències al pont, i les activacions més febles també inclouen atraccions turístiques relacionades, ponts similars i altres monuments.

Aquest resum és impressionant:

Anthropic
Característiques interpretables de Claude 3 Sonnet
Extracció de característiques interpretables del model Claude 3 Sonnet 

A la imatge es pot veure el mapa de característiques que s'han extret del Claude 3. Hi ha milions de característiques al mapa, amb la seva proximitat a d'altres.

Cada característica s'identifica com a activadors, que ens permeten identificar la característica, però són molt abstractes i generalitzades, altres no depenen de l'idioma.

El millor és que després es poden utilitzar com a classificadors per controlar el comportament dels models. És a dir, que realment se n'estan extraient característiques que corresponen a la interpretació.

A la característica del pont Golden Gate, es va poder fer que tingués un pes molt important en l'activació i el que es va aconseguir va ser que la IA pensava que ERA el Golden Gate. Així totes les seves respostes estaven condicionades pel que "pot fer un pont" com el Golden Gate. És a dir, si li preguntes, per exemple, que t'escrigui una història et respondrà que els ponts no poden escriure històries encara que coneixen moltes relacionades amb les persones que el creuen.

Conclusions

En resum, aquest és un camí per poder entendre el funcionament dels grans models i, sobretot, poder dirigir-los i focalitzar-los a través de les característiques. Aquest és un punt molt interessant i important per garantir que creem models de IA que responguin amb garanties a les qüestions que se'ls plantegen. I podríem arribar a entendre com “pensen”.

Referències

Comentaris sobre 'Codificadors automàtics dispersos'

Carregant comentaris...
Xavier és un desenvolupador sènior full stack i opera des de la ciutat mediterrània de Barcelona. Li encanten les tecnologies de programari i està convençut que el desenvolupament de software és un procés col·laboratiu i obert.
I és un apassionat de l'astronomia i la fotografia. El pots trobar a:
Comparteix aquest post