2009-01-26 7 views
107

Estoy realmente interesado en las Redes Neuronales Artificiales, pero estoy buscando un lugar para comenzar.¿Cuáles son algunos buenos recursos para aprender sobre Redes Neuronales Artificiales?

¿Qué recursos hay y qué es un buen proyecto inicial?

+0

Supongo que las redes neuronales artificiales? ¿En qué área estás interesado (a qué lo aplicarías: escritura, clasificación, lógica)? – bias

+0

Supongo, lógica: estaba pensando en un robot en un laberinto o algo así y probando diferentes algoritmos, pero haciendo de una manera que la red decidiría cuál es el mejor, etc. – cbrulak

+3

Hay un curso muy bueno en coursera de Geoffrey Hinton sobre redes neuronales. Comienza con lo básico y termina con enfoques de vanguardia y aún más. – alfa

Respuesta

16

Aquí hay algunos ejemplos de programación de redes neuronales. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx

puede comenzar a leer aquí: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html

Por mi parte, han visitado un curso sobre ello y trabajado a través de un poco de literatura.

+2

Geocities se cayó hace unos días pero hay una versión archivada en http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html (al menos por ahora ...) – RCIX

28

Recomiendo encarecidamente esta excelente serie de Anoop Madhusudanan en Code Project.

Él te lleva a través de los fundamentos para la comprensión de cómo funcionan en un fácil de entender y que muestra cómo utilizar su biblioteca brainnet para crear el suyo propio.

+7

Guau, genial. También puedes leerlo en mi blog, http://amazedsaint.blogspot.com/2008/01/neural-networks-part-i-simple.html – amazedsaint

0

Creo que un buen punto de partida siempre sería Wikipedia. Allí encontrará algunos enlaces útiles para documentaciones y proyectos que también usan redes neuronales.

2

Si no te importa gastar dinero, The Handbook of Brain Theory and Neural Networks es muy bueno. Contiene 287 artículos que cubren la investigación en muchas disciplinas. Comienza con una introducción y teoría y luego resalta las rutas a través de los artículos para cubrir mejor sus intereses.

En cuanto a un primer proyecto, Kohonen maps son interesantes para categorization: encontrar relaciones ocultas en su colección de música, build a smart robot, o resolver el Netflix prize.

10

Las redes neuronales son una especie de declasse en estos días. Las máquinas de vectores de soporte y los métodos de kernel son mejores para más clases de problemas que backpropagation. Las redes neuronales y los algoritmos genéticos capturan la imaginación de las personas que no saben mucho sobre el aprendizaje moderno de máquinas, pero no son lo último en tecnología.

Si desea obtener más información sobre AI y el aprendizaje automático, le recomiendo que lea Artificial Intelligence: A Modern Approach de Peter Norvig. Es una amplia encuesta de AI y mucha tecnología moderna. También repasa la historia y las técnicas más antiguas, y le proporcionará una base más completa en lo básico de la IA y el aprendizaje automático.

Las redes neuronales son bastante fáciles, sin embargo. Especialmente si usa un algoritmo genético para determinar los pesos, en lugar de una retroexpansión adecuada.

+1

La red neuronal no consiste solo en una propagación inversa; hay toneladas de otras redes: memorias asociativas, Kohonen SOFM, redes adaptadas basadas en resonance, etc. MLP y backpropagation son las redes más populares, pero no las más eficientes ... – lmsasu

+2

"Las redes neuronales son como estas. días "- bueno, no más. Las técnicas de "aprendizaje profundo" para el entrenamiento de NN multicapa y la arquitectura ad hoc NN parecen estar entre las cosas más candentes en ML en este momento. Solo un ejemplo entre muchos, http://googleresearch.blogspot.co.uk/2015/03/large-scale-machine-learning-for-drug.html –

31

