Entrades amb l'etiqueta ‘instruccions’

Els algorismes que aprenen

dijous, 9/02/2017

Hi ha paraules boniques que també ens fan una mica de por. Poca gent sap que la seva vida és plena d’algorismes. Alguns, quan se’n adonen, no saben si ho han d’acceptar o s’han de posar nerviosos. I el cert és que, tot i que no els reconeguem i que pensem que no ens afecten, els portem sempre al nostre costat.

Un algorisme no és més que un conjunt ordenat, finit i no ambigu de regles i operacions que permeten resoldre un problema o realitzar una determinada activitat. Els algorismes són descripcions precises de processos que fem o que fan els altres. Les instruccions per muntar un moble a partir d’un kit de peces o el full on expliquem com posar en marxa la calefacció quan marxem de casa i han de venir uns amics, són algorismes. Les receptes de cuina i les partitures musicals són algorismes per preparar menjars i interpretar melodies. I ho són les instruccions de qualsevol joc, els manuals d’usuari i els protocols que segueixen els metges als hospitals. Algunes vegades, els algorismes els podem escriure per a nosaltres mateixos, quan acabem de descobrir alguna cosa complexa que ens ha estat útil (per exemple en el nostre mòbil), i volem no oblidar-la. En altres ocasions, les escrivim per a que algú altre pugui fer més endavant quelcom que nosaltres ja sabem fer. És per això que el conjunt de regles d’un algorisme ha de ser no ambigu: si no l’escrivim bé, la persona que vingui a casa no entendrà com engegar el rentaplats o com posar en marxa la calefacció.

Espero no guanyar-me el mot de “friqui” si confesso que m’agrada la paraula “algorisme”. Tal vegada perquè ha estat al meu costat durant quasi cinquanta anys, i perquè ve de molt lluny. Concretament d’ara fa 1.150 anys, quan al-Khwarazmí treballava a l’observatori de Bagdad. Durant els segles de l’edat mitjana, al-Khwarazmí va ser la principal font de transmissió de coneixements matemàtics de l’Orient a l’Occident, en part en base a les traduccions de textos en grec, llatí i sànscrit que es feien a la Casa de la Saviesa. En el seu tractat d’àlgebra, “Hissab al-jabr wa-l-muqàbala“, explicava regles i receptes (o sigui, algorismes) per repartir herències, cosa que en aquell temps i en el món àrab era molt complicada i requeria fer molts càlculs. En un altre llibre, “Sobre el càlcul amb nombres indis”, llibre del que només se’n conserva una traducció del segle XII, al-Khwarazmí va explicar, sembla que per primera vegada, el sistema de numeració posicional en base 10 (incloent el zero) que va aprendre de l’Índia i que és el que ara utilitzem. Fa més de 11 segles, al-Khwarazmí ens va deixar llibres meravellosos, tots plens d’algorismes. És per això que els algorismes porten el seu nom.

Quan sumem nombres portant-ne, estem aplicant l’algorisme que vam aprendre a l’escola; i, quan multipliquem, també. Euclides ens va deixar un algorisme molt elegant per calcular el màxim comú denominador de dos nombres, i Pitàgores ens va explicar l’algorisme per calcular hipotenuses i distàncies entre punts. Després, amb els ordinadors, hem acabat tenint algorismes per tot. Perquè els ordinadors i els telèfons mòbils només funcionen en base als algorismes que alguns programadors els han preparat. Totes les aplicacions que ens hem baixat als nostres mòbils són algorismes. Tenim algorismes per millorar fotos, per cercar informació a internet, per saber la posició dels astres i per preveure el temps que farà demà. Tenim algorismes que ens troben el nom de les músiques que escoltem, i algorismes que saben traduir textos d’un idioma a un altre.

