Alternativas de Python OSS para Matlab Neural Network Toolbox. ¿Alguna intercomparación?

16

Me gustaría ser independiente del software comercial para mi trabajo científico. Encuentro insatisfactorio una dependencia de paquetes comerciales como Matlab y sus cajas de herramientas, porque no sé si tendré acceso a Matlab en el futuro y porque no me gusta el idioma. Por lo tanto, estoy buscando alternativas.

Afortunadamente, soy bastante fluido en Python (y me encanta el lenguaje), y con NumPy, SciPy, Matplotlib, Basemap y las rutinas de lectura y escritura de NetCDF, satisface la mayoría de mis necesidades. La mayoría: sigo regresando a Matlab cuando necesito entrenar las recuperaciones satelitales usando perceptrones multicapa de alimentación hacia adelante, por ejemplo, para usar Redes Neuronales Artificiales.

Como no es inusual con el software de código abierto, hay más de un paquete que hace redes neuronales. Considerablemente más de uno:

  • Hace un tiempo probé PyBrain , "la navaja suiza para redes neuronales", pero no logré obtener resultados satisfactorios en poco tiempo (tiempo de desarrollo y tiempo de ejecución). Tal vez no lo intenté lo suficiente, o tal vez no está realmente orientado a mi necesidad exacta.

  • Justo ahora descubrí que hay un paquete llamado neurolab , que parece prometedor: una biblioteca de redes neuronales simple y potente para Python , con una API como Neural Network Toolbox (NNT) de MATLAB .

  • Existe FFnet , una solución de entrenamiento de redes neuronales de alimentación rápida y fácil de usar para python

  • Hay simplenn

  • Existe Peach , una biblioteca para la inteligencia computacional y el aprendizaje automático.

  • Hay enlaces de Python a FANN , la biblioteca de redes neuronales artificiales rápidas , descrita como un estándar de facto en esta publicación de StackOverflow .

  • Probablemente hay otros.

¿Alguien se ha esforzado por comparar las diferentes opciones, en función de criterios como la facilidad de uso, la velocidad, etc.? Mi propio caso de uso son las recuperaciones satelitales, por ejemplo, ajustando una función fuertemente no lineal de muchas variables. Soy un gran usuario de redes neuronales; No estoy interesado en investigar su funcionamiento interno.

Esta pregunta sobre Stats.SE está relacionada, pero con un enfoque diferente.

gerrit
fuente
Su pregunta es muy interesante, pero creo que está pidiendo demasiado. Una evaluación exhaustiva de diferentes softwares de redes neuronales en python es demasiado amplia para ser respondida en este foro. Puede ser útil limitar el enfoque de su pregunta a un criterio particular y software de interés para usted.
Paul
Además, no podemos migrar su pregunta ya que ahora es demasiado antigua . Si cree que otro sitio SE es más adecuado para su pregunta, tendrá que eliminar este y volver a publicarlo en el otro sitio. Incluso si vuelve a publicar la pregunta, sigo sintiendo que le conviene reducir el alcance de su pregunta para aumentar la probabilidad de obtener una buena respuesta.
Paul
No Python, pero actualmente estoy usando caffe para la red neuronal. Principalmente para redes neuronales convolucionales, pero es aún más fácil configurar un NN convencional.
Siyuan Ren
Duplicado entre sitios: datascience.stackexchange.com/q/694/6
gerrit

Respuestas:

1

¿ Revisaste scikit-learn ? No es totalmente mi dominio, pero he escuchado algunas experiencias de usuario muy positivas ...

GertVdE
fuente
Caería en la categoría Probablemente hay otros : agregar otra biblioteca a la lista no resuelve mi problema, sino que amplía el alcance de una intercomparación que espero ver ...
gerrit
Bueno, por lo que escuché y leí, la ventaja de scikit-learn es que es un marco que contiene una multitud de métodos. Tal vez eso facilitará su trabajo cuando haga una intercomparación de métodos aplicados a su problema.
GertVdE
3
scikit-learn no contiene métodos de red neuronal, el modelo de red neuronal artificial se eliminó en 0.12, y recomendaron en ese momento que los usuarios que necesitaban esa funcionalidad cambiaran a PyBrain.
Aron Ahmadia
1

¿Has mirado a Theano ? Parece bastante poderoso .

Alex
fuente
1
De hecho, Theano es muy poderoso. Pero es el compilador (o framework) el que permite escribir código python que luego se compila y ejecuta en la GPU. Theano se puede usar para implementar NN, pero no es una biblioteca de ML.
Artem Sobolev
1

Yo también pasé de usar redes neuronales en Matlab a Python. Una de las bibliotecas más potentes de Python es "Pylearn2" http://deeplearning.net/software/pylearn2/ . Actualmente, esta es la biblioteca más activa y tiene muchas características diferentes para experimentar. Está basado en Theano y, como tal, es rápido y puede ejecutarse en GPU. Desafortunadamente, esta también es su desventaja: la API cambia constantemente y tiene una curva de aprendizaje alta. También debe configurar sus redes neuronales utilizando archivos YAML. He tenido más éxito usando PyBrain para crear redes neuronales básicas. Necesitaba una solución a un problema de regresión, donde tenía que pronosticar la carga en una central eléctrica en función de los factores climáticos. La guía aquí: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ me dio el 90% de la solución que necesitaba.

Un problema que encontré con PyBrain fue la velocidad. Está escrito de forma nativa en Python. He descubierto que el entrenamiento de una red neuronal es ~ 50 veces más lento que Matlab. Algunos otros han tenido éxito al acelerar el proceso de capacitación de PyBrain con la biblioteca arac.

Diarmaid O Cualain
fuente