¿Cuáles son algunos buenos recursos para aprender sobre las redes neuronales artificiales? [cerrado]

109

Estoy realmente interesado en las redes neuronales artificiales, pero estoy buscando un lugar para comenzar.

¿Qué recursos existen y cuál es un buen proyecto inicial?

cbrulak
fuente
Supongo, ¿redes neuronales artificiales? ¿En qué área está interesado (a qué lo aplicaría: escritura a mano, clasificación, lógica)?
sesgo
Supongo, lógica: estaba pensando en un robot en un laberinto o algo así y probando diferentes algoritmos, pero haciendo de manera que la red decidiera cuál es el mejor, etc.
cbrulak
3
Hay un gran curso de Coursera de Geoffrey Hinton sobre redes neuronales. Comienza con lo básico y termina con enfoques de vanguardia e incluso más.
alfa
4
El curso Machine Learning de Andrew Ng es el que recomiendo para empezar, antes de hacer el curso de Geoffrey Hinton que aborda aspectos teóricos y de redes neuronales más avanzadas.
gaborous

Respuestas:

17

A continuación, se muestran algunos ejemplos de programación Neural Net. 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

Yo, por mi parte, he visitado un curso sobre el tema y he trabajado en algo de literatura.

Friedrich
fuente
2
Geocities cayó hace unos días, pero hay una versión archivada en web.archive.org/web/20071025010456/http://www.geocities.com/… (al menos por ahora ...)
RCIX
33

En primer lugar, renuncie a cualquier idea de que las redes neuronales artificiales tengan algo que ver con el cerebro, sino por una similitud pasajera con las redes de neuronas biológicas. Aprender biología no le ayudará a aplicar de forma eficaz las redes neuronales; aprenderá álgebra lineal, cálculo y teoría de la probabilidad. Como mínimo, debería familiarizarse con la idea de 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 diagonalización de matrices.

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

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

Uno de los mejores libros sobre el tema es Neural Networks for Pattern Recognition, de Chris Bishop . Es bastante antiguo en esta etapa, pero sigue siendo un recurso excelente y, a menudo, puede encontrar copias usadas en línea por aproximadamente $ 30. El capítulo sobre redes neuronales de su libro más reciente, Reconocimiento de patrones y aprendizaje automático , también es bastante completo. Para obtener un tutorial centrado en la implementación particularmente bueno, vea este en CodeProject.com que implementa un tipo inteligente de red llamada red convolucional, que restringe la conectividad de tal manera que la hace muy buena para aprender a clasificar patrones visuales.

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

dwf
fuente
Buen punto. Una neurona es solo una unidad logística que proviene de la regresión logística. Luego, se crean unidades de regresión múltiple multifase y se denominan redes neuronales porque "se parecen" a las redes neuronales. No está inspirado por el cerebro o algo así.
ozgur
No es realmente 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 conocimientos sobre neurobiología en su trabajo sobre HTM. El trabajo de HTM bastante bien. Al final, estudiar neurobiología puede ser útil si tiene la intención de intentar investigar nuevas topologías de red y técnicas de interacción que imiten ejemplos biológicos reales. Si solo tiene la intención de usar simplemente lo que otros ya han investigado, en lugar de hacer su propia investigación, entonces sí, investigar la neurociencia podría no tener sentido.
SmugDoodleBug
29

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

Lo lleva a través de los fundamentos para comprender cómo funcionan de una manera fácil de entender y le muestra cómo usar su brainnetbiblioteca para crear la suya propia.

CodeAndCats
fuente
7
Wow genial. También puede leerlo en mi blog, amazedsaint.blogspot.com/2008/01/…
amazedsaint
11

Las redes neuronales están algo declasificadas en estos días. Las máquinas de vectores de soporte y los métodos del kernel son mejores para más clases de problemas que la propagación hacia atrás. Las redes neuronales y los algoritmos genéticos capturan la imaginación de las personas que no saben mucho sobre el aprendizaje automático moderno, pero no son lo último en tecnología.

Si desea obtener más información sobre la inteligencia artificial y el aprendizaje automático, le recomiendo leer Inteligencia artificial: un enfoque moderno de Peter Norvig . Es una amplia encuesta de IA y mucha tecnología moderna. También repasa la historia y las técnicas más antiguas, y le dará una base más completa en los conceptos básicos de la inteligencia artificial y el aprendizaje automático.

Sin embargo, las redes neuronales son bastante fáciles. Especialmente si usa un algoritmo genético para determinar los pesos, en lugar de la propagación hacia atrás adecuada.

