Primero haz que funcione, luego concéntrate en cómo puedes optimizarlo. Aquí hay algunos recursos que he usado para trabajar en mis propios proyectos de redes neuronales. Estos lo ayudarán a cuidar el algoritmo principal:
El curso de ML en línea de Andrew Ng (consulte el capítulo de NN, en Matlab): este curso también es ideal para una introducción general al aprendizaje automático.
https://www.coursera.org/course/ml
Holehouse (notas útiles sobre el curso de Andrew Ng): creo que este es un buen complemento para el curso, y definitivamente es útil hacer referencia después de terminar el curso.
http://www.holehouse.org/mlclass…
- Inteligencia artificial: ¿Qué tan útil es la lógica difusa en el diseño de IA?
- ¿Por qué dijo Elon Musk que hay un "posible resultado peligroso" para lo que está haciendo la empresa Vicarious?
- Como estudiante de CS, ¿qué me estoy perdiendo si no tomo un curso sobre SO y compiladores?
- ¿Tendrá algún derecho un robot autoconciente artificialmente inteligente?
- ¿Cómo se puede usar Machine Learning en la historia?
Redes neuronales y aprendizaje profundo: si tiene algún problema para entender cómo funciona la propagación hacia atrás, le recomiendo que consulte este sitio.
http: // neuralnetworksanddeeplear …
Además de estos, busque en Google artículos que discutan y analicen diferentes estrategias de implementación. Si bien el algoritmo de red neuronal pura funciona, su velocidad de entrenamiento y la generalidad de la solución se pueden mejorar con algunas adaptaciones. Hay toneladas de formas interesantes de ajustar su algoritmo, y si se eligen sabiamente, pueden hacer una gran diferencia en el rendimiento. Sólo para nombrar unos pocos:
Método de regularización Dropout / DropConnect
http://fastml.com/regularizing-n…
Nguyen-Widrow y otras inicializaciones de peso
http://www.heatonresearch.com/en…
Después de haber hecho todo eso, es posible que solo desee que funcione más rápido. Examine la vectorización de su algoritmo y luego vea si puede aprovechar una biblioteca matricial optimizada para cualquier idioma que esté utilizando. ¡Para python, Numpy es extremadamente poderoso!
Numpy
http://www.numpy.org
Si aún así no es lo suficientemente rápido, entonces querrás buscar entrenamiento distribuido y / o aceleración de GPU. Aquí hay material para comenzar con eso:
Sistemas distribuidos (no pude encontrar nada específico de ML)
http://webdam.inria.fr/Jorge/htm…
GPU Aceleración
http://its.unc.edu/files/2014/11…
Theano (aceleración de GPU para python, integración NumPy, MUY rápido)
http://deeplearning.net/software…