comparison thesis/cortex.org @ 555:c8f7d10b1a2a

further clarification about skin partitioning per winston's request
author Robert McIntyre <rlm@mit.edu>
date Fri, 02 May 2014 14:27:29 -0400
parents 663e3d4f98c1
children 531bcd85d153
comparison
equal deleted inserted replaced
554:663e3d4f98c1 555:c8f7d10b1a2a
2518 the imagined sensory data to recognize what the observed creature is 2518 the imagined sensory data to recognize what the observed creature is
2519 doing and feeling, using straightforward embodied action predicates. 2519 doing and feeling, using straightforward embodied action predicates.
2520 This is all demonstrated with using a simple worm-like creature, and 2520 This is all demonstrated with using a simple worm-like creature, and
2521 recognizing worm-actions based on limited data. 2521 recognizing worm-actions based on limited data.
2522 2522
2523 #+caption: Here is the worm with which we will be working. 2523 #+caption: Here is the worm with which we will be working. It is
2524 #+caption: It is composed of 5 segments. Each segment has a 2524 #+caption: composed of 5 segments. Each segment has a pair of
2525 #+caption: pair of extensor and flexor muscles. Each of the 2525 #+caption: extensor and flexor muscles. Each of the worm's four
2526 #+caption: worm's four joints is a hinge joint which allows 2526 #+caption: joints is a hinge joint which allows about 30 degrees of
2527 #+caption: about 30 degrees of rotation to either side. Each segment 2527 #+caption: rotation to either side. Each segment of the worm is
2528 #+caption: of the worm is touch-capable and has a uniform 2528 #+caption: touch-capable and has a uniform distribution of touch
2529 #+caption: distribution of touch sensors on each of its faces. 2529 #+caption: sensors on each of its faces. Each joint has a
2530 #+caption: Each joint has a proprioceptive sense to detect 2530 #+caption: proprioceptive sense to detect relative positions. The
2531 #+caption: relative positions. The worm segments are all the 2531 #+caption: worm segments are all the same except for the first one,
2532 #+caption: same except for the first one, which has a much 2532 #+caption: which has a much higher weight than the others to allow
2533 #+caption: higher weight than the others to allow for easy 2533 #+caption: for easy manual motor control.
2534 #+caption: manual motor control.
2535 #+name: basic-worm-view 2534 #+name: basic-worm-view
2536 #+ATTR_LaTeX: :width 10cm 2535 #+ATTR_LaTeX: :width 10cm
2537 [[./images/basic-worm-view.png]] 2536 [[./images/basic-worm-view.png]]
2538 2537
2539 #+caption: Program for reading a worm from a blender file and 2538 #+caption: Program for reading a worm from a blender file and
3186 (accuracy @res))) 3185 (accuracy @res)))
3187 #+end_src 3186 #+end_src
3188 #+end_listing 3187 #+end_listing
3189 3188
3190 Running =test-empathy-accuracy= using the very short exercise 3189 Running =test-empathy-accuracy= using the very short exercise
3191 program defined in listing \ref{generate-phi-space}, and then doing 3190 program =do-all-the-things= defined in listing
3192 a similar pattern of activity manually yields an accuracy of around 3191 \ref{generate-phi-space}, and then doing a similar pattern of
3193 73%. This is based on very limited worm experience. By training the 3192 activity using manual control of the worm, yields an accuracy of
3194 worm for longer, the accuracy dramatically improves. 3193 around 73%. This is based on very limited worm experience, and
3194 almost all errors are due to the worm's \Phi-space being too
3195 incomplete to properly interpret common poses. By manually training
3196 the worm for longer using =init-interactive= defined in listing
3197 \ref{manual-phi-space}, the accuracy dramatically improves:
3195 3198
3196 #+caption: Program to generate \Phi-space using manual training. 3199 #+caption: Program to generate \Phi-space using manual training.
3197 #+name: manual-phi-space 3200 #+name: manual-phi-space
3198 #+begin_listing clojure 3201 #+begin_listing clojure
3199 #+begin_src clojure 3202 #+begin_src clojure
3209 @experiences)) 3212 @experiences))
3210 (def phi-scan (gen-phi-scan phi-space))) 3213 (def phi-scan (gen-phi-scan phi-space)))
3211 #+end_src 3214 #+end_src
3212 #+end_listing 3215 #+end_listing
3213 3216
3214 After about 1 minute of manual training, I was able to achieve 95% 3217 =init-interactive= allows me to take direct control of the worm's
3215 accuracy on manual testing of the worm using =init-interactive= and 3218 muscles and run it through each characteristic movement I care
3219 about. After about 1 minute of manual training, I was able to
3220 achieve 95% accuracy on manual testing of the worm using
3216 =test-empathy-accuracy=. The majority of disagreements are near the 3221 =test-empathy-accuracy=. The majority of disagreements are near the
3217 transition boundaries from one type of action to another. During 3222 transition boundaries from one type of action to another. During
3218 these transitions the exact label for the action is often unclear, 3223 these transitions the exact label for the action is often unclear,
3219 and disagreement between empathy and experience is practically 3224 and disagreement between empathy and experience is practically
3220 irrelevant. Thus, the system's effective identification accuracy is 3225 irrelevant. Thus, the system's effective identification accuracy is
3221 even higher than 95%. When I watch this system myself, I generally 3226 even higher than 95%. When I watch this system myself, I generally
3222 see no errors in action identification compared to my own judgment 3227 see no errors in action identification compared to my own judgment
3226 3231
3227 In the previous chapter I showed how to compute actions in terms of 3232 In the previous chapter I showed how to compute actions in terms of
3228 body-centered predicates, but some of those predicates relied on 3233 body-centered predicates, but some of those predicates relied on
3229 the average touch activation of pre-defined regions of the worm's 3234 the average touch activation of pre-defined regions of the worm's
3230 skin. What if, instead of receiving touch pre-grouped into the six 3235 skin. What if, instead of receiving touch pre-grouped into the six
3231 faces of each worm segment, the true topology of the worm's skin 3236 faces of each worm segment, the true partitioning of the worm's
3232 was unknown? This is more similar to how a nerve fiber bundle might 3237 skin was unknown? This is more similar to how a nerve fiber bundle
3233 be arranged inside an animal. While two fibers that are close in a 3238 might be arranged inside an animal. While two fibers that are close
3234 nerve bundle /might/ correspond to two touch sensors that are close 3239 in a nerve bundle /might/ correspond to two touch sensors that are
3235 together on the skin, the process of taking a complicated surface 3240 close together on the skin, the process of taking a complicated
3236 and forcing it into essentially a circle requires that some regions 3241 surface and forcing it into essentially a 2D circle requires that
3237 of skin that are close together in the animal end up far apart in 3242 some regions of skin that are close together in the animal end up
3238 the nerve bundle. 3243 far apart in the nerve bundle.
3239 3244
3240 In this chapter I show how to automatically learn the skin-topology of 3245 In this chapter I show how to automatically learn the
3241 a worm segment by free exploration. As the worm rolls around on the 3246 skin-partitioning of a worm segment by free exploration. As the
3242 floor, large sections of its surface get activated. If the worm has 3247 worm rolls around on the floor, large sections of its surface get
3243 stopped moving, then whatever region of skin that is touching the 3248 activated. If the worm has stopped moving, then whatever region of
3244 floor is probably an important region, and should be recorded. 3249 skin that is touching the floor is probably an important region,
3245 3250 and should be recorded. The code I provide relies on the worm
3251 segment having flat faces, but still demonstrates a primitive kind
3252 of multi-sensory bootstrapping that I find appealing.
3253
3246 #+caption: Program to detect whether the worm is in a resting state 3254 #+caption: Program to detect whether the worm is in a resting state
3247 #+caption: with one face touching the floor. 3255 #+caption: with one face touching the floor.
3248 #+name: pure-touch 3256 #+name: pure-touch
3249 #+begin_listing clojure 3257 #+begin_listing clojure
3250 #+begin_src clojure 3258 #+begin_src clojure