Skip to content

[CLAIMED Bounty] - Extend from B&W to full grayscale MNIST #12

@mi3law

Description

@mi3law

Our weightless neural networks framework running on MNIST already achieves great results in terms of training efficiency-- we can get 60-85%+ accuracy from training on <1000 samples (MNIST is usually 60k training samples) with vastly smaller agents than deep learning / CNNs, with the variance due to the effect of different neural connection strategies. Try it at mnist.aolabs.ai or load up the app locally through the repo with Streamlit or Docker.

To get these results, we're also down-sampling MNIST from 255-grayscale to black-&-white, eliminating all 0-255 grayscale pixels values above >200, see the relevant code in our MNIST application here.

Now it is time to run our application against MNIST in full-grayscale to see how that affects training speed and accuracy in pursuit of our mission for more efficient, continuously learning AI. Since the code behind our MNIST efforts is open source, we're opening up this project as a bounty to our community-- we'll pay whoever builds this and recognize them as a contributor!

Bounty Rewards and Bonuses

$500 - extending this app to work on full 255-grayscale MNIST by Oct 27th

Project Details & Scope

What does this project entail? To help you scope it out and get started, here are the main changes to the existing code that you'd need to think through, make, and test as part of the work here:

  • Suppress/disable the down_sample_item function - MNIST images are digitized pictures of single handwritten digits, 28 x 28 pixels in size, with each pixel value somewhere between 0, which represents white, and 255, which represents black, and we were down sampling these values to make it B&W.
  • Instead of down sampling, write a new bitmap-to-binary encoding function to transform the 8-bit pixel values to 8 binary digits - AO agents take in binary values, so 8 binary neurons per pixel will encode for all the information in MNIST.
  • Change the AO agent architecture accordingly - the MNIST agent is currently configured only with 28x28 (784) binary neurons in the input and inner state layers, see the current architecture here; this needs to be changed to 28x28 channels with 8 binary neurons per channel to encode for each pixel's values, similar to our ARC-AGI agent architecture which uses 30x30 channels with 4 neurons each to encode for all the different colors present in ARC (note: you would still use 4 binary neurons for the arch_z output layer, since 4 bits can encode 16 values and there are only 10 output classes in MNIST (0-9)).
  • Change the INPUT to the AO agent through the application (here and here and here) to match the new larger grayscale input.
  • Modify the arr_to_img function to work with grayscale so that we can visually inspect the agents' binary responses as grayscale images in the same way we can visually inspect the B&W images in the current MNIST app.
  • Make sure it all works!

Ready?

Should you work on this project, the AO team is here to support you throughout your development (addressing questions, providing more context, even pair-programming with you, etc.)-- say hi on discord or meet with our founder Ali here.

To take on this project, please comment on this issue or email eng@aolabs.ai.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions