martes, 4 de mayo de 2010

Redes Neuronales con R

Introducción


Para empezar, existen distintos modelos de redes neuronales, siendo uno de los más  utilizados el del "Perceptron".

Esta red se basa en una "caja negra", donde lo importante es la predicción, y no cómo se hace.

El proceso incluye una fase de entrenamiento (training) para la optimización de las predicciones.

Los elementos de la red son:
  • Las neuronas o nodos
  • Las capas
    • De entrada
    • De salida
    • Oculta (puede tener a su vez varias capas)
  • Los pesos
  • La función de combinación
  • La función de activación
  • El objetivo (target)

Una descripción "grosso modo" podría ser: Los nodos (neuronas) de la capa de entrada, se combinan con los nodos de la capa oculta mediante la función de combinación, que suele ser una combinación lineal de los nodos de entrada mediante los pesos. A las neuronas de las capas ocultas, se aplica una función de activación, que suele ser la tangente hiperbólica de la anterior combinación más un parámetro por nodo oculto, con la que estimamos las neuronas de la capa de salida, y sus errores.






Recursos:




En Wikipedia: RNA, Perceptrón.

En este documento de la Universidad Carlos III de Madrid hay una introducción bastante bien explicada, con ejemplos en R:
Introducción a las redes neuronales aplicadas uc3m)


Paquete nnet
Se puede instalar desde los repositorios
Documentación

Paquete RWeka
Se puede instalar desde los repositorios
Documentación

Paquete neural
Documentación

neural no está en los repositorios, para instalar:
  1. Descargar de http://cran.r-project.org/src/contrib/Archive/neural/
  2. Instalar desde ubicación local

Paquete AMORE
Se puede instalar desde los repositorios. Es un paquete desarrollado en la Universidad de León, con abundante documentación.
Documentación
Wiki


Ejemplo
Próximamente

9 comentarios:

Ian dijo...

This is fantastic!

emilio dijo...

Thanks for the comment Ian

Crash Plume dijo...

Hola Emilio, Soy Felipe un tesista peruano para Ingeniero Industrial. Estoy realizando mi tesis en la creación de un modelo matemático que permita explicar el crecimiento del camarón producido en mi país. Estoy utilizando la red neuronal de backpropagation para este cometido. Podrías orientarme en el uso de este tipo de redes en R. Te agradecería mucho tu ayuda. Saludos

emilio dijo...

Hola Felipe, te recomiendo que mires los ejemplos de la documentación del paquete neuralnet de R (http://cran.r-project.org/web/packages/neuralnet/index.html) y también los múltiples ejemplos que tienes en Internet, por ejemplo: http://www.di.fc.ul.pt/~jpn/r/neuralnets/neuralnets.html, http://gekkoquant.com/2012/05/26/neural-networks-with-r-simple-example/

Crash Plume dijo...

Hola Emilio. Agradezco mucho tu tiempo, respuesta e información brindada. La revisaré con detenimiento.

Enmanuel Santana dijo...

Hola Emiliano, muy bueno el articulo y los recursos que referencias.
Aporto dos ejemplos de script en R con neuralnet
Clasificacion:
http://apuntes-r.blogspot.com/2015/11/red-neuronal-con-dataset-iris.html

Regresion:
http://apuntes-r.blogspot.com/2015/12/regresion-con-red-neuronal.html

espero que sirvan
Saludos!

emilio dijo...

¡Gracias por tu comentario Enmanuel!
Y también por los enlaces, enhorabuena por tu blog.

El estadístico renegado dijo...

Hola Emilio Buen día, quería hacerte una consulta lo que sucede es que leyendo por ejemplo algunos artículos sobre redes neuronales y modelos estadísticos ( por ejemplo el de Sarle) entiendo que para hacer tareas de clasificación debo usar funciones de enlace como la logística o la tangente, entonces mi pregunta va a si hay paquetes en R que te dan la opción de usar una logística o una tangente para clasificar, o si la nnet, neural u otra ya usan esta función por defecto.

Saludos!

Anónimo dijo...

y el coeficiente de determinación?