Tsetlin machine

A Tsetlin machine is an artificial intelligence algorithm based on propositional logic.
Background
A Tsetlin machine is a form of learning automaton collective for learning patterns using propositional logic. Ole-Christoffer Granmo created[1] and gave the method its name after Michael Lvovitch Tsetlin, who invented the Tsetlin automaton[2] and worked on Tsetlin automata collectives and games.[3] Collectives of Tsetlin automata were originally constructed, implemented, and studied theoretically by Vadim Stefanuk in 1962.
The Tsetlin machine uses computationally simpler and more efficient primitives compared to more ordinary artificial neural networks.[4]
As of April 2018 it has shown promising results on a number of test sets.[5][6]
Types
- Original Tsetlin machine[4]
- Convolutional Tsetlin machine[7]
- Regression Tsetlin machine[8]
- Relational Tsetlin machine[9]
- Weighted Tsetlin machine[10][11]
- Arbitrarily deterministic Tsetlin machine[12]
- Parallel asynchronous Tsetlin machine[13]
- Coalesced multi-output Tsetlin machine[14]
- Tsetlin machine for contextual bandit problems[15]
- Tsetlin machine autoencoder[16]
- Tsetlin machine composites: plug-and-play collaboration between specialized Tsetlin machines[17][18]
- Contracting Tsetlin machine with absorbing automata[19]
- Graph Tsetlin machine[20]
Applications
- Keyword spotting[21]
- Aspect-based sentiment analysis[22]
- Word-sense disambiguation[23]
- Novelty detection[24]
- Intrusion detection[25]
- Semantic relation analysis[26]
- Image analysis[7]
- Text categorization[27]
- Fake news detection[28]
- Game playing[29]
- Batteryless sensing[30]
- Recommendation systems[31]
- Word embedding[16]
- ECG analysis[32]
- Edge computing[33]
- Bayesian network learning[34]
- Federated learning[35]
Original Tsetlin machine

| Description | Symbol |
|---|---|
| Number of binary inputs | |
| Number of classes | |
| Number of clauses per class | |
| Number of automaton states | |
| Automaton decision boundary | Template:Mvar |
| Automaton initialization state | |
| Feedback threshold | Template:Mvar |
| Learning sensitivity | Template:Mvar |
Tsetlin automaton