En primer lugar, abandone cualquier idea de que las redes neuronales artificiales tienen algo que ver con el cerebro, pero para una similitud pasajera a las redes de neuronas biológicas. La biología del aprendizaje no lo ayudará a aplicar de manera efectiva las redes neuronales; aprender álgebra lineal, cálculo y teoría de la probabilidad. Al menos debe familiarizarse con la idea de la diferenciación básica de funciones, la regla de la cadena, las derivadas parciales (el gradiente, el jacobiano y el hessiano) y comprender la multiplicación y la diagonalización de la matriz.

Realmente lo que hace cuando entrena una red es optimizar una función grande y multidimensional (minimizando su error con respecto a cada uno de los pesos en la red), por lo que una investigación de técnicas para la optimización numérica no lineal instructivo.Este es un problema ampliamente estudiado con una gran base de literatura fuera de las redes neuronales, y hay muchas notas de conferencias en optimización numérica disponibles en la web. Para empezar, la mayoría de las personas usa gradient descent simple, pero esto puede ser mucho más lento y menos efectivo que otros métodos más matizados como

Una vez que tenga las ideas básicas abajo puede comenzar a experimentar con diferentes funciones de "aplastamiento" en su escondido capa, agregando varios tipos de regularización y varios ajustes para hacer que el aprendizaje sea más rápido. Consulte this paper para obtener una lista completa de las "mejores prácticas".

Uno de los mejores libros sobre el tema es Chris Bishop's Neural Networks for Pattern Recognition. Ya es bastante viejo para esta etapa, pero sigue siendo un recurso excelente, y a menudo puede encontrar copias usadas en línea por alrededor de $ 30. El capítulo de la red neuronal en su libro más reciente, Pattern Recognition and Machine Learning, también es bastante completo. Para un tutorial especialmente bueno centrado en la implementación, see this one on CodeProject.com que implementa una especie de red inteligente llamada red convolucional, que limita la conectividad de manera que es muy útil para aprender a clasificar patrones visuales.

Las máquinas de vectores de soporte y otros métodos de kernel se han vuelto bastante populares porque puede aplicarlos sin saber qué demonios está haciendo ya menudo obtiene resultados aceptables. Las redes neuronales, por otro lado, son enormes problemas de optimización que requieren un ajuste cuidadoso, aunque siguen siendo preferibles para muchos problemas, particularmente problemas a gran escala en dominios como la visión artificial.

+0

Buen punto. Una neurona es solo una unidad logística que proviene de la regresión logística. Luego se crean unidades multifrecuencia multifrecuencia y se las denomina redes neuronales porque "se parece" a redes neuronales. No está inspirado en el cerebro o tal. – ozgur

+0

No es correcto decir que el estudio de la neurociencia real sería inútil para la investigación en este campo. Jeff Hawkins y su investigación intentaron incorporar más conocimiento sobre neurobiología en su trabajo sobre HTM. HTM funciona bastante bien. Al final, estudiar neurobiología puede ser útil si intenta probar nuevas topologías de red y técnicas de interacción que imitan ejemplos biológicos reales. Si solo tiene la intención de utilizar simplemente lo que otros ya han investigado, en lugar de hacer su propia investigación, entonces sí, la investigación de la neurociencia podría ser inútil. – JRFerrell

5

Me segunda recomendación DWF 's de Redes Neuronales Reconocimiento de Patrones por Chris Bishop. Aunque, quizás no sea un texto inicial. Norvig o un tutorial en línea (¡con código en Matlab!) Probablemente sería una introducción más amable.

Un buen proyecto inicial sería el reconocimiento óptico de caracteres (OCR). Puede escanear en páginas de texto y alimentar a cada personaje a través de la red para realizar la clasificación. (¡Primero tendría que entrenar a la red!).

3

http://www.ai-junkie.com/ann/evolved/nnt1.html es una introducción clara a la multi-capas perceptrón, aunque no describe el algoritmo de retropropagación

