Mostrando entradas con la etiqueta Redes neuronales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes neuronales. Mostrar todas las entradas

29 de noviembre de 2013

¿Qué son las redes neuronales?

Las redes neuronales son sistemas ideados como abstracciones de las estructuras neurobiológicas (cerebros) encontradas en la naturaleza y tienen la característica de ser sistemas desordenados capaces de guardar información.

La forma en que desarrollan su trabajo es esencialmente distinta de la utilizada por las computadoras convencionales. Los procesadores microscópicos del cerebro (neuronas) operan en paralelo y presentan cualitativamente más ruido que los elementos que forman a las computadoras. No ejecutan un programa fijo con base en un conjunto previamente especificado
de datos, sino que comunican señales a través de etransmisores que llamamos sinápsis, que llegan a centros de conjunción llamados los cuerpos de las neuronas y desde los cuales surgen señales eléctricas a través de canales conocidos con el nombre de axones.
La importancia de cada sinápsis en el proceso de retransmisión se actualiza contínuamente y lo mismo ocurre con algunas propiedades intrínsecas de las neuronas, proporcionando un sistema de autoprogramación y adaptación que sustituye a la programación externa de los sistemas de cómputo comunes. Existe así una dinámica de las sinápsis y de las neuronas en el cual los programas y los datos cambian todo el tiempo.



Una neurona típica recibe del orden de 6 000 a 10 000 señales provenientes de
otras neuronas y trasmitidas a través de las sinápsis.
Añadir leyenda



Los cerebros no tienen una arquitectura o mapa de conexiones específico, por ejemplo, presentan estructuras relativamente ordenadas en centros receptores de información, pero estructuras amorfas, prácticamente aleatorias, en las regiones procesadoras de alto nivel como el neocórtex. Operando en paralelo los cerebros dedican grandes cantidades de neuronas a una actividad determinada, lo cual da por resultado actividades posibles muy diferentes y complejas. Pueden adaptarse a circunstancias cambiantes, reconocer objetos deformados, borrosos, o parcialmente visibles. En síntesis, las redes neuronales son esencialmente diferentes de los sistemas de cómputo de la vida cotidiana.
Los distintos modelos de redes neuronales han planteado importantes e interesantes retos a los físicos teóricos y a los matemáticos, pues exhiben conductas muy ricas y nada triviales. Se trata de sistemas sumamente complejos de analizar por el gran número de elementos interactuantes, por el carácter no lineal de los elementos individuales que operan en ellas, porque las interacciones entre ellos no son idénticas ni simétricas y porque la magnitud de las interacciones, así como los umbrales internos de cada neurona, pueden cambiar en el tiempo.

Desde el punto de vista biológico el funcionamiento detallado de las neuronas es extremadamente complicado, de hecho, gran cantidad de aspectos fisiológicos y químicos de éstas es aún materia de investigación científica, de modo que para iniciar la búsqueda de un tratamiento formal de grupos de ellas se requiere introducir un conjunto de hipótesis simplificadoras que nos llevan a diferenciar entre una neurona biológica y una neurona formal. Nuestro propósito ahora es aclarar esta diferencia.
           
En los intentos por sistematizar la comprensión del cerebro pueden distinguirse dos caminos:
1º El primero es el seguido por los neurofisiólogos, quienes generalmente confrontan una abundancia de datos tan vasta que dificulta el examen sistemático dentro de un marco de trabajo experimental. Los datos están perturbados por una cantidad muy grande de influencias que no pueden ser fácilmente eliminadas por el experimentador.
2º El segundo es el que han abierto los constructores de modelos sobre la base de un conjunto también grande de suposiciones acerca del sistema que se busca explicar, con la esperanza de que el enfoque ayude al surgimiento de nuevas hipótesis, susceptibles de ser verificadas con la diversidad de datos disponibles.
           
Dentro del segundo de los caminos antes mencionados hay dos opciones para los creadores de modelos:
1.     La primera opción consiste en tratar de modelar al sistema real tanto como sea posible. Sin embargo, suele suceder que se introducen tantos parámetros que en realidad no se alcanza ningún entendimiento profundo; de donde se llega al resultado paradójico de que, buscando tanta fidelidad al sistema real, resulta una copia tan mala que la comprensión del fenómeno se desvanece.
2.     El otro enfoque consiste en descartar, a priori, todos aquellos parámetros que a primera vista parecen no ser esenciales, a fin de simplificar el análisis matemático. Estos no constituyen representaciones realistas del cerebro, sino que su inspiración neuronal puede contribuir a comprender algunas de las propiedades que los caracterizan en el procesamiento de información}.
           
La combinación de estas dos últimas opciones va acompañada y motivada por la experiencia, la intuición y el deseo de cuantificar el problema. La calidad del enfoque puede respaldarse en los resultados obtenidos en años recientes, que han mostrado progresos en el proceso de incorporación de más detalles biológicos a los modelos analíticamente solubles.
           
Sobre la base de las consideraciones anteriores, podemos enumerar las simplificaciones más importantes que nos llevan de la neurona biológica a la neurona formal:




