Skip to contents

dW = eta X^T Y, a pure outer product with no error signal, which is why ||W|| grows without bound under repeated exposure.

Usage

morie_geron_hebb_rule(X, Y, eta = 0.1, W = NULL)

Arguments

X

Presynaptic activity (rows = presentations).

Y

Postsynaptic activity.

eta

Positive rate.

W

Optional starting weights.

Value

List with dW, W, norm_before, norm_after, warnings, estimate, n.

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"
#>