Skip to content
Ogma Intelligent Systems Corp
Menu
  • Technology Description
  • OgmaNeo
  • Press
  • Contact
  • GitHub
  • YouTube
Menu

OgmaNeo playing Atari Pong from Pixels

Posted on October 6, 2019October 18, 2024 by Eric Laukien

Hello all,

It’s time for us to finally show off our Atari Pong demo! Our Sparse Predictive Hierarchies (SPH, as implemented in OgmaNeo) are now able to play Atari games. Our first test is Pong, a test of reinforcement learning from pixel data.

If you need a refresher on how the prediction-only version of OgmaNeo2 works (upon which the following is based), see this slideshow presentation.

Our agent has a capability setting it apart from regular deep learning (DL) approaches: It is fast enough to run in real-time (60fps) with learning enabled on a single CPU core of a Raspberry Pi 4. It owes this capability primarily to the usage of online/incremental learning and high levels of sparsity (active ratio ~6%).

The agent we used to accomplish this uses the “routing-based method” of reinforcement learning described in this post.

A randomly selected game of Pong, our agent is the one on the right.

Some information about the agent used:

  • Image is grayscale, downsampled and cropped to 64×64.
  • Image pre-encoder: Random projection followed by inhibition. Size: 10x10x16 neurons (WxHxColSize). Connectivity radius: 5
  • 2 layers of encoders, trained to minimize reconstruction error. Size: 5x5x16
  • Routed network and encoders have same connectivity radius, 5
  • 3 layers total, 2400 cells, about 1 million synapses

Note: The data gathered here was taken from an agent trained on a regular desktop CPU (still single core). We know it runs and learns fine on a Pi from previous runs as mentioned previously, but data was gathered from the desktop version because it was more convenient to do so. If people are interested, we can get total runtimes from a version run entirely on the Pi.

Here is a graph of reward vs episodes:

The graph has a bit of a strange shape, we are looking into why this is.

We are still in the process of cleaning up the code for full release, but if you would like to try it early, you can checkout the branch Cire_CPU_Route_SARSA_Reverse_ReconEnc from our development fork.

Until next time!

Share this:

  • Share on X (Opens in new window) X
  • Share on Facebook (Opens in new window) Facebook

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • AOgmaNeo Lorcan Mini robot demo + CLOgmaNeo
  • Unsupervised Behavioral Learning (UBL) revisited
  • Real2Sim with AOgmaNeo
  • Tutorial: RL with OgmaNeo2
  • Learning to walk (faster) with OgmaNeo2

Recent Comments

  • Eric Laukien on A Tutorial on OgmaNeo2
  • Eduardo on A Tutorial on OgmaNeo2
  • Eric Laukien on Beating Atari Pong on a Raspberry Pi without Backpropagation
  • Joseph Yacura on Beating Atari Pong on a Raspberry Pi without Backpropagation
  • Eric Laukien on Beating Atari Pong on a Raspberry Pi without Backpropagation

Archives

  • June 2022
  • July 2021
  • May 2021
  • June 2020
  • May 2020
  • March 2020
  • October 2019
  • August 2019
  • June 2019
  • February 2018
  • July 2017
  • June 2017
  • March 2017
  • December 2016
  • November 2016

Categories

  • OgmaNeo
  • Press

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy
© 2026 Ogma Intelligent Systems Corp | Powered by Minimalist Blog WordPress Theme
 

Loading Comments...