Explore how thinking of AI as an Associative Memory task simplifies and generalizes many of the desirable aspects of modern Machine Learning.
A demo created with Pluto.jl.
Math and inspiration taken from the Hopfield Networks is All You Need Blog
To use this interactive notebook, you'll have to use Julia >= 1.5. Thankfully, this language is rapidly growing in popularity and is designed to be simple to code in for scientists and mathematicians.
A 6 min video on how to do this here
- Download the latest version of Julia. Follow the default instructions for MacOS
- Open the newly installed
julia-1.5.x
. This should open a terminal with a julia instance. - Install Pluto.jl. Follow the instructions on that repo, or below:
- Press the
[
key in the terminal. You are now in the package environment. - Type
add Pluto
. This will take a moment to download. - Backspace out of the package manager
import Pluto
Pluto.run()
- Press the
This will open a Jupyter-like interface that will allow you to browse to notebook.jl
.
Julia has a longer start up time and is slow the first time you run a cell. This is because the code you write is immediately compiled, and this allows it to run at near C-speeds which is important for the interactivity.
The environment is self contained in the notebook. It will take a long time to startup.
If this is the first time you are running the notebook, it is possible that Julia is trying to download MNIST and is asking you for a prompt on the command line. Unfortunately, Pluto has an issue interpreting the STDIN in the workers.
To fix this, exit Pluto, and run the following within Julia:
import Pkg; Pkg.add("MLDatasets");
using MLDatasets
MNIST.traindata()
Start pluto again