Rev-Tom: Bayesian Network Representation in MeTTA

chevron-icon
RFP Proposals
Top
chevron-icon
project-presentation-img
Expert Rating 4.6
Luke Mahoney (MLabs)
Project Owner

Rev-Tom: Bayesian Network Representation in MeTTA

Expert Rating

4.6

Overview

Bayesian Networks are a powerful tool for representing probabilistic models as directed acyclic graphs (DAGs). In this model, each node represents a variable (a true/false event or observation), and each edge represents a conditional dependency (e.g. an edge from A to B may indicate that the status of A has an influence over the probability that B is true). Bayesian networks allow us to determine, given a set of variables whose status is known, the probability that the other variables are true or false. We propose to implement a reusable process for representing Bayesian Networks as Atomspaces in MeTTa, and demonstrate how the MeTTa implementation can be used for inference on the network.

RFP Guidelines

Develop interesting demos in MeTTa

Complete & Awarded
  • Type SingularityNET RFP
  • Total RFP Funding $100,000 USD
  • Proposals 21
  • Awarded Projects 4
author-img
SingularityNET
Aug. 12, 2024

Create educational and/or useful demos using SingularityNET's own MeTTa programming language. This RFP aims at bringing more community adoption of MeTTa and engagement within our ecosystem, and to demonstrate and expand the utility of MeTTa. Researchers must maintain demos for a minimum of one year.

Proposal Description

Company Name (if applicable)

MLabs LTD

Project details

MeTTa is a language that has inherent support for non-determinism. We believe that this makes MeTTa a great language for modelling Bayesian networks. We propose a demo that demonstrates the ability to model and solve Bayesian networks in MeTTa. In general, the pattern to generate the demos will be as follows:

  1. Use Python to generate a Bayes network from a dataset via the existing PGMpy library
  2. Re-express the generated Bayes network as an Atomspace in MeTTa, and place the network in its own MeTTa module
  3. In a separate module, the status of known variables can be set, and functions defined in a module written by us can be imported to solve for unknown variables whose probabilities are wished to be known

The resulting MeTTa files will show off complete demos of MeTTa modelling a Bayesian Network. In the rest of this document, we lay out our development process and milestones for progress.

Challenges

As this is a smaller project, we aim to limit the scope to reduce risk. Nonetheless, some challenges still exist. In particular, MeTTa is a new language with few examples or tutorials. Additionally, MeTTa is so new that “best practices” have not yet been established. We aim to help set the foundation for such practices in this project. Our project team members are both highly experienced software architects, both of whom have a basic, but solid, understanding of MeTTa. We can further mitigate risk by calling on the experience of the wider MLabs AI team, and the SingularityNET community.

Team

Nathaniel Lane, Senior Data Scientist - Project leader and AI Investigator

Nathaniel Lane graduated summa cum laude from Colorado School of Mines with a degree in Computer Science. He went on to get a Master’s in Computer Science from Montana State University by researching how neural networks can be used to predict whether a given peptide has anti-cancer properties. Since then, he has worked at MLabs on a variety of projects, including “Memory-augmented LLMs: Retrieving Information using a Gated Encoder LLM (RIGEL)” from RFP round 3. Nate will lead the project and take most of the technical tasks.

Eduardo Granado , Senior Software Developer - Project Software Architect and Data Scientist

Eduardo Granado is a seasoned Software Developer with extensive experience in functional programming, and AI-driven solutions. Eduardo has contributed to cutting-edge projects in decentralized finance, infrastructure development, and computational data analysis. His expertise spans backend development, and AI-powered data solutions. In the realm of AI and data-intensive computing, Eduardo developed DNA analysis tools at the University of Basel, implementing high-performance computational solutions. His AI and machine learning knowledge complement Nate’s skills, he will support Nate in all aspects of the project.

 

Open Source Licensing

MIT - Massachusetts Institute of Technology License

Links and references

Website

https://www.mlabs.city/

Proposal Video

Not Avaliable Yet

Check back later during the Feedback & Selection period for the RFP that is proposal is applied to.

  • Total Milestones

    3

  • Total Budget

    $25,000 USD

  • Last Updated

    6 Dec 2024

Milestone 1 - Expressing and Solving Bayesian Networks in MeTTa

Description

In this milestone we will begin by crafting simple Bayesian networks and solving them with MeTTa. This will effectively form a “test suite” for our generating demo. Formulas and functions for solving Bayesian networks are well known and established.

Deliverables

A framework for solving the probabilities of unknown variables in a Bayesian network with simple Bayes networks that can serve as tests.

Budget

$12,500 USD

Success Criterion

1. The test examples are successfully solved by the provided Bayesian network solver 2. The code is clean and easy to understand, with many comments explaining the logic behind what is going on

Milestone 2 - Turn Inferred Bayesian Networks to MeTTa Atomspace

Description

MeTTa’s Atomspace is a powerful tool for enumerating relationships between objects. This makes it perfect for expressing the random variables of a Bayesian network and their causal dependencies. For this milestone we will write software to generate Bayesian networks via the Python library pgmpy and re-express them as MeTTa documents. These documents can then be used in conjunction with the library from milestone 1 to solve large scale networks.

Deliverables

Programmatically express an inferred Bayesian network in the MeTTa language.

Budget

$7,500 USD

Success Criterion

1. Complex Bayesian networks are produced by a Python program 2. The networks are re-expressed as MeTTa Atomspaces

Milestone 3 - Generate a Multitude of Networks for Use as Demos

Description

Finally we will use the tools listed above to generate automatically a number of networks that could be used as demos for MeTTa. Additionally the tools we create will be made in such a way that anyone can generate networks if they like.

Deliverables

A number of Bayesian networks generated for use as demos.

Budget

$5,000 USD

Success Criterion

1. The networks generated are interesting use cases, either solving interesting problems, or providing interesting solutions 2. The networks generated are good examples of MeTTa code 3. The library as a whole shows how MeTTa can be used to represent and process complex networks of information

Join the Discussion (0)

Expert Ratings

Reviews & Ratings

Group Expert Rating (Final)

Overall

4.6

  • Feasibility 4.7
  • Desirabilty 4.0
  • Usefulness 4.7

While reviewers rated this submission highly, ultimately the panel of experts selected another proposal for strategic reasons.

  • Expert Review 1

    Overall

    5.0

    • Compliance with RFP requirements 5.0
    • Solution details and team expertise 5.0
    • Value for money 5.0
    Love it

    Clear and well-scoped proposal showcasing MeTTa’s utility in representing and solving Bayesian networks using Atomspace. Strong focus on demonstrating practical applications of MeTTa’s nondeterministic and modular features. Milestones and deliverables are well-defined. Team shows credible experience in AI and functional programming. Promising demo.

  • Expert Review 2

    Overall

    4.0

    • Compliance with RFP requirements 4.0
    • Solution details and team expertise 3.0
    • Value for money 4.0

  • Expert Review 3

    Overall

    5.0

    • Compliance with RFP requirements 5.0
    • Solution details and team expertise 4.0
    • Value for money 5.0
    Representing Bayes Nets in MeTTa is a reasonable thing to experiment with and seems like a good educational demo

    It could even potentially be useful for something e.g. Rejuve.AI's longevity app is using a big Bayes Net on the back end I believe... some prior versions of MOSES have used BNs for their EDA modeling... BNs can easily be extended into causal graphs...

feedback_icon