Questions about Tsetlin Machine

Newcastle University

  Source Code

Question 1: Different ways to Booleanize

Method 1: Single Thresholds


                    >>> a_bool = a > threshold
                    

Method 2: Multiple Thresholds

                            flowchart TD
                                A["`Lsepal`"];
                                B["`Wsepal`"];
                                C["`Lpepal`"];
                                D["`Wpepal`"];
                                E["[1, 0, 0]"];
                                F["[0, 1, 0]"];
                                G["[0, 0, 1]"];
                                H["[0, 0, 0]"];
                                A -- 5.1 --> E;
                                B -- 3.5 --> F;
                                C -- 1.4 --> G;
                                D -- 0.2 --> H;
                        

Method 3: Normalize to [0, 255] 8-bit


                    >>> x = (x - x.mean()) / x.std()
                    >>> x_norm = int(x * 255).astype(np.uint8)
                    

Question 2: State Increment +1 or +0.2

Method 1: Discrete State


                    >>> def reward(self):
                            if self.state < self.N_state:
                                self.state += 1

                    >>> def penalty(self):
                            if self.state > 1:
                                self.state -= 1
                    

Method 2: Continuous State


                    >>> def reward(self):
                            if self.state < self.N_state:
                                self.state += 0.9
                    >>> def penalty(self):
                            if self.state > 0:
                                self.state -= 0.1
                    

Question 3: Pairwise Learning

Why does the pairwise learning only choose another ONE random class?

Can we feedback on all classes?

Thanks

  Source Code