Como começar com redes neurais

32

Sou completamente novo em redes neurais, mas estou muito interessado em entendê-las. No entanto, não é nada fácil começar.
Alguém poderia recomendar um bom livro ou qualquer outro tipo de recurso? Existe uma leitura obrigatória?
Sou grato por qualquer tipo de dica.

Claudio Albertin
fonte
11
Há também um curso que Goeff Hinton está ministrando via Coursera nas Redes Neurais que começa na próxima semana: coursera.org/course/neuralnets
Marc Shivers
Esse curso parece interessante, mas, a partir do vídeo e da página da web, acho que não foi concebido como uma introdução.
Douglas Zare
@DouglasZare: Estou terminando o curso de Hinton e, em algumas partes, fiquei feliz por ter feito o curso de ML por Andrew Ng.
Andrew
1
Sim, eu peguei também. Foi um ótimo curso, e nenhuma introdução.
Douglas Zare
Blogs e tutoriais sobre redes neurais para iniciantes learn-neural-networks.com
Фаиль Гафаров

Respostas:

33

As redes neurais existem há algum tempo e mudaram dramaticamente ao longo dos anos. Se você apenas bisbilhotar na Web, poderá ter a impressão de que "rede neural" significa rede de feedforward de várias camadas treinada com propagação traseira. Ou então, você pode encontrar qualquer uma das dezenas de modelos raramente usados ​​e bizarramente nomeados e concluir que as redes neurais são mais um zoológico do que um projeto de pesquisa. Ou que são uma novidade. Ou...

Eu poderia continuar. Se você quiser uma explicação clara, eu ouviria Geoffrey Hinton . Ele sempre esteve presente e (portanto?) Faz um ótimo trabalho ao tecer todos os modelos díspares em que trabalhou em uma narrativa histórica coesa, intuitiva (e às vezes teórica). Em sua página inicial, há links para as palestras do Google Tech Talks e Videolectures.net que ele realizou (sobre RBMs e Deep Learning , entre outros).

Do meu ponto de vista, aqui está um roteiro histórico e pedagógico para entender as redes neurais, desde o início até o estado da arte:

  • Perceptrons
    • Fácil de entender
    • Severamente limitado
  • Multicamadas, treinadas por retropropagação
    • Muitos recursos para aprender estes
    • Geralmente não fazem tão bem quanto os SVMs
  • Máquinas Boltzmann
    • Maneira interessante de pensar sobre a estabilidade de uma rede recorrente em termos de "energia"
    • Veja as redes Hopfield se você quiser um exemplo fácil de entender (mas não muito prático) de redes recorrentes com "energia".
    • Teoricamente interessante, inútil na prática (treinando na mesma velocidade da deriva continental)
  • Máquinas Boltzmann restritas
    • Útil!
    • Construir fora da teoria das máquinas Boltzmann
    • Algumas boas introduções na web
  • Redes de crenças profundas
    • Até onde eu sei, essa é uma classe de RBMs multicamadas para aprendizado semi-supervisionado.
    • Alguns recursos
Stumpy Joe Pete
fonte
1
Muito obrigado por esta visão geral e por muitos recursos!
21412 Claudio Albertin
2
Não há problema. Boa sorte nos seus esforços na rede neural.
Stumpy Joe Pete
8

Eu recomendo assistir a essas palestras e usá- las como material de leitura . Essas palestras são sobre aprendizado de máquina em geral, por Andrew Ng, discursam sobre redes neurais e tentam torná-lo acessível para iniciantes.

Ivan
fonte
Você poderia indicar os títulos? Links podem ficar mortos no futuro ...
Richard Hardy
5

Estes são, na minha opinião, livros muito bons.

  • R. Rojas: Redes Neurais
  • CM Bishop: Redes Neurais para reconhecimento de padrões

Os livros têm algumas semelhanças: ambos têm cerca de 500 páginas e são bastante antigos, desde 1995. No entanto, continuam sendo muito úteis. Ambos os livros começam do zero, explicando o que são redes neurais. Eles fornecem explicações claras, bons exemplos e bons gráficos para ajudar na compreensão. Eles explicam detalhadamente as questões do treinamento de redes neurais, em suas muitas formas e formatos, e o que eles podem e não podem fazer. Os dois livros se complementam muito bem, pois o que não se pode descobrir com um livro, um tende a encontrar no outro.

Rojas tem uma seção, que eu particularmente gosto, sobre a implementação de propagação traseira em várias camadas em forma de matriz. Ele também possui uma boa seção sobre lógica nebulosa e outra sobre teoria da complexidade. Mas então Bishop tem muitas outras seções legais.

Rojas é, eu diria, o mais acessível. Bishop é mais matemático e talvez mais sofisticado. Nos dois livros, a matemática é principalmente álgebra linear e cálculo de funções de múltiplas variáveis ​​(derivadas parciais e assim por diante). Sem nenhum conhecimento desses assuntos, você provavelmente não acharia nenhum desses livros muito esclarecedor.

Eu recomendaria ler Rojas primeiro.

Ambos os livros, obviamente, têm muito a dizer sobre algoritmos, mas nenhum diz muito sobre implementações específicas no código.

Para mim, esses livros fornecem o pano de fundo, o que torna compreensível um curso on-line (como o de Hinton, no Coursera). Os livros também cobrem muito mais terreno e com muito mais detalhes do que podem ser feitos online.

Espero que isso ajude e fico feliz em responder a quaisquer perguntas sobre os livros.

Old_Mortality
fonte
3
Bem-vindo ao site, @Old_Mortality. Você pode dizer algo sobre esses livros? O que há de bom neles? Eles são apropriados para pessoas com algum nível de sofisticação matemática e / ou de codificação? Qual você recomendaria para o OP ler primeiro? Etc.
gung - Reinstate Monica
1
Obrigado pela sugestão. Eu editei minha resposta acima.
Old_Mortality
3

Como outras pessoas apontaram, existem muitos recursos (bons) on-line e eu pessoalmente fiz alguns deles:

  • Introdução de Ng à classe ML no Coursera
  • Aula de Redes Neurais de Hinton no Coursera
  • Tutorial de aprendizado profundo de Ng
  • lendo os capítulos relevantes no Processamento Distribuído Paralelo original

Quero chamar a atenção para o fato de que essas exposições seguiram principalmente o tratamento clássico, onde as camadas (soma e não linearidade juntas) são as unidades básicas. O tratamento mais popular e mais flexível implementado na maioria das bibliotecas, como torch-nn e tensorflow, agora usa gráfico de computação com diferenciação automática para obter alta modularidade. Conceitualmente, é mais simples e mais libertador. Eu recomendo o excelente curso aberto Stanford CS231n para este tratamento.

Para um tratamento rigoroso e teórico da aprendizagem, convém consultar a Neural Networks de Anthony e Bartlett.

Falcão
fonte
1

Se você deseja um tratamento de um ponto de vista mais estatístico, dê uma olhada no "Pattern Recognition and Neural Networks" de Brian Ripley. Este livro não é introdutório e pressupõe alguma base estatística.

http://www.stats.ox.ac.uk/~ripley/PRbook/

kjetil b halvorsen
fonte
0

Eu criei um aplicativo da Web que suporta o seu processo de aprendizado no campo das redes neurais.

https://blueneurons.ch/nn

Você pode brincar com as configurações (arquitetura, funções de ativação, configurações de treinamento) e observar como as configurações afetam as previsões. Todos os conjuntos de dados possuem valores pré-configurados que podem ser adotados. Também é possível criar seus próprios conjuntos de dados.

Instruções e explicações para os elementos implementados:

Guia de usuario

Schlatter
fonte