Source code for coopihczoo.teaching.memory_models.memory_models

import numpy as np


EPS = np.finfo(np.float).eps


[docs]class ExponentialDecayMemory: @staticmethod def decay( delta_time, times_presented, initial_forgetting_rate, repetition_effect, log=False, ): forget_rate = initial_forgetting_rate * (1 - repetition_effect) ** ( times_presented ) if log: return -forget_rate * delta_time else: with np.errstate(divide="ignore", over="ignore"): # invalid="ignore", return np.exp(-forget_rate * delta_time) @staticmethod def log_like_grid( times_presented, delta_time, grid_param, item, response): fr = grid_param[:, 0] \ * (1 - grid_param[:, 1]) ** (times_presented[item] - 1) delta = delta_time[item] # delta *= cst_time p_success = np.exp(- fr * delta) p = p_success if response else 1-p_success log_lik = np.log(p + EPS) return log_lik