OpenNARS-for-Applications
OpenNARS-for-Applications copied to clipboard
Revised temporal projection for supporting proper episodic memory
Exponential decay based on projection time distance for event truth is problematic as it will lead to a strong cutoff of event confidence making it effectively zero after some time. Power law decay with its long tail might be more suitable and will the system more effective in using the event memory in each concept as effective episodic memory to utilize rather than "just as" a short-term memory for relatively reactive decision making.
Examples which came up:
- Grid world as Adrian experimented with, where the agent often does not learn that the key has to be picked up in order to open the door unless it is reminded periodically/perceptually that it is holding the key. Ideally the choice of when information will enter and how often shouldn't affect the system's performance too much as long as it can observe relevant information in time when a related change does occur.
this is being investigated in this PR: https://github.com/opennars/OpenNARS-for-Applications/pull/219/files
another idea may be to use multiple exponential decays added together. This has the property that the function can get easily "reinterpreted" in different dt because x**(dta+dtb) = x**dta * x**dtb (for example in revision of predictions etc.)
https://www.wolframalpha.com/input?key=&i=plot+1.0%2Fx%2C+plot+%28%280.2%29x+%2B+0.3*%280.92%29x%29+from+0+to+20
so far only changing projection did not work well. https://github.com/opennars/OpenNARS-for-Applications/pull/219 Will discuss other ways with Rob and Pei, it might demand an additional mechanism for utilizing episodic memory. Can we have well-working grid world supported by proper episodic memory by end of the year? Maybe, at least it's the primary focus now. The system is already good at remembering events. Maybe this is more about digging for and utilizing long-term time dependencies when there is no short-term evidence to act on.
Changed to v0.9.3. What we will have in v0.9.2 release is a grid world environment as part of the evaluation suite where we can test performance using two scenarios:
- Agent has observation about inventory and can make different decisions dependent on whether key is present
- Agent does not have observation about inventory and needs to remember it picked up the key a time ago
Having these cases separate will be valuable in testing episodic memory performance as 2. can't work better than 1. but just approach it.
https://github.com/opennars/OpenNARS-for-Applications/pull/244