OpenCog

Hopfield Network Testing Scenarios

From OpenCog

In these graphs the gray lines indicate individual patterns, the cyan line is zero/baseline, and the red is the mean.

Contents

Sequential imprinting

Cue pattern == imprinted pattern

This compares the two situations:

  1. Straight retrieval of the pattern imprinted (i.e. cue pattern is the same as that used for imprinting). Resetting the network between each pattern. This should ideally give perfect performance.
  2. Straight retrieval of the pattern imprinted without resetting the network. Should take longer for new patterns to update the links of the network.

The results show that the resulting performance is essentially the same:

With reset between imprints:

image: results_scaled_n_5_d_1.0_orig_reset.png

Without reset:

image: results_scaled_n_5_d_1.0_orig_noreset.png

Similar results are obtained other sizes (except size 10x10, discussed separately).

Singular mutated cue pattern

Retrieval using a mutated cue pattern, but only mutated once at the beginning of imprinting. Some sufficiently similar cue patterns should increase in performance, will others will remain poor despite further imprinting.

Command line:

./hopfield -n 5 -d 1.0 -a results_n_5_d_1.0_ -f 5 -z 5 -e 0.2 -c 10 -s 10 -D -g 0.3 -p 30 -E

image: results_scaled_n_5_d_1.0_mutant_noregen.png

Another way of viewing the results is to look at the distribution of final similarity at the last cycle of imprinting each pattern:

image: perf_dist_scaled_n_5_mutant_noregen.png

Multiple mutated cue patterns

Retrieval using a mutated pattern, mutated from the imprinted pattern after each imprinting cycle. This will likely lead to more erratic performance, but avoids an overly mutated cue pattern from biasing the results.

Command line:

./hopfield -n 5 -d 1.0 -a results_n_5_d_1.0_ -f 5 -z 5 -e 0.2 -c 10 -s 10 -D -g 0.3 -p 30

image: results_scaled_n_5_d_1.0_mutant_regen.png

Distribution after last imprint cycle for each pattern:

image: perf_dist_scaled_n_5_mutant_regen.png

Interleaved imprinting