Archivo para septiembre, 2007

Hola a todos, aquí estoy publicando la continuación de “Elementos básicos de una Red Neuronal Artificial”. En este trabajo abarca lo que es: Función de Propagación, Función de Activación y la Función de Salida, en el siguiente post se publicará La función de Error y la tasa de aprendizaje.

FUNCIÓN DE PROPAGACIÓN

Esta regla permite obtener, a partir de las entradas y los pesos el valor del potencial postsináptico hi de la neurona:

nueva-imagen.png (1)

La función más habitual es la suma ponderada de todas las entradas. Podemos agrupar las entradas y pesos en dos vectores (X1;X2; ::: Xn) y (W1j ;W2j ; :::Wnj) podemos calcular esta suma realizando el producto escalar sobre estos dos vectores.

nueva-imagen-1.png (2)

La función de propagación puede ser más compleja que simplemente una suma de productos. Las entradas y los pesos pueden ser combinados de diferentes maneras antes de pasarse el valor a la función de activación. Por ejemplo podemos usar como función de propagación, el mínimo, máximo, la mayoría, producto, o diversos algoritmos de normalización. El algoritmo específico para la propagación de las entradas neuronales está determinado por la elección de la arquitectura.

FUNCIÓN DE ACTIVACIÓN O TRANSFERENCIA

El resultado de la función de propagación, en la mayoría de los casos es una suma ponderada, es transformada en la salida real de la neurona mediante un proceso algorítmico conocido como función de activación.

nueva-imagen-2.png (3)

En la función de activación el valor de la salida de combinación puede ser comparada con algún valor umbral para determinar la salida de la neurona.

Si la suma es mayor que el valor umbral, neurona generará una señal. Si la suma es menor que el valor umbral, ninguna señal será generada.

Normalmente el valor umbral, o valor de la función de transferencia, es normalmente no lineal. El uso de funciones lineales es limitado ya que el valor de la salida es proporcional al de la entrada, de hecho este fue uno de los problemas en los primeros modelos de redes neuronales como fue identificado por Minsky y Papert en Perceptrons. La función de activación pudiera ser algo tan simple como dependiente sobre si el resultado de la función de combinación es positivo o negativo.

Ejemplos de Funciones de Activación

Ejemplos de Funciones de Activación

Fuente: Introducción a las redes neuronales

De las funciones presentadas en la figura 4 destacan las funciones sigmoidales. Desde el punto de vista matemático, la utilidad de estas funciones es que ella y sus derivadas son continuas. Estas funciones funcionan bastante bien y son normalmente las elegidas.Antes de aplicar la función de activación, se puede añadir cierto ruido a las entradas. La fuente y la cantidad de este ruido están determinadas por el modo de entrenamiento de una red particular. Este ruido normalmente es conocido como temperatura de la neurona. De hecho, al añadir diferentes niveles de ruido al resultado de la combinación lleva a crearse un modelo más parecido al cerebro. El uso del ruido por temperatura está aún en fase de investigación y no es aplicado habitualmente en las aplicaciones.

ESCALAMIENTO Y LIMITACIÓN El valor de salida de la función de activación puede ser procesado de manera adicional mediante un escalamiento y limitación. El escalamiento simplemente multiplica el valor de la función de transferencia por un factor de escala y después se le suma un desplazamiento.Normalmente este tipo de escalamiento y limitación es usado principalmente en topologías usadas para verificar modelos neuronales biológicos.

Función de salida (Competitividad) 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.

nueva-imagen-4.png (4)

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.

Joone – Java en las RNA (redes neuronales artificiales)

 

Haciendo eco a una noticia publicada en JavaHispano sobre una nueva versión de JGAP 3.2.2 (librería para algoritmos genéticos) y sobretodo revisando uno de los comentarios, llegué la sitio de Joone que es un framework, desarrollado en Java, que permite ejecutar aplicaciones de Inteligencia Artificial basadas en redes neuronales artificiales. Tiene muchas características como el trabajo con aprendizaje supervisado, no supervisado y otras más. Existe una buena cantidad de documentación sobre éste Framework.

Lo que me llamó la atención y animó éste post, es que posee un editor gráfico en donde se pueden crear y probar las redes neuronales y un entorno de entrenamiento distribuido para el entrenamiento en paralelo de muchas redes neuronales.

Unas imágenes:

Prototype Windows, una herramienta para Web 2.0

Revisando el Blog de JDeveloper, he encontrado éste post, en donde se habla de Prototype Windows que es un proyecto que brinda la oportunidad de crear ventanas y ventanas de dialogo dentro de nuestras páginas Web (al estilo Mushups de Google ig). Ahí les dejo una imagen para que se hagan una idea.

http://blog.xilinus.com/pwc
http://prototype-window.xilinus.com/