I ara, el que hem començat a veure fa pocs anys són algorismes que es van refinant amb les dades. Són algorismes que aprenen, algorismes que conformen els mecanismes d’aprenentatge automàtic que es troben en el nucli de l’anomenat “big data“. Hi ha moltíssims exemples, un dels quals, molt il·lustratiu, el teniu en aquest document (que és un pòster científic presentat ara fa uns mesos; com podeu observar, la imatge de dalt és d’aquest mateix document). Es tracta d’un algorisme que, a partir d’una gravació de vídeo de 15 segons en la que s’ens demana que expliquem qui som, fa una valoració de la nostra personalitat en cinc eixos diferents, i ens ho mostra amb 5 bandes verdes (les que veieu a la dreta de la imatge) al cap de menys de tres segons. Aquests cinc eixos són els de la curiositat (gent inventiva i curiosa versus gent cautelosa), escrupolositat (gent eficient i organitzada versus gent descurada i desordenada), extraversió (gent extravertida i energètica versus gent reservada i solitària), agradabilitat (gent amigable i compassiva versus gent poc social) i neuroticisme (gent neuròtica versus gent fiable). Com ho fa? Doncs amb un algorisme que conté dues xarxes neuronals de 17 nivells, una per la senyal de vídeo i l’altra per la d’àudio, amb un darrer nivell de fusió de les dues, com bé podeu veure a la figure 3 del document. Cada un dels 17 nivells d’una i altra xarxa combina adequadament els resultats del nivell anterior i genera una sortida que transmet a algun o alguns dels nivells següents. Cada nivell és com una taula de mescles de so, però digital. Barreja les entrades per tal de produir el senyal de sortida. En resum, fem 17+17+1 mescles, i acabem trobant els trets de personalitat de la persona que ha estat parlant durant 15 segons al vídeo. Però, com fem aquestes mescles? Com ajustem la importància que donarem a cada un dels valors d’entrada a cada una de les mescles? Com ajustem el valor de cada un dels “potenciòmetres” de la nostra xarxa neuronal?. En el cas de l’article que comento, això es va fer amb un sistema d’aprenentatge dirigit. Amb anterioritat als experiments, els autors, amb l’ajut de molts voluntaris, van analitzar deu mil vídeos de 15 segons de YouTube. Cada voluntari, a cada prova, presenciava una parella de vídeos (corresponents a dues persones) i després havia de dir quina de les dues persones creia que era la més curiosa, quina la més extravertida, .. i així fins analitzar el cinquè eix de neuroticisme. Cal observar que no es demanava cap valoració, únicament havien de comparar la parella de persones que estaven veient. Això es va fer així perquè és ben conegut que les comparacions les fem molt millor que les valoracions. Doncs bé, la informació d’aquests experiments amb 10.000 vídeos és la que va permetre ensinistrar els  mescladors dels 17+17+1 nivells de l’algorisme i ajustar els seus valors. Però això no va acabar aquí. L’interessant és que l’algorisme va continuar i continua aprenent, perquè quan el sistema ja estava ajustat i “trained” (mireu la imatge de dalt), l’anàlisi del vídeo de cada nova persona que vol experimentar aquesta aplicació i que dona la corresponent autorització per usar les seves dades, serveix per acabar d’ajustar una mica més els paràmetres de tots els nivells de la xarxa neuronal. El sistema va aprenent cada dia, i cada persona que l’utilitza l’ajuda a fer-ho. Només cal que digui si creu que el resultat que li mostra la màquina reflexa la seva personalitat o no, perquè això és l’únic que necessita la xarxa neuronal per auto-refinar-se.

Per bé o per mal (esperem que per bé), els algorismes que aprenen han arribat, i han vingut per quedar-se amb nosaltres. Ens poden ser molt útils, però no hem de perdre mai de vista la necessitat de la seva regulació ni els aspectes ètics. Els algorismes són aquí, però la responsabilitat sempre serà de les persones que els utilitzen.

Per cert, en Christophe Galfard diu que sense una visió científica, la democràcia es torna més complicada. També diu que la humanitat no és conscient del seu lloc a l’Univers, que només ara ho estem començant a entreveure.