Skip to content

Temporal pooler isn't robust. #23

@calumroy

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.

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