CameronBeebe / Cybernetics

An implementation of the game theoretic foundation of cybernetic systems theory as outlined by W. R. Ashby.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An implementation of the game theoretic foundation of cybernetic systems theory as outlined by W. R. Ashby.

Cybernetics, as outlined by Ashby, provides a foundational framework to understand the effectiveness of common machine learning techniques. In particular, connectionist artificial neural networks can be understood as cybernetic regulators which are error-controlled, or which learn through reinforcement.

At the moment there is just basic functionality of a toy model to illustrate the basic concepts, it is limited in its applicability (and performance).

The ultimate goal of this package is to provide a common class structure for regulatory objects.

TO DO:

  1. Ability to input game, not just game_size (so can compare multiple runs on same game).

DONE, NEEDS LOGIC CHECK / TEST in train.py AND DOCSTRING UPDATED

  1. Game analysis: check goals against random game composition (i.e. calculate availability of success to compare to regulator performance)

STARTED TESTING.

2a. Create visualization for performance and comparison to potential performance.

  1. Clean up verbosity for notebook (inline accuracy meter?)

  2. Create options for different forms of reinforcement.

  3. Add normalization function to urn (value in regulator dictionary)?

  4. Prototype class structures for regulator objects in general.

BEGAN

  1. Separate classes into separate .py file

  2. Parallelize: put logic into train(?) file for both MPI and pyspark

  3. Integrate everything into classes, remove old files

  4. Add quality control: check to make sure something in list of goals are in game so trivially unproductive games are not run. Be able to accept a list of goals

  5. Create (at least in MPI version) a per-rank goal functionality. That is, each rank has its own goal, and depending on user input the functionality checks for a rank that has trained for that goal and uses that rank's regulator to spit out a response.

  6. Create a method that just spits out one single action in response to an environmental disturbance (row). I.e. just one train forward pass.

About

An implementation of the game theoretic foundation of cybernetic systems theory as outlined by W. R. Ashby.

License:MIT License


Languages

Language:Python 100.0%