Resumo
A integração do raciocínio simbólico com as capacidades de aprendizado de redes neurais representa um desafio de fronteira na Inteligência Artificial. Enquanto a Programação por Conjunto de Respostas (ASP) e os circuitos lógicos oferecem robustas capacidades dedutivas, eles tradicionalmente carecem da flexibilidade para lidar com incertezas e aprender parâmetros a partir de dados.
Este trabalho propõe e implementa um framework de software abrangente para preencher essa lacuna, convertendo Diagramas de Decisão Sentencial (SDDs) — um subconjunto tratável e canônico de circuitos na Forma Normal de Negação (NNF) — em redes neurais diferenciáveis. Introduzimos um pipeline metodológico que transforma SDDs simbólicos em Circuitos Aritméticos compatíveis com ambientes de aprendizado profundo, garantindo a propriedade de suavidade para assegurar uma Contagem Ponderada de Modelos (WMC) válida.
A arquitetura resultante trata parâmetros probabilísticos como pesos aprendíveis, permitindo a unificação da inferência probabilística e do aprendizado dentro de um único grafo computacional baseado em PyTorch. O framework foi validado utilizando o estudo de caso da rede Bayesiana "Alarm", demonstrando eficiência na inferência e alta precisão na recuperação de parâmetros latentes.
Palavras-chave: IA Neuro-Simbólica, Diagramas de Decisão Sentencial, Programação Diferenciável, Inferência Probabilística.
Monografia
A monografia final pode ser acessada pelo seguinte link:
Pôster
O Pôster que foi exposto no IME-USP pode ser acessado pelo seguinte link:
Apresentação
Os slides apresentados no IME-USP podem ser encontrados pelo seguinte link:
Repositório
O código-fonte deste projeto está disponível no GitHub.
Escopo
O escopo deste trabalho concentra-se na etapa final do pipeline de sistemas neuro-simbólicos (como o dPASP): a compilação de circuitos lógicos em redes neurais. O projeto foca especificamente em SDDs devido às suas propriedades de decomponibilidade e determinismo. O trabalho abrange desde o parsing de arquivos de definição lógica até a implementação de algoritmos para garantir a propriedade de suavidade (smoothness) — essencial para a validade matemática da inferência probabilística — e a construção de módulos PyTorch que mapeiam operações lógicas (E/OU) em operações aritméticas (Produto/Soma), permitindo otimização via backpropagation.
Objetivos
O objetivo principal é desenvolver e validar um framework de software robusto para converter SDDs em modelos neurais diferenciáveis. Os objetivos específicos incluem:
- Desenvolvimento de Arquitetura de Software: Criar um sistema modular (seguindo princípios SOLID) para ingestão, conversão e execução de circuitos.
- Transformação Metodológica:
- Implementar a conversão de nós lógicos para nós aritméticos (AND → Produto, OR → Soma).
- Desenvolver algoritmos para imposição de suavidade (inserção de subcircuitos tautológicos).
- Integrar probabilidades como parâmetros aprendíveis (pesos) no circuito.
- Unificação de Inferência e Aprendizado:
- Viabilizar consultas probabilísticas condicionais eficientes.
- Implementar laços de treinamento supervisionado para aprender probabilidades latentes a partir de dados parcialmente observados.
- Validação Experimental: Avaliar a precisão da inferência e a convergência do aprendizado utilizando benchmarks conhecidos.
Métodos
O desenvolvimento foi conduzido através das seguintes etapas metodológicas:
- Fundamentação Teórica: Estudo aprofundado sobre Circuitos Lógicos, Forma Normal de Negação (NNF), propriedades estruturais de SDDs e Contagem Ponderada de Modelos (WMC).
- Design da Solução: Definição da lógica de codificação de inputs (variáveis e suas negações) e da estrutura do Circuito Aritmético para suportar diferenciação.
- Implementação: Desenvolvimento do framework em Python/PyTorch, incluindo parsers para arquivos
.sdde.json, e implementações de execução (recursiva e iterativa). - Engenharia de Software: Aplicação de testes automatizados (unitários e de integração) para garantir a corretude das computações lógicas e probabilísticas.
- Estudo de Caso: Realização de experimentos com o problema "Alarm", analisando métricas de erro (MAE) e tempos de execução para inferência e treinamento.
Cronograma de Atividades Realizadas
| Período | Atividade |
|---|---|
| Fev – Março 2025 | Revisão bibliográfica (SDDs, WMC, Neuro-Symbolic AI) e definição do escopo do framework. |
| Abril – Junho 2025 |
Implementação do núcleo do framework: Parsers e o conversor NetworkBuilder.Implementação da lógica de suavização de circuitos. |
| Julho – Setembro 2025 |
Desenvolvimento dos módulos de Inferência (QueryExecutor) e Otimização (ProbabilityOptimizer).Implementação de testes automatizados. |
| Outubro – Novembro 2025 |
Execução dos experimentos (Estudo de caso "Alarm"). Coleta de resultados e validação da convergência do aprendizado. |
| Novembro – Dezembro 2025 | Redação da monografia final, formatação e revisão. |
Bibliografia
- Darwiche, A., & Marquis, P. (2002). A Knowledge Compilation Map. Journal of Artificial Intelligence Research.
- Choi, Y., Kisa, D., & Van den Broeck, G. (2020). Probabilistic Circuits: A Unifying Framework for Tractable Probabilistic Models.
- Darwiche, A. (2004). New Advances in Compiling CNF to Decomposable Negation Normal Form.
- Liu, A., Ahmed, K., & Van den Broeck, G. (2022). Scaling Tractable Probabilistic Circuits: A Systems Perspective.