Programant neurones

Roa Zubia, Guillermo

Elhuyar Zientzia

Per a realitzar operacions matemàtiques, l'ordinador és més ràpid que el cervell; pot fer milions de càlculs per a començar a calcular el cervell. Però la velocitat de càlcul no és l'única cosa que es busca en una màquina, sinó també el tipus de treball que pot realitzar. Per a un ordinador, gairebé qualsevol treball que requereixi abstracció és molt difícil. Conèixer una cara, per exemple. Difícil, però no impossible; si l'ordinador treballa com un cervell, les coses canvien.
Programant neurones
01/12/2007 | Rosegui Zubia, Guillermo | Elhuyar Zientzia Komunikazioa
(Foto: G. Rosegui)

Fa dotze anys, en 1995, un cotxe conduït per ordinador va travessar els Estats Units. En total 9.600 quilòmetres. No hands across America és el nom de l'aventura, ja que l'objectiu era conduir sense les mans. El cotxe no era sense conductor, ja que una persona accelerava i frenava. No obstant això, eliminant totes dues coses, tota la resta ho feia la plataforma de navegació anomenada PANS ( Portable Avanced Navigation Suport ), un conjunt d'ordinadors, GPS i altres sistemes. Des de llavors, el món dels cotxes robòtics sense conductor s'ha avançat molt, però no tant a nivell de programari. Els cotxes robòtics d'avui utilitzen un programari similar al que tenia integrat el sistema PANS, programes que permeten als ordinadors simular el funcionament d'un cervell.

El cervell funciona mitjançant neurones connectant milions de petites unitats. Per separat, les neurones no són molt potents, reben petits senyals elèctrics, les canvien lleugerament i les envien. Però, per equips, les neurones són molt poderoses, perquè aquestes petites i senzilles unitats estan organitzades en una gran i sofisticada xarxa.

Cada neurona rep senyals d'unes altres milers de neurones. Segons consta, decideix si enviarà el senyal cap endavant, i si la resposta és afirmativa, la col·loca en el senyal i l'envia a unes altres milers de neurones. Aquest funcionament dóna una enorme capacitat a la xarxa neuronal, que inclou obres abstractes.

Neurones informàtiques

Un dels mètodes més coneguts perquè un ordinador tingui intel·ligència és crear una xarxa de petites unitats de càlcul. Normalment es realitza a nivell de programari, denominat xarxa neuronal.
G. Rosegui

La xarxa neuronal es pot simular per un ordinador. Són moltes les unitats de càlcul petites que es poden definir i connectar entre elles. Mitjançant l'aportació de dades a alguns d'ells es pot iniciar la xarxa i obtenir el resultat del treball a través de les neurones de sortida. De fet, els informàtics diuen xarxes neuronals als programes informàtics que funcionen d'aquesta manera i els classifiquen en intel·ligència artificial. Les xarxes neuronals no són l'única manera de crear intel·ligència artificial, però sí una de les més importants.

En la majoria de les definicions d'intel·ligència artificial apareixen verbs com argumentar, raonar, interpretar, aprendre. La qüestió és com un ordinador pot fer aquestes coses. Per descomptat, fabrica cervells a través de milions de neurones i connexions. Però dissenyar un sistema d'aquest tipus en l'ordinador és impossible, encara que el nombre de neurones simulades sigui molt de menor. Per exemple, què ha de fer cada neurona dins de la xarxa per a saber que un robot pagès és hora de recollir tomàquets? Ningú sap la resposta, però això no importa. I és que una xarxa informàtica neuronal no sap com es fa el treball. Ha d'aprendre.

