É possível treinar a rede neural para resolver equações matemáticas?

24

Estou ciente de que as redes neurais provavelmente não são projetadas para fazer isso, por mais que se questione hipoteticamente, é possível treinar a rede neural profunda (ou similar) para resolver equações matemáticas?

Assim, considerando as 3 entradas: 1º número, sinal do operador representado pelo número (1 - +, 2 - -, 3 - /, 4 - *e assim por diante) e o 2º número, depois do treinamento, a rede deve fornecer os resultados válidos.

Exemplo 1 ( 2+2):

  • Entrada 1: 2; Entrada 2: 1( +); Entrada 3: 2; Saída esperada:4
  • Entrada 1: 10; Entrada 2: 2( -); Entrada 3: 10; Saída esperada:0
  • Entrada 1: 5; Entrada 2: 4( *); Entrada 3: 5; Saída esperada:25
  • e entao

O acima pode ser estendido para exemplos mais sofisticados.

Isso é possível? Se sim, que tipo de rede pode aprender / conseguir isso?

kenorb
fonte
1
Isso pode ser relevante - github.com/deepmind/mathematics_dataset
GaneshTata

Respostas:

21

Sim, foi feito!

No entanto, os aplicativos não devem substituir calculadoras ou algo assim. O laboratório ao qual estou associado desenvolve modelos de redes neurais de raciocínio equacional para entender melhor como os humanos podem resolver esses problemas. Essa é uma parte do campo conhecido como Cognição matemática . Infelizmente, nosso site não é muito informativo, mas aqui está um link para um exemplo desse trabalho.

Além disso, trabalhos recentes sobre a extensão de redes neurais para incluir armazenamentos externos de memória (por exemplo, máquinas neurais de Turing) tendem a usar a solução de problemas matemáticos como uma boa prova de conceito. Isso ocorre porque muitos problemas aritméticos envolvem procedimentos longos com resultados intermediários armazenados. Veja as seções deste documento sobre adição e multiplicação binárias longas.

zergylord
fonte
para mim, não apenas redes neurais, mas arquiteturas neurais com memória externa. Arquiteturas como NTM e DNC podem ser usadas para resolver algoritmos como o caminho mais curto, porque eles têm a capacidade de executar o processo iterativo, acompanhando o que estava sendo feito (sem esquecimento catastrófico). Mas, para mim, usar apenas o aprendizado supracitado está simplesmente errado, como mencionado na segunda resposta.
Shamane Siriwardhana
O primeiro link está morto, você tem a substituição?
kenorb
Ambos os links funcionaram para mim, que excelente artigo!
Zakk Diaz
8

Na verdade não.

As redes neurais são boas para determinar relacionamentos não lineares entre entradas quando existem variáveis ​​ocultas. Nos exemplos acima, os relacionamentos são lineares e não há variáveis ​​ocultas. Mas, mesmo que não fossem lineares, um design tradicional da RNA não seria adequado para isso.

Ao construir cuidadosamente as camadas e supervisionar rigorosamente o treinamento, você pode obter uma rede para produzir consistentemente a saída 4.01, digamos, para as entradas: 2, 1 (+) e 2, mas isso não é apenas errado, é inerentemente não confiável aplicação da tecnologia.

dynrepsys
fonte
5

1) é possível! De fato, é um exemplo da popular estrutura de aprendizado profundo Keras. Confira este link para ver o código fonte .

2) Este exemplo em particular usa uma rede neural recorrente (RNN) para processar o problema como uma sequência de caracteres, produzindo uma sequência de caracteres que formam a resposta. Observe que essa abordagem é obviamente diferente de como os humanos tendem a pensar em resolver problemas simples de adição e provavelmente não é como você gostaria que um computador resolvesse esse problema. Principalmente, este é um exemplo de aprendizado sequência a sequência usando Keras. Ao manipular entradas sequenciais ou de séries temporais, as RNNs são uma escolha popular.

user3390629
fonte
1

Sim - parece que agora é possível obter mais informações, a partir do exemplo que você deu neste documento descreve uma solução de DL para um problema consideravelmente mais difícil - gerando o código-fonte para um programa descrito em linguagem natural .

Ambos podem ser descritos como problemas de regressão (ou seja, o objetivo é minimizar algumas funções de perda no conjunto de validação), mas o espaço de pesquisa no caso da linguagem natural é muito maior.

NietzscheanAI
fonte