dW = eta X^T Y, a pure outer product with no error signal, which is why ||W|| grows without bound under repeated exposure.
Examples
V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_hebb_rule(V, V)
#> $dW
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#> [1,] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
#> [2,] 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
#> [3,] 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4
#> [4,] 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2
#> [5,] 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
#> [6,] 0.6 1.2 1.8 2.4 3.0 3.6 4.2 4.8
#> [7,] 0.7 1.4 2.1 2.8 3.5 4.2 4.9 5.6
#> [8,] 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
#>
#> $W
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#> [1,] 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
#> [2,] 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
#> [3,] 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4
#> [4,] 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2
#> [5,] 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
#> [6,] 0.6 1.2 1.8 2.4 3.0 3.6 4.2 4.8
#> [7,] 0.7 1.4 2.1 2.8 3.5 4.2 4.9 5.6
#> [8,] 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
#>
#> $norm_before
#> [1] 0
#>
#> $norm_after
#> [1] 20.4
#>
#> $warnings
#> [1] "Hebbian learning has no stabilising term: repeated exposure grows ||W|| without bound."
#>
#> $estimate
#> [1] 20.4
#>
#> $n
#> [1] 1
#>
#> $method
#> [1] "Hebbian weight update"
#>
