Menu

Layers and Time

yodakohl
2013-04-01
2013-05-17
  • yodakohl

    yodakohl - 2013-04-01

    Imagine we have a HTM using two layers. Layer one (Low-Level-Hierachie) learns patterns like AABBAA and CCBBCC. Layer two is going to see a very similar input over a longer periode of time due to a constant prediction of layer one. Let AABBAA be P in Layer two and CCBBCC be Q in Layer two.

    Layer two will see PPPPPP as Input while AABBAA is active. Each P will be represented differently because of the previous context. That means there is no hierachial compression and the output of layer two will not be more stable than the output of Layer one.

    Did I miss something? Has this problem already be addressed?

     
  • softnhard

    softnhard - 2013-04-01

    Why you say that

    Each P will be represented differently because of the previous context.

    It is like showing an static input to the first layer (assume just A) which will cause static output.

     
  • yodakohl

    yodakohl - 2013-04-01

    From my understanding of the cortical learning algorithm, multiple cells per column are used to represent the same input in different contextes without confusing the HTM. Jeff Hawkings describes this in his talk (http://www.youtube.com/watch?feature=player_detailpage&v=qZM9JREjnp4#t=2583s) using the example "There are too many two two's to count".

    Now if multiple A's in a row will be presented to a layer, the temporal pooler is going to form sequences. It is going to use random cells in the columns to form a prediction. This means that only the predicted cell is going to become active (an unexpected feed forward activation of the column would activate all cells in the column) giving a context to following predicitions. HTM is pretty hard to understand, so please correct and forgive me if I understood something wrong.

     
  • Itay

    Itay - 2013-04-01

    Not so "expert" but this is how I think it works..
    First, I think unexpected input should occur in relatively low precentages after learning is done.
    If you have unexpected input without possible predictions, then yes, the unexpected input will feed directly to the top region and this is how you would call it "a static output".
    If you have already learnt the sequence or anything else that links to the same column, then you will have a prediction. both the current state and the prediction is feed forwarded to the top region. so as you go up the hiearachy you would see predictions of further time ahead.
    like this :
    Low region : "There"
    high region : "There"
    low region : "are"
    high region : "are
    low region "too"
    high region : "too"
    but in the next time the same sentence would play, after learning the sequence
    low region "There" + prediction("are")
    high region : "There are" + prediction("too many")
    low region : "are" + prediction("too")
    high region : "are too" + prediction("many two")
    and so forth..

     

    Last edit: Itay 2013-04-01
  • Uwe Kirschenmann

    The question is for now theoretical as we assume a the CLA is working as we wish. I think itay is correct in what he says, so let's think it through: supposed the sequence AABBAA (CCBBCC) is already recognized as you said. I will make this table first to illustrate what i guess you think happens:


    t(imeStep),InRegion1,OutRegion1/InRegion2, OutRegion2


    0, A, P, learning
    1, A, P, learning
    2, B, P, X
    3, B, P, X
    4, A, P, X
    5, A, P, X
    6, C, Q, learning
    7, C, Q, learning
    8, B, Q, Y
    9, B, Q, Y
    10, C, Q, Y
    11, C, Q, Y

    In this case output of region2 would be that of region1. that is not the case because region 2 is now learning the sequences of sequences. If AABBAA and CCBBCC happen in some order, which htm should recognize, the output of region 2 after learning will be:


    t(imeStep),InRegion1,OutRegion1/InRegion2, OutRegion2


    12, A, P, Z
    13, A, P, Z
    14, B, P, Z
    15, B, P, Z
    16, A, P, Z
    17, A, P, Z
    18, C, Q, Z
    19, C, Q, Z
    20, B, Q, Z
    21, B, Q, Z
    22, C, Q, Z
    23, C, Q, Z

    If you now compare the three columns, you will see a temporal stability emerging.

     
  • Magnus Wootton

    Magnus Wootton - 2013-05-17

    The time sorta overlaps between regions, if your recording 1234, then youll get 1234, 2345, 3456, then on the next region, its 123456, 234567, 345678, then on the layer after , 123456789, 23456790, 345678901, just getting a longer and longer word as you go.

    note you have to sit it there for ages for it to find these longer segments, they dont appear in it straight away.

    thats my theory anyway, i figure if you predict on the last region, and feedback from there youll get a running motion video.

    so you are compressing something, the later word sizes are build ups of previous constructs, so you store long sequences with less ram.

    No lie, itll separate different word sizes and time lengths from each other, they will all store at a single symantic.

    If the symantic(segment of space and time, of any shape or duration) is long, it stores in the highest region, if the symantic is short, it stores in the lowest region, thats all, the only thing im not sure about is how much you can streak time without blowing the space pool. (it wont playback anymore)

    the limits of what you can store is easily seen by the amount of columns, thats the amount of distinct symantics you can store, no more.

     

    Last edit: Magnus Wootton 2013-05-17

Log in to post a comment.

MongoDB Logo MongoDB