Cómo comenzar con las redes neuronales


32

Soy completamente nuevo en las redes neuronales pero estoy muy interesado en comprenderlas. Sin embargo, no es nada fácil comenzar.
¿Alguien podría recomendar un buen libro o cualquier otro tipo de recurso? ¿Hay una lectura obligada?
Estoy agradecido por cualquier tipo de consejo.


11
También hay un curso que Goeff Hinton está enseñando a través de Coursera en redes neuronales que comienza la próxima semana: coursera.org/course/neuralnets
Marc Shivers

Ese curso parece interesante, pero desde el video y la página web, supongo que no está diseñado como una introducción.
Douglas Zare

@DouglasZare: Estoy terminando el curso de Hinton, y en algunas partes me alegré de haber tomado el curso de ML por Andrew Ng.
Andrew

1
Sí, yo también lo tomé. Fue un gran curso, y sin presentación.
Douglas Zare

Blogs y tutoriales sobre redes neuronales para principiantes learn-neural-networks.com
Фаиль Гафаров

Respuestas:


33

Las redes neuronales han existido por un tiempo, y han cambiado dramáticamente a lo largo de los años. Si solo busca en la web, puede terminar con la impresión de que "red neuronal" significa una red de alimentación de múltiples capas capacitada en propagación hacia atrás. O bien, puede encontrarse con cualquiera de las docenas de modelos raramente utilizados y extrañamente nombrados y concluir que las redes neuronales son más un zoológico que un proyecto de investigación. O que son una novedad. O...

Podría seguir. Si quieres una explicación clara, escucharía a Geoffrey Hinton . Ha existido desde siempre y (¿por lo tanto?) Hace un gran trabajo tejiendo todos los modelos dispares en los que ha trabajado en una narrativa histórica coherente, intuitiva (y a veces teórica). En su página de inicio, hay enlaces a Google Tech Talks y conferencias de Videolectures.net que ha realizado (sobre RBMs y Deep Learning , entre otros).

Desde mi punto de vista, aquí hay una hoja de ruta histórica y pedagógica para comprender las redes neuronales, desde su inicio hasta el estado de la técnica:

  • Perceptrones
    • Fácil de comprender
    • Muy limitado
  • Multi-capa, entrenada por retropropagación
    • Muchos recursos para aprender estos
    • Por lo general, no funciona tan bien como los SVM
  • Máquinas Boltzmann
    • Interesante forma de pensar sobre la estabilidad de una red recurrente en términos de "energía"
    • Mire las redes Hopfield si desea un ejemplo fácil de entender (pero no muy práctico) de redes recurrentes con "energía".
    • Teóricamente interesante, inútil en la práctica (entrenamiento sobre la misma velocidad que la deriva continental)
  • Máquinas de Boltzmann restringidas
    • ¡Útil!
    • Partir de la teoría de las máquinas de Boltzmann
    • Algunas buenas introducciones en la web.
  • Redes de creencias profundas
    • Hasta donde puedo decir, esta es una clase de RBM de múltiples capas para hacer un aprendizaje semi-supervisado.
    • Algunos recursos

1
¡Muchas gracias por este resumen y por tantos recursos!
Claudio Albertin

2
No hay problema. Buena suerte en tus esfuerzos de redes neuronales.
Stumpy Joe Pete

8

Recomiendo ver estas conferencias y usar esto como material de lectura . Estas conferencias son sobre aprendizaje automático en general por Andrew Ng habla extensamente sobre redes neuronales y hace todo lo posible para que sea accesible para principiantes.


¿Podrías indicar los títulos? Los enlaces pueden desaparecer en el futuro ...
Richard Hardy

5

Estos son, en mi opinión, muy buenos libros.

  • R. Rojas: redes neuronales
  • CM Bishop: Redes neuronales para el reconocimiento de patrones

Los libros tienen algunas similitudes: ambos tienen alrededor de 500 páginas y son bastante antiguos, de 1995. Sin embargo, siguen siendo muy útiles. Ambos libros comienzan desde cero, explicando qué son las redes neuronales. Proporcionan explicaciones claras, buenos ejemplos y buenos gráficos para ayudar a la comprensión. Explican con gran detalle los problemas de la formación de redes neuronales, en sus muchas formas y formas, y lo que pueden y no pueden hacer. Los dos libros se complementan muy bien, porque lo que uno no puede entender con un libro, uno tiende a encontrarlo en el otro.

Rojas tiene una sección, que particularmente me gusta, sobre la implementación de la retropropagación en muchas capas en forma de matriz. También tiene una buena sección sobre lógica difusa y otra sobre teoría de la complejidad. Pero entonces Bishop tiene muchas otras secciones bonitas.

Rojas es, yo diría, el más accesible. Bishop es más matemático y quizás más sofisticado. En ambos libros, las matemáticas son principalmente álgebra lineal y cálculo de funciones de múltiples variables (derivadas parciales, etc.). Sin ningún conocimiento de estos temas, probablemente no encuentre ninguno de estos libros muy esclarecedor.

Yo recomendaría leer Rojas primero.

Ambos libros, obviamente, tienen mucho que decir sobre algoritmos, pero ninguno dice mucho sobre implementaciones específicas en código.

Para mí, estos libros proporcionan los antecedentes, lo que hace comprensible un curso en línea (como Hinton, en Coursera). Los libros también cubren mucho más terreno, y con mucho más detalle, que los que se pueden hacer en línea.

Espero que esto ayude, y estoy feliz de responder cualquier pregunta sobre los libros.


3
Bienvenido al sitio, @Old_Mortality. ¿Puedes decir algo sobre esos libros? ¿Qué hay de bueno en ellos? ¿Son apropiados para personas con algún nivel de sofisticación matemática y / o de codificación? ¿Cuál recomendarías que el OP lea primero? Etc.
gung - Restablece a Monica

1
Gracias por la sugerencia. He editado mi respuesta arriba.
Old_Mortality

3

Como han señalado otras personas, hay muchos (buenos) recursos en línea y personalmente he hecho algunos de ellos:

  • Introducción de Ng a la clase de ML en Coursera
  • Clase de redes neuronales de Hinton en Coursera
  • Tutorial de aprendizaje profundo de ng
  • leer los capítulos relevantes en el procesamiento distribuido paralelo original

Quiero llamar la atención sobre el hecho de que estas exposiciones en su mayoría siguieron el tratamiento clásico donde las capas (suma y no linealidad juntas) son las unidades básicas. El tratamiento más popular y más flexible implementado en la mayoría de las bibliotecas, como torch-nn y tensorflow, ahora utiliza un gráfico de cálculo con diferenciación automática para lograr una alta modularidad. Conceptualmente es más simple y más liberador. Recomiendo encarecidamente el excelente curso abierto Stanford CS231n para este tratamiento.

Para un tratamiento riguroso y teórico del aprendizaje, puede consultar Neural Networks de Anthony y Bartlett.



0

He creado una aplicación web que respalda su proceso de aprendizaje en el campo de las redes neuronales.

https://blueneurons.ch/nn

Puede jugar con las configuraciones (arquitectura, funciones de activación, configuraciones de entrenamiento) y observar cómo las configuraciones afectan las predicciones. Todos los conjuntos de datos tienen valores preconfigurados que se pueden adoptar. También es posible crear sus propios conjuntos de datos.

Instrucciones y explicaciones a los elementos implementados:

Guía del usuario

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.