{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/the-convolutional-tsetlin-machine","title":"The Convolutional Tsetlin Machine","arxiv_id":"1905.09688","date":"2019-05-23","proceeding":"arXiv 2019 12","authors":["Ole-Christoffer Granmo","Sondre Glimsdal","Lei Jiao","Morten Goodwin","Christian W. Omlin","Geir Thore Berge"],"abstract":"Convolutional neural networks (CNNs) have obtained astounding successes for important pattern recognition tasks, but they suffer from high computational complexity and the lack of interpretability. The recent Tsetlin Machine (TM) attempts to address this lack by using easy-to-interpret conjunctive clauses in propositional logic to solve complex pattern recognition problems. The TM provides competitive accuracy in several benchmarks, while keeping the important property of interpretability. It further facilitates hardware-near implementation since inputs, patterns, and outputs are expressed as bits, while recognition and learning rely on straightforward bit manipulation. In this paper, we exploit the TM paradigm by introducing the Convolutional Tsetlin Machine (CTM), as an interpretable alternative to CNNs. Whereas the TM categorizes an image by employing each clause once to the whole image, the CTM uses each clause as a convolution filter. That is, a clause is evaluated multiple times, once per image patch taking part in the convolution. To make the clauses location-aware, each patch is further augmented with its coordinates within the image. The output of a convolution clause is obtained simply by ORing the outcome of evaluating the clause on each patch. In the learning phase of the TM, clauses that evaluate to 1 are contrasted against the input. For the CTM, we instead contrast against one of the patches, randomly selected among the patches that made the clause evaluate to 1. Accordingly, the standard Type I and Type II feedback of the classic TM can be employed directly, without further modification. The CTM obtains a peak test accuracy of 99.4% on MNIST, 96.31% on Kuzushiji-MNIST, 91.5% on Fashion-MNIST, and 100.0% on the 2D Noisy XOR Problem, which is competitive with results reported for simple 4-layer CNNs, BinaryConnect, Logistic Circuits and an FPGA-accelerated Binary CNN.","url_abs":"https://arxiv.org/abs/1905.09688v5","url_pdf":"https://arxiv.org/pdf/1905.09688v5.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/convolutional-tsetlin-machine","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/pyTsetlinMachineParallel","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/PyTsetlinMachineCUDA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/TsetlinMachine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/convolutional-tsetlin-machine-tutorial","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/pyTsetlinMachine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/cair/pyTsetlinMachineMT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/ckinateder/pytsetlinmachineparallel","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"the-convolutional-tsetlin-machine","repo_url":"https://github.com/zdx3578/pyTsetlinMachine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"image-classification","task_name":"Image Classification"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-classification-on-fashion-mnist","task":"Image Classification","dataset":"Fashion-MNIST","model":"CTM-8000 (Convolutional Tsetlin Machine)","rank_in_archive_order":16,"of":34,"metrics":{"Accuracy":"91.5","Percentage error":"8.5","Trainable Parameters":"527250"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-fashion-mnist","task":"Image Classification","dataset":"Fashion-MNIST","model":"CTM-250 (Convolutional Tsetlin Machine)","rank_in_archive_order":22,"of":34,"metrics":{"Accuracy":"88.25","Percentage error":"11.75","Trainable Parameters":"31750"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-kuzushiji-mnist","task":"Image Classification","dataset":"Kuzushiji-MNIST","model":"Convolutional Tsetlin Machine","rank_in_archive_order":21,"of":26,"metrics":{"Accuracy":"96.3"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-mnist","task":"Image Classification","dataset":"MNIST","model":"Convolutional Tsetlin Machine","rank_in_archive_order":41,"of":81,"metrics":{"Accuracy":"99.4","Percentage error":"0.6"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.09688","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.09688"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/PyTsetlinMachineCUDA","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/convolutional-tsetlin-machine-tutorial","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/pyTsetlinMachineParallel","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/TsetlinMachine","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/pyTsetlinMachine","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ckinateder/pytsetlinmachineparallel","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zdx3578/pyTsetlinMachine","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/pyTsetlinMachineMT","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cair/convolutional-tsetlin-machine","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":1},"by_repo_kind":{"listed":{"samples":1,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9a3def89dbcc5f5b","entry":"clip_bits","repo":"zdx3578/pyTsetlinMachine","repo_kind":"listed","path":"pyTsetlinMachine/tm.py","file_url":"https://github.com/zdx3578/pyTsetlinMachine/blob/HEAD/pyTsetlinMachine/tm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a3def89dbcc5f5b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}