¿Cómo creo un algoritmo para una red neuronal competitiva simple?

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…

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…

Bueno, escriba el problema detallado en un papel sobre el que desea hacer el algoritmo. PIENSE mucho y escriba la solución, ya está

La solución de Richard FEYMANN 🙂