Example of "biological" learning for MNIST based on the paper Unsupervised Learning by Competing Hidden Units by D.Krotov and J.Hopfield. If you want to learn more about this work you can also check out this lecture from MIT's 6.S191 course.
install jupyter notebook and numpy, scipy, matplotlib.
> jupyter notebook
run Unsupervised_learning_algorithm_MNIST.ipynb
and observe weights.
(c) 2018 Dmitry Krotov -- Apache 2.0 License