Articles
Explanations that are meant to last longer than a blog post. For now they are all about one subject, fuzzy inference systems that learn from data, and about the two Python libraries I maintain for them.
| Library | For | Built on |
|---|---|---|
| ANFIS Toolbox | classic ANFIS, small and medium problems | NumPy |
| highFIS | TSK systems for data with many features | PyTorch |
The idea in one page
A Takagi-Sugeno-Kang (TSK) fuzzy system is a set of rules such as
if temperature is high and humidity is low then output is a linear function of the inputs
Words like high and low are fuzzy sets: instead of a hard threshold, each one has a membership function that says how much a value belongs to it, from 0 to 1. A rule fires as strongly as its conditions are true, and the answer of the system is the average of what every rule proposes, weighted by how strongly each one fired:
Two things make this more than an expert system. The shapes of the fuzzy sets and the coefficients of the rules can be learned from data, like the weights of a neural network. And after training the model is still a list of rules a person can read.
Reading order
- How ANFIS works: the classic architecture, layer by layer
- A first model with ANFIS Toolbox: from data to a trained model
- Why fuzzy systems choke on many features: the problem highFIS exists to solve, with a demo you can run
- The highFIS model families: a map of what is in the library