Getting Random... With Slime Mold?!
Brad Edwards
Platform and SecOps Architect | Full-Stack Dev | Ex-RCMP | MSc CS (AI) Student | OSS Maintainer | Leader Who Ships
This week:
Reservoir Computing
Busy times, so I missed a week. But hopefully this makes up for it. I took the time to do a deep dive into reservoir computing, a machine learning technique. Writing that piece took a while, so apologies for the delays! A much shorter version is included below, so have a read and if it grabs your interest, check out the essay.
I ran into the concept of reservoir computing a while ago and it blew my mind. Exploiting randomness to process signals for predictions just sounds like it should not work. But it does. And where do we go for sources of randomness, you ask? Slime mold! Obvs.
Retrieval Augmented Generation
LlamaIndex seems to be everywhere right now, the same way LangChain was a couple months ago (not that it's gone anywhere!). It is a framework for creating retrieval augmented generation applications, basically making your LLM apps hallucinate less and giving them access to new information without fine-tuning. I am just starting to hack on LlamaIndex, and it seems really good at first blush. But more important than the specific framework is that solid machine learning frameworks keep emerging. Getting battle-tested frameworks and patterns will make implementation easier for everyone.
The Sequence
If you want to keep up on what is happening in AI, I recommend The Sequence newsletter. The free version is good, the paid version is better, and the content is helpful (I have no affiliation with these folks, I just like their work).
领英推荐
What is Reservoir Computing?
Reservoir computing uses randomly generated recurrent neural networks called reservoirs to process sequential data. Inputs are projected into a high dimensional space that stores temporal information. This leverages the power of recurrent networks for modeling time series.
Only a simple linear readout layer is trained on the reservoir states. By keeping the reservoir fixed, it avoids issues training recurrent networks like vanishing gradients. The reservoir provides the temporal processing, the readout interprets the states.
Why Use Reservoir Computing?
Reservoirs act as short-term memory, extracting meaningful features from streams of data over time. They have been applied to diverse tasks like predicting chaotic systems, forecasting weather, robotic control, and speech recognition.
Reservoir computing matches or exceeds state-of-the-art techniques but needs far less training data and time. It provides a simple yet powerful solution for working with temporal data.
Unique Implementations
Reservoir computing has been implemented in software toolboxes for flexibility and hardware like IBM's TrueNorth neuromorphic chip for acceleration.
Some unique reservoirs leverage physical phenomena - reservoirs have been built using water ripples and even slime mold! This demonstrates the broad potential of reservoir computing and the masterful ability of some researchers to convince their departments to fund anything. ??
What's Next for Reservoir Computing?
Ongoing advances promise to expand reservoir computing capabilities. Simpler models without explicit neural network reservoirs may enable faster training. Extensions like hierarchical reservoirs and new training techniques are enhancing performance.