Programant neurones
2007/12/01 Roa Zubia, Guillermo - Elhuyar Zientzia Iturria: Elhuyar aldizkaria
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
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
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
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?
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.
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia