Red neuronal artificial Historia

Anuncio
Red neuronal artificial
Historia
Las Redes Neuronales surgieron del movimiento conexionista, que nació junto con la IA
simbólica o tradicional. Esto fue hacia los años 50, con algunos de los primeros
ordenadores de la época y las posibilidades que ofrecían.
McCulloch y Pitts dio origen a los modelos conexionista definiendo formalmente la
neurona en 1943 como una maquina binaria con varias entradas y salidas.
Hebb, definió en 1949 dos conceptos muy importantes y fundamentales que
han pesado en el campo de las redes neuronales, basándose en investigaciones
psicofisiológicas:
• El aprendizaje se localiza en las sinapsis o conexiones entre las neuronas.
• La información se representan en el cerebro mediante un conjunto de neuronas activas o
inactivas.
Las hipótesis de Hebb, se sintetizan en la regla de aprendizaje del hebb, que sigue siendo
usada en los actuales modelos. Esta Regla nos dice que los cambios en los pesos de las
sinapsis se basan en la interacción entre las neuronas pre y postsinapsitcas.
La primera conferencia sobre IA en la cual se discutió sobre la capacidad de las
computadoras para simular el aprendizaje fue en 1956 en Dartmouth. A partir de ahí
investigadores han desarrollado distintos tipos de redes neuronales que cito a
continuación:
• 1959 Widrow Teoría sobre la adaptación neuronal y el Adaline (Adaptative Linear
Neuron) y el Madaline (Multiple Adaline). Es la primera aplicación de las redes a
problemas reales: filtros adaptativos para eliminar ecos en las líneas telefónicas.
• 1962, Rosemblatt El Perceptrón es un identificador de patrones ópticos binarios, y salida
binaria. Dio lugar a regla de aprendizaje delta, que permitía emplear señales continuas de
entrada y salida.
• 1969, Minsky y Papert una seria crítica del Perceptrón que dada su naturaleza lineal
tenia bastantes limitaciones, provocó una caída en picado de las investigaciones y una
época gris para las redes neuronales.
• 1977, Anderson Los Modelos de memorias asociativas. Investiga el autoasociador lineal
brain-state-in-a-box
• Años 80, Rumelhart, McClelland & Hinton crean el grupo PDP (Parallel Distributed
Processing). Como resultado de los trabajos de este grupo salieron los manuales con más
influencia desde el trabajo descorazonador de Minsky y papera
• 1982, Hopfield elabora un modelo de red consistente en unidades de proceso
interconectadas que alcanzan mínimos energéticos, aplicando los principios de estabilidad
desarrollados por Grossberg.
• 1984, Kohonen Mapas de Kohonen, Este investigador fines desarrolló redes basadas en
aprendizaje competitivo, con una idea nueva basada en la biología: Las unidades de
procesos físicamente adyacentes aprenderán a representar patrones de entrada
similares, así las neuronas de salida adyacentes identifican patrones similares.
• 1987, Grossberg El modelo ART (Adaptative Resonance Theory), estudia los principios
de la estabilidad de redes neuronales.
• 1986, Hinton & Sejnowski, la máquina de Boltzmann, una red que usa la probabilidad
para encontrar mínimos totales.
• 1987, Kosko los modelos BAM (Bi-directional Associative Memory.)
En la actualidad gracias a diversos grupos de investigación repartidos por universidades
de todo el mundo, las redes neuronales han alcanzado una madurez muy aceptable y se
usan en todo tipo de aplicaciones entre las que podemos citar:
Reconocimiento de patrones, voz y vídeo, Compresión de imágenes.
Estudio
y
predicción
de
sucesos
muy
complejos
(ej.
La
bolsa)
Aplicaciones de apoyo a la medicina., todo tipo de aplicaciones que necesiten el análisis
de grandes cantidades de datos, etc.
Red neuronal artificial
Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés
como: "ANN"1 ) 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.
Funcionamiento
Unas redes neuronales consisten en simular las propiedades observadas en los sistemas
neuronales biológicos a través de modelos matemáticos recreados mediante mecanismos
artificiales (como un circuito integrado, un ordenador o un conjunto de válvulas). El
objetivo es conseguir que las máquinas den respuestas similares a las que es capaz de
dar el cerebro que se caracterizan por su generalización y su robustez.
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
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
adecúan a la resolución de cada problema no se denomina genéricamente programación
sino que se suele denominar entrenamiento.
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 sigmoidea 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.
Ventajas
Las redes neuronales artificiales (RNA) tienen muchas ventajas debido a que están
basadas en la estructura del sistema nervioso, principalmente el cerebro.

Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se
llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA datos como
entrada a su vez que se le indica cuál es la salida (respuesta) esperada.




