• Acercamiento a la Robotica y a las Redes Neuronales Artificiales!

    Redes Neuronales Artificiales



    como en todo tema es importante hablar de definiciones y conceptos, en este caso les presentamos algunas definiciones que podrán complementar con la bibliografia proporcionada.  En esta pagina encontrarás información sobre las redes neuronales artificiales, Diseño y programación de una RNA (red neuronal artificial), la estructura y las aplicaciones de estas en múltiples campos. esperamos que te parezca interesante.
    Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN" ) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.

    Propiedades

    Perceptrón con 2 entradas.
    Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una serie de entradas a través de interconexiones y emite una salida. Esta salida viene dada por tres funciones:
    1.     Una función de propagación (también conocida como función de excitación), que por lo general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexión (valor neto). Si el peso es positivo, la conexión se denomina excitatoria; si es negativo, se denomina inhibitoria.
    2.     Una función de activación, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma función de propagación.
    3.     Una función de transferencia, que se aplica al valor devuelto por la función de activación. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretación que queramos darle a dichas salidas. Algunas de las más utilizadas son la función sigmoidea (para obtener valores en el intervalo [0,1]) y la tangente hiperbólica(para obtener valores en el intervalo [-1,1]).

    Diseño y programación de una RNA (red neuronal artificial)
    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 pre-procesamiento 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).
    Estructura
    La mayoría de los científicos coinciden en que una RNA es muy diferente en términos de estructura de un cerebro animal. Al igual que el cerebro, una RNA se compone de un conjunto masivamente paralelo de unidades de proceso muy simples y es en las conexiones entre estas unidades donde reside la inteligencia de la red. Sin embargo, en términos de escala, un cerebro es muchísimo mayor que cualquier RNA creada hasta la actualidad, y las neuronas artificiales también son más simples que su contrapartida animal.
    Biológicamente, un cerebro aprende mediante la reorganización de las conexiones sinápticas entre las neuronas que lo componen. De la misma manera, las RNA tienen un gran número de procesadores virtuales interconectados que de forma simplificada simulan la funcionalidad de las neuronas biológicas. En esta simulación, la reorganización de las conexiones sinápticas biológicas se modela mediante un mecanismo de pesos, que son ajustados durante la fase de aprendizaje. En una RNA entrenada, el conjunto de los pesos determina el conocimiento de esa RNA y tiene la propiedad de resolver el problema para el que la RNA ha sido entrenada.
    Por otra parte, en una RNA, además de los pesos y las conexiones, cada neurona tiene asociada una función matemática denominada función de transferencia. Dicha función genera la señal de salida de la neurona a partir de las señales de entrada. La entrada de la función es la suma de todas las señales de entrada por el peso asociado a la conexión de entrada de la señal. Algunos ejemplos de entradas son la función escalón de Heaviside, la lineal o mixta, la sigmoide y la función gaussiana, recordando que la función de transferencia es la relación entre la señal de salida y la entrada.


    Aplicaciones

    Las características especiales de los sistemas de computación neuronal permiten que sea utilizada esta nueva técnica de cálculo en una extensa variedad de aplicaciones. 

    La computación neuronal provee un acercamiento mayor al reconocimiento y percepción humana que los métodos tradicionales de cálculo. Las redes neuronales artificiales presentan resultados razonables en aplicaciones donde las entradas presentan ruido o las entradas están incompletas. Algunas de las áreas de aplicación de las ANN son las siguientes:

    ·         Análisis y Procesado de señales   
    ·         Reconocimiento de Imágenes 
    ·         Control de Procesos    
    ·         Filtrado de ruido 
    ·         Robótica           
    ·         Procesado del Lenguaje 
    ·         Diagnósticos médicos      
    ·         Otros 

    Conversión Texto a Voz
    Uno de los principales promotores de la computación neuronal en esta área es Terrence Sejnowski. La conversión texto-voz consiste en cambiar los símbolos gráficos de un texto en lenguaje hablado. El sistema de computación neuronal presentado por Sejnowski y Rosemberg, el sistema llamado NetTalk, convierte texto en fonemas y con la ayuda de un sintetizador de voz (Dectalk) genera voz a partir de un texto escrito. 

    La ventaja que ofrece la computación neuronal frente a las tecnologías tradicionales en la conversión texto-voz es la propiedad de eliminar la necesidad de programar un complejo conjunto de reglas de pronunciación en el ordenador. A pesar de que el sistema NetTalk ofrece un buen comportamiento, la computación neuronal para este tipo de aplicación abre posibilidades de investigación y expectativas de desarrollo comercial. 

    Procesado Natural del Lenguaje
    Incluye el estudio de cómo se construyen las reglas del lenguaje. Los científicos del  conocimiento Rumelhart y McClelland han integrado una red neuronal de proceso natural del lenguaje. El sistema realizado ha aprendido el tiempo verbal  pass tense de los verbos en Inglés. Las características propias de la computación neuronal como la capacidad de generalizar a partir de datos incompletos y la capacidad de abstraer, permiten al sistema generar buenos pronósticos para verbos nuevos o verbos desconocidos. 

    Compresión de Imágenes
    La compresión de imágenes es la transformación de los datos de una imagen a una representación diferente que requiera menos memoria o que se pueda reconstruir una imagen imperceptible. Cottrel, Munro y Zisper de la Universidad de San Diego y  Pisttburgh han diseñado un  sistema de compresión de imágenes utilizando una red neuronal con un factor de compresión de 8:1. 

    Reconocimiento de Caracteres
    Es el proceso de interpretación visual y de clasificación de símbolos. Los investigadores de Nestor, Inc. han desarrollado un sistema de computación neuronal que tras el entrenamiento con un conjunto de tipos de caracteres de letras, es capaz de interpretar un tipo de carácter o letra que no haya visto con anterioridad. 

     Reconocimiento de Patrones en Imágenes
    Una aplicación típica es la clasificación de objetivos detectados por un sonar. Existen varias ANN basadas en la popular Backpropagation cuyo comportamiento es comparable con el de los operadores humanos. Otra aplicación normal es la inspección industrial. 

    Problemas de Combinatoria
    En este tipo de problemas la solución mediante cálculo tradicional requiere un tiempo de  proceso (CPU) que es  exponencial con el número de entradas. Un ejemplo es el problema del vendedor; el objetivo es elegir el camino más corto posible que debe realizar el vendedor para cubrir un número limitado de ciudades en una área geográfica específica. Este tipo de problema ha sido abordado con éxito por Hopfield y el resultado de su trabajo ha sido el desarrollo de una ANN que ofrece buenos resultados para este problema de combinatoria. 

    Procesado de la Señal
    En este tipo de aplicación existen tres clases diferentes de procesado de la señal que han sido objeto de las ANN como son la predicción, el modelado de un sistema y el filtrado de ruido. 

    Predicción
    En el mundo real existen muchos fenómenos de los que conocemos su comportamiento a través de una serie temporal de datos o valores. Lapedes y Farber del Laboratorio de Investigación de los Álamos, han demostrado que la red backpropagation supera en un orden de  magnitud a los métodos de predicción polinómicos y lineales convencionales para las series temporales caóticas. 

    Modelado de Sistemas
    Los sistemas lineales son caracterizados por la función de transferencia que no es más que una expresión analítica entre la variable de salida y una variable independiente y sus derivadas. Las ANN también son capaces de aprender una función de transferencia y comportarse  correctamente como el sistema lineal que está modelando. 

    Filtro de Ruido
    Las ANN también pueden ser utilizadas para eliminar el ruido de una señal. Estas redes son capaces de mantener en un alto grado las estructuras y valores de los filtros tradicionales. 

    Modelos Económicos y Financieros
    Una de las aplicaciones más importantes del modelado y pronóstico es la creación de pronósticos económicos como por ejemplo los precios de existencias, la producción de las cosechas, el interés de las cuentas, el volumen de las ventas etc. Las redes neuronales están ofreciendo mejores resultados en los pronósticos financieros que  los métodos convencionales. 

    ServoControl
    Un problema difícil en el control de un complejo sistema de servomecanismo es encontrar un método de cálculo computacional aceptable para compensar las variaciones físicas que se producen en el sistema. Entre los inconvenientes destaca la imposibilidad en algunos casos de medir con exactitud las variaciones producidas y el excesivo tiempo de cálculo requerido para la obtención de la solución matemática. Existen diferentes redes neuronales que han sido entrenadas para reproducir o predecir el error que se produce en la posición final de un robot. Este error se combina con la posición deseada para proveer una posición adaptativa de corrección y mejorar la exactitud de la posición final. 

    Simuladores Software
    Constituyen una de las formas más versátiles con las que se pueden implementar redes neuronales. Estos programas constituyen todo un sistema de desarrollo y realización de prototipos de redes neuronales. Estos programas se utilizan para diseñar, construir, entrenar y probar redes neuronales artificiales para resolver problemas complejos y problemas del mundo real. 
    Los primeros simuladores software se  ejecutaban en ordenadores de grandes prestaciones y el avance de los ordenadores personales  en capacidad de procesado y capacidad de memoria hace posible que exista una serie de simuladores software de grandes prestaciones que corren sobre ordenadores personales. Entre otros paquetes software se incluye Neural Works, Neuralyst, Explore Net y Kwowledge Net. 
      
    Aceleradores Hardware
    La naturaleza paralela de la computación neuronal se presta a realizar diseños concretos y a medida de dispositivos físicos, aceleradores hardware, que aceleren la ejecución de los cálculos. Los aceleradores hardware para los sistemas de computación neuronal son dispositivos físicos constituidos por diferentes procesadores interconectados que ayudan a la realización y ejecución del comportamiento de las ANN. Una de las ventajas de los aceleradores hardware diseñados específicamente para la computación neuronal es el aumento de la velocidad de procesado. Esta característica permite la utilización de las ANN en aplicaciones de tiempo real. 

    Robert Hecht-Nielsen desarrolló el acelerador hardware Mark III que constaba de 8100 procesadores y trabajaba como un periférico de un VAX. La mayoría de las casas comerciales dedicadas al diseño de las ANN han desarrollado diferentes tarjetas basadas en los diferentes procesadores existentes, diseñadas para trabajar en el entorno de un ordenador personal PC y presentando un progresivo ratio de actualizaciones de interconexiones por segundo. 

    Chips de Silicio
    Otro de los campos de la investigación en el mundo de las ANN al margen de los simuladores software y aceleradores hardware, es la integración de todos los componentes de computación neuronal en un chip de silicio. Un ejemplo concreto es el chip Electronic Neural  Network (EEN) de la compañía AT&T que contiene 256 transistores-neuronas y más de 100.000 resistencias-sinapsis. Actualmente este chip está siendo utilizado para aplicaciones de compresión del ancho de banda de imágenes de vídeo para poder ser transmitidas por una línea telefónica. Existen muchas compañías y centros de investigación que están trabajando en el desarrollo de circuitos integrados que realizan computación neuronal. La mayoría de las aplicaciones de estos chips está siendo la simulación de procesos sensitivos como la visión de imágenes y la audición de sonidos.


    0 comentarios:

    Publicar un comentario

     

    About