Git Product home page Git Product logo

infinity's Introduction

Infinity: A Unified Solution of General Intelligence

This implementation is a proof-of-concept. It has all the functionalities that constitute a true system of general intelligence. The only disadvantage is the fact that it does not support parallel execution. Therefore, the main purpose is to provide a testing playground and help in understanding the behavior of this type of network.

Abstract. We start by proposing a fundamental principle of general intelligence. We then propose a special type of network precisely built around that principle. The network’s unified architecture employs a Hebbian-like prediction-based learning strategy. Predictions are the key trigger events that control every action in the network. The network is a sequence memory capable of identifying high-order spatial and temporal patterns. It elegantly solves the challenges of short-to-long term memory and working memory. Minimization is enforced on every level. At any point in time, the total number of elements in the network and their activity will be minimal. This enables high performance and general efficiency. By combining the power of combinatorics with sparse coding and population coding, astronomically large number of unique patterns can be represented. Long term potentiation and depression enable the network to directly control the expression of every single pattern individually. Thinking is a special emergent force in the network. Motor output is generated directly from the network’s internal model.

Get started

  • Read the whitepaper
  • Clone repo git clone [email protected]:rogic89/infinity.git
  • Download and unzip initial datasets into the infinity folder
  • Navigate into src folder
  • Run network node run
  • Check terminal for logs

Datasets

Inside the src/run.js is a list of initial datasets.

const datasource = '../datasets/mnist';
// const datasource = '../datasets/emnist-mnist';
// const datasource = '../datasets/emnist-fashion';
// const datasource = '../datasets/emnist-letters';
// const datasource = '../datasets/emnist-balanced';

Simply uncomment a line to run a different dataset.

Log

While the network is running, it will print a log after each timestep. Each log contains the current state of the network and all of its elements. By carefully analyzing the logs, timestep after timestep, it is possible to understand the entire learning process of the network.

/////////////////////////////////////// TIMESTEP 60000
/////////////////////////////////////// LABEL 1
================ NETWORK ==============
    Output/Average -> 6.62%
    Unpred/Average -> 0.17%
  Thinking/Average -> 0%
  Ncreated/Average -> 95.02%
   Ncreated/Unpred -> 1 - 0%
================ NODES ================ LAYER A2
            Output -> 30 - 156,157,159,185,187,212,241,243,268,297,322,324,353,378,379,407,409,434,462,463,488,518,519,544,574,575,600,628,629,631
       Unpredicted -> 0
          Thinking -> 0
   Output/Timestep -> 3.83%
================ LINKS ================
              Live -> 13.12k
           Deleted -> 31.71k - 70.73%
  Created/Timestep -> 0
  Deleted/Timestep -> 0
        Links/Pool -> 6.12
        Links/Node -> 16.74
          Sparsity -> 2.14%
 HighestPermanence -> Maximum
================ POOLS ================
              Live -> 2.14k
           Deleted -> 2.94k - 57.86%
  Created/Timestep -> 0
  Deleted/Timestep -> 0
        Pools/Node -> 2.73
          Sparsity -> 0.7%
    PermanentPools -> 2.04k - 95.2%

Score

After the network has completed processing the dataset, it will generate a score. The score does not accurately describe the performance or functionality of this type of network. The network learns as humans do. It observes temporal sequences and strengthens patterns that repeat many times in quick succession. Therefore, the datasets should be sorted by labels otherwise it may take longer for the network to stabilize. Learning is completely unsupervised and we are only trying to understand the inner workings of the network.

/////////////////////////////////////// DATASET
/////////////////////////////////////// SCORE
0 100
1 99
2 93
3 97
4 94
5 91
6 95
7 97
8 92
9 99
SCORE: 95.7
TIME-TOTAL: 29.957s

infinity's People

Contributors

rogic89 avatar

Stargazers

 avatar  avatar

Watchers

 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.