No ponemos atención a los detalles de las avalanchas de señales electroquímicas que el cuerpo de la neurona envía a través de su axón. Solamente atendemos la existencia o la ausencia de una señal y le asignamos un "1" o un "0" a cada caso, o equivalentemente "1" y "-1".
Dejamos de lado los aspectos químicos del proceso de conversión con el cual una sinápsis modifica las señales eléctricas que recibe para liberar sobre la membrana de la neurona los neurotransmisores que aumentan o disminuyen el potencial eléctrico de esta última. Únicamente atendemos al carácter excitador o inhibidor de la sinápsis y le asignamos un número real Jij que es positivo si la señal recibida excita y negativo si inhibe al potencial de la neurona receptora. No consideramos la distribución espacial de las dendritas y las tomamos como si fueran cables pasivos de transmisión.
El éxito o el fracaso de cada sinápsis para retransmitir una señal lo consideramos azaroso, con una cierta probabilidad, tal que asociamos variables aleatorias independientes a cada dendrita.
Cada neurona tiene un umbral de respuesta al potencial eléctrico de su cuerpo principal, que al ser rebasado transmite una señal a través del axón. Nosotros lo consideramos como una variable aleatoria que se conduce conforme a una distribución gaussiana en torno a un promedio dado.

            

27 de noviembre de 2013

ELEMENTOS BÁSICOS DE UNA RED NEURONAL ARTIFICIAL

ENTRADAS. Estas capas reciben la información desde el exterior como son: Entradas Wj a la neurona.

PESOS Normalmente una neurona recibe muchas y múltiples entradas simultáneas. Cada entrada tiene su propio peso relativo el cual proporciona la importancia de la entrada dentro de la función de agregación de la neurona. Estos pesos realizan la misma función que realizan las fuerzas sinápticas de las neuronas biológicas. En ambos casos, algunas entradas son más importantes que otras de manera que tienen mayor efecto sobre el procesamiento de la neurona al combinarse para producir la respuesta neuronal.

Los pesos son coeficientes que pueden adaptarse dentro de la red que determinan la intensidad de la señal de entrada registrada por la neurona artificial. Ellos son la medida de la fuerza de una conexión de entrada. Estas fuerzas pueden ser modificadas en respuesta de los ejemplos de entrenamiento de acuerdo a la topología específica o debido a las reglas de entrenamiento.

SALIDAS: Cada elemento de procesamiento tiene permitido una única salida yi(t) que puede estar asociada con un número elevado de otras neuronas. Normalmente, la salida es directamente equivalente al valor resultante de la función de activación.

yi(t)=Fi(ai(t))=ai(t)
Algunas topologías de redes neuronales, sin embargo, modifican el valor de la función de transferencia para incorporar un factor de competitividad entre neuronas que sean vecinas. Las neuronas tienen permitidas competir entre ellas, inhibiendo a otras neuronas a menos que tengan una gran fortaleza.

En el siguiente post se describiran las funciones que forman parte de los Elementos de la Red Neuronal: La Función de Propagación, Función de Activación y la Función de Salida.

Red Neuronal Artificial en GNU/Linux gracias a Mono

 Hoy es un gran día! y es que gracias a la fantástica nueva versión de Mono 2.0 es posible desarrollar aplicaciones en .net que se compilen y ejecuten correctamente tanto en GNU/Linux, en Mac OS X y otras plataformas.

Una muestra de ello es el software de redes neuronales artificiales que programé en Visual Studio .net y del que os estuve hablando brevemente hace un año (cómo pasa el tiempo) y también hace unos meses para su uso en previsión de series temporales. He estado haciendo pruebas, y puedo deciros que el software funciona perfectamente (100%) en GNU/Linux y sin pérdida aparente de rendimiento. Lo más impresionante de todo, es que todo ello sin cambiar una línea de código fuente original de Visual Studio.net 2008.

EDLUT: Simulador de redes de neuronas GNU

EDLUT es una herramienta que permite simular redes de neuronas de integración y disparo.



Realiza las simulaciones en dos etapas:
Caracterización del comportamiento. A partir de las ecuaciones diferenciales que modelan el comportamiento de un determinado tipo de célula, hace una simulación intensiva y almacena su comportamiento en tablas.
Simulación de la red. Gracias a la caracterización previa de cada tipo de célula puede realizar simulaciones masivas con un coste computacional reducido.
El simulador ha sido desarrollado por el grupo de investigación CASIP de la Universidad de Granada. Podéis encontrar el código bajo licencia GNU aquí.



Las Redes Neuronales


Las Redes Neuronales

Las Redes Neuronales Artificiales (ANNs de Artificial Neural Networks) fueron originalmente una simulación abstracta de los sistemas nerviosos biológicos, formados por un conjunto de unidades llamadas "neuronas" o "nodos" conectadas unas con otras. Estas conexiones tienen una gran semejanza con las dendrítas y los axones en los sistemas nerviosos biológicos.
El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en términos de un modelo computacional de "actividad nerviosa". El modelo de McCulloch-Pitts es un modelo binario, y cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió de ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt, y muchos otros.

Una primera clasificación de los modelos de ANNs podría ser, atendiendo a su similitud con la realidad biológica:

Los modelos de tipo biológico. Este comprende las redes que tratan de simular los sistemas neuronales biológicos así como las funciones auditivas o algunas funciones básicas de la visión.
El modelo dirigido a aplicación. Estos modelos no tienen porque guardar similitud con los sistemas biológicos. Sus arquitecturas están fuertemente ligadas a las necesidades de las aplicaciones para las que son diseñados.
Redes Neuronales de tipo Biológico

Se estima que el cerebro humano contiene más de cien mil millones () de neuronas y sinápsis en el sistema nervioso humano. Estudios sobre la anatomía del cerebro humano concluyen que hay más de 1000 sinápsis a la entrada y a la salida de cada neurona. Es importante notar que aunque el tiempo de conmutación de la neurona ( unos pocos milisegundos) es casi un millón de veces menor que en las actuales elementos de las computadoras, ellas tienen una conectividad miles de veces superior que las actuales supercomputadoras.

Redes Neuronales

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 que colaboran entre sí para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.