Auto organización: Una RNA crea su propia representación de la información en
su interior, descargando al usuario de esto.
Tolerancia a fallos: Debido a que una RNA almacena la información de forma
redundante, ésta puede seguir respondiendo de manera aceptable aun si se daña
parcialmente.
Flexibilidad: Una RNA puede manejar cambios no importantes en la información
de entrada, como señales con ruido u otros cambios en la entrada (ej. si la
información de entrada es la imagen de un objeto, la respuesta correspondiente no
sufre cambios si la imagen cambia un poco su brillo o el objeto cambia
ligeramente)
Tiempo real: La estructura de una RNA es paralela, por lo cuál si esto es
implementado con computadoras o en dispositivos electrónicos especiales, se
pueden obtener respuestas en tiempo real.
Tipología de las RNA
Modelos
Existe una serie de modelos que aparecen en la mayoría de estudios académicos y la
bibliografía especializada.
















Perceptrón
Adaline
Perceptrón multicapa
Memorias asociativas
Máquina de Bolzman
Máquina de Cauchy
Propagación hacia atrás (backpropagation)
Redes de Elman
Redes de Hopfield
Red de contrapropagación
Redes de neuronas de base radial
Redes de neuronas de aprendizaje competitivo
Mapas Autoorganizados (RNA)
Crecimiento dinámico de células
Gas Neuronal Creciente
Redes ART (Adaptative Resonance Theory)
Topología
Una primera clasificación de las redes de neuronas artificiales que se suele hacer es en
función del patrón de conexiones que presenta. Así se definen tres tipos básicos de redes:


Dos tipos de redes de propagación hacia delante o acíclicas en las que todas
las señales van desde la capa de entrada hacia la salida sin existir ciclos, ni
conexiones entre neuronas de la misma capa.
o Monocapa. Ejemplos: perceptrón, Adaline.
o Multicapa. Ejemplos: perceptrón multicapa.
Las redes recurrentes que presentan al menos un ciclo cerrado de activación
neuronal. Ejemplos: Elman, Hopfield, máquina de Bolzman.
Aprendizaje
Una segunda clasificación que se suele hacer es en función del tipo de aprendizaje de
que es capaz (si necesita o no un conjunto de entrenamiento supervisado). Para cada tipo
de aprendizaje encontramos varios modelos propuestos por diferentes autores:




Aprendizaje supervisado: necesitan un conjunto de datos de entrada previamente
clasificado o cuya respuesta objetivo se conoce. Ejemplos de este tipo de redes
son: el perceptrón simple, la red Adaline, el perceptrón multicapa y la memoria
asociativa bidireccional.
Aprendizaje no supervisado o autoorganizado: no necesitan de tal conjunto previo.
Ejemplos de este tipo de redes son: las memorias asociativas, las redes de
Hopfield, la máquina de Bolzman y la máquina de Cauchy, las redes de
aprendizaje competitivo, las redes de Kohonen o mapas autoorganizados y las
redes de resonancia adaptativa (ART)
Redes híbridas: son un enfoque mixto en el que se utiliza una función de mejora
para facilitar la convergencia. Un ejemplo de este último tipo son las redes de base
radial.
Aprendizaje reforzado: se sitúa a medio camino entre el supervisado y el
autoorganizado.
Tipo de entrada
Finalmente también se pueden clasificar las RNAs según sean capaces de procesar
información de distinto tipo en:


