Quais são alguns bons recursos para aprender sobre Redes Neurais Artificiais? [fechadas]

109

Estou muito interessado em Redes Neurais Artificiais, mas estou procurando um lugar para começar.

Que recursos existem e o que é um bom projeto inicial?

Cbrulak
fonte
Estou supondo, redes neurais artificiais? Em que área você está interessado (a que você aplicaria: caligrafia, classificação, lógica)?
viés
Eu acho, lógica: eu estava pensando em um robô em um labirinto ou algo assim e tentando diferentes algoritmos, mas fazendo de uma maneira que a rede decidisse qual é o melhor, etc.
cbrulak
3
Há um curso realmente ótimo sobre o curso de Geoffrey Hinton sobre redes neurais. Começa com o básico e termina com abordagens de última geração e ainda mais.
alfa
4
O curso Aprendizagem de Máquina de Andrew Ng é o que recomendo para iniciantes, antes de fazer o curso de Geoffrey Hinton que aborda redes neurais mais avançadas e aspectos teóricos.
gaborous

Respostas:

17

Aqui estão alguns exemplos de programação de Rede Neural. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx

você pode começar a ler aqui: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html

De minha parte, visitei um curso sobre o assunto e trabalhei em alguma literatura.

Friedrich
fonte
2
Geocities caiu há alguns dias, mas há uma versão arquivada em web.archive.org/web/20071025010456/http://www.geocities.com/… (pelo menos por agora ...)
RCIX
33

Em primeiro lugar, desista de qualquer noção de que as redes neurais artificiais têm algo a ver com o cérebro, exceto uma semelhança passageira com redes de neurônios biológicos. Aprender biologia não o ajudará a aplicar redes neurais com eficácia; aprender álgebra linear, cálculo e teoria da probabilidade. Você deve, no mínimo, se familiarizar com a ideia de diferenciação básica de funções, a regra da cadeia, derivadas parciais (o gradiente, a Jacobiana e a Hessiana) e a compreensão da multiplicação e diagonalização de matrizes.

Na verdade, o que você está fazendo quando treina uma rede é otimizar uma função grande e multidimensional (minimizando sua medida de erro em relação a cada um dos pesos na rede) e, portanto, uma investigação de técnicas para otimização numérica não linear pode ser instrutiva. Este é um problema amplamente estudado com uma grande base de literatura fora das redes neurais, e há muitas notas de aula sobre otimização numérica disponíveis na web. Para começar, a maioria das pessoas usa a descida gradiente simples , mas isso pode ser muito mais lento e menos eficaz do que métodos com mais nuances, como

Assim que tiver as ideias básicas, você pode começar a experimentar diferentes funções de "esmagamento" em sua camada oculta, adicionando vários tipos de regularização e vários ajustes para tornar o aprendizado mais rápido. Consulte este documento para obter uma lista abrangente de "melhores práticas".

Um dos melhores livros sobre o assunto é Neural Networks for Pattern Recognition, de Chris Bishop . É bastante antigo neste estágio, mas ainda é um excelente recurso, e você pode frequentemente encontrar cópias usadas online por cerca de $ 30. O capítulo sobre redes neurais em seu livro mais recente, Pattern Recognition and Machine Learning , também é bastante abrangente. Para obter um tutorial centrado em implementação particularmente bom, consulte este em CodeProject.com, que implementa um tipo inteligente de rede chamada rede convolucional, que restringe a conectividade de forma a torná-la muito boa em aprender a classificar padrões visuais.

Máquinas de vetores de suporte e outros métodos de kernel tornaram-se bastante populares porque você pode aplicá-los sem saber o que diabos está fazendo e frequentemente obter resultados aceitáveis. As redes neurais, por outro lado, são enormes problemas de otimização que requerem um ajuste cuidadoso, embora ainda sejam preferíveis para muitos problemas, particularmente problemas de grande escala em domínios como a visão computacional.

