nmn 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nmn
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: a neuron that matter
|
5
5
|
Project-URL: Homepage, https://github.com/mlnomadpy/nmn
|
6
6
|
Project-URL: Bug Tracker, https://github.com/mlnomadpy/my_package/issues
|
@@ -30,6 +30,40 @@ Not the neurons we want, but the neurons we need
|
|
30
30
|
|
31
31
|
> Deep Learning 2.0: Artificial Neurons that Matter: Reject Correlation - Embrace Orthogonality
|
32
32
|
|
33
|
+
## Math
|
34
|
+
|
35
|
+
Yat-Product:
|
36
|
+
$$
|
37
|
+
ⵟ(\mathbf{w},\mathbf{x}) := \frac{\langle \mathbf{w}, \mathbf{x} \rangle^2}{\|\mathbf{w} - \mathbf{x}\|^2 + \epsilon} = \frac{ \|\mathbf{x}\|^2 \|\mathbf{w}\|^2 \cos^2 \theta}{\|\mathbf{w}\|^2 - 2\mathbf{w}^\top\mathbf{x} + \|\mathbf{x}\|^2 + \epsilon} = \frac{ \|\mathbf{x}\|^2 \|\mathbf{w}\|^2 \cos^2 \theta}{((\mathbf{x}-\mathbf{w})\cdot(\mathbf{x}-\mathbf{w})) + \epsilon}.
|
38
|
+
$$
|
39
|
+
|
40
|
+
**Explanation:**
|
41
|
+
- $\mathbf{w}$ is the weight vector, $\mathbf{x}$ is the input vector.
|
42
|
+
- $\langle \mathbf{w}, \mathbf{x} \rangle$ is the dot product between $\mathbf{w}$ and $\mathbf{x}$.
|
43
|
+
- $\|\mathbf{w} - \mathbf{x}\|^2$ is the squared Euclidean distance between $\mathbf{w}$ and $\mathbf{x}$.
|
44
|
+
- $\epsilon$ is a small constant for numerical stability.
|
45
|
+
- $\theta$ is the angle between $\mathbf{w}$ and $\mathbf{x}$.
|
46
|
+
|
47
|
+
This operation:
|
48
|
+
- **Numerator:** Squares the similarity (dot product) between $\mathbf{w}$ and $\mathbf{x}$, emphasizing strong alignments.
|
49
|
+
- **Denominator:** Penalizes large distances, so the response is high only when $\mathbf{w}$ and $\mathbf{x}$ are both similar in direction and close in space.
|
50
|
+
- **No activation needed:** The non-linearity is built into the operation itself, allowing the layer to learn complex, non-linear relationships without a separate activation function.
|
51
|
+
- **Geometric view:** The output is maximized when $\mathbf{w}$ and $\mathbf{x}$ are both large in norm, closely aligned (small $\theta$), and close together in Euclidean space.
|
52
|
+
|
53
|
+
Yat-Conv:
|
54
|
+
$$
|
55
|
+
ⵟ^*(\mathbf{W}, \mathbf{X}) := \frac{\langle \mathbf{w}, \mathbf{x} \rangle^2}{\|\mathbf{w} - \mathbf{x}\|^2 + \epsilon}
|
56
|
+
= \frac{\left(\sum_{i,j} w_{ij} x_{ij}\right)^2}{\sum_{i,j} (w_{ij} - x_{ij})^2 + \epsilon}
|
57
|
+
$$
|
58
|
+
|
59
|
+
Where:
|
60
|
+
- $\mathbf{W}$ and $\mathbf{X}$ are local patches (e.g., kernel and input patch in convolution)
|
61
|
+
- $w_{ij}$ and $x_{ij}$ are elements of the kernel and input patch, respectively
|
62
|
+
- $\epsilon$ is a small constant for numerical stability
|
63
|
+
|
64
|
+
This generalizes the Yat-product to convolutional (patch-wise) operations.
|
65
|
+
|
66
|
+
|
33
67
|
## Supported Frameworks & Tasks
|
34
68
|
|
35
69
|
### Flax (JAX)
|
@@ -5,7 +5,7 @@ nmn/nnx/nmn.py,sha256=hZDgMnGnSnBSqMbk-z7qUt8QsHEM-2o6CVWacXZfz3E,4870
|
|
5
5
|
nmn/nnx/yatconv.py,sha256=EZx6g-KcuwrPNEVPl8YdQ16ZXkly_m0XvYCIoWVwFc0,11742
|
6
6
|
nmn/tf/nmn.py,sha256=A-K65z9_aN62tAy12b0553nXxrzOofK1umGMRGJYjqw,6036
|
7
7
|
nmn/torch/nmn.py,sha256=qOFOlH4_pCOQr_4ctGpEbnW3DAGQotijDTKu5aIEXaE,4609
|
8
|
-
nmn-0.1.
|
9
|
-
nmn-0.1.
|
10
|
-
nmn-0.1.
|
11
|
-
nmn-0.1.
|
8
|
+
nmn-0.1.2.dist-info/METADATA,sha256=MxRIZIm8TIcvUAyW-5gYBu88g4hF-upahr3e2tfrWE8,5030
|
9
|
+
nmn-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
10
|
+
nmn-0.1.2.dist-info/licenses/LICENSE,sha256=kbZSd5WewnN2PSjvAC6DprP7pXx6NUNsnltmU2Mz1yA,34519
|
11
|
+
nmn-0.1.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|