Chad Okere
fuente
1
La red neuronal no consiste solo en retropropagación; Hay toneladas de otras redes: memorias asociativas, Kohonen SOFM, redes adaptativas basadas en reseonancia, etc. MLP y retropropagación son las redes más populares, pero no las más
eficaces
3
"Las redes neuronales están en declive en estos días", bueno, ya no. Las técnicas de "aprendizaje profundo" para entrenar NN multicapa y arquitectura ad hoc NN parecen estar entre las cosas más candentes en ML en este momento. Solo un ejemplo entre muchos, googleresearch.blogspot.co.uk/2015/03/…
John Donn
5

Segundo la recomendación de dwf de redes neuronales para el reconocimiento de patrones por Chris Bishop. Aunque, quizás no sea un texto de inicio. Norvig o un tutorial en línea (¡con código en Matlab!) Probablemente sería una introducción más suave.

Un buen proyecto de inicio sería OCR (reconocimiento óptico de caracteres). Puede escanear 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 la red!).

graveca
fuente
4

Puedo recomendar por dónde no empezar. Compré An Introduction to Neural Networks de 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 de las ciencias cognitivas y de la computación". Personalmente, no recomendaría este libro como comienzo. Solo puedo comprender alrededor del 10%, pero tal vez sea solo yo (el inglés no es mi lengua materna). Voy a buscar otras opciones de este hilo.

Vincent
fuente
3

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

También puede echar un vistazo a generation5.org, que ofrece una gran cantidad de artículos sobre la IA en general y tiene algunos textos excelentes sobre redes neuronales.

usuario217299
fuente
2

Si no le 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 destaca las rutas a través de los artículos para cubrir mejor sus intereses.

En cuanto a un primer proyecto, los mapas de Kohonen son interesantes para la categorización : encuentra relaciones ocultas en tu colección de música, construye un robot inteligente o resuelve el premio de Netflix .

Corbin March
fuente
1

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

Xn0vv3r
fuente
1

Encontré que el libro de texto "Inteligencia computacional" es increíblemente útil.

Bradley Powers
fuente
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 aquí (en el capítulo 4), los conceptos discutidos en el libro se ilustran en un ejemplo de Python.

jamesaharvey
fuente
1

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 comprender cómo funciona una neurona para recrear su funcionalidad, solo necesita simular sus acciones. Recomiendo "Cómo crear una mente" de Ray Kurzweil: se adentra en el aspecto de la biología que es relevante para los modelos computacionales (crear una neurona simulada mediante la combinación de varias entradas y disparar una vez que se alcanza un umbral), pero ignora las cosas irrelevantes como cómo la neurona suma realmente esas entradas juntas. (Solo usará + y una desigualdad para comparar con un umbral, por ejemplo)

También debo señalar que el libro no trata realmente de 'crear una mente', solo se enfoca en el reconocimiento de patrones jerárquicos / la neocorteza. Creo que se ha hablado del tema general desde la década de 1980, por lo que hay muchos libros más antiguos que probablemente contienen formas ligeramente fechadas de la misma información. He leído documentos antiguos que indican que el sistema de visión, por ejemplo, es un reconocedor de patrones de varias capas. Sostiene que esto se aplica a todo el neocórtex. 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). Por supuesto, ha visto muchos avances (y ha sido parte de ellos), pero sigo pensando que es demasiado optimista. Hay una gran diferencia entre que un automóvil con IA sea capaz de conducir una milla con éxito el 90% del tiempo, en comparación con el 99,9% + que puede hacer un humano. No espero que ninguna IA esté realmente conduciéndome durante al menos 20 años ... (No cuento los autos de pista de BMW que necesitan ser 'entrenados' en el curso real, ya que en realidad no están jugando igual juego)

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

Allen
fuente
0

Si desea aprender rápidamente sobre las aplicaciones de algunos conceptos de redes neuronales en un simulador real, hay un gran libro en línea (ahora wiki) llamado 'Neurociencia cognitiva computacional' en http://grey.colorado.edu/CompCogNeuro/index. php / CCNBook / Main

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

Además, cada sección se aumenta con 'proyectos' de tareas que ya están disponibles para usted. Simplemente descargue, siga los pasos y simule todo lo que se mencionó en el capítulo. El software que utilizan, Emergent, es un poco delicado pero increíblemente robusto: creo que es el producto de más de 10 años de trabajo.

Lo repasé en una clase de pregrado el semestre pasado y fue genial. Lo guía a través de todo paso a paso

Varun Singh
fuente