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?
neural-networks
math
kenorb
fonte
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
Existe o campo bastante bem estabelecido da prova automatizada de teoremas . Provavelmente, isso inclui resolver equações, mas não envolve necessariamente a IA. Esta postagem da stackexchange validada cruzada tem mais algumas informações sobre o tópico.
fonte