dwf
fonte
Bom ponto. Um neurônio é apenas uma unidade logística que vem da regressão logística. Em seguida, unidades multifásicas de regressão múltipla são criadas e chamadas de Redes Neurais porque "parecem" redes neurais. Não é inspirado pelo cérebro ou algo parecido.
ozgur
Não é realmente correto dizer que estudar a neurociência real seria inútil para a pesquisa neste campo. Jeff Hawkins e sua pesquisa tentaram incorporar mais conhecimento sobre neurobiologia em seu trabalho com HTM. HTM funciona muito bem. No final, estudar neurobiologia pode ser útil se você pretende tentar pesquisar novas topologias de rede e técnicas de interação que imitem exemplos biológicos reais. Se você pretende simplesmente usar o que outros já pesquisaram, ao invés de fazer sua própria pesquisa, então sim, pesquisar neurociência pode ser inútil.
SmugDoodleBug
29

Eu recomendo fortemente esta excelente série de Anoop Madhusudanan no Code Project .

Ele leva você através dos fundamentos para entender como eles funcionam de uma maneira fácil de entender e mostra como usar sua brainnetbiblioteca para criar a sua própria.

CodeAndCats
fonte
7
Uau legal. Você também pode ler no meu blog, amazedsaint.blogspot.com/2008/01/…
amazedsaint
11

Redes Neurais estão meio que desclassificadas atualmente. Máquinas de vetor de suporte e métodos de kernel são melhores para mais classes de problemas do que a retropropagação. Redes neurais e algoritmos genéticos capturam a imaginação de pessoas que não sabem muito sobre o aprendizado de máquina moderno, mas não são o estado da arte.

Se você quiser aprender mais sobre IA e aprendizado de máquina, recomendo a leitura de Artificial Intelligence: A Modern Approach, de Peter Norvig . É uma ampla pesquisa de IA e muita tecnologia moderna. Ele vai ao longo da história e também de técnicas mais antigas e lhe dará uma base mais completa nos fundamentos da IA ​​e do aprendizado de máquina.

As redes neurais são muito fáceis, no entanto. Especialmente se você usar um algoritmo genético para determinar os pesos, em vez da retropropagação adequada.

Chad Okere
fonte
1
A rede neural não consiste apenas em retropropagação; existem toneladas de outras redes - memórias associativas, Kohonen SOFMs, redes baseadas em ressonância adaptativa e assim por diante ... MLP e backpropagation são as redes mais populares, mas não as de melhor desempenho ...
lmsasu
3
"Redes Neurais estão meio que desclassificadas atualmente" - bem, não mais. As técnicas de "aprendizado profundo" para treinar NN multicamadas e arquitetura ad hoc NN parecem estar entre as coisas mais interessantes em ML atualmente. Apenas um exemplo entre muitos, googleresearch.blogspot.co.uk/2015/03/…
John Donn
5

Segundo a recomendação da dwf de Redes Neurais para Reconhecimento de Padrões, de Chris Bishop. Embora, talvez não seja um texto inicial. Norvig ou um tutorial online (com código em Matlab!) Seria provavelmente uma introdução mais suave.

Um bom projeto inicial seria OCR (Optical Character Recognition). Você pode digitalizar páginas de texto e alimentar cada personagem pela rede para realizar a classificação. (Você teria que treinar a rede primeiro, é claro!).

graveca
fonte
4

Posso recomendar por onde não começar. Comprei An Introduction to Neural Networks de Kevin Gurney, que tem boas críticas na Amazon e afirma ser uma "introdução altamente acessível a um dos tópicos mais importantes da ciência cognitiva e da computação". Pessoalmente, não recomendaria este livro como um começo. Consigo compreender apenas cerca de 10%, mas talvez seja só eu (o inglês não é minha língua nativa). Vou examinar outras opções deste tópico.

Vincent
fonte
3

http://www.ai-junkie.com/ann/evolved/nnt1.html é uma introdução clara ao perceptron multicamadas, embora não descreva o algoritmo de retropropagação

você também pode dar uma olhada em generation5.org, que oferece muitos artigos sobre IA em geral e alguns ótimos textos sobre redes neurais

