Comparing expected semantic pointers to actual in Basal Ganglia models


#1

I am trying to partially reproduce the results from: Reduction of dopamine in basal ganglia and its effects on syllable sequencing in speech: A computer simulation study

The “motor” neurons activity (from the thalamus) is supposed to represent an action for executing a syllable (ex : “BA”). Since dopamine depletion is simulated in experiments, not all syllables execute.

So far the best way I came up of measuring if a syllable is executed or not is to determine the “correct” syllable for a time period, then for each time step in that time period, check the similarity of the “correct” pointer with the observed activity in the motor ensemble.

The problem I currently face is how to calculate the time period to check if a syllable is present or not (I cannot check for example in the interval 0-200ms ,200-400ms ,400-600ms), since there are inherent delays in action selection which add up over time. I wrote the below code to count, but it under-counts. I am very possibly overthinking this.

def countCorrectSyllables(sim,model,initial_delay,delay,end_time):
    li = ['BA_EXEC','DA_EXEC','GA_EXEC','PA_EXEC','TA_EXEC','KA_EXEC']
    correct_syllables = 0 
    number_syllables = 0 
    sylCycle = cycle(li)
    for time in range(initial_delay,end_time,delay):
        elem = next(sylCycle)
        vocab = model.get_input_vocab('motor')
        correct_similarity = vocab.parse(elem).dot(sim.data[motor][time:time+delay].T)
        #print(correct_similarity)
        print(elem)
        print("start time " + str(time) )
        print("end time " + str(time+delay))
        max_sim = np.amax(correct_similarity)
        if(max_sim>0.10):
            correct_syllables+= 1
            print('correct time ' + str(time))
        number_syllables+=1
    
    
    print("Number of correct syllables:"+str(correct_syllables))
    print("Number of  syllables:"+str(number_syllables))

I know some of the authors of the paper had accounts on the forum, so thought I would ask here.

Thanks!