Closed ntoxeg closed 2 years ago
That looks very cool, @ntoxeg, note that I likely won't be able to look into it (as well as merging your PR #18) before a couple weeks. Then I should have more time for it (we'll probably want to schedule a call or something).
I understand @ngeiswei, I will keep working on it and we can certainly schedule a call when you have more time to discuss this.
Rebased against master.
Some summary of current changes:
setup.py
is adapted from nbdev
template - it’s more complete and loads dependencies from requirements.txt
so you don’t have to write them in setup.py
anymore (it doesn’t require nbdev
to run).tensorboardX
, accumulated rewards for MineRL and learning cart pole agents are now reported under runs/<datetime><comment>
.nbdev
(under docs
), I might just remove them because they are not very useful currently - they should be hosted (via Github Pages, for example), otherwise they just lie there..devcontainer
, it shouldn’t be a problem to have them and they can make it easier for other people to run the code.Ah, I also should mention that I’ve been working on using the atomspace-rocks
to have snapshots of the AtomSpace saved under snapshots
directory - I don’t use that for anything yet but it could prove useful in the future for observing how the knowledge base evolves over time.
Note that multithreading support is very prototypical at this point. It shouldn't crash reasoning but it's not gonna bring much performance gain.
Closing because of #32, no point in holding this open indefinitely.
This is my attempt at making ROCCA able to solve (i. e. achieve average total reward of at least 195 over 100 trials) the
Cartpole-v1
Gym environment.Current Challenges
if $angle < -0.01 then Go Left
.PredictiveImplicationScope
introduction it also won’t be able to come up with such a solution, simply because the rule expects cognitive schema contexts to bePredicate
s, while what is needed is for the system to come up with an expression the uses something likeGreaterThan
.DefinedPredicate
s.A more general challenge is to figure out how the system should discover things like “I should check if the angle of the pole is smaller than some number”, so generally come up with predicates and calculations to be applied on observations.