Músiques, dibuixos i Pitàgores

Després de l’article sobre els cercadors de melodies i l’espai de les músiques, em vaig quedar amb ganes de parlar una mica més de les tècniques d’aprenentatge automàtic. El comentari de Jordi Domènech que podeu llegir en aquesta mateixa pàgina i un treball que acabo de llegir sobre dibuix automàtic amb imatges predissenyades, m’han acabat de decidir. El que segueix és una estranya barreja de Pitàgores, música i dibuixos.

Els dos dibuixos d’aquí al costat són composicions fetes a partir d’imatges o icones predissenyades. És el que els anglesos anomenen “clip art”. Quin us agrada més, dels dos? Jo trobo millor el de la dreta. Doncs bé, el de l’esquerra l’ha fet una persona mentre que el de la dreta l’ha generat un ordinador que havia estat prèviament entrenat i que havia anat aprenent.

Tot plegat és un tema de semblances. Són semblants, l’arbre de l’esquerra i el de la dreta? I les flors de dreta i esquerra? I els gossos, els núvols i els dos Sols? Deixant de banda els arbres, probablement estareu d’acord amb mi en què els dibuixos de l’esquerra i la dreta no són gaire semblants. Però podem anar més enllà i parlar de semblança d’estils. Si ens agrada més la composició de la dreta és probablement perquè els estils de les imatges que la componen (gos, flors, núvol, etc.) són més semblants que en el cas de la composició de l’esquerra. Doncs bé, l’ordinador que ha creat aquest dibuix automàtic ho ha pogut fer perquè sap mesurar semblances, amb el que ha pogut escollir les imatges individuals amb criteri de similitud i harmonia d’estil. Aquest algorisme d’aprenentatge automàtic (que podeu consultar en aquesta web, d’on també he extret la imatge de dalt, on trobareu el text de l’article complet, bastant tècnic) treballa en un seguit de passos ben definits i coneguts. El primer que hem de fer és aconseguir molts dibuixos i definir un conjunt de característiques o descriptors que els identifiquin, per codificar-los un a un. Això és fonamental, perquè els ordinadors no entenen de dibuixos ni de música. El conjunt de descriptors d’un dibuix és com el seu nom, és un conjunt de símbols que el representen i l’identifiquen; La única diferència amb el nostre llenguatge és que els descriptors són numèrics. Em el cas de l’algorisme automàtic de generació de composicions de dibuixos que estem comentant, cada dibuix individual, sigui un arbre, un núvol, una representació del Sol o un gos, es representa amb un conjunt de 169 descriptors numèrics. En aquest primer pas, es van escollir dos-cents mil dibuixos individuals a partir d’aquesta biblioteca de dibuixos, i es van calcular els 169 descriptors per a cada un d’ells. Per què tants dibuixos? Per què tants descriptors per a cada dibuix? Doncs perquè sempre és millor pecar per massa que per massa poc, diuen, i perquè si ho volguéssim fer amb pocs descriptors incrementaríem la probabilitat d’oblidar-nos d’alguna característica important. Només a caire d’exemple, en aquest cas alguns dels descriptors són el nombre de colors, el gruix dels contorns del dibuix i el grau de gradació de color, que mesura si els colors acaben de cop o bé es van difuminant.

Un cop hem fet aquesta feina d’identificar amb 169 descriptors tots els dibuixos de la nostra ben nodrida col·lecció, podem demanar ajut a Pitàgores i mesurar la semblança entre una parella qualsevol de dibuixos A i B simplement calculant la distància entre els punts corresponents als nostres dos dibuixos en l’espai dels dibuixos, un espai que, quasi res, té una dimensió igual a 169!. Les semblances es calculen mesurant distàncies, que no són més que longitud d’hipotenuses. Tot plegat és fàcil d’imaginar si pensem en aquest espai dels dibuixos, en el que cada dibuix queda representat com un punt (si només tinguéssim tres descriptors, podríem pintar aquests punts a l’espai 3D). Si dos dibuixos són semblants, els seus descriptors també seran similars i quedaran representats per punts propers a poca distància l’un de l’altre. Per això, els ordinadors mesuren semblances calculant distàncies i calculen distàncies amb el teorema de Pitàgores. Si (miraculosament) haguéssim encertat i tots els nostres descriptors fossin igual de rellevants, podríem mesurar semblances amb les corresponents distàncies Euclidianes (vegeu la nota al final) i dir que el quadrat de la mesura de la semblança entre dos dibuixos en l’espai dels dibuixos individuals és el resultat de restar els valors de cada una de les parelles homòlogues de descriptors a un i altre dibuix, elevar totes aquestes 169 diferències al quadrat, i sumar-les. Però això no és cert, perquè segur que alguns dels descriptors que hem pensat seran més significatius que d’altres, i tot plegat només funcionarà bé si donem més pes als més importants. Un dels algorismes més senzills (vegeu un cop més la nota al final; i observeu que en aquest cas la distància ja no serà Euclidiana) d’aprenentatge automàtic consisteix en donar un pes a cada descriptor. Tindrem 169 paràmetres o pesos. I ara, el quadrat de la mesura de la semblança entre dos dibuixos en l’espai dels dibuixos individuals serà el resultat de restar els valors de cada una de les parelles homòlogues de descriptors a un i altre dibuix, multiplicar cada una d’aquestes 169 diferències pel seu pes, elevar els resultats al quadrat, i sumar-los tots. Estarem aplicant el teorema de Pitàgores tot donant més importància a uns catets que als altres.