user217299
fonte
2

Se você não se importa em gastar dinheiro, o Manual de Teoria do Cérebro e Redes Neurais é muito bom. Ele contém 287 artigos cobrindo pesquisas em muitas disciplinas. Ele começa com uma introdução e teoria e, em seguida, destaca caminhos através dos artigos para melhor cobrir seus interesses.

Como para um primeiro projeto, os mapas de Kohonen são interessantes para categorização : encontre relações ocultas em sua coleção de músicas, construa um robô inteligente ou resolva o prêmio Netflix .

Corbin March
fonte
1

Acho que um bom ponto de partida sempre seria a Wikipedia . Lá você encontrará alguns links úteis para documentações e projetos que também usam redes neurais.

Xn0vv3r
fonte
1

Achei o livro "Inteligência Computacional" incrivelmente útil.

Bradley Powers
fonte
1

A inteligência coletiva de programação discute isso no contexto dos algoritmos de busca e classificação. Além disso, no código disponível aqui (no capítulo 4), os conceitos discutidos no livro são ilustrados em um exemplo Python.

Jamesaharvey
fonte
1

Concordo com outras pessoas que disseram que estudar biologia não é um bom ponto de partida ... porque há muitas informações irrelevantes em biologia. Você não precisa entender como um neurônio funciona para recriar sua funcionalidade - você só precisa simular suas ações. Eu recomendo "How To Create A Mind" de Ray Kurzweil - vai para o aspecto da biologia que é relevante para modelos computacionais, (criando um neurônio simulado combinando várias entradas e disparando uma vez que um limite é atingido), mas ignora as coisas irrelevantes como como o neurônio realmente adiciona as entradas ao couro. (Você usará apenas + e uma desigualdade para comparar a um limite, por exemplo)

Devo também apontar que o livro não é realmente sobre 'criar uma mente' - ele apenas se concentra no reconhecimento de padrões hierárquicos / o neocórtex. O tema geral tem sido falado desde a década de 1980, creio eu, então há muitos livros mais antigos que provavelmente contêm formas ligeiramente datadas da mesma informação. Eu li documentos antigos afirmando que o sistema de visão, por exemplo, é um reconhecedor de padrões de várias camadas. Ele afirma que isso se aplica a todo o neocórtex. Além disso, considere suas 'previsões' com cautela - suas estimativas de hardware são provavelmente bastante precisas, mas acho que ele subestima o quão complicadas tarefas simples podem ser (ex: dirigir um carro). Concedido, ele viu muitos progressos (e fez parte de alguns deles), mas ainda acho que ele está otimista demais. Há uma grande diferença entre um carro com IA ser capaz de dirigir uma milha com sucesso 90% do tempo, quando comparado aos 99,9 +% que um humano pode fazer. Não espero que nenhuma IA me conduza de verdade por pelo menos 20 anos ... (não conto os carros de corrida BMW que precisam ser "treinados" no percurso real, pois não estão jogando da mesma forma jogos)

Se você já tem uma ideia básica do que é IA e como pode ser modelado, é melhor pular para algo mais técnico.

Allen
fonte
0

Se você deseja aprender rapidamente sobre as aplicações de alguns conceitos de rede neural em um simulador real, há um ótimo livro online (agora wiki) chamado 'Neurociência Cognitiva Computacional' em http://grey.colorado.edu/CompCogNeuro/index. php / CCNBook / Main

O livro é usado nas escolas como um livro-texto e leva você por muitas áreas diferentes do cérebro, desde neurônios individuais até o funcionamento executivo de ordem superior.

Além disso, cada seção é aumentada com 'projetos' de lição de casa que já estão prontos para você. Basta fazer o download, seguir os passos e simular tudo que o capítulo falou. O software que eles usam, Emergent, é um pouco mimado, mas incrivelmente robusto: é o produto de mais de 10 anos de trabalho, acredito.

Passei por isso em uma aula de graduação no semestre passado, e foi ótimo. Percorre tudo passo a passo

Varun Singh
fonte