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.
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