Quais são as principais diferenças entre Spiking Neural Network e Deep Learning

7

O Deep Learning, agora um dos campos mais populares da Rede Neural Artificial, mostrou grande promessa em termos de precisão nos conjuntos de dados. Como ele se compara à Spiking Neural Network. Recentemente, a Qualcomm lança seu processador zeroth no SNN, então eu estava pensando se há alguma diferença se o aprendizado profundo for usado.

user3209559
fonte
3
Eu não sou especialista em IA, mas essa pergunta parece: "Essa torta de maçã é muito boa. Quais seriam as principais diferenças se usássemos peras?"
Raphael
2
Antes de fazer perguntas aqui, espera-se que você faça alguma pesquisa e tente responder a pergunta sozinho. O que você olhou? Existe algum aspecto específico dos SNNs que você deseja comparar com o aprendizado profundo ou está assando tortas com o @Raphael? :-)
David Richerby
o ponto principal da aprendizagem profunda é mais o tempo e o número (grande) de neurônios. pode-se usar diferentes arquiteturas de redes neurais. ainda não ouvimos falar do SNN usado para aprendizado profundo, mas, em princípio, parece que poderia ser testado por alguém. ainda não se sabe por que alguns algoritmos neurais parecem ter melhor escala para aprendizado profundo do que outros. "Na prática, há uma grande diferença entre o poder teórico de cravar redes neurais e o que foi demonstrado. Eles provaram ser úteis na neurociência, mas não (ainda) na engenharia".
vzn
Os SNNs do @vzn construídos usando o Neural Engineering Framework foram aplicados em diversas aplicações de engenharia, como controle de braço e quadrocóptero .
Seanny123

Respostas:

11

Resposta curta:

A rigor, "Deep" e "Spiking" se referem a dois aspectos diferentes de uma rede neural: "Spiking" refere-se à ativação de neurônios individuais, enquanto "Deep" se refere à arquitetura geral da rede. Assim, em princípio, não há nada contraditório sobre uma rede neural profunda e espinhosa (de fato, o cérebro é sem dúvida um sistema desse tipo).

No entanto, na prática, as abordagens atuais para DL e SNN não funcionam bem juntas. Especificamente, o Deep Learning, conforme praticado atualmente, normalmente depende de uma função de ativação diferenciável e, portanto, não lida bem com trens discretos.

Detalhes adicionais:

Neurônios reais se comunicam através de discretos picos de tensão. Ao construir hardware, o spiking tem algumas vantagens no consumo de energia e você pode rotear spikes como pacotes de dados (Address Event Representation ou AER) para emular a conectividade encontrada no cérebro. No entanto, cravar é um processo barulhento; Geralmente, um único pico não significa muito, por isso é comum em software abstrair os detalhes de pico e modelar uma única taxa de pico escalar. Isso simplifica muitas coisas, especialmente se seu objetivo é aprendizado de máquina e não modelagem biológica.

A idéia principal do Deep Learning é ter várias camadas de neurônios, com cada camada aprendendo recursos cada vez mais complexos com base na camada anterior. Por exemplo, em um cenário de visão, o nível mais baixo aprende padrões simples como linhas e arestas, a próxima camada pode aprender composições de linhas e arestas (cantos e curvas), a próxima camada pode aprender formas simples e assim por diante na hierarquia . Os níveis superiores aprendem categorias complexas (pessoas, gatos, carros) ou até instâncias específicas (seu chefe, seu gato, o batmóvel). Uma vantagem disso é que os recursos de nível mais baixo são genéricos o suficiente para serem aplicados a muitas situações, enquanto os níveis superiores podem ser muito específicos.

A maneira canônica de treinar redes de spikes é alguma forma de plasticidade dependente de tempo de pico (STDP) , que reforça localmente as conexões com base em atividades correlatas. A maneira canônica de treinar uma rede neural profunda é uma forma de propagação posterior de gradiente descendente , que ajusta todos os pesos com base no comportamento global da rede. A descida do gradiente tem problemas com funções de ativação não diferenciáveis ​​(como picos estocásticos discretos).

Se você não se importa com o aprendizado, deve ser mais fácil combinar as abordagens. Presumivelmente, é possível pegar uma rede profunda pré-treinada e implementar apenas a parte de feed-forward (sem aprendizado adicional) como uma rede neural em expansão (talvez para colocá-la em um chip). O chip resultante não aprenderia com os novos dados, mas deveria implementar qualquer função que a rede original tivesse sido treinada para executar.

user129771
fonte
11
Vi recentemente uma apresentação em um SNN que foi treinado com apenas algumas dezenas de imagens e que era incrivelmente preciso, devido ao pequeno tamanho da amostra. Dadas vantagens como essa, as pessoas estão trabalhando em maneiras de fazer algo como aprendizado profundo com SNNs? A abordagem descrita neste artigo recente arxiv.org/abs/1407.7906 "Como codificadores automáticos poderiam fornecer atribuição de crédito em redes profundas por meio de propagação de destino" tornaria realista o aprendizado profundo com SNNs (já que não depende da propagação de retorno )?
Jason Livesay
5

A maior aplicação de SNNs que conheço é a Spaun , cujas redes neurais foram construídas usando o Neural Engineering Framework e o simulador neural Nengo .

A distinção entre SNNs e Deep Learning, especialmente em Spaun, é uma área cinzenta. Spaun usa técnicas modificadas de Deep Learning em seu sistema de visão para reconhecimento de dígitos. Essencialmente, ele usa uma versão impressionante de uma Rede Neural Constitucional.

Mais recentemente, a mesma técnica de conversão de abordagens de Aprendizado Profundo para detectar neurônios para uso em hardware neuromórfico (como Spinnaker e Brainstorm para menor latência e maior eficiência de energia ) foi aplicada às Redes Neurais Convolucionais .

As diferenças vão muito mais além do que mencionei aqui (como SNNs podem aproximar sistemas dinâmicos e outras funções não lineares sem treinamento), mas, infelizmente, não há uma maneira fácil de resumi-las. Se você quiser obter mais detalhes, consulte "Como construir um cérebro", de Chris Eliasmith, para uma visão geral de como os SNNs estão sendo usados ​​para criar Inteligência Artificial.

Seanny123
fonte