El programador lliurament a la xarxa una estructura inicial que la integra en una fase de formació. Per a això li dóna un problema i, juntament amb el plantejament del problema, la solució correcta d'aquest. La xarxa analitza el problema i aporta una solució que contrasta amb la proporcionada per l'informàtic i adapta l'activitat de cada neurona per a ajustar correctament la solució que aconsegueix tota la xarxa. Torna a intentar-ho, si el programa està ben fet, en la segona sessió s'acostarà la solució de la xarxa i la solució correcta. Tornarà a comparar totes dues solucions, recondicionarà el treball de les neurones i tornarà a intentar-lo. D'aquesta manera, fins a aconseguir una solució correcta.

Aquest sistema d'aprenentatge sembla un parany, ja que se li dóna la solució que hauria d'aconseguir. Però el cervell fa el mateix. Els éssers humans, per exemple, aprenem a llegir o a conèixer una cara d'aquesta manera: una vegada i una altra després de veure la solució. El coneixement de les cares és un bon exemple; els nens nounats passen mesos aprenent a conèixer les cares dels seus pares, per al que es requereix un mínim nivell d'abstracció. I és que si el pare o la mare d'un nen de sis mesos canvia d'aspecte (tall de pèl, per exemple), és possible que el nen tingui grans dificultats per a conèixer la seva cara.

Input i output

El programari que escaneja textos i reconeix caràcters és avui dia habitual. Està basat en xarxes neuronals.
G. Rosegui

Per a fer aprendre a la xarxa, en definitiva, cal posar-se en marxa. Cal donar-li un input, introduir dades. Aquestes dades no arriben directament a totes les neurones, són preses, tractades i transmeses per uns pocs a les neurones a les quals estan connectats. Les dades es transmeten en neurona com un senyal elèctric fins a arribar a les neurones de sortida. Aquestes últimes neurones proporcionen un output.

Input i output; l'antic dogma de la informàtica. Ambdues són necessàries. Són components imprescindibles de la xarxa neuronal. La xarxa possible més senzilla tindria una única neurona que recollís un input simple i, transformat, donaria un output simple. Per a tractar una única neurona i una sola dada. Una xarxa així no aprendria molt. Fins i tot per a aprendre a realitzar operacions lògiques senzilles, una xarxa necessita unes poques neurones.

En l'operació denominada XOR, per exemple, s'inclouen dues dades, zeros o un; quan les dues dades són unitaris, el resultat de l'operació és també un, i si té algun zero, el resultat de l'operació és zero. Es tracta d'una operació molt senzilla, però es necessiten cinc neurones perquè una xarxa aprengui a fer-ho: dues neurones per a recollir les dades de l'input, una altra per a l'output final i altres dues neurones intermèdies.

Capes

El major desenvolupament de les xarxes neuronals ho van fer amb ordinadors de fa vint anys. Aquest tipus de programació continua evolucionant, però més lentament.
D'arxiu

Les neurones intermèdies són necessàries per a fer treballs intermedis. I si tots aquests treballs intermedis no són similars, cada treball ho fa un grup de neurones. Per això, els informàtics els organitzen per capes. En la primera capa es troben les neurones que reben l'input, després es troba la primera capa intermèdia quan és necessari, després totes les següents capes intermèdies en ordre i, finalment, la capa neuronal que dóna l'output.

El senyal realitza aquest viatge, des de l'input fins a l'output, en una via determinada per connexions. Pot ser un camí directe o que reenvía el senyal des de les últimes capes a les inicials, l'estructura de les connexions dependrà del treball. I estructures molt complexes poden fer obres molt abstractes.

El cervell funciona de manera similar: hi ha neurones que reben l'input (el vesteixo, l'escoltat, etc.), s'activen determinats grups neuronals per a cada tipus de treball i unes altres que provoquen l'output (reacció). Però el cervell és molt més complex que les xarxes neuronals d'informàtica. Entre altres coses, augmenta el nombre de neurones i connexions a mesura que aprèn, almenys al començament de la vida.

Assaig i error

Com més abstracte sigui el treball, més complex ha de ser la xarxa que aprèn a fer-ho. Sembla impossible, per exemple, dissenyar una xarxa neuronal que separi les lletres impreses (caràcters). Però aquestes xarxes són habituals: Es diuen OCR sofware. Com els informàtics els van dissenyar? Com van conèixer el nombre de neurones que havien d'utilitzar, el nombre de capes que havien d'organitzar i quines connexions havien d'establir?

