|
|
---
|
|
|
license: mit
|
|
|
tags:
|
|
|
- pytorch
|
|
|
- safetensors
|
|
|
- threshold-logic
|
|
|
- neuromorphic
|
|
|
---
|
|
|
|
|
|
# threshold-majority
|
|
|
|
|
|
Strict majority detector for 8 inputs. Fires when more than half are active.
|
|
|
|
|
|
## Circuit
|
|
|
|
|
|
```
|
|
|
xβ xβ xβ xβ xβ xβ
xβ xβ
|
|
|
β β β β β β β β
|
|
|
ββββ΄βββ΄βββ΄βββΌβββ΄βββ΄βββ΄βββ
|
|
|
βΌ
|
|
|
βββββββββββ
|
|
|
β w: all 1β
|
|
|
β b: -5 β
|
|
|
βββββββββββ
|
|
|
β
|
|
|
βΌ
|
|
|
HW β₯ 5?
|
|
|
```
|
|
|
|
|
|
## Mechanism
|
|
|
|
|
|
- Sum = (number of 1s) - 5
|
|
|
- Fires when Hamming weight β₯ 5 (more 1s than 0s)
|
|
|
|
|
|
A tie (4-4) doesn't count as majority. You need strictly more than half.
|
|
|
|
|
|
Functionally identical to threshold-5outof8.
|
|
|
|
|
|
## Duality with Minority
|
|
|
|
|
|
| Circuit | Weights | Bias | Fires when |
|
|
|
|---------|---------|------|------------|
|
|
|
| **Majority** | all +1 | -5 | HW β₯ 5 |
|
|
|
| Minority | all -1 | +3 | HW β€ 3 |
|
|
|
|
|
|
Majority: "enough votes to pass"
|
|
|
Minority: "not enough votes to block"
|
|
|
|
|
|
These are not complements (they don't sum to 1). The gap at HW=4 belongs to neither.
|
|
|
|
|
|
## Parameters
|
|
|
|
|
|
| | |
|
|
|
|---|---|
|
|
|
| Weights | [1, 1, 1, 1, 1, 1, 1, 1] |
|
|
|
| Bias | -5 |
|
|
|
| Total | 9 parameters |
|
|
|
|
|
|
## Optimality
|
|
|
|
|
|
Exhaustive enumeration of all 27,298,155 weight configurations at magnitudes 0-13 confirms this circuit is **already at minimum magnitude (13)**. There is exactly one valid configuration at magnitude 13, and no valid configurations exist below it.
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
```python
|
|
|
from safetensors.torch import load_file
|
|
|
import torch
|
|
|
|
|
|
w = load_file('model.safetensors')
|
|
|
|
|
|
def majority(bits):
|
|
|
inputs = torch.tensor([float(b) for b in bits])
|
|
|
return int((inputs * w['weight']).sum() + w['bias'] >= 0)
|
|
|
```
|
|
|
|
|
|
## Files
|
|
|
|
|
|
```
|
|
|
threshold-majority/
|
|
|
βββ model.safetensors
|
|
|
βββ model.py
|
|
|
βββ config.json
|
|
|
βββ README.md
|
|
|
```
|
|
|
|
|
|
## License
|
|
|
|
|
|
MIT
|
|
|
|