The Tsetlin automaton is the fundamental learning unit of the Tsetlin machine. It tackles the multi-armed bandit problem, learning the optimal action in an environment from penalties and rewards. Computationally, it can be seen as a finite-state machine (FSM) that changes its states based on the inputs. The FSM will generate its outputs based on the current states.
- A quintuple describes a two-action Tsetlin automaton:
- A Tsetlin automaton has states, here Template:Mvar:
- The FSM can be triggered by two input events
- The rules of state migration of the FSM are stated as
- It includes two output actions
- Which can be generated by the algorithm
Boolean input
A basic Tsetlin machine takes a vector of Template:Mvar Boolean features as input, to be classified into one of two classes, or . Together with their negated counterparts, , the features form a literal set .
Clause computing module
A Tsetlin machine pattern is formulated as a conjunctive clause , formed by ANDing a subset of the literal set:
For example, the clause consists of the literals and outputs Template:Mvar iff and .
Summation and thresholding module
The number of clauses employed is a user-configurable parameter Template:Mvar. Half of the clauses are assigned positive polarity. The other half is assigned negative polarity. The clause outputs, in turn, are combined into a classification decision through summation and thresholding using the unit step function :
In other words, classification is based on a majority vote, with the positive clauses voting for and the negative for . The classifier
for instance, captures the XOR-relation.
Feedback module
Type I feedback
| Action | Clause | 1 | 0 | ||
|---|---|---|---|---|---|
| Literal | 1 | 0 | 1 | 0 | |
| Include literal | P(reward) | Template:NA | Template:Val | Template:Val | |
| P(inaction) | Template:NA | ||||
| P(penalty) | Template:Val | Template:NA | |||
| Exclude literal | P(reward) | Template:Val | |||
| P(inaction) | |||||
| P(penalty) | Template:Val | Template:Val | Template:Val | ||
Type II feedback
| Action | Clause | 1 | 0 | ||
|---|---|---|---|---|---|
| Literal | 1 | 0 | 1 | 0 | |
| Include literal | P(reward) | Template:Val | Template:NA | Template:Val | Template:Val |
| P(inaction) | Template:Val | Template:NA | Template:Val | Template:Val | |
| P(penalty) | Template:Val | Template:NA | Template:Val | Template:Val | |
| Exclude literal | P(reward) | Template:Val | Template:Val | Template:Val | Template:Val |
| P(inaction) | Template:Val | Template:Val | Template:Val | Template:Val | |
| P(penalty) | Template:Val | Template:Val | Template:Val | Template:Val | |
Resource allocation
Resource allocation dynamics ensure that clauses distribute themselves across the frequent patterns, rather than missing some and overconcentrating on others. That is, for any input Template:Mvar, the probability of reinforcing a clause gradually drops to zero as the clause output sum
approaches a user-set target Template:Mvar for ( for ).
If a clause is not reinforced, it does not give feedback to its Tsetlin automata, and these are thus left unchanged. In the extreme, when the voting sum Template:Mvar equals or exceeds the target Template:Mvar (the Tsetlin Machine has successfully recognized the input Template:Mvar), no clauses are reinforced. Accordingly, they are free to learn new patterns, naturally balancing the pattern representation resources.
Implementations
Software
- Tsetlin Machine in C,[37][38] Python,[39][40] multithreaded Python,[41] CUDA,[42] Julia (programming language)[43]
- Convolutional Tsetlin Machine [44][7]
- Weighted Tsetlin Machine in C++[45]
Hardware
- One of the first FPGA-based hardware implementation[46][47] of the Tsetlin Machine on the Iris flower data set was developed by the μSystems (microSystems) Research Group at Newcastle University.
- They also presented the first ASIC[48][49] implementation of the Tsetlin Machine focusing on energy frugality, claiming it could deliver 10 trillion operation per Joule.[50] The ASIC design had demoed on DATA2020.[51]
Further reading
Books
- An Introduction to Tsetlin Machines [52]
Conferences
Videos
- Tsetlin Machine—A new paradigm for pervasive AI[51]
- Keyword Spotting Using Tsetlin Machines [56]
- IOLTS Presentation: Explainability and Dependability Analysis of Learning Automata based AI hardware [57]
- FPGA and uC co-design: Tsetlin Machine on Iris demo [46][47]
- The-Ruler-of-Tsetlin-Automaton [58]
- Interpretable clustering and dimension reduction with Tsetlin automata machine learning.[59]
- Predicting and explaining economic growth using real-time interpretable learning [60]
- Early detection of breast cancer from a simple blood test[61]
- Recent advances in Tsetlin Machines [62]
Papers
- On the Convergence of Tsetlin Machines for the XOR Operator [63]
- Learning Automata based Energy-efficient AI Hardware Design for IoT Applications [36]
- On the Convergence of Tsetlin Machines for the IDENTITY- and NOT Operators [64]
- The Tsetlin Machine - A Game Theoretic Bandit Driven Approach to Optimal Pattern Recognition with Propositional Logic [4]
Publications/news/articles
- A low-power AI alternative to neural networks [50]
- Can a Norwegian invention revolutionise artificial intelligence?[65]
References
- ↑ Template:Cite web
- ↑ Template:Cite journal"
- ↑ Template:Cite journal
- ↑ 4.0 4.1 4.2 Template:Cite arXiv
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ 7.0 7.1 7.2 Template:Cite arXiv
- ↑ Template:Cite journal"
- ↑ Template:Cite journal
- ↑ Template:Cite arXiv
- ↑ Template:Cite journal"
- ↑ Template:Cite journal
- ↑ Template:Cite conference
- ↑ Template:Cite arXiv
- ↑ Template:Cite conference
- ↑ 16.0 16.1 Template:Cite arXiv
- ↑ Template:Cite arXiv
- ↑ Template:Citation
- ↑ Template:Cite arXiv
- ↑ Template:Citation
- ↑ Template:Cite journal
- ↑ Template:Cite conference
- ↑ Template:Cite conference
- ↑ Template:Cite journal
- ↑ Template:Cite conference
- ↑ Template:Cite journal
- ↑ Template:Cite journal"
- ↑ Template:Cite conference
- ↑ Template:Cite conference
- ↑ Template:Cite conference
- ↑ Template:Cite journal
- ↑ Template:Cite arXiv
- ↑ Template:Cite journal
- ↑ Template:Cite arXiv
- ↑ Template:Cite conference
- ↑ 36.0 36.1 Template:Cite journal
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Citation
- ↑ Template:Cite web
- ↑ Template:Citation
- ↑ 46.0 46.1 Template:Citation
- ↑ 47.0 47.1 Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ 50.0 50.1 Template:Cite web
- ↑ 51.0 51.1 Template:Cite web
- ↑ Template:Cite book
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite journal
- ↑ Template:Cite journal
- ↑ Template:Cite web