Conèixer les cares és un treball abstracte i difícil, tant per a l'ordinador com per al cervell biològic.
G. Rosegui

La resposta és senzilla: al principi no sabien. Per a dur a terme aquest tipus de treballs, trien una xarxa neuronal inicial que li farà aprendre. És molt possible que la xarxa no pugui aprendre, que no es quedi una vegada posada en marxa o que doni resultats sense sentit. En aquests casos, ajusten la xarxa, afegint o eliminant neurones, reestructurant la pròpia xarxa o modificant la transformació que realitza cada neurona. I tornen a provar.

Finalment, quan és capaç d'aprendre la xarxa, està disposat a treballar en el 'món real'. I llavors també caldrà ajustar el treball de la xarxa, ja que el procés d'aprenentatge es realitza a través d'exemples concrets. I el món real té molts casos diferents.

Treball neuronal i percepcions
En el cervell, la funció de les neurones és la recollida i emissió de senyals. Una sola neurona rep milers de senyals de les milers de connexions que li arriben. Però no tots aquests senyals tenen la mateixa importància per a mi, algunes tenen major influència en el senyal de sortida que unes altres. Al final, combinant tots els efectes, la neurona genera un senyal de sortida que envia a milers de neurones.
(Foto: D'arxiu)
En informàtica, el mateix. Cada neurona ha de donar un pes a cadascuna dels senyals que rep (el pes, weight en anglès, és una mesura de l'impacte en el senyal de sortida). Una de les claus del procés d'aprenentatge és l'ajust d'aquests pesos. Les funcions matemàtiques són un dels principals factors que han de treballar els informàtics perquè la xarxa neuronal tingui èxit.
Es veu fàcilment en xarxes molt senzilles, com els percepcions. En l'època en què es van inventar, els perceptrones eren sistemes d'una sola neurona. Tenien molts inputs, però un output. De fet, aquest output era el número 0 o el número 1 en funció dels valors de l'input i del pes d'aquests valors. Posteriorment van veure que els percepcions tenien una capacitat d'aprenentatge molt limitada. Per això, els actuals percepcions tenen més neurones organitzades en capes.
Per a què?
A la informàtica li falta molt per a convertir l'ordinador en cervell. Fins fa dues dècades la idea va ser revolucionària i des de llavors s'ha avançat lentament. Per això, les xarxes neuronals i la intel·ligència artificial són poc esmentades pels grans polítics i empresaris d'avui. No obstant això, han pres part en la tecnologia.
El sistema d'escanejat de textos i reconeixement de lletres és un exemple típic. Es denomina sistema OCR al terme anglès Optical Character Recognition. Està basat en una xarxa neuronal. Però els exemples no es limiten a les aplicacions habituals.
(Foto: D'arxiu)
Molt utilitzat en la recerca. Molts programes d'estudi de dades cristalográficos de proteïnes, per exemple, són xarxes neuronals. Molts programes que controlen sistemes complexos utilitzats en enginyeria química, en general molts sistemes informatitzats de control industrial.
Les xarxes neuronals s'han utilitzat per a fer prediccions. En meteorologia i climatologia, per exemple, per a fer prediccions a curt i llarg termini, respectivament. En economia, també en el món de la inversió. En les prediccions dels jocs, per exemple en els programes que juguen als escacs.
Les xarxes neuronals poden aplicar-se gairebé en tot. Un cas curiós: uns investigadors australians van elaborar una xarxa neuronal que analitza els sons d'aquests animals per a seguir per ordinador les fases d'alimentació de les ovelles.
Puente Rosegui, Guillermo
Serveis
237
2007
Descripció
033
Intel·ligència Artificial; Programació; Programari
Article
Serveis
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila