lunes, 30 de enero de 2012

ANOTACIÓN 2012 Serie 1 No 5 - 6 de febrero 2012 - ANTECEDENTES HISTÓRICOS, Tercera parte: 1995 - 1997– UCSD SAN DIEGO.


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