Respostas:
Isso está retrocedendo, mas segue a lógica dos argumentos.
Em termos de eficiência, vejo alguns problemas importantes nas redes neurais clássicas.
As grandes redes neurais exigem muitos dados para serem treinadas. A quantidade pode variar dependendo do tamanho da rede e da complexidade da tarefa, mas, como regra geral, geralmente é proporcional ao número de pesos. Para algumas tarefas de aprendizado supervisionado, simplesmente não há dados rotulados de alta qualidade. A coleta de grandes quantidades de dados de treinamento especializado pode levar meses ou até anos, e a rotulagem pode ser complicada e não confiável. Isso pode ser parcialmente mitigado pelo aumento de dados, o que significa "sintetizar" mais exemplos dos que você já possui, mas não é uma panacéia.
A taxa de aprendizado geralmente é muito pequena, portanto o progresso do treinamento é lento. Um modelo grande que pode levar semanas para treinar em uma CPU de desktop pode ser treinado em, digamos, duas horas usando um cluster de GPU que consome vários kW de energia. Essa é uma compensação fundamental devido à natureza do procedimento de treinamento. Dito isso, as GPUs estão se tornando cada vez mais eficientes - por exemplo, a nova arquitetura da nVidia Volta GPU permite 15,7 TFLOPs enquanto consome menos de 300 W.
No momento, praticamente todos os problemas diferentes exigem que uma rede neural personalizada seja projetada, treinada e implantada. Embora a solução geralmente funcione, ela está meio travada nesse problema. Por exemplo, o AlphaGo é brilhante no Go, mas seria inútil dirigir um carro ou fornecer recomendações de música - ele simplesmente não foi projetado para essas tarefas. Essa esmagadora redundância é uma grande desvantagem das redes neurais, na minha opinião, e também é um grande impedimento ao progresso da pesquisa de redes neurais em geral. Existe toda uma área de pesquisa chamada aprendizado de transferênciaque trata de encontrar maneiras de aplicar uma rede treinada em uma tarefa a uma tarefa diferente. Frequentemente, isso se relaciona ao fato de que talvez não haja dados suficientes para treinar uma rede do zero na segunda tarefa, portanto, poder usar um modelo pré-treinado com algum ajuste extra é muito atraente.
A primeira parte da pergunta é mais complicada. Deixando de lado modelos puramente estatísticos, não vi nenhuma abordagem proeminente ao aprendizado de máquina que seja radicalmente diferente das redes neurais. No entanto, existem alguns desenvolvimentos interessantes que merecem ser mencionados, porque abordam algumas das ineficiências acima.
Um pouco de fundo primeiro.
Redes neurais em spikes têm um enorme potencial em termos de poder computacional. De fato, ficou provado que eles são estritamente mais poderosos do que as redes neurais clássicas com ativações sigmóides.
Além disso, as redes neurais de cravação têm uma compreensão intrínseca do tempo - algo que tem sido um grande obstáculo para as redes clássicas desde o seu início. Não apenas isso, mas as redes de spikes são acionadas por eventos , o que significa que os neurônios operam apenas se houver um sinal de entrada. Isso contrasta com as redes clássicas, nas quais cada neurônio é avaliado independentemente de sua entrada (novamente, isso é apenas uma consequência do procedimento de avaliação geralmente sendo implementado como uma multiplicação de duas matrizes densas). Assim, as redes de spikes empregam um esquema de codificação esparsa , o que significa que apenas uma pequena fração dos neurônios estão ativos a qualquer momento.
Agora, a codificação esparsa baseada em spikes e a operação orientada a eventos são adequadas para implementações baseadas em hardware de redes de spikes chamadas chips neuromórficos . Por exemplo, o chip TrueNorth da IBM pode simular 1 milhão de neurônios e 256 milhões de conexões enquanto consome apenas cerca de 100 mW de energia em média. São ordens de magnitude mais eficientes do que as atuais GPUs da nVidia. Os chips neuromórficos podem ser a solução da troca de tempo / energia de treinamento que mencionei acima.
Além disso, os memristores são um desenvolvimento relativamente novo, mas muito promissor. Basicamente, um memristor é um elemento fundamental do circuito muito semelhante a um resistor, mas com resistência variável proporcional à quantidade total de corrente que passou por ele durante toda a sua vida útil. Essencialmente, isso significa que ele mantém uma "memória" da quantidade de corrente que passou por ela. Uma das aplicações empolgantes em potencial dos memristores é modelar sinapses no hardware de maneira extremamente eficiente.
Eu acho que vale a pena mencionar porque são candidatos promissores para abordar o problema da intransferibilidade. Elas não se restringem às redes neurais - sendo orientadas por recompensas, a RL e a evolução são teoricamente aplicáveis em um cenário genérico a qualquer tarefa em que seja possível definir uma recompensa ou uma meta a ser atingida por um agente. Isso não é necessariamente trivial, mas é muito mais genérico do que a abordagem usual orientada a erros, onde o agente de aprendizado tenta minimizar a diferença entre sua saída e uma verdade básica. O ponto principal aqui é sobre a transferência de aprendizado: idealmente, aplicar um agente treinado a uma tarefa diferente deve ser tão simples quanto mudar a meta ou a recompensa (eles ainda não estão nesse nível ainda ...).
In particular it is shown that networks of spiking neurons are, with regard to the number of neurons that are needed, computationally more powerful than these other neural network models.
max(0, x)
) original está muito em perigo de ficar preso x < 0
, resultando em neurônios mortos. De qualquer forma, o ponto é sobre o poder computacional das redes de spikes e sua implementação de hardware ultra-eficiente em termos de consumo de energia.
Substituindo redes neurais
Pode haver novos algoritmos com potencial para substituir redes neurais. No entanto, uma das características das redes neurais é que elas empregam elementos simples, cada um com baixa demanda de recursos computacionais em padrões geométricos.
Neurônios artificiais podem ser executados em paralelo (sem compartilhamento de tempo da CPU ou loop) mapeando os cálculos para dispositivos DSP ou outro hardware de computação paralelo. O fato de muitos neurônios serem essencialmente parecidos é, portanto, uma forte vantagem.
O que estaríamos substituindo?
Quando consideramos substituições algorítmicas em redes neurais, sugerimos que um projeto de rede neural é um algoritmo. Não é.
Uma rede neural é uma abordagem para convergir em um circuito em tempo real para realizar uma transformação não linear de entrada em saída com base em alguma formulação do que é ideal. Essa formulação pode ser a minimização de uma medida de erro ou disparidade de algum ideal definido. Pode ser uma medida de bem-estar que deve ser maximizada.
A fonte da determinação da adequação para qualquer comportamento de rede pode ser interna. Chamamos isso de aprendizado não supervisionado. Pode ser externo, que chamamos de supervisionado quando as informações de condicionamento externo são acopladas aos vetores de entrada na forma dos valores de saída desejados, que chamamos de rótulos.
A aptidão também pode se originar externamente como um escalar ou vetor não acoplado aos dados de entrada, mas sim em tempo real, que chamamos de reforço. Isso requer algoritmos de aprendizado reentrante. A aptidão comportamental líquida pode, alternativamente, ser avaliada por outras redes dentro do sistema, no caso de redes empilhadas ou outras configurações, como hierarquias de Laplacian.
A seleção de algoritmos tem pouco a ver com inteligência comparativa, uma vez que os projetos matemáticos e de processo são selecionados. O design do algoritmo está mais diretamente relacionado à minimização de demandas por recursos de computação e à redução de requisitos de tempo. Essa minimização também depende do hardware e do sistema operacional.
Uma substituição é indicada?
Certo. Seria melhor se as redes fossem mais como neurônios de mamíferos.
Por sinalização regional entende-se os muitos sinais químicos além da transmissão do sinal através das sinapses.
Podemos até considerar ir além da neurologia de mamíferos.
Eficiência Líquida Neural
A eficiência não pode ser quantificada em alguma escala universal, pois a temperatura pode ser quantificada em graus Kelvin. A eficiência só pode ser quantificada como um quociente de algum valor medido em relação a algum ideal teórico. Observe que é um ideal, não um máximo, no denominador. Nos motores termodinâmicos, esse ideal é a taxa de entrada de energia, que nunca pode ser totalmente transferida para a saída.
Da mesma forma, as redes neurais nunca podem aprender em tempo zero. Uma rede neural também não pode obter erro zero durante um tempo arbitrariamente longo na produção. Portanto, as informações são, de certa forma, como energia, um conceito investigado por Claude Shannon, da Bell Labs, durante o início da automação digital, e a relação entre entropia da informação e entropia termodinâmica é agora uma parte importante da física teórica.
Não pode haver má eficiência de aprendizado ou boa eficiência de aprendizado. Não pode haver desempenho ruim nem desempenho bom, se desejamos pensar em termos lógicos e científicos - apenas uma melhoria relativa de algumas configurações do sistema em relação a outras configurações do sistema para um conjunto muito específico de cenários de desempenho.
Portanto, sem uma especificação inequívoca das duas configurações de hardware, sistema operacional e software e um conjunto de testes totalmente definido usado para avaliação relativa, a eficiência não faz sentido.
Temos alguma esperança à espreita nessa frente. Atualmente, temos redes de cápsulas da J.Hinton que usam uma ativação não linear diferente chamada função 'squash'.
As redes de cápsulas possuem algumas falhas. Portanto, tem havido trabalho na direção de olhar além das redes neurais. Você pode ler este blog para entender bem antes de ler o artigo de J.Hinton.
As redes neurais exigem muitos dados e treinamento. Para a maioria dos conjuntos de dados em formato de tabela, é muito melhor usar modelos baseados em árvore de decisão. Na maioria das vezes, modelos simples são suficientes para fornecer boa precisão. No entanto, as redes neurais tiveram seu teste do tempo. Faz apenas cinco a seis anos desde o início da revolução do aprendizado profundo, então ainda não sabemos a verdadeira potência do aprendizado profundo.