Skip to content

Temporal pooler isn't robust. #23

Description

@calumroy

Temporal pooler brittleness.

Currently (current commit 7a07099) the temporal pooler works by keeping the first set of active columns on longer throughout a sequence to pool over the sequence and increase temporal stability. Once a sequence has been temporally pooled this method does not include any columns active other then the first ones of that sequence.

An example;
Sequence A,B,C,D is learnt and temporally pooled over. The columns making up pattern A would stay active through out the sequence. This works fine except when noise is introduced or the temporally pooled pattern is to be compared to other similar patterns.

Similar temporally pooled patterns produce different output SDR's.

The output of the temporally pooled pattern for A,B,C,D will be 100% different to the output of the temporally pooled pattern B,C,D. This is bad since both patterns are very similar and should create a similar output SDR.

Introducing noise disrupts the temporally pooled patterns significantly.

If a single input of the above pattern A,B,C,D contains noise then the output temporally pooled pattern can vary wildly. E.g If the unlearnt pattern A,E,C,D would produce a completely different output SDR after the input E since this was unexpected causing new columns to burst. What should happen is the unexpected input E should cause bursting but then the next input C should not cause bursting as the temporally pooled pattern A,B,C,D should have been expecting this.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions