ANTECEDENTES HISTÓRICOS, Tercera parte: 1995
- 1997– UCSD SAN DIEGO.
REDES NEURONALES ARTIFICIALES
Y EL PARADIGMA DEL “PROCESAMIENTO DISTRIBUIDO EN PARALELO”
El modelo tradicional de procesamiento de
información en un sistema de computación es secuencial, con una instrucción o
módulo activado a la vez, pero en el procesamiento distribuido en paralelo,
muchos módulos están activados simultáneamente – precisamente lo que ocurre en
un sistema real: la hierba crece, el conejo se alimenta, el zorro acecha, el
gavilán vuela, el viento sopla, el sol reluce, etc., y todo a la vez a su
propio ritmo y respondiendo ambas a sus propias motivaciones interiores a la
vez que a las exigencias o los estímulos exteriores. Es decir, en un sistema
natural hay una independencia de cada unidad que forma, a la vez que una
dependencia simultanea que surge de la relación, influencia, etc., de
las demás unidades al igual que de factores ajenos al, pero influentes en el
sistema (la cantidad, horario e intensidad de luz solar, la temperatura, la
humedad, etc.) ocasionando una interdependencia entre todos los
elementos del sistema, lo que venimos llamar la “red de la vida”. No se puede
representar adecuadamente esa realidad con los sistemas de computación
tradicionales que se desarrollaron primordialmente para el procesamiento de
sistemas comerciales como son los de las nóminas de salarios, o estado de
inventario, o entregas por paqueterías, etc. En ese tipo de sistemas aunque
existe un procesamiento múltiple, es decir, en la que varios componentes están
ejerciendo sus instrucciones independientes de los demás, la base del
procesamiento sigue siendo secuencial en cada componente. Por eso mismo se nos
dificulta desarrollar modelos que acertadamente pronostiquen el estado de la
economía o el de la bolsa de valores – estos tipos de sistemas, a pesar de ser
artificiales son muy “naturales” en su comportamiento ya que surgen
directamente de la interacción de componentes completamente naturales: los
seres humanos.
En
un sistema de información o de computación típico, el conocimiento del sistema –
su capacidad para resolver problemas – está representado en una secuencia de
instrucciones fijas que conocemos como “algoritmos”:
“En
matemáticas, ciencias de la computación y disciplinas relacionadas, un
algoritmo (del griego y latín, dixit algorithmus y este a su vez del
matemático persa Al-Juarismi) es un conjunto preescrito de instrucciones o
reglas bien definidas, ordenadas y finitas que permite realizar una actividad
mediante pasos sucesivos que no generen dudas a quien deba realizar dicha
actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos
se llega a un estado final y se obtiene una solución… En la vida cotidiana, se
emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son
los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos
en matemática son el algoritmo de la división para calcular el cociente de dos
números, el algoritmo de Euclides para obtener el máximo común divisor de dos
enteros positivos, o el método de Gauss para resolver un sistema lineal de
ecuaciones.”[1]
Aunque el concepto de algoritmo sea de gran
utilidad para resolver problemas de índole secuencial, no es así como
funciona el sistema más adepto para la resolución de problemas en todo el
universo conocido: el cerebro humano. De hecho ningún cerebro opera de acuerdo
al modelo algorítmico.
Aquí vemos un algoritmo típico para
descubrir por qué la lámpara no funciona. La metodología del algoritmo es muy
útil para resolver problemas que se prestan a ello. Nos resulta “natural”
porque es secuencial igual en apariencia igual que el lenguaje humano – digo en
apariencia porque gran parte de la comunicación humana se lleva a cabo de forma
no-verbal, en los gestos, en el tono, en el ritmo de comunicación, e incluso a
nivel subliminal en las feromonas, en los instintos, en las intuiciones – y
ninguna de esas es por su naturaleza algorítmica. Vemos una película y seguimos
la secuencia de las frases compuestas por secuencias de palabras a su vez
compuestas por secuencias de silabas y a su vez de letras, pero no olvidemos
que simultáneamente nuestros ojos y nuestros oídos está tomando una enorme
cantidad de información visual y auditiva (música, ruidos) que se presenta no
de forma solamente lineal, secuencial, sino simultanea.
En
el departamento de Ciencias Cognitivas de la Universidad de California, San
Diego, aprendí un nuevo paradigma para la representación del conocimiento integrado
en, y del procesamiento de información por, un sistema: el denominado modelo de
“procesamiento distribuido en paralelo”. Efectivamente, lo que sucede en las
redes neuronales de cualquier cerebro es que varios, numerosos, estímulos sensoriales
activan redes perceptivas que operan en conjunto, en paralelo, procesando la
información no en una secuencia algorítmica, sino a través de otra metodología
completamente distinta, una metodología de procesamiento distribuido en
unidades – neuronas – en paralelo cada una contribuyendo con su activación – ya
sea de excitación, de inhibición, o de modulación, hacia la resolución del
problema. Así por ejemplo, oímos un ruido que se destaca de entre los demás que
nos acosan y conforme miramos en la dirección del mismo la mente revisa sus
bases de datos interiores a la vez que los sentido toman información del
exterior – en paralelo – para una explicación que puede venir antes, durante o
después de la indagación visual; mientras tanto, una cascada de eventos
internos – secreción de hormonas como la adrenalina nos baña nuestro ambiente
interior prestando al sistema fisiológico para una lucha a muerte o una fuga en
evasión de la misma.
El paradigma del procesamiento
distribuido en paralelo tiene sus orígenes en un estudio de la realidad
biológica-cognitiva de las redes neuronales de los animales (incluyendo los seres
humanos) y dio lugar a la tecnología de las denominadas redes neuronales artificiales
o RDA, que suponen un nuevo avance en la inteligencia artificial. La “solución”
al problema – el “conocimiento” del sistema – ya no está en los pasos de un algoritmo,
sino en las fuerzas y naturaleza de las conexiones entre las capas de redes neuronales
artificiales. Para las redes neuronales artificiales hay un proceso inicial de “entrenamiento”
de la red – ajuste del valor de las conexiones – durante el cual se aplican diversos
algoritmos (ahora sí) al valor de las mismas para llegar a una combinación óptima
que resuelva el problema dado:
Con un
paradigma convencional de programación en ingeniería del software, el objetivo
del programador es modelar matemáticamente (con distintos grados de formalismo)
el problema en cuestión y posteriormente formular una solución (programa)
mediante un algoritmo codificado que tenga una serie de propiedades que
permitan resolver dicho problema. En contraposición, la aproximación basada en
las RNA parte de un conjunto de datos de entrada suficientemente significativo
y el objetivo es conseguir que la red aprenda automáticamente las propiedades
deseadas. En este sentido, el diseño de la red tiene menos que ver con
cuestiones como los flujos de datos y la detección de condiciones, y más que
ver con cuestiones tales como la selección del modelo de red, la de las
variables a incorporar y el preprocesamiento de la información que formará el
conjunto de entrenamiento. Asimismo, el proceso por el que los parámetros de la
red se adecuan a la resolución de cada problema no se denomina genéricamente programación
sino que se suele denominar entrenamiento neuronal.
Por
ejemplo en una red que se va a aplicar al diagnóstico de imágenes médicas;
durante la fase de entrenamiento el sistema recibe imágenes de tejidos que se
sabe son cancerígenos y tejidos que se sabe son sanos, así como las respectivas
clasificaciones de dichas imágenes. Si el entrenamiento es el adecuado, una vez
concluido, el sistema podrá recibir imágenes de tejidos no clasificados y
obtener su clasificación sano/no sano con un buen grado de seguridad. Las
variables de entrada pueden ser desde los puntos individuales de cada imagen
hasta un vector de características de las mismas que se puedan incorporar al
sistema (por ejemplo, procedencia anatómica del tejido de la imagen o la edad
del paciente al que se le extrajo la muestra).[2]
El
estudio del paradigma del procesamiento distribuido en paralelo me otorgó un conocimiento nuevo y muy importante para continuar
en mi afán de la creación de una herramienta para modelar todo tipo de sistemas,
al igual que me ayudó a comprender la naturaleza de sistemas mismos. Pero inmediatamente
detecté lo que consideré una falla significativa en ese paradigma.
Se continuará…
No hay comentarios:
Publicar un comentario