# IA neurossimbólica

A IA neurossimbólica é um tipo de inteligência artificial que integra arquiteturas de IA neural e simbólica para abordar as fraquezas de cada uma, fornecendo uma IA robusta capaz de raciocínio, aprendizado e modelagem cognitiva. Conforme argumentado por Leslie Valiant e outros, a construção eficaz de modelos cognitivos computacionais ricos exige a combinação de raciocínio simbólico e aprendizagem de máquina eficiente. Gary Marcus argumentou: "Não podemos construir modelos cognitivos ricos de forma adequada e automatizada sem o triunvirato da arquitetura híbrida, rico conhecimento prévio e técnicas sofisticadas de raciocínio." Além disso, "para construir uma abordagem robusta e orientada ao conhecimento para a IA, precisamos ter a maquinaria de manipulação de símbolos em nosso kit de ferramentas. Muito conhecimento útil é abstrato para prosseguir sem ferramentas que representem e manipulem a abstração e, até o momento, a única maquinaria conhecida que pode manipular esse conhecimento abstrato de forma confiável é o aparato de manipulação de símbolos."
Henry Kautz, Francesca Rossi, e Bart Selman também defenderam uma síntese. Seus argumentos tentam abordar os dois tipos de pensamento, conforme discutido no livro Rápido e Devagar: Duas Formas de Pensar. Ele descreve a cognição como abrangendo dois componentes: o Sistema 1 é rápido, reflexivo, intuitivo e inconsciente. O Sistema 2 é mais lento, passo a passo e explícito. O Sistema 1 é usado para reconhecimento de padrões. O Sistema 2 lida com planejamento, dedução e pensamento deliberativo. Nessa visão, o aprendizado profundo lida melhor com o primeiro tipo de cognição, enquanto o raciocínio simbólico lida melhor com o segundo tipo. Ambos são necessários para uma IA robusta e confiável que possa aprender, raciocinar e interagir com humanos para aceitar conselhos e responder perguntas. Esses modelos de processo duplo com referências explícitas aos dois sistemas contrastantes têm sido trabalhados desde a década de 1990, tanto na IA quanto na Ciência Cognitiva, por vários pesquisadores.

## Abordagens

As abordagens para a integração são diversas. Segue-se a taxonomia de arquiteturas neurossimbólicas de Henry Kautz, juntamente com alguns exemplos:
* Symbolic Neural symbolic é a abordagem atual de muitos modelos neurais no processamento de linguagem natural, onde palavras ou tokens de subpalavras são a entrada e a saída finais de grandes modelos de linguagem. Exemplos incluem BERT, RoBERTa e GPT-3.
* Simbólico[Neural] é exemplificado pelo AlphaGo, onde técnicas simbólicas são usadas para invocar técnicas neurais. Neste caso, a abordagem simbólica é a busca em árvore de Monte Carlo e as técnicas neurais aprendem a avaliar as posições do jogo.
* Neural | Simbólico usa uma arquitetura neural para interpretar dados perceptivos como símbolos e relacionamentos que são raciocinados simbolicamente. Neural-Concept Learner é um exemplo.
* Neural: Simbólico → Neural depende do raciocínio simbólico para gerar ou rotular dados de treinamento que são posteriormente aprendidos por um modelo de aprendizado profundo, por exemplo, para treinar um modelo neural para computação simbólica usando um sistema matemático simbólico semelhante ao Macsyma para criar ou rotular exemplos.
* Neural_{Symbolic} usa uma rede neural gerada a partir de regras simbólicas. Um exemplo é o Neural Theorem Prover, que constrói uma rede neural a partir de uma árvore de prova AND-OR gerada a partir de regras e termos de base de conhecimento. Redes de tensores lógicos também se enquadram nesta categoria.
* Neural[Simbólico] permite que um modelo neural chame diretamente um mecanismo de raciocínio simbólico, por exemplo, para executar uma ação ou avaliar um estado. Um exemplo seria o ChatGPT usando um plugin para consultar o Wolfram Alpha.
Essas categorias não são exaustivas, pois não consideram sistemas multiagentes. Em 2005, Bader e Hitzler apresentaram uma categorização mais refinada que considerava, por exemplo, se o uso de símbolos incluía lógica e, em caso afirmativo, se a lógica era proposicional ou lógica de primeira ordem. A categorização de 2005 e a taxonomia de Kautz acima são comparadas e contrastadas em um artigo de 2021. Recentemente, Sepp Hochreiter argumentou que as Redes Neurais de Grafos"... são os modelos predominantes da computação neural-simbólica" uma vez que "[elas] descrevem as propriedades das moléculas, simulam redes sociais ou preveem estados futuros em aplicações físicas e de engenharia com interações partícula-partícula".

## Implementações

As implementações de abordagens neurossimbólicas incluem:
* AllegroGraph: uma plataforma integrada baseada em Knowledge Graph para desenvolvimento de aplicações neurossimbólicas.
* Scallop: uma linguagem baseada em Datalog que suporta raciocínio lógico e relacional diferenciável. O Scallop pode ser integrado ao Python e com um módulo de aprendizagem PyTorch.
* Redes de tensores lógicos: codifique fórmulas lógicas como redes neurais e aprenda simultaneamente codificações de termos, pesos de termos e pesos de fórmulas.
* DeepProbLog: combina redes neurais com o raciocínio probabilístico do ProbLog.
* SymbolicAI: uma biblioteca de programação composicional diferenciável.
* Redes Neurais Explicáveis (XNNs): combinam redes neurais com hipergrafos simbólicos e são treinadas usando uma mistura de retropropagação e aprendizagem simbólica chamada indução.