Giter Site home page Giter Site logo

pradeeppathak9 / feagi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from feagi/feagi

1.0 1.0 0.0 77.97 MB

License: Apache License 2.0

Shell 0.29% JavaScript 13.07% Python 58.82% CSS 1.76% Makefile 0.05% HTML 25.79% Batchfile 0.06% Dockerfile 0.12% CMake 0.04%

feagi's Introduction

Hello and welcome to FEAGI!

  • For the most up to date information about our platform and approach, please reference our Wiki.
  • To get started using our platform please follow our Deployment Guide and start by following our tutorials
  • To learn more and get involved in the community, join our the FEAGI Slack workspace.

About FEAGI

The Framework for Evolutionary Artificial General Intelligence (FEAGI) is an open-source framework designed from the ground up as a brain-inspired platform to help develop artificial general intelligence. FEAGI has been under development since 2016 and has been publicly introduced in 2020 through "A Brain-Inspired Framework for Evolutionary Artificial General Intelligence", a journal paper published in IEEE Transactions on Neural Networks. Thus far, Neuraville has been the biggest contributor to this open-source software but we hope others would join in building an amazing solution.

FEAGI.org is dedicated to this project and intends to capture information about FEAGI applications, use-cases, tutorials, and deployment examples. To learn more and get involved, join the FEAGI Slack workspace.

Here are some key highlights of the framework differentiating it from others:

  • Inspired by the evolutionary process that developed the human brain over millions of years
  • Inspired by the maturity process that grows a human brain from a few cells within a human embryo and transforms it into an adult brain
  • Based on Spiking Neural Network concept
  • Developed using Python programming language
  • Event-based implementation making it suitable for low power deployments
  • Designed with a highly modular architecture making it easy to adapt to new hardware environments
  • Built-in tooling for powerful data visualization and functional insights

 

Deployment

For deployment instructions, please refer to the Deployment Guide.

 

Framework Overview

There are a few key aspects to FEAGI: the evolutionary aspect, the maturity aspect, and the brain-inspired anatomical aspects. The process begins with what we call a "seed genome." The seed genome is a densely coded data structure that captures the anatomical properties of the artificial brain, which can be used in conjunction with a set of growth algorithms to develop a fully functional artificial brain in the form of a neural network. The evolutionary aspect of the framework has the capability of using the seed genome as a starting point and evolving it through time, leading to a more capable and more functional artificial brain over generations.

evolutionary process The process of evolving an artificial brain.

We have decided to build integration with MongoDb as the repository for maintaining artificial genomes. We have also built an integration with InfluxDb as a repository for all the time-bound or sequential statistics that can be collected from the artificial brain. The design is highly modular, and other databases can be utilized as needed.

ecosystem An overview of the FEAGI ecosystem.

 

Monitoring

FEAGI has been designed with the capability of monitoring artificial brain activities through selective sampling. When sampling is enabled, select metrics are measured and stored in a time-series database, currently InfluxDb. From there, any monitoring software can be utilized to visualize the activities. We have chosen Grafana as our web-based software of choice to build insightful visualization, but this should not limit you from going with your favorite.

Similar to how fMRI helps us visualize the activities of a functioning brain, we have developed tools to help you gain insights into how the artificial brain operates.

Godot

Another powerful tool to help gain insights into how the artificial brain developed by FEAGI operates is the use of time-series dashboards that provide an EEG like visualization but much cooler!

Grafana

 

Device Integration

FEAGI acts as the brain and requires embodiment to interact with the environment. FEAGI utilizes an open-source universal messaging library called ZeroMQ to communicate with its peripheral devices.

 

Definitions

Here is a list of terminologies and common terms used throughout the documentation.

Artificial Brain (Robot Control System)

  • A system consisted of a combination of hardware and software working in harmony to process internally and externally generated information.

Connectome (Artificial Neural Network)

  • A centralized or distributed data structure representing the physical structure and properties of a working artificial brain consisted of artificial neurons and the synaptic connectivity in between them.

Genome (Neural Network Parameters File)

  • A data structure containing a set of properties needed to build a Connectome

Genome repository (Database of configuration files)

  • A distributed or centralized database housing a collection of genome instances

Gene (Parameter)

  • A portion of the genome capturing the properties of a particular section of the artificial brain

Cortical Area (Neural Network Layer)

  • A virtual 3D space consisted of a collection of neurons scattered across its virtual 3d space

Neurogenesis (Creation of a Neuron)

  • The process of reading neuron properties from the genome, creating an entry in the connectome, and having the associated with a particular cortical area

Synaptogenesis (Creation of neural network edges or connecting between neurons)

  • The process of reading rules of connectivity from a neuron to its neighbors from the genome and creating an entry in the connectome and associated with a neuron outlining the information about the neighboring neuron it is connected with

Input Processing Unit (IPU)

  • A software program designed to create an interface between an input device such as a microphone or camera and the connectome by translating the data packets received from the input device to a set of neuronal stimulation as part of the connectome

Output Processing Unit (OPU)

  • A software program designed to create an interface between the connectome and with an output device such as a speaker by translating the neuronal activities as part of a specific region of connectome to data packets so the output device can process it.

Neuron Processing Unit (NPU)

  • A software program designed to process all the operations associated with neuron firing across the entire connectome

feagi's People

Contributors

m-nadji-tehrani avatar kakcalu13 avatar erm156 avatar sabrasisler avatar amir-rasteg avatar dependabot[bot] avatar twchen88 avatar djsmith17 avatar jenz0512 avatar pradeeppathak9 avatar

Stargazers

Roman avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.