Sembla que ja ho tenim quasi tot. Cada dibuix es representa amb els valors dels seus 169 descriptors, i la generalització del teorema de Pitàgores a n dimensions ens permet calcular semblances entre dibuixos. La única cosa que ha de fer l’ordinador per a generar una composició de dibuixos com la que tenim a dalt és trobar, en l’espai dels dibuixos, un arbre, unes flors, un gos, un núvol i un Sol tals que les distàncies entre tots ells siguin petites. Hem convertit el fet de fer un dibuix en el problema geomètric de trobar punts propers. Només queda un detall. Hem de saber quins són els pesos que donarem als diferents descriptors. I això, en el treball que estic comentant, es va fer amb tècniques d’aprenentatge automàtic supervisat (en concret, tècniques d’aprenentatge de la mètrica). En aquest cas es van escollir moltes tripletes de dibuixos A, B, C, i es va demanar a molts voluntaris que en cada cas contestessin si A era més semblant a B que no pas a C o si pel contrari, A era més semblant a C que no pas a B. Cada tripleta de dibuixos A, B, C va ser analitzada per 10 voluntaris diferents, per tal d’evitar opinions extremes. L’algorisme d’aprenentatge automàtic supervisat va calcular el conjunt de pesos de manera que el resultat fos concordant amb el que havien dit els voluntaris: si aquests havien vist, per exemple, que A era més semblant a B que no pas a C, els pesos havien de ser tals que la distància entre A i B fos més petita que la distància entre A i C, i així en tots els casos. L’interessant de tot plegat és que es va veure que 91 dels 169 descriptors acabaven tenint un pes nul. En els dibuixos, només 78 descriptors són rellevants. Els altres 91 no són informatius.

En resum: si volem que el nostre ordinador pugui calcular la semblança entre dibuixos per així poder generar noves composicions gràfiques, hem de definir un nombre (elevat) de descriptors que caracteritzin cada dibuix i hem de calcular els paràmetres (els pesos, en el nostre cas) que finalment ens permetran calcular distàncies (semblances) entre dos dibuixos qualsevol. L’aprenentatge automàtic és el procés que calcula el conjunt de paràmetres que conformaran el model de l’espai dels dibuixos i que permetran el càlcul correcte de distàncies entre els mateixos.

Doncs bé, si volem identificar músiques, el que ens cal és tenir una biblioteca de músiques ja identificades i trobar la més semblant a la que estem escoltant. Per a fer-ho, hem de definir un nombre (elevat) de descriptors que caracteritzin cada música i hem de calcular els paràmetres (els pesos, en el nostre cas) que finalment ens permetran calcular distàncies (semblances) entre qualsevulla dues melodies. L’aprenentatge automàtic és el procés que calcula el conjunt de paràmetres que conformaran el model de l’espai de les músiques i que permetran el càlcul correcte de distàncies entre aquestes.

Aprendre a mesurar semblances entre dibuixos és molt semblant a aprendre a calcular similituds entre músiques. Tot passa per tenir un bon conjunt de descriptors. En el cas de la música, el que és bastant habitual és calcular la transformada de Fourier de petits fragments solapats (d’uns 25 mil·lisegons cada un), convertir les freqüències en unitats adaptades al nostre sistema psicoacústic (les anomenades unitats mel, MFCC) i considerar com a descriptors els pics de freqüència més grans que un cert valor. Els descriptors són els ingredients de l’aprenentatge automàtic, un camp que és molt més ampli que el que he explicat, que inclou tècniques com les anomenades xarxes neuronals i que, en poques paraules, vol aconseguir algorismes que sàpiguen generalitzar a partir de la seva experiència.

