Mercurial > cortex
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 |