Programando neuronas

Roa Zubia, Guillermo

Elhuyar Zientzia

Paira realizar operacións matemáticas, o computador é máis rápido que o cerebro; pode facer millóns de cálculos paira empezar a calcular o cerebro. Pero a velocidade de cálculo non é o único que se busca nunha máquina, senón tamén o tipo de traballo que pode realizar. Paira un computador, case calquera traballo que requira abstracción é moi difícil. Coñecer una cara, por exemplo. Difícil, pero non imposible; si o computador traballa como un cerebro, as cousas cambian.
Programando neuronas
01/12/2007 | Roia Zubia, Guillermo | Elhuyar Zientzia Komunikazioa
(Foto: G. Roia)

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

Un dos métodos máis coñecidos para que un computador teña intelixencia é crear una rede de pequenas unidades de cálculo. Normalmente realízase a nivel de software, denominado rede neuronal.
G. Roia

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

O software que escanea textos e recoñece caracteres é hoxe en día habitual. Está baseado en redes neuronais.
G. Roia

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

O maior desenvolvemento das redes neuronais fixérono con computadores de hai vinte anos. Este tipo de programación segue evolucionando, pero máis lentamente.
De arquivo

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?

Coñecer as caras é un traballo abstracto e difícil, tanto paira o computador como paira o cerebro biolóxico.
G. Roia

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.

Traballo neuronal e percepcións
No cerebro, a función das neuronas é a recollida e emisión de sinais. Una soa neurona recibe miles de sinais dos miles de conexións que lle chegan. Pero non todos estes sinais teñen a mesma importancia paira a miña, algunhas teñen maior influencia no sinal de saída que outras. Ao final, combinando todos os efectos, a neurona xera una sinal de saída que envía a miles de neuronas.
(Foto: De arquivo)
En informática, o mesmo. Cada neurona debe dar un peso a cada una dos sinais que recibe (o peso, weight en inglés, é una medida do impacto no sinal de saída). Una das claves do proceso de aprendizaxe é o axuste destes pesos. As funcións matemáticas son un dos principais factores que deben traballar os informáticos para que a rede neuronal teña éxito.
Vese facilmente en redes moi sinxelas, como as percepcións. Na época en que se inventaron, os perceptrones eran sistemas dunha soa neurona. Tiñan moitos inputs, pero un output. De feito, este output era o número 0 ou o número 1 en función dos valores do input e do peso de devanditos valores. Posteriormente viron que as percepcións tiñan una capacidade de aprendizaxe moi limitada. Por iso, as actuais percepcións teñen máis neuronas organizadas en capas.
Paira que?
Á informática fáltalle moito paira converter o computador en cerebro. Até hai dúas décadas a idea foi revolucionaria e desde entón avanzouse lentamente. Por iso, as redes neuronais e a intelixencia artificial son pouco mencionadas polos grandes políticos e empresarios de hoxe. Con todo, tomaron parte na tecnoloxía.
O sistema de escaneado de textos e recoñecemento de letras é un exemplo típico. Denomínase sistema OCR ao termo inglés Optical Character Recognition. Está baseado nunha rede neuronal. Pero os exemplos non se limitan ás aplicacións habituais.
(Foto: De arquivo)
Moi utilizado na investigación. Moitos programas de estudo de datos cristalográficos de proteínas, por exemplo, son redes neuronais. Moitos programas que controlan sistemas complexos utilizados en enxeñaría química, en xeral moitos sistemas informatizados de control industrial.
As redes neuronais utilizáronse paira facer predicións. En meteorología e climatoloxía, por exemplo, paira facer predicións a curto e longo prazo, respectivamente. En economía, tamén no mundo do investimento. Nas predicións dos xogos, por exemplo nos programas que xogan ao xadrez.
As redes neuronais poden aplicarse case en todo. Un caso curioso: uns investigadores australianos elaboraron una rede neuronal que analiza os sons destes animais paira seguir por computador as fases de alimentación das ovellas.
Ponte Roia, Guillermo
Servizos
237
2007
Descrición
033
Intelixencia Artificial; Programación; Software
Artigo
Servizos
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila