(HTM)层次时序记忆-时间沉积池实现解读
如果你对HTM感兴趣,我建立了一个群,我们共同学习交流。515743445。
阅读本文前建议先阅读HTM白皮书(需要了解sp和tm的工作步骤),以及论文Continuous online sequence learning with an unsupervised neural network model
本文研究src/nupic/algorithms/temporal_memory.py的代码实现
我们以Complete-algo-example.py为实例对其进行研究。该范例的参数存放在model.yaml中。该范例的数据来自gymdata.csv。这是一个关于不同时间consumption数据的文件。其日期部分使用DateEncoder转换为SDR,其consumption部分使用RandomDistributedScalarEncoder转换为SDR。合并后输入sp。由sp计算激活列后,将激活列作为参数输入tm.compute()计算当前输入的激活细胞。由getPredictiveCells()可以获得其预测。
Tm在代码组织上具有和sp相同的结构。主要方法包括__init__(),compute()和getPredictiveCells()
其关键变量包括:
- columnDimensions=(2048,) 列数
- cellsPerColumn=32 每个列的细胞数
- activationThreshold=16 一个突触区域