TODO: upon week completion
- Explore "big" data-visualizers such as wandb.ai and tableau
- Visualizer
- Adjustable initial conditions
- Adjustable timestep in the visualizer
Day 18
Thursday July 1st, 2021
7hr
- Read more of wandb.ai's documentation
- Created prototype random_sampler, random_walker, and hill_climber
- Used wandb with the hill_climber to verify it worked properly
- Ran 100 instances of hill_climber and logged the results to wandb
- Most networks had a fitness close to zero, but one had as high as 0.811
Day 17
Wednesday June 30th, 2021
2hr
- Worked on the visualizer
- Adjusted parameter range for the visualizer
- Normalized the step axis so it matches what we do elsewhere
- Added axis labels to the network graph
- Fixed the graphs ignoring the 0th step
- Added ability to choose the initial conditions
Day 16
Tuesday June 29th, 2021
1hr
- Experimented with wandb.ai's sweep analysis which allowed me to:
- Create a parallel coordinates plot
- Analyze the results to generate a importance/correlation chart
Day 15
Monday June 28th, 2021
7hr
- Searched for time tracking methods (time-warrior seems to work well for me)
- Began looking into wandb.ai
- Read through documentation
- Viewed featured projects for direction
- Made a sample oscillation trial
- Link to project
TODO: upon week completion
- Wrap up visualizer
- Strip down Dr. Yoder's ctrnn python library to bare-bones
- Base ctrnn functionality
-
Evaluator
abstract class for creating different training metrics - abstract class for creating different learning methods
- Different learning algorithms
- Random sampling
- Random walker
- Random hillclimber
Day 14
Sunday June 27th, 2021
3hr
- Finished writing the
Oscillator
Evaluator
method with some tests - Began planning the abstract class to allow for different learning algorithms
Day 13
Friday June 25th, 2021
5hr
- Planned out structure for the
Evaluator
abstract class- Any class extending
Evaluator
would have 5 abstract methods:pre_transient
,step_transient
,pre_evaluation
,step_evaluation
, andgenerate_report
. By overriding these, we can configure different desired network behaviors, as opposed to oscillation
- Any class extending
- Began and completed the
Evaluator
abstract class - Planned and started
Oscillator
class, implementingEvaluator
Day 12
Thursday June 24th, 2021
4hr
- Created checklist for the ctrnn python library
- Started working on the ctrnn python library
- Completed the base ctrnn functionality
- Included some test cases for safety, but I plan to add more later
Day 11
Tuesday June 22th, 2021
4hr
- Fixed phase portrait's inverted y-axis
- Began implementing a timestep slider (still WIP)
- Began writing an interface for different fitness landscape paths
Day 10
Monday June 21th, 2021
8hr
- Implemented a path plot to the visualizer's phase portrait
- Used this plot to determine what was wrong with the vector field
- In the end it was me not taking into account the biases when converting from regular space to sigmoid space (phase portrait issue only)
- Skimmed a few of the papers related to the Microbial Genetic Algorithm paper
- Began taking a deeper look into Dr. Yoder's
ctrnn_bio_rl
code
TODO: upon week completion
- Provide a visualization of the library for demonstration purposes
- Write a PhasePortrait React component
- Replace live neuron view with phase portrait
- Begin reading about Microbial Genetic Algorithms
Day 9
Friday June 18th, 2021
4hr
- Read through The Microbial Genetic Algorithm multiple times to verify my understanding of the concept before putting it to use.
Day 8
Thursday June 17th, 2021
10hr
- Rewrote code to accept new external node activation array system
- Wrote a React component that renders a phase portrait using HTML canvas
- Made visualizer iterate over a 20x20 grid of starting activations, and graph their outputs from the ctrnn on the phase portrait
- Made the phase portrait update in realtime on changes to the parameters
Day 7
Wednesday June 16th, 2021
9hr
- Began rewriting ctrnn library to use an external node activation array
- This is preferable as it allows for an easy way to test what the outcome would be from all possible states.
- Began using this new external node activation array for the phase portrait
- Began working on the visuals of the phase portrait
- (now there is an empty space on the visualizer, perhaps we can put some other statistic/view there in the future)
Day 6
Monday June 14th, 2021
10hr
- Provided a realtime view of the oscillatory behavior in the visualizer
- Created a parameters panel that allows the user to configure the network
- Created a static view of the first seconds of simulation of the network
- Smooth continuous updates when the user alters a parameter
- Expose at a public url
cooperuser.dev/ctrnn-visualizer
- Secure with an SSL certificate (HTTPS protocol)
TODO: upon week completion
- Grasp a deeper understanding of the research project’s underlying concepts
- Develop a CTRNN library in JavaScript/TypeScript
- Provide a visualization of the library for demonstration purposes
Day 5
Friday June 11th, 2021
7hr
- Succeeded in having
ctrnn.js
mimic the behavior ofmadvn/CTRNN
- Network now allows for sinusoidal behavior instead of steady state
- Started integrating the graph/histogram for
ctrnn-visualizer
- Read/skimmed through the next 2 resources
Day 4
Thursday June 10th, 2021
5hr
- Read/skimmed through the first 5 resources supplied by Dr. Yoder
- Analyzed the
madvn/CTRNN
python library- Started using the readme's example as a model for
ctrnn.js
- Started using the readme's example as a model for
Day 3
Wednesday June 9th, 2021
7hr
- Organized journal to log my progress
- Time tracking is still done manually, I hope to make it more streamline
- Began brainstorming a
rl-ctrnn
library that runs on top ofctrnn.js
- Skimmed through some of the references Dr. Yoder linked to for the research
- Continued work on the interface for
ctrnn-visualizer
- I want to get a working version first that does supports basic non-reinforcement learning CTRNN models
- I plan to incorporate the oscillating weights RL model after this prototype
Day 2
Tuesday June 8th, 2021
6hr
- Looked into how "common" CTRNN libraries allow the user to interface
- Created a custom
ctrnn.js
library outline tailored to our needs- Not fully completed yet, and still needs more test cases
- Started work on
ctrnn-visualizer
to go along withctrnn.js
- Mainly waiting for the completion of the backend
Day 1
Monday June 7th, 2021
7hr
- Read through research proposal document
- Read documentation on existing CTRNN implementations in JS
- Decided to write a library from scratch as no existing libraries fit our needs without a decent amount of integration
- Began brainstorming different ways of displaying information to the user for the CTRNN visualizer
- Began brainstorming which aspects/parameters the user should be able to control in the visualizer