# HG changeset patch # User Robert McIntyre # Date 1398645573 14400 # Node ID 0b0fef5e817bfb482f150e962ffb44a3438f3cff # Parent 8a5abd51cd4f172381e1e82bf2a1864ec055370b more clarification. diff -r 8a5abd51cd4f -r 0b0fef5e817b thesis/cortex.org --- a/thesis/cortex.org Sun Apr 27 20:25:22 2014 -0400 +++ b/thesis/cortex.org Sun Apr 27 20:39:33 2014 -0400 @@ -2946,7 +2946,7 @@ #+end_listing #+caption: =longest-thread= finds the longest path of consecutive - #+caption: experiences to explain proprioceptive worm data from + #+caption: past experiences to explain proprioceptive worm data from #+caption: previous data. Here, the film strip represents the #+caption: creature's previous experience. Sort sequences of #+caption: memories are spliced together to match the @@ -2967,13 +2967,13 @@ =longest-thread= takes time proportional to the average number of entries in a proprioceptive bin, because for each element in the starting bin it performs a series of set lookups in the preceding - bins. If the total history is limited, then this is only a constant - multiple times the number of entries in the starting bin. This - analysis also applies even if the action requires multiple longest - chains -- it's still the average number of entries in a - proprioceptive bin times the desired chain length. Because - =longest-thread= is so efficient and simple, I can interpret - worm-actions in real time. + bins. If the total history is limited, then this takes time + proprotional to a only a constant multiple of the number of entries + in the starting bin. This analysis also applies, even if the action + requires multiple longest chains -- it's still the average number + of entries in a proprioceptive bin times the desired chain length. + Because =longest-thread= is so efficient and simple, I can + interpret worm-actions in real time. #+caption: Program to calculate empathy by tracing though \Phi-space #+caption: and finding the longest (ie. most coherent) interpretation @@ -3015,8 +3015,13 @@ using a gradient over the closest known sensory data points, averages can be misleading. It is certainly possible to create an impossible sensory state by averaging two possible sensory states. - Therefore, I simply replicate the most recent sensory experience to - fill in the gaps. + For example, consider moving your hand in an arc over your head. If + for some reason you only have the initial and final positions of + this movement in your \Phi-space, averaging them together will + produce the proprioceptive sensation of having your hand /inside/ + your head, which is physically impossible to ever experience + (barring motor adaption illusions). Therefore I simply replicate + the most recent sensory experience to fill in the gaps. #+caption: Fill in blanks in sensory experience by replicating the most #+caption: recent experience. @@ -3079,7 +3084,7 @@ #+end_src #+end_listing - #+caption: Use longest thread and a phi-space generated from a short + #+caption: Use =longest-thread= and a \Phi-space generated from a short #+caption: exercise routine to interpret actions during free play. #+name: empathy-debug #+begin_listing clojure @@ -3102,13 +3107,25 @@ (curled? empathy) (.setText text "Curled") (wiggling? empathy) (.setText text "Wiggling") (resting? empathy) (.setText text "Resting") - :else (.setText text "Unknown"))))))) + :else (.setText text "Unknown"))))))) (defn empathy-experiment [record] (.start (worm-world :experience-watch (debug-experience-phi) :record record :worm worm*))) #+end_src #+end_listing + + These programs create a test for the empathy system. First, the + worm's \Phi-space is generated from a simple motor script. Then the + worm is re-created in an environment almost exactly identical to + the testing environment for the action-predicates, with one major + difference : the only sensory information available to the system + is proprioception. From just the proprioception data and + \Phi-space, =longest-thread= synthesises a complete record the last + 300 sensory experiences of the worm. These synthesized experiences + are fed directly into the action predicates =grand-circle?=, + =curled?=, =wiggling?=, and =resting?= from before and their output + is printed to the screen at each frame. The result of running =empathy-experiment= is that the system is generally able to interpret worm actions using the action-predicates @@ -3192,9 +3209,11 @@ boundaries of transitioning from one type of action to another. During these transitions the exact label for the action is more open to interpretation, and disagreement between empathy and experience - is more excusable. - -** COMMENT Digression: Learn touch sensor layout through free play + is essentially irrelevant at this point, giving a practical + identification accuracy of even higher than 95%. When I watch this + system myself, I generally see no errors in action identification. + +** COMMENT Digression: Learning touch sensor layout through free play In the previous section I showed how to compute actions in terms of body-centered predicates which relied on the average touch