Programando neuronas
2007/12/01 Roa Zubia, Guillermo - Elhuyar Zientzia Iturria: Elhuyar aldizkaria
Hai doce anos, en 1995, un coche conducido por computador atravesou Estados Unidos. En total 9.600 quilómetros. Non hands across America é o nome da aventura, xa que o obxectivo era conducir sen as mans. O coche non era sen condutor, xa que una persoa aceleraba e freaba. Con todo, eliminando ambas as cousas, todo o demais o facía a plataforma de navegación chamada PANS ( Portable Avanced Navigation Suport ), un conxunto de computadores, GPS e outros sistemas. Desde entón, o mundo dos coches robóticos sen condutor avanzouse moito, pero non tanto a nivel de software. Os coches robóticos de hoxe utilizan un software similar ao que tiña integrado o sistema PANS, programas que permiten aos computadores simular o funcionamento dun cerebro.
O cerebro funciona mediante neuronas conectando millóns de pequenas unidades. Por separado, as neuronas non son moi potentes, reciben pequenos sinais eléctricos, cámbianas lixeiramente e envíanas. Pero, por equipos, as neuronas son moi poderosas, porque estas pequenas e sinxelas unidades están organizadas nunha gran e sofisticada rede.
Cada neurona recibe sinais doutros miles de neuronas. Segundo consta, decide si vai enviar o sinal cara adiante, e si a resposta é afirmativa, colócaa no sinal e envíaa a outros miles de neuronas. Este funcionamento dá una enorme capacidade á rede neuronal, que inclúe obras abstractas.
Neuronas informáticas
A rede neuronal pódese simular por un computador. Son moitas as unidades de cálculo pequenas que se poden definir e conectar entre elas. Mediante a achega de datos a algúns deles pódese iniciar a rede e obter o resultado do traballo a través das neuronas de saída. De feito, os informáticos chaman redes neuronais aos programas informáticos que funcionan desta maneira e clasifícanos en intelixencia artificial. As redes neuronais non son a única forma de crear intelixencia artificial, pero si una das máis importantes.
Na maioría das definicións de intelixencia artificial aparecen verbos como argumentar, razoar, interpretar, aprender. A cuestión é como un computador pode facer estas cousas. Por suposto, fabrica cerebros a través de millóns de neuronas e conexións. Pero deseñar un sistema deste tipo no computador é imposible, aínda que o número de neuronas simuladas sexa moito menor. Por exemplo, que ten que facer cada neurona dentro da rede paira saber que un robot campesiño é hora de recoller tomates? Ninguén sabe a resposta, pero iso non importa. E é que una rede informática neuronal non sabe como se fai o traballo. Ten que aprender.
O programador entrega á rede una estrutura inicial que a integra nunha fase de formación. Paira iso dálle un problema e, xunto coa formulación do problema, a solución correcta do mesmo. A rede analiza o problema e achega una solución que contrasta coa proporcionada polo informático e adapta a actividade de cada neurona paira axustar correctamente a solución que consegue toda a rede. Volve tentalo, se o programa está ben feito, na segunda sesión achegarase a solución da rede e a solución correcta. Volverá comparar ambas as solucións, reacondicionará o traballo das neuronas e volverá tentalo. Desta maneira, até conseguir una solución correcta.
Este sistema de aprendizaxe parece una trampa, xa que se lle dá a solución que debería conseguir. Pero o cerebro fai o mesmo. Os seres humanos, por exemplo, aprendemos a ler ou a coñecer una cara desa maneira: unha e outra vez despois de ver a solución. O coñecemento das caras é un bo exemplo; os nenos recentemente nados pasan meses aprendendo a coñecer as caras dos seus pais, paira o que se require un mínimo nivel de abstracción. E é que se o pai ou a nai dun neno de seis meses cambia de aspecto (corte de pelo, por exemplo), é posible que o neno teña grandes dificultades paira coñecer a súa cara.
Input e output
Paira facer aprender á rede, en definitiva, hai que porse en marcha. Hai que darlle un input, introducir datos. Estes datos non chegan directamente a todas as neuronas, son tomadas, tratadas e transmitidas por uns poucos ás neuronas ás que están conectados. Os datos transmítense en neurona como una sinal eléctrico até chegar ás neuronas de saída. Estas últimas neuronas proporcionan un output.
Input e output; a antigo dogma da informática. Ambas son necesarias. Son compoñentes imprescindibles da rede neuronal. A rede posible máis sinxela tería una única neurona que recollese un input simple e, transformado, daría un output simple. Paira tratar una única neurona e un só dato. Una rede así non aprendería moito. Mesmo paira aprender a realizar operacións lóxicas sinxelas, una rede necesita unhas poucas neuronas.
Na operación denominada XOR, por exemplo, inclúense dous datos, ceros ou un; cando os dous datos son unitarios, o resultado da operación é tamén uno, e si ten algún cero, o resultado da operación é cero. Trátase dunha operación moi sinxela, pero se necesitan cinco neuronas para que una rede aprenda a facelo: dúas neuronas paira recoller os datos do input, outra paira o output final e outras dúas neuronas intermedias.
Capas
As neuronas intermedias son necesarias paira realizar traballos intermedios. E se todos estes traballos intermedios non son similares, cada traballo faio un grupo de neuronas. Por iso, os informáticos organízanos por capas. Na primeira capa atópanse as neuronas que reciben o input, logo atópase a primeira capa intermedia cando é necesario, daquela todas as seguintes capas intermedias en orde e, finalmente, a capa neuronal que dá o output.
O sinal realiza esta viaxe, desde o input até o output, nunha vía determinada por conexións. Pode ser un camiño directo ou que reenvía o sinal desde as últimas capas ás iniciais, a estrutura das conexións dependerá do traballo. E estruturas moi complexas poden facer obras moi abstractas.
O cerebro funciona de forma similar: hai neuronas que reciben o input (o visto, o escoitado, etc.), actívanse determinados grupos neuronais paira cada tipo de traballo e outras que provocan o output (reacción). Pero o cerebro é moito máis complexo que as redes neuronais de informática. Entre outras cousas, aumenta o número de neuronas e conexións a medida que aprende, polo menos ao comezo da vida.
Ensaio e erro
Canto máis abstracto sexa o traballo, máis complexo debe ser a rede que aprende a facelo. Parece imposible, por exemplo, deseñar una rede neuronal que separe as letras impresas (caracteres). Pero estas redes son habituais: Chámanse OCR sofware. Como os informáticos os deseñaron? Como coñeceron o número de neuronas que debían utilizar, o número de capas que debían organizar e que conexións debían establecer?
A resposta é sinxela: ao principio non sabían. Paira levar a cabo este tipo de traballos, elixen una rede neuronal inicial que lle fará aprender. É moi posible que a rede non poida aprender, que non quede una vez posta en marcha ou que dea resultados sen sentido. Nestes casos, axustan a rede, engadindo ou eliminando neuronas, reestruturando a propia rede ou modificando a transformación que realiza cada neurona. E volven probar.
Finalmente, cando é capaz de aprender a rede, está disposto a traballar no 'mundo real'. E entón tamén haberá que axustar o traballo da rede, xa que o proceso de aprendizaxe realízase a través de exemplos concretos. E o mundo real ten moitos casos diferentes.
Gai honi buruzko eduki gehiago
Elhuyarrek garatutako teknologia