Tsetlin machine

From testwiki
Jump to navigation Jump to search

Template:Short description

A simple block diagram of the Tsetlin machine

A Tsetlin machine is an artificial intelligence algorithm based on propositional logic.

Template:Machine learning bar

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

Original Tsetlin machine

A detailed block diagram of the original Tsetlin Machine
A detailed block diagram of the original Tsetlin machine
List of hyperparameters[36]
Description Symbol
Number of binary inputs NInputs
Number of classes NClasses
Number of clauses per class NClauses
Number of automaton states 2n
Automaton decision boundary Template:Mvar
Automaton initialization state Init
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:

{Φ_,α_,β_,F(,),G()}.

Φ_={ϕ1,ϕ2,ϕ3,ϕ4,ϕ5,ϕ6}

  • The FSM can be triggered by two input events

β_={βPenalty,βReward}

  • The rules of state migration of the FSM are stated as

F(ϕu,βv)={ϕu+1,if1u3andv=Penaltyϕu1,if4u6andv=Penaltyϕu1,if1<u3andv=Rewardϕu+1,if4u<6andv=Rewardϕu,otherwise.

  • It includes two output actions

α_={α1,α2}

  • Which can be generated by the algorithm

G(ϕu)={α1,if1u3α2,if4u6.

Boolean input

A basic Tsetlin machine takes a vector X=[x1,,xo] of Template:Mvar Boolean features as input, to be classified into one of two classes, y=0 or y=1. Together with their negated counterparts, x¯k=¬xk=1xk, the features form a literal set L={x1,,xo,x¯1,,x¯o}.

Clause computing module

A Tsetlin machine pattern is formulated as a conjunctive clause Cj, formed by ANDing a subset LjL of the literal set:

Template:In5Cj(X)=lLjl=lLjl.

For example, the clause Cj(X)=x1¬x2=x1x¯2 consists of the literals Lj={x1,x¯2} and outputs Template:Mvar iff x1=1 and x2=0.

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 u(v)=1ifv0else0:

y^=u(j=1n/2Cj+(X)j=1n/2Cj(X)). In other words, classification is based on a majority vote, with the positive clauses voting for y=1 and the negative for y=0. The classifier

Template:In5y^=u(x1x¯2+x¯1x2x1x2x¯1x¯2),

for instance, captures the XOR-relation.

Feedback module

Type I feedback

Type I Feedback
Action Clause 1 0
Literal 1 0 1 0
Include literal P(reward) s1s Template:NA Template:Val Template:Val
P(inaction) 1s Template:NA s1s s1s
P(penalty) Template:Val Template:NA 1s 1s
Exclude literal P(reward) Template:Val 1s 1s 1s
P(inaction) 1s s1s s1s s1s
P(penalty) s1s Template:Val Template:Val Template:Val

Type II feedback

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

v=j=1n/2Cj+(X)j=1n/2Cj(X) approaches a user-set target Template:Mvar for y=1 (T for y=0).

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

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

  • International Symposium on the Tsetlin Machine (ISTM) [53][54][55]

Videos

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

  1. Template:Cite web
  2. Template:Cite journal"
  3. Template:Cite journal
  4. 4.0 4.1 4.2 Template:Cite arXiv
  5. Template:Cite web
  6. Template:Cite web
  7. 7.0 7.1 7.2 Template:Cite arXiv
  8. Template:Cite journal"
  9. Template:Cite journal
  10. Template:Cite arXiv
  11. Template:Cite journal"
  12. Template:Cite journal
  13. Template:Cite conference
  14. Template:Cite arXiv
  15. Template:Cite conference
  16. 16.0 16.1 Template:Cite arXiv
  17. Template:Cite arXiv
  18. Template:Citation
  19. Template:Cite arXiv
  20. Template:Citation
  21. Template:Cite journal
  22. Template:Cite conference
  23. Template:Cite conference
  24. Template:Cite journal
  25. Template:Cite conference
  26. Template:Cite journal
  27. Template:Cite journal"
  28. Template:Cite conference
  29. Template:Cite conference
  30. Template:Cite conference
  31. Template:Cite journal
  32. Template:Cite arXiv
  33. Template:Cite journal
  34. Template:Cite arXiv
  35. Template:Cite conference
  36. 36.0 36.1 Template:Cite journal
  37. Template:Citation
  38. Template:Citation
  39. Template:Citation
  40. Template:Citation
  41. Template:Citation
  42. Template:Citation
  43. Template:Citation
  44. Template:Cite web
  45. Template:Citation
  46. 46.0 46.1 Template:Citation
  47. 47.0 47.1 Template:Cite web
  48. Template:Cite web
  49. Template:Cite web
  50. 50.0 50.1 Template:Cite web
  51. 51.0 51.1 Template:Cite web
  52. Template:Cite book
  53. Template:Cite web
  54. Template:Cite web
  55. Template:Cite web
  56. Template:Cite web
  57. Template:Cite web
  58. Template:Cite web
  59. Template:Cite web
  60. Template:Cite web
  61. Template:Cite web
  62. Template:Cite web
  63. Template:Cite journal
  64. Template:Cite journal
  65. Template:Cite web