también se puede echar un vistazo a generation5.org que proporciona una gran cantidad de artículos sobre la IA en general y tiene algunas excelentes textos sobre la red neuronal

0

Encontré el libro de texto "Inteligencia Computacional" increíblemente útil.

1

Programming Collective Intelligence analiza esto en el contexto de los algoritmos de búsqueda y clasificación. Además, en el código disponible here (en el capítulo 4), los conceptos discutidos en el libro se ilustran en un ejemplo de Python.

4

Puedo recomendar dónde no comenzar. Compré An Introduction to Neural Networks por Kevin Gurney, que tiene buenas críticas en Amazon y afirma ser una "introducción muy accesible a uno de los temas más importantes en la ciencia cognitiva y de la informática". Personalmente, no recomendaría este libro como inicio. Solo puedo comprender un 10%, pero tal vez soy solo yo (el inglés no es mi lengua materna). Voy a buscar otras opciones de este hilo.

0

Si usted quiere hacer rápidamente aprender acerca de las aplicaciones de algunos conceptos de redes neuronales en un simulador real, no es un gran libro en línea (ahora wiki) llamado 'Computational Neurociencia Cognitiva' en http://grey.colorado.edu/CompCogNeuro/index.php/CCNBook/Main

El libro se utiliza en escuelas como un libro de texto, y te lleva a través de muchas áreas diferentes del cerebro, desde neuronas individuales hasta el funcionamiento ejecutivo de orden superior.

Además, cada sección se complementa con los 'proyectos' de tarea que ya le han fallado. Solo descargue, siga los pasos y simule todo lo que el capítulo mencionó. El software que usan, Emergent, es un poco quisquilloso pero increíblemente robusto: creo que es el producto de más de 10 años de trabajo.

Lo pasé en una clase de pregrado el semestre pasado, y fue genial. Lo guía paso a paso

0

Estoy de acuerdo con las otras personas que dijeron que estudiar biología no es un buen punto de partida ... porque hay mucha información irrelevante en biología. No es necesario que comprenda cómo funciona una neurona para recrear su funcionalidad, solo necesita simular sus acciones. Recomiendo "Cómo crear una mente" de Ray Kurzweil: aborda el aspecto de la biología que es relevante para los modelos computacionales (crear una neurona simulada combinando varias entradas y disparar una vez que se alcanza el umbral) pero ignora las cosas irrelvantes como cómo la neurona en realidad agrega esas entradas a tu cerebro. (Simplemente usará + y una desigualdad para compararlo con un umbral, por ejemplo)

Debo señalar también que el libro no trata realmente sobre 'crear una mente', sino que se centra únicamente en el reconocimiento de patrones jerárquicos/neocorteza. Se ha hablado del tema general desde la década de 1980, creo que hay muchos libros más antiguos que probablemente contengan formas ligeramente anticuadas de la misma información. He leído documentos anteriores que indican que el sistema de visión, por ejemplo, es un reconocedor de patrones de varias capas. Él sostiene que esto se aplica a toda la neocorteza. Además, tome sus 'predicciones' con un grano de sal: sus estimaciones de hardware son probablemente bastante precisas, pero creo que subestima lo complicadas que pueden ser las tareas simples (por ejemplo, conducir un automóvil). De acuerdo, ha visto muchos progresos (y ha sido parte de algunos de ellos), pero todavía creo que es demasiado optimista. Hay una gran diferencia entre que un auto de IA sea capaz de conducir una milla con éxito el 90% del tiempo, en comparación con el 99.9% que puede hacer un ser humano. No espero que ninguna IA realmente esté conduciéndome durante al menos 20 años ... (No cuento los autos BMW Track Track que necesitan ser 'entrenados' en el curso real, ya que no están jugando realmente lo mismo juego)

Si ya tiene una idea básica de lo que es AI y cómo se puede modelar, es mejor que salte a algo más técnico.

Cuestiones relacionadas