Sunday, April 14, 2019

Acuitas Diary #17 (March+April 2019)

Acuitas Diary #17 (March+April 2019)

For the past month and a half, I've continued work on forgetfulness: the good kind. Acuitas now has code that will prune his episodic memory over time, removing those event records that are judged to be less important.

There are two major parts to this. The first is basically a population-management system; it determines how many episodes need to be forgotten each time the memory collection is pruned. I can cap the number of episodes allowed in storage at some maximum value (based on available storage space or what have you). The population manager checks how many memories are already in storage, and how many new ones have formed during the last cycle. A high growth rate is allowed initially, but forgetting becomes more and more aggressive as the storage area fills. When the cap is reached, Acuitas must forget the same number of memories he creates.

The time span represented by the stored episodes is sectioned, and the total number to be forgotten is unevenly distributed across it (i.e some parts of the time span lose more memories than others). The distribution is affected by the density of memories in a region, their average significance measure, and their age.
A memory tree under the influence of selective forgetting
The second major part is the code that, given a number of memories that must be forgotten, takes care of selecting which ones. This is a weighted random process; memories with less significance have a higher chance of being forgotten, but the priority isn't absolute.

Memories chosen to be forgotten are deleted. Any higher-tier memories that have been badly “hollowed out” by this process are then merged with their most similar neighbor.

Testing and debugging all this nonsense was almost half the battle. Since some of the effects I needed to see would span tens or hundreds of days if I let them play out in real time, I had to write simulation code that would run bits of the memory-creation and forgetting process faster. That way I could look ahead and make sure nothing was putting the system in a spiral toward catastrophe.

So next time you forget something, take comfort in the thought that I spent several dozen hours conferring this gift on my artificial mind.