Les tècniques d’intel·ligència artificial són en el centre d’un debat ètic. Poden servir per identificar músiques i compondre dibuixos, però també per rastrejar grans quantitats d’informació (el “big data”) i acabar sabent més sobre nosaltres del que podem imaginar. Són eines de doble tall. De totes maneres, Neil Lawrence diu, crec que amb molt encert, que a ell no li preocupen les màquines sinó les persones. L’aprenentatge automàtic i la intel·ligència artificial poden ser un perill, però no pas per les raons que molts pensen. El problema no són els ordinadors ni els algorismes, sinó els humans. El perill és que hi haurà qui les voldrà utilitzar com armes per a enfonsar i destruir els demés mentre incrementa el seu poder.

Per cert, en Xavier Roig diu que per tal de controlar les fronteres exteriors d’una manera efectiva caldria implantar una autoritat única per a tot Europa, perquè el tractat de Schengen de lliure circulació de persones és una bona idea mal implantada.

—–

NOTA (quasi idèntica a la d’aquest article): El teorema de Pitàgores diu, com sabem, que el quadrat de la hipotenusa d’un triangle rectangle és igual a la suma de quadrats dels catets. Això, clar, és en el pla, en dues dimensions. Però una de les coses interessants d’aquest teorema és que serveix per a qualsevol dimensió. Si tenim dos punts P i Q en un mapa i volem calcular la distància que els separa per saber si són propers o llunyans, podem pintar un triangle rectangle i començar calculant la diferència b entre les seves latituds (que correspon a la longitud del catet nord-sud) i la separació c entre les seves longituds (que correspon a la longitud del catet est-oest). Si b i c els expressem en quilòmetres i si no són massa grans, podrem menysprear la curvatura de la Terra, suposar que el triangle és pla, i calcular el quadrat de la distància entre P i Q amb el teorema de Pitàgores, fent b*b+c*c. Ara bé, aquest càlcul només serà cert si som en una comarca plana. Si P és a la vora del mar i Q és dalt d’una muntanya a 1000 metres, el teorema de Pitàgores en tres dimensions ens diu que el quadrat de la distància entre P i Q és b*b+c*c+h*h, on h és la diferència d’alçades entre els dos punts. En tres dimensions, el teorema de Pitàgores té tres termes. I no és difícil veure que això es compleix en qualsevol dimensió. El quadrat de la distància (anomenada Euclidiana) entre els punts que representen dues melodies en l’espai de les músiques (espai que podem suposar, per exemple, de dimensió 450) és el resultat de restar els valors de cada una de les parelles homòlogues de gens a una i altra melodia, elevar totes aquestes diferències al quadrat, i sumar-les. i el quadrat de la distància (anomenada Euclidiana) entre els punts que representen dos dibuixos en l’espai dels dibuixos individuals (espai que podem suposar, en aquest cas, de dimensió 169) és el resultat de restar els valors de cada una de les parelles homòlogues de descriptors a un i altre dibuix, elevar totes aquestes diferències al quadrat, i sumar-les. Només amb un petit detall: no totes les diferències “valen igual”, hem de donar més importància a unes que a les altres. És el mateix que passa amb els punts dels mapes. Si veiem que la distància en horitzontal (arrel quadrada de b*b+c*c) entre els nostres punts P i Q és de 10 quilòmetres, és fàcil veure que amb una diferència d’alçades de 1000 metres, la nova distància Euclidiana, arrel de b*b+c*c+h*h és de 10 quilòmetres i 50 metres. La línia recta entre P i Q només s’allarga 50 metres quan el punt Q puja 1000 metres. És el que ens diu la geometria, que no coincideix pas amb el que ens diu el nostre cos perquè la nostra percepció subjectiva de distància és bastant més petita quan P i Q són a una mateixa plana que quan Q és dalt d’una muntanya. Com podem calcular aquestes distàncies subjectives? És fàcil, només cal donar més importància a les alçades. És el que en geometria es diu “canviar la mètrica”. És com si canviéssim l’escala vertical. Podem calcular distàncies subjectives en els mapes si canviem una mica la formula i escrivim b*b+c*c+w*h*h, on w és el pes o importància que volem donar a les alçades. Quan fem el càlcul amb w=1 obtenim la distància Euclidiana mentre que si el fem, per exemple, amb w=100, obtenim un valor molt més proper a la nostra percepció subjectiva. I ara, tornant al cas de les distàncies entre melodies o dibuixos, el que fan els programes de reconeixement va en aquesta línia de donar pesos diferents als diferents descriptors i treballar amb una mètrica no Euclidiana: cal restar els valors de cada una de les parelles homòlogues de gens a una i altra melodia o dibuix, elevar totes aquestes diferències al quadrat, multiplicar cada un d’aquests quadrats pel seu pes, i sumar-los. Els pesos es calculen habitualment amb algorismes d’aprenentatge automàtic.