CharlesCNorton
Add canalizing function threshold circuit
1cc3b6f
---
license: mit
tags:
- pytorch
- safetensors
- threshold-logic
- neuromorphic
- canalizing
---
# threshold-canalizing
Canalizing Boolean function where one input can override all others.
## Function
y = NOT(x0) AND (x1 OR x2)
**Canalizing property:** If x0 = 1, then y = 0 regardless of x1 and x2.
- Canalizing input: x0
- Canalizing value: 1
- Canalized output: 0
When x0 = 0, the function reduces to y = x1 OR x2.
## Truth Table
| x2 | x1 | x0 | y | Note |
|----|----|----|---|------|
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 1 | 0 | x0 canalizes |
| 0 | 1 | 0 | **1** | |
| 0 | 1 | 1 | 0 | x0 canalizes |
| 1 | 0 | 0 | **1** | |
| 1 | 0 | 1 | 0 | x0 canalizes |
| 1 | 1 | 0 | **1** | |
| 1 | 1 | 1 | 0 | x0 canalizes |
## Architecture
Not linearly separable; requires 2 layers:
```
x2 x1 x0
β”‚ β”‚ β”‚
β”‚ β”‚ └──────┐
β”‚ β”‚ β”‚
└────┴───┐ β”‚
β”‚ β”‚
β–Ό β–Ό
β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”
β”‚ OR β”‚ β”‚ NOT β”‚ Layer 1
β”‚x1,x2β”‚ β”‚ x0 β”‚
β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β””β”€β”€β”€β”¬β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”
β”‚ AND β”‚ Layer 2
β””β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
y
```
## Parameters
| | |
|---|---|
| Inputs | 3 |
| Outputs | 1 |
| Neurons | 3 |
| Layers | 2 |
| Parameters | 11 |
| Magnitude | 8 |
## Biological Significance
Canalizing functions are important in gene regulatory networks. A canalizing gene can suppress or activate a developmental pathway regardless of other genes' states, providing robustness to genetic variation.
## Usage
```python
from safetensors.torch import load_file
w = load_file('model.safetensors')
# When x0=1 (canalizing value), output is always 0
# When x0=0, output is x1 OR x2
```
## License
MIT