Redes analógicas: procesan datos de entrada con valores continuos y,
habitualmente, acotados. Ejemplos de este tipo de redes son: Hopfield, Kohonen y
las redes de aprendizaje competitivo.
Redes discretas: procesan datos de entrada de naturaleza discreta; habitualmente
valores lógicos booleanos. Ejemplos de este segundo tipo de redes son: las
máquinas de Bolzman y Cauchy, y la red discreta de Hopfield.
Aplicaciones
Las características de las RNA las hacen bastante apropiadas para aplicaciones en las
que no se dispone a priori de un modelo identificable que pueda ser programado, pero se
dispone de un conjunto básico de ejemplos de entrada (previamente clasificados o no).
Asimismo, son altamente robustas tanto al ruido como a la disfunción de elementos
concretos y son fácilmente paralelizables.
Esto incluye problemas de clasificación y reconocimiento de patrones de voz, imágenes,
señales, etc. Asimismo se han utilizado para encontrar patrones de fraude económico,
hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosférico,
etc.
También se pueden utilizar cuando no existen modelos matemáticos precisos o algoritmos
con complejidad razonable; por ejemplo la red de Kohonen ha sido aplicada con un éxito
más que razonable al clásico problema del viajante (un problema para el que no se
conoce solución algorítmica de complejidad polinómica).
Otro tipo especial de redes neuronales artificiales se ha aplicado en conjunción con los
algoritmos genéticos (AG) para crear controladores para robots. La disciplina que trata la
evolución de redes neuronales mediante algoritmos genéticos se denomina Robótica
Evolutiva. En este tipo de aplicación el genoma del AG lo constituyen los parámetros de la
red (topología, algoritmo de aprendizaje, funciones de activación, etc.) y la adecuación de
la red viene dada por la adecuación del comportamiento exhibido por el robot controlado
(normalmente una simulación de dicho comportamiento)
Ejemplos
Neural Stock
Neural Stock es un programa desarrollado por Infosel Financiero, en México. Combina las
Redes Neuronales Artificiales, junto con tecnologías como Algoritmos Genéticos y Lógica
Difusa, para obtener una capacidad de análisis acertada, recomendando operaciones de
compra y venta en el mundo financiero y bursatil.
Información
Página principal: Neural Stock
Fabricante: Neural Stock, S.A. de C.V.
País: México
Programa analizado: GA Neural Stock 99 V.3.0 (Ns99v300.zip)
Datos utilizados: nsdatos.zip
Características: Sistema de análisis bursatil/financiero
Requerimientos del sistema:
Windows 95 o NT
Procesador 486 o superior
16 Mb. en memoria RAM
25 Mb. libres en disco duro
Análisis y Evaluación de la Aplicación
En Neural Stock se aplican los principales adelantos en inteligencia artificial, incluyendo el
uso de las RNA, para el campo del análisis financiero. Este programa permite analizar el
desarrollo del mercado financiero, dia tras día, con lo que se logra entrenar a la red, y en
base a todo su historial de datos, puede predecir el siguiente movimiento a efectuar,
actuando como un asesor en la compra y venta.
Se convierte en una herramienta muy poderosa al aprovechar las ventajas de internet al
tener los datos de la bolsa en tiempo real o al final de cada día. Es robusto y tiene una
interface amigable, por lo que no se requiere saber nada acerca de las redes, solamente
introducir datos e interpretar las sugerencias que el programa da.
Se aprovecha una de las características de las RNA, su adaptabilidad, ya que permite
modificar la sensibilidad del análisis, lo cual se utiliza cuando no se requiere analizar
datos en periodos muy cortos, pero se puede incluir mayor cantidad de datos. Esto es, la
red se "adapta" a los datos introducidos.
En el mercado de los inversionistas, es necesario tener herramientas como ésta, ya que
aunque da muy buenas sugerencias, no se "emociona" sino que permanece objetivo y
frío, a diferencia de lo que pudiera suceder con una persona, al seguir alguna corazonada.
Como Funciona
En Neural Stock, gracias a la red neuronal asociada a cada instrumento financiero,
permite adquirir la experiencia requerida para obtener la mejor rentabilidad posible, en
unos cuantos minutos, en base al reconocimiento de los indicadores; un indicador que es
el resultado de un proceso de aprendizaje de como interpretar estos indicadores
correctamente con el fin de maximizar la rentabilidad posible.
Con Neural Stock, Ud. dispone de una red neuronal que se asocia a cada instrumento
financiero. Esta red, permite en unos cuantos minutos, adquirir la experiencia requerida
para interpretar correctamente las formaciones en los indicadores técnicos para generar
finalmente un indicador inteligente que proporciona claramente señales de
compra/venta de instrumentos de inversión, para optimar la rentabilidad de sus
inversiones.
De esta forma, Ud. no requiere aprender a interpretar decenas de indicadores técnicos, ni
a reconocer formaciones en los precios. Ud. sólo deja que la red neuronal y el algoritmo
genético hagan su trabajo realizando millones de operaciones para conseguir un solo
indicador inteligente fácil de seguir e interpretar que ha “extraído” en cierta forma la
información relevante de otros indicadores para obtener rentabilidad óptima.
Características
Cuenta con un indicardor neuronal, que es el que genera la recomendación de compra
o venta. Se mueve alrededor de un punto de equilibrio, indicando la tendencia del
mercado. Esta indicación se presenta sobre el gráfico de precios con flechas verdes y
rojas.
Contiene un monitor de clasificación de instrumentos financieros que utiliza lógica
difusa (una especie de sistema experto), para interpretar el propio indicador neuronal y
considerar también algunos otros factores como variación en los precios y el volumen
de operación, localización relativa del precio respecto a su promedio móvil y
localización del precio en el canal estadístico que define su última tendencia.
Cuenta con alarmas programables con disparo por nivel de precios y/o señal del
indicador neuronal.
Posibilidad de agrupar los distintos instrumentos financieros en diferentes mercados.
Soporte completo para realizar análisis técnico: Trazado de líneas de tendencia y de
ajuste por mínimos cuadrados, generación de promedios móviles simple, exponencial y
ponderados tanto en los precios como en el indicador, construcción de abanico de
resistencia de velocidad de Fibonacci, generación de indicadores técnicos
convencionales y de teoría del caos.
Versión para tiempo real para operación agresiva, mesas de capitales operación de
posición propia con todas las características del programa convencional pero que en
lugar de días, las barras de precios se definen para intervalos de minutos.
Actualización automática de datos diarios utilizando Infosel Financiero y algunos otros
sistemas de información.
Actualización de datos mediante el Internet.
Diseñado específicamente para los sistemas operativos Windows 95 y NT 4.0 y 5.0,
con tecnología de 32 bits. Sacando máximo provecho en las posibilidades de
multitarea que se traducen en una gran velocidad de respuesta en todas y cada una de
las características del software.
Con más de 5 años en el mercado y una gran base de clientes desde profesionales e
institucionales hasta inversionistas privados que se han convencido que Neural Stock
es simple y sencillamente la herramienta más poderosa para obtener el máximo
beneficio en sus inversiones.
Quake II Neuralbot
Un bot es un programa que simula a un jugador humano. El Neuralbot es un bot para el
juego Quake II que utiliza una red neuronal para decidir su comportamiento y un algoritmo
genético para el aprendizaje. Es muy fácil probarlo y ver su evolución.
Clasificador No Sesgado de Proteínas
Es un programa que combina diversas técnicas computacionales con el objetivo de
clasificar familias de proteínas. Un posible método consiste en utilizar métricas
adaptativas como por ejemplo: mapas autoorganizados y algoritmos genéticos.
El problema de clasificación no sesgada basada en la expresión de las proteínas en
Aminoácidos puede reducirse, conceptualmente, a lo siguiente:

La identificación de grupos de proteínas que compartan características comunes.


La determinación de las razones estructurales por las cuales las proteínas en
cuestión se agrupan de la manera indicada.
Evitar la idea de establecer criterios de clasificación (“sesgados”) fundamentados
en ideas preconcebidas para lograr su clasificación. En este sentido, hay dos
asuntos que considerar:
o Cómo lograr la caracterización de las proteínas de manera no sesgada
o Cómo lograr lo anterior sin apelar a medidas de agrupamiento que, a su
vez, impliquen algún tipo de sesgo sobre dicho agrupamiento.
Las RNA han sido aplicadas a un número en aumento de problemas en la vida real y de
considerable complejidad, donde su mayor ventaja es en la solución de problemas que
son bastante complejos para la tecnología actual, tratándose de problemas que no tienen
una solución algorítmica o cuya solución algorítmica es demasiado compleja para ser
encontrada.
En general, debido a que son parecidas al las del cerebro humano, las RNA son bien
nombradas ya que son buenas para resolver problemas que el humano puede resolver
pero las computadoras no. Estos problemas incluyen el reconocimiento de patrones y la
predicción del tiempo. De cualquier forma, el humano tiene capacidad para el
reconocimiento de patrones, pero la capacidad de las redes neuronales no se ve afectada
por la fatiga, condiciones de trabajo, estado emocional, y compensaciones.
Se conocen cinco aplicaciones tecnológicas aplicadas:
1.
2.
3.
4.
5.
Reconocimiento de textos manuscritos
Reconocimiento del habla
Simulación de centrales de producción de energía
Detección de explosivos
Identificación de blancos de radares
Bibliografìa
www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/historia-de-lasredes-neuronales.htm - 21k
es.wikipedia.org/wiki/Red_neuronal_artificial - 52k
Descargar