Somos tecnicamente capazes de criar, em hardware, redes neurais arbitrariamente grandes com a tecnologia atual?

9

Se neurônios e sinapses podem ser implementados usando transistores, o que nos impede de criar redes neurais arbitrariamente grandes usando os mesmos métodos com os quais as GPUs são feitas?

Em essência, vimos como as redes neurais virtuais extraordinariamente bem implementadas nos processadores sequenciais funcionam (até as GPUs são máquinas sequenciais, mas com grandes quantidades de núcleos).

Pode-se imaginar que usando os princípios de design da GPU - que consiste basicamente em milhares de unidades de processamento programáveis ​​que funcionam em paralelo - poderíamos criar "unidades de processamento de neurônios" muito mais simples e colocar milhões ou bilhões dessas NPUs em um único chip grande. Eles teriam sua própria memória (para armazenar pesos) e seriam conectados a algumas centenas de outros neurônios compartilhando um ônibus. Eles poderiam ter uma frequência de, por exemplo, 20 Hz, o que lhes permitiria compartilhar um barramento de dados com muitos outros neurônios.

Obviamente, existem alguns desafios de engenharia elétrica aqui, mas parece-me que todas as grandes empresas de tecnologia devem estar explorando essa rota agora.

Muitos pesquisadores de IA dizem que a superinteligência está chegando por volta de 2045. Acredito que o raciocínio deles é baseado na lei de Moore e no número de neurônios que somos capazes de implementar em software rodando nos computadores mais rápidos que temos.

Mas o fato é que hoje estamos fabricando chips de silício com bilhões de transistores neles. O SPARK M7 possui 10 bilhões de transistores.

Se implementar um neurônio (não programável) e algumas centenas de sinapses requer, por exemplo, 100.000 transistores, então podemos criar uma rede neural em hardware que emula 100.000 neurônios.

Se projetarmos um chip para que possamos simplesmente torná-lo fisicamente maior se quisermos mais neurônios, parece-me que redes neurais arbitrariamente grandes são simplesmente uma questão de orçamento.

Somos tecnicamente capazes de criar, em hardware, redes neurais arbitrariamente grandes com a tecnologia atual?

Lembre-se: eu não estou perguntando se essa rede será de fato muito inteligente. Estou apenas perguntando se podemos de fato criar redes neurais arbitrariamente grandes e altamente interconectadas, se decidirmos pagar à Intel para fazer isso?

A implicação é que, no dia em que algum cientista for capaz de criar inteligência geral em software, podemos usar nossos recursos de hardware para aumentar essa inteligência geral para níveis humanos e além.

frodeborli
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
nbro

Respostas:

5

A abordagem que você descreve é ​​chamada de computação neuromórfica e é um campo bastante movimentado .

O TrueNorth da IBM tem até neurônios de pico.

O principal problema com esses projetos é que ninguém sabe o que fazer com eles ainda.

Esses projetos não tentam criar chips otimizados para executar uma rede neural. Isso certamente seria possível, mas a parte mais cara é o treinamento e não o funcionamento de redes neurais. E para o treinamento, você precisa de enormes multiplicações de matrizes, algo em que as GPUs já são muito boas. ( O TPU do Google seria um chip otimizado para executar NNs.)

Para fazer pesquisas sobre algoritmos que podem ser implementados no cérebro (quase não sabemos nada sobre isso), você precisa de flexibilidade, algo que esses chips não possuem. Além disso, o desafio da engenharia provavelmente está no fornecimento de muitas sinapses, basta comparar o número médio de sinapses por neurônio de TrueNorth, 256, e o cérebro, 10.000.

Portanto, você pode criar um chip projetado após alguma arquitetura neural e seria mais rápido, mais eficiente, etc…, mas para fazer isso, você precisará saber qual arquitetura funciona primeiro. Sabemos que o aprendizado profundo funciona; portanto, o Google usa hardware personalizado para executar seus aplicativos e eu certamente poderia imaginar um hardware de aprendizado personalizado chegando a um smartphone perto de você no futuro. Para criar um chip neuromórfico para IA forte, você precisa desenvolver uma IA forte primeiro.

BlindKungFuMaster
fonte
Obrigado. Acredito que redes neurais imensas se comportarão de maneira muito inteligente. Portanto, se alguém tiver uma idéia (inovadora) de permitir que um neurônio de hardware se conecte a 10000 ou mais neurônios com eficiência - seria apenas uma questão com silício suficiente para criar redes neurais arbitrariamente grandes - e talvez super inteligência. O que implica que isso poderia acontecer hoje, já aconteceu em algum laboratório da IBM - ou acontecerá em 20 anos. Isso significa que não precisamos esperar pela lei de Moores.
Frodeborli 24/10/16
4

Se neurônios e sinapses puderem ser implementados usando transistores,

Espero que você não esteja falando das redes neurais que estão vencendo todas as competições em aprendizado de máquina (MLPs, CNNs, RNNs, Deep Residual Networks, ...). Eles já foram usados ​​como modelo para os neurônios, mas estão muito vagamente relacionados ao que acontece nas células cerebrais reais.

Redes de cravação devem estar muito mais próximas de neurônios reais. Ouvi dizer que o modelo Hodgkin-Huxley é bastante realista. No entanto - em contraste com os modelos que eu citei acima - parece não haver um algoritmo de treinamento eficaz para pular redes.

o que nos impede de criar redes neurais arbitrariamente grandes

  • Recursos computacionais : o treinamento de redes neurais leva muito tempo. Estamos falando de aproximadamente 12 dias com um cluster de GPU para alguns modelos da CNN em visão computacional.
  • Dados de treinamento : Quanto mais variáveis ​​você adicionar ao modelo, mais dados serão necessários para estimar essas variáveis. Redes neurais não são mágicas. Eles precisam de algo com o qual possam trabalhar.

Mas o fato é que hoje estamos fabricando chips de silício com bilhões de transistores neles. O SPARK M7 possui 10 bilhões de transistores.

Se implementar um neurônio (não programável) e algumas centenas de sinapses requer, por exemplo, 100.000 transistores, então podemos criar uma rede neural em hardware que emula 100.000 neurônios.

Não é tão simples assim:

  • Assinchonidade : As redes neurais biológicas funcionam de forma assíncrona. Isso significa que um neurônio pode estar ativo enquanto todos os outros não estão ativos.
  • Emulação : você supõe que seria necessário apenas um ciclo para simular um neurônio biológico. No entanto, ele precisa de muitos milhares de ciclos. Você não pode simplesmente usar mais unidades computacionais, porque algumas coisas não são paralelizáveis. Por exemplo, pense na função f(x) = sin(x*x + 1). Para um ser humano, existem basicamente três cálculos: r1 = x*x, r2 = r1 + 1, r3 = sin(r2). Mesmo se você tiver três pessoas trabalhando no cálculo do resultado, você não será mais rápido do que a pessoa mais rápida nesse grupo. Por quê? Porque você precisa dos resultados da última computação.
Martin Thoma
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
nbro
1

Embora um único transistor possa se aproximar da função básica de um único neurônio, não posso concordar que qualquer elemento eletrônico possa simular as sinapses / axônios. Os transistores são gravados em uma superfície plana e podem ser interconectados apenas a adjacentes ou próximos por transistores. Os axônios no cérebro percorrem grandes distâncias (em comparação com o tamanho do próprio neurônio) e não se restringem a uma superfície bidimensional. Mesmo se pudéssemos aproximar o número de transistores em um processador ao número de neurônios no cérebro, não estamos nem perto do número de conexões. Também se pode argumentar que os sinais analógicos no cérebro transmitem mais informações por unidade de tempo, em comparação com os impulsos binários de um chip. Além disso, o cérebro realmente tem plasticidade, ou seja, as conexões entre os neurônios podem ser enfraquecidas / descartadas ou endireitadas / criadas,

Iliyan Bobev
fonte
11
Os chips de silício são construídos em várias camadas, permitindo muita flexibilidade na interconectividade entre os neurônios. Além disso, a eletricidade viaja rapidamente - permitindo compartilhar os caminhos do sinal por multiplexação. Posso imaginar várias maneiras de permitir alta conectividade entre neurônios próximos e um tanto distantes. A plasticidade seria emulada por ter um maior grau de conectividade - uma vez que uma sinapse descartada se comporta de forma idêntica a uma sinapse que se multiplica por zero.
Frodeborli 23/10/16
0

Você pode considerar esta lista :

10 diferenças importantes entre cérebros e computadores:

  1. Os cérebros são analógicos, os computadores são digitais
  2. O cérebro usa memória endereçável ao conteúdo
  3. O cérebro é uma máquina massivamente paralela; computadores são modulares e seriais
  4. A velocidade de processamento não é fixa no cérebro; não há relógio do sistema
  5. Memória de curto prazo não é como RAM
  6. Nenhuma distinção de hardware / software pode ser feita com relação ao cérebro ou à mente
  7. Sinapses são muito mais complexas do que portões lógicos elétricos
  8. Ao contrário dos computadores, o processamento e a memória são realizados pelos mesmos componentes no cérebro
  9. O cérebro é um sistema auto-organizado
  10. Cérebros têm corpos
Franck Dernoncourt
fonte
11
Você está fazendo muitas suposições e eu discordo de muitas delas. Redes neurais recorrentes têm a maioria das propriedades que você descreve. O corpo não precisa existir, apenas temos que alimentar os neurônios sensoriais para que esse cérebro acredite que ele tem um corpo - supondo que eu queira que esse cérebro tenha um corpo.
Frodeborli 23/10/16