Mercurial > cortex
comparison thesis/cortex.org @ 511:07c3feb32df3
go over changes by Dylan.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sun, 30 Mar 2014 10:17:43 -0400 |
parents | f639e2139ce2 |
children | 447c3c8405a2 |
comparison
equal
deleted
inserted
replaced
510:f639e2139ce2 | 511:07c3feb32df3 |
---|---|
39 #+name: name | 39 #+name: name |
40 #+ATTR_LaTeX: :width 10cm | 40 #+ATTR_LaTeX: :width 10cm |
41 [[./images/aurellem-gray.png]] | 41 [[./images/aurellem-gray.png]] |
42 | 42 |
43 | 43 |
44 * Empathy and Embodiment as problem solving strategies | 44 * Empathy \& Embodiment: problem solving strategies |
45 | 45 |
46 By the end of this thesis, you will have seen a novel approach to | 46 ** The problem: recognizing actions in video is extremely difficult |
47 interpreting video using embodiment and empathy. You will have also | 47 # developing / requires useful representations |
48 seen one way to efficiently implement empathy for embodied | 48 |
49 creatures. Finally, you will become familiar with =CORTEX=, a system | 49 Examine the following collection of images. As you, and indeed very |
50 for designing and simulating creatures with rich senses, which you | 50 young children, can easily determine, each one is a picture of |
51 may choose to use in your own research. | 51 someone drinking. |
52 | 52 |
53 This is the core vision of my thesis: That one of the important ways | 53 # dxh: cat, cup, drinking fountain, rain, straw, coconut |
54 in which we understand others is by imagining ourselves in their | |
55 position and emphatically feeling experiences relative to our own | |
56 bodies. By understanding events in terms of our own previous | |
57 corporeal experience, we greatly constrain the possibilities of what | |
58 would otherwise be an unwieldy exponential search. This extra | |
59 constraint can be the difference between easily understanding what | |
60 is happening in a video and being completely lost in a sea of | |
61 incomprehensible color and movement. | |
62 | |
63 ** Recognizing actions in video is extremely difficult | |
64 | |
65 Consider for example the problem of determining what is happening | |
66 in a video of which this is one frame: | |
67 | |
68 #+caption: A cat drinking some water. Identifying this action is | 54 #+caption: A cat drinking some water. Identifying this action is |
69 #+caption: beyond the state of the art for computers. | 55 #+caption: beyond the capabilities of existing computer vision systems. |
70 #+ATTR_LaTeX: :width 7cm | 56 #+ATTR_LaTeX: :width 7cm |
71 [[./images/cat-drinking.jpg]] | 57 [[./images/cat-drinking.jpg]] |
72 | 58 |
73 It is currently impossible for any computer program to reliably | 59 Nevertheless, it is beyond the state of the art for a computer |
74 label such a video as ``drinking''. And rightly so -- it is a very | 60 vision program to describe what's happening in each of these |
75 hard problem! What features can you describe in terms of low level | 61 images, or what's common to them. Part of the problem is that many |
76 functions of pixels that can even begin to describe at a high level | 62 computer vision systems focus on pixel-level details or probability |
77 what is happening here? | 63 distributions of pixels, with little focus on [...] |
78 | 64 |
79 Or suppose that you are building a program that recognizes chairs. | 65 |
80 How could you ``see'' the chair in figure \ref{hidden-chair}? | 66 In fact, the contents of scene may have much less to do with pixel |
81 | 67 probabilities than with recognizing various affordances: things you |
68 can move, objects you can grasp, spaces that can be filled | |
69 (Gibson). For example, what processes might enable you to see the | |
70 chair in figure \ref{hidden-chair}? | |
71 # Or suppose that you are building a program that recognizes chairs. | |
72 # How could you ``see'' the chair ? | |
73 | |
74 # dxh: blur chair | |
82 #+caption: The chair in this image is quite obvious to humans, but I | 75 #+caption: The chair in this image is quite obvious to humans, but I |
83 #+caption: doubt that any modern computer vision program can find it. | 76 #+caption: doubt that any modern computer vision program can find it. |
84 #+name: hidden-chair | 77 #+name: hidden-chair |
85 #+ATTR_LaTeX: :width 10cm | 78 #+ATTR_LaTeX: :width 10cm |
86 [[./images/fat-person-sitting-at-desk.jpg]] | 79 [[./images/fat-person-sitting-at-desk.jpg]] |
80 | |
81 | |
82 | |
83 | |
87 | 84 |
88 Finally, how is it that you can easily tell the difference between | 85 Finally, how is it that you can easily tell the difference between |
89 how the girls /muscles/ are working in figure \ref{girl}? | 86 how the girls /muscles/ are working in figure \ref{girl}? |
90 | 87 |
91 #+caption: The mysterious ``common sense'' appears here as you are able | 88 #+caption: The mysterious ``common sense'' appears here as you are able |
93 #+caption: are activated between the two images. | 90 #+caption: are activated between the two images. |
94 #+name: girl | 91 #+name: girl |
95 #+ATTR_LaTeX: :width 7cm | 92 #+ATTR_LaTeX: :width 7cm |
96 [[./images/wall-push.png]] | 93 [[./images/wall-push.png]] |
97 | 94 |
95 | |
96 | |
97 | |
98 Each of these examples tells us something about what might be going | 98 Each of these examples tells us something about what might be going |
99 on in our minds as we easily solve these recognition problems. | 99 on in our minds as we easily solve these recognition problems. |
100 | 100 |
101 The hidden chairs show us that we are strongly triggered by cues | 101 The hidden chair shows us that we are strongly triggered by cues |
102 relating to the position of human bodies, and that we can determine | 102 relating to the position of human bodies, and that we can determine |
103 the overall physical configuration of a human body even if much of | 103 the overall physical configuration of a human body even if much of |
104 that body is occluded. | 104 that body is occluded. |
105 | 105 |
106 The picture of the girl pushing against the wall tells us that we | 106 The picture of the girl pushing against the wall tells us that we |
107 have common sense knowledge about the kinetics of our own bodies. | 107 have common sense knowledge about the kinetics of our own bodies. |
108 We know well how our muscles would have to work to maintain us in | 108 We know well how our muscles would have to work to maintain us in |
109 most positions, and we can easily project this self-knowledge to | 109 most positions, and we can easily project this self-knowledge to |
110 imagined positions triggered by images of the human body. | 110 imagined positions triggered by images of the human body. |
111 | 111 |
112 ** =EMPATH= neatly solves recognition problems | 112 ** A step forward: the sensorimotor-centered approach |
113 | 113 # ** =EMPATH= recognizes what creatures are doing |
114 I propose a system that can express the types of recognition | 114 # neatly solves recognition problems |
115 problems above in a form amenable to computation. It is split into | 115 In this thesis, I explore the idea that our knowledge of our own |
116 bodies enables us to recognize the actions of others. | |
117 | |
118 First, I built a system for constructing virtual creatures with | |
119 physiologically plausible sensorimotor systems and detailed | |
120 environments. The result is =CORTEX=, which is described in section | |
121 \ref{sec-2}. (=CORTEX= was built to be flexible and useful to other | |
122 AI researchers; it is provided in full with detailed instructions | |
123 on the web [here].) | |
124 | |
125 Next, I wrote routines which enabled a simple worm-like creature to | |
126 infer the actions of a second worm-like creature, using only its | |
127 own prior sensorimotor experiences and knowledge of the second | |
128 worm's joint positions. This program, =EMPATH=, is described in | |
129 section \ref{sec-3}, and the key results of this experiment are | |
130 summarized below. | |
131 | |
132 #+caption: From only \emph{proprioceptive} data, =EMPATH= was able to infer | |
133 #+caption: the complete sensory experience and classify these four poses. | |
134 #+caption: The last image is a composite, depicting the intermediate stages of \emph{wriggling}. | |
135 #+name: worm-recognition-intro-2 | |
136 #+ATTR_LaTeX: :width 15cm | |
137 [[./images/empathy-1.png]] | |
138 | |
139 # =CORTEX= provides a language for describing the sensorimotor | |
140 # experiences of various creatures. | |
141 | |
142 # Next, I developed an experiment to test the power of =CORTEX='s | |
143 # sensorimotor-centered language for solving recognition problems. As | |
144 # a proof of concept, I wrote routines which enabled a simple | |
145 # worm-like creature to infer the actions of a second worm-like | |
146 # creature, using only its own previous sensorimotor experiences and | |
147 # knowledge of the second worm's joints (figure | |
148 # \ref{worm-recognition-intro-2}). The result of this proof of | |
149 # concept was the program =EMPATH=, described in section | |
150 # \ref{sec-3}. The key results of this | |
151 | |
152 # Using only first-person sensorimotor experiences and third-person | |
153 # proprioceptive data, | |
154 | |
155 *** Key results | |
156 - After one-shot supervised training, =EMPATH= was able recognize a | |
157 wide variety of static poses and dynamic actions---ranging from | |
158 curling in a circle to wriggling with a particular frequency --- | |
159 with 95\% accuracy. | |
160 - These results were completely independent of viewing angle | |
161 because the underlying body-centered language fundamentally is | |
162 independent; once an action is learned, it can be recognized | |
163 equally well from any viewing angle. | |
164 - =EMPATH= is surprisingly short; the sensorimotor-centered | |
165 language provided by =CORTEX= resulted in extremely economical | |
166 recognition routines --- about 0000 lines in all --- suggesting | |
167 that such representations are very powerful, and often | |
168 indispensible for the types of recognition tasks considered here. | |
169 - Although for expediency's sake, I relied on direct knowledge of | |
170 joint positions in this proof of concept, it would be | |
171 straightforward to extend =EMPATH= so that it (more | |
172 realistically) infers joint positions from its visual data. | |
173 | |
174 # because the underlying language is fundamentally orientation-independent | |
175 | |
176 # recognize the actions of a worm with 95\% accuracy. The | |
177 # recognition tasks | |
178 | |
179 | |
180 | |
181 | |
182 [Talk about these results and what you find promising about them] | |
183 | |
184 ** Roadmap | |
185 [I'm going to explain how =CORTEX= works, then break down how | |
186 =EMPATH= does its thing. Because the details reveal such-and-such | |
187 about the approach.] | |
188 | |
189 # The success of this simple proof-of-concept offers a tantalizing | |
190 | |
191 | |
192 # explore the idea | |
193 # The key contribution of this thesis is the idea that body-centered | |
194 # representations (which express | |
195 | |
196 | |
197 # the | |
198 # body-centered approach --- in which I try to determine what's | |
199 # happening in a scene by bringing it into registration with my own | |
200 # bodily experiences --- are indispensible for recognizing what | |
201 # creatures are doing in a scene. | |
202 | |
203 * COMMENT | |
204 # body-centered language | |
205 | |
206 In this thesis, I'll describe =EMPATH=, which solves a certain | |
207 class of recognition problems | |
208 | |
209 The key idea is to use self-centered (or first-person) language. | |
210 | |
211 I have built a system that can express the types of recognition | |
212 problems in a form amenable to computation. It is split into | |
116 four parts: | 213 four parts: |
117 | 214 |
118 - Free/Guided Play :: The creature moves around and experiences the | 215 - Free/Guided Play :: The creature moves around and experiences the |
119 world through its unique perspective. Many otherwise | 216 world through its unique perspective. Many otherwise |
120 complicated actions are easily described in the language of a | 217 complicated actions are easily described in the language of a |
284 program. Each sense can be specified using special blender nodes | 381 program. Each sense can be specified using special blender nodes |
285 with biologically inspired paramaters. You need not write any | 382 with biologically inspired paramaters. You need not write any |
286 code to create a creature, and can use a wide library of | 383 code to create a creature, and can use a wide library of |
287 pre-existing blender models as a base for your own creatures. | 384 pre-existing blender models as a base for your own creatures. |
288 | 385 |
289 - =CORTEX= implements a wide variety of senses, including touch, | 386 - =CORTEX= implements a wide variety of senses: touch, |
290 proprioception, vision, hearing, and muscle tension. Complicated | 387 proprioception, vision, hearing, and muscle tension. Complicated |
291 senses like touch, and vision involve multiple sensory elements | 388 senses like touch, and vision involve multiple sensory elements |
292 embedded in a 2D surface. You have complete control over the | 389 embedded in a 2D surface. You have complete control over the |
293 distribution of these sensor elements through the use of simple | 390 distribution of these sensor elements through the use of simple |
294 png image files. In particular, =CORTEX= implements more | 391 png image files. In particular, =CORTEX= implements more |
295 comprehensive hearing than any other creature simulation system | 392 comprehensive hearing than any other creature simulation system |
296 available. | 393 available. |
297 | 394 |
298 - =CORTEX= supports any number of creatures and any number of | 395 - =CORTEX= supports any number of creatures and any number of |
299 senses. Time in =CORTEX= dialates so that the simulated creatures | 396 senses. Time in =CORTEX= dialates so that the simulated creatures |
300 always precieve a perfectly smooth flow of time, regardless of | 397 always precieve a perfectly smooth flow of time, regardless of |
301 the actual computational load. | 398 the actual computational load. |
351 its own finger from the eye in its palm, and that it can feel its | 448 its own finger from the eye in its palm, and that it can feel its |
352 own thumb touching its palm.} | 449 own thumb touching its palm.} |
353 \end{sidewaysfigure} | 450 \end{sidewaysfigure} |
354 #+END_LaTeX | 451 #+END_LaTeX |
355 | 452 |
356 ** Contributions | 453 ** Road map |
454 | |
455 By the end of this thesis, you will have seen a novel approach to | |
456 interpreting video using embodiment and empathy. You will have also | |
457 seen one way to efficiently implement empathy for embodied | |
458 creatures. Finally, you will become familiar with =CORTEX=, a system | |
459 for designing and simulating creatures with rich senses, which you | |
460 may choose to use in your own research. | |
461 | |
462 This is the core vision of my thesis: That one of the important ways | |
463 in which we understand others is by imagining ourselves in their | |
464 position and emphatically feeling experiences relative to our own | |
465 bodies. By understanding events in terms of our own previous | |
466 corporeal experience, we greatly constrain the possibilities of what | |
467 would otherwise be an unwieldy exponential search. This extra | |
468 constraint can be the difference between easily understanding what | |
469 is happening in a video and being completely lost in a sea of | |
470 incomprehensible color and movement. | |
357 | 471 |
358 - I built =CORTEX=, a comprehensive platform for embodied AI | 472 - I built =CORTEX=, a comprehensive platform for embodied AI |
359 experiments. =CORTEX= supports many features lacking in other | 473 experiments. =CORTEX= supports many features lacking in other |
360 systems, such proper simulation of hearing. It is easy to create | 474 systems, such proper simulation of hearing. It is easy to create |
361 new =CORTEX= creatures using Blender, a free 3D modeling program. | 475 new =CORTEX= creatures using Blender, a free 3D modeling program. |
362 | 476 |
363 - I built =EMPATH=, which uses =CORTEX= to identify the actions of | 477 - I built =EMPATH=, which uses =CORTEX= to identify the actions of |
364 a worm-like creature using a computational model of empathy. | 478 a worm-like creature using a computational model of empathy. |
365 | 479 |
366 * Building =CORTEX= | 480 |
367 | 481 * Designing =CORTEX= |
368 I intend for =CORTEX= to be used as a general-purpose library for | 482 In this section, I outline the design decisions that went into |
369 building creatures and outfitting them with senses, so that it will | 483 making =CORTEX=, along with some details about its |
370 be useful for other researchers who want to test out ideas of their | 484 implementation. (A practical guide to getting started with =CORTEX=, |
371 own. To this end, wherver I have had to make archetictural choices | 485 which skips over the history and implementation details presented |
372 about =CORTEX=, I have chosen to give as much freedom to the user as | 486 here, is provided in an appendix \ref{} at the end of this paper.) |
373 possible, so that =CORTEX= may be used for things I have not | 487 |
374 forseen. | 488 Throughout this project, I intended for =CORTEX= to be flexible and |
375 | 489 extensible enough to be useful for other researchers who want to |
376 ** Simulation or Reality? | 490 test out ideas of their own. To this end, wherver I have had to make |
377 | 491 archetictural choices about =CORTEX=, I have chosen to give as much |
492 freedom to the user as possible, so that =CORTEX= may be used for | |
493 things I have not forseen. | |
494 | |
495 ** Building in simulation versus reality | |
378 The most important archetictural decision of all is the choice to | 496 The most important archetictural decision of all is the choice to |
379 use a computer-simulated environemnt in the first place! The world | 497 use a computer-simulated environemnt in the first place! The world |
380 is a vast and rich place, and for now simulations are a very poor | 498 is a vast and rich place, and for now simulations are a very poor |
381 reflection of its complexity. It may be that there is a significant | 499 reflection of its complexity. It may be that there is a significant |
382 qualatative difference between dealing with senses in the real | 500 qualatative difference between dealing with senses in the real |
434 time in the simulated world can be slowed down to accommodate the | 552 time in the simulated world can be slowed down to accommodate the |
435 limitations of the character's programming. In terms of cost, | 553 limitations of the character's programming. In terms of cost, |
436 doing everything in software is far cheaper than building custom | 554 doing everything in software is far cheaper than building custom |
437 real-time hardware. All you need is a laptop and some patience. | 555 real-time hardware. All you need is a laptop and some patience. |
438 | 556 |
439 ** Because of Time, simulation is perferable to reality | 557 ** Simulated time enables rapid prototyping and complex scenes |
440 | 558 |
441 I envision =CORTEX= being used to support rapid prototyping and | 559 I envision =CORTEX= being used to support rapid prototyping and |
442 iteration of ideas. Even if I could put together a well constructed | 560 iteration of ideas. Even if I could put together a well constructed |
443 kit for creating robots, it would still not be enough because of | 561 kit for creating robots, it would still not be enough because of |
444 the scourge of real-time processing. Anyone who wants to test their | 562 the scourge of real-time processing. Anyone who wants to test their |
457 the simulation. The cost is that =CORTEX= can sometimes run slower | 575 the simulation. The cost is that =CORTEX= can sometimes run slower |
458 than real time. This can also be an advantage, however --- | 576 than real time. This can also be an advantage, however --- |
459 simulations of very simple creatures in =CORTEX= generally run at | 577 simulations of very simple creatures in =CORTEX= generally run at |
460 40x on my machine! | 578 40x on my machine! |
461 | 579 |
462 ** What is a sense? | 580 ** All sense organs are two-dimensional surfaces |
463 | 581 # What is a sense? |
464 If =CORTEX= is to support a wide variety of senses, it would help | 582 If =CORTEX= is to support a wide variety of senses, it would help |
465 to have a better understanding of what a ``sense'' actually is! | 583 to have a better understanding of what a ``sense'' actually is! |
466 While vision, touch, and hearing all seem like they are quite | 584 While vision, touch, and hearing all seem like they are quite |
467 different things, I was supprised to learn during the course of | 585 different things, I was supprised to learn during the course of |
468 this thesis that they (and all physical senses) can be expressed as | 586 this thesis that they (and all physical senses) can be expressed as |
954 #+caption: simulation environment. | 1072 #+caption: simulation environment. |
955 #+name: name | 1073 #+name: name |
956 #+ATTR_LaTeX: :width 15cm | 1074 #+ATTR_LaTeX: :width 15cm |
957 [[./images/physical-hand.png]] | 1075 [[./images/physical-hand.png]] |
958 | 1076 |
959 ** Eyes reuse standard video game components | 1077 ** Sight reuses standard video game components... |
960 | 1078 |
961 Vision is one of the most important senses for humans, so I need to | 1079 Vision is one of the most important senses for humans, so I need to |
962 build a simulated sense of vision for my AI. I will do this with | 1080 build a simulated sense of vision for my AI. I will do this with |
963 simulated eyes. Each eye can be independently moved and should see | 1081 simulated eyes. Each eye can be independently moved and should see |
964 its own version of the world depending on where it is. | 1082 its own version of the world depending on where it is. |
1255 | 1373 |
1256 This vision code has already been absorbed by the jMonkeyEngine | 1374 This vision code has already been absorbed by the jMonkeyEngine |
1257 community and is now (in modified form) part of a system for | 1375 community and is now (in modified form) part of a system for |
1258 capturing in-game video to a file. | 1376 capturing in-game video to a file. |
1259 | 1377 |
1260 ** Hearing is hard; =CORTEX= does it right | 1378 ** ...but hearing must be built from scratch |
1261 | 1379 # is hard; =CORTEX= does it right |
1262 At the end of this section I will have simulated ears that work the | 1380 At the end of this section I will have simulated ears that work the |
1263 same way as the simulated eyes in the last section. I will be able to | 1381 same way as the simulated eyes in the last section. I will be able to |
1264 place any number of ear-nodes in a blender file, and they will bind to | 1382 place any number of ear-nodes in a blender file, and they will bind to |
1265 the closest physical object and follow it as it moves around. Each ear | 1383 the closest physical object and follow it as it moves around. Each ear |
1266 will provide access to the sound data it picks up between every frame. | 1384 will provide access to the sound data it picks up between every frame. |
1563 | 1681 |
1564 This system of hearing has also been co-opted by the | 1682 This system of hearing has also been co-opted by the |
1565 jMonkeyEngine3 community and is used to record audio for demo | 1683 jMonkeyEngine3 community and is used to record audio for demo |
1566 videos. | 1684 videos. |
1567 | 1685 |
1568 ** Touch uses hundreds of hair-like elements | 1686 ** Hundreds of hair-like elements provide a sense of touch |
1569 | 1687 |
1570 Touch is critical to navigation and spatial reasoning and as such I | 1688 Touch is critical to navigation and spatial reasoning and as such I |
1571 need a simulated version of it to give to my AI creatures. | 1689 need a simulated version of it to give to my AI creatures. |
1572 | 1690 |
1573 Human skin has a wide array of touch sensors, each of which | 1691 Human skin has a wide array of touch sensors, each of which |
2057 #+caption: part of the ground. | 2175 #+caption: part of the ground. |
2058 #+name: touch-cube-uv-map | 2176 #+name: touch-cube-uv-map |
2059 #+ATTR_LaTeX: :width 15cm | 2177 #+ATTR_LaTeX: :width 15cm |
2060 [[./images/touch-cube.png]] | 2178 [[./images/touch-cube.png]] |
2061 | 2179 |
2062 ** Proprioception is the sense that makes everything ``real'' | 2180 ** Proprioception provides knowledge of your own body's position |
2063 | 2181 |
2064 Close your eyes, and touch your nose with your right index finger. | 2182 Close your eyes, and touch your nose with your right index finger. |
2065 How did you do it? You could not see your hand, and neither your | 2183 How did you do it? You could not see your hand, and neither your |
2066 hand nor your nose could use the sense of touch to guide the path | 2184 hand nor your nose could use the sense of touch to guide the path |
2067 of your hand. There are no sound cues, and Taste and Smell | 2185 of your hand. There are no sound cues, and Taste and Smell |
2191 #+caption: pitch, and White is roll. | 2309 #+caption: pitch, and White is roll. |
2192 #+name: proprio | 2310 #+name: proprio |
2193 #+ATTR_LaTeX: :width 11cm | 2311 #+ATTR_LaTeX: :width 11cm |
2194 [[./images/proprio.png]] | 2312 [[./images/proprio.png]] |
2195 | 2313 |
2196 ** Muscles are both effectors and sensors | 2314 ** Muscles contain both sensors and effectors |
2197 | 2315 |
2198 Surprisingly enough, terrestrial creatures only move by using | 2316 Surprisingly enough, terrestrial creatures only move by using |
2199 torque applied about their joints. There's not a single straight | 2317 torque applied about their joints. There's not a single straight |
2200 line of force in the human body at all! (A straight line of force | 2318 line of force in the human body at all! (A straight line of force |
2201 would correspond to some sort of jet or rocket propulsion.) | 2319 would correspond to some sort of jet or rocket propulsion.) |
2438 - Inverse kinematics :: experiments in sense guided motor control | 2556 - Inverse kinematics :: experiments in sense guided motor control |
2439 are easy given =CORTEX='s support -- you can get right to the | 2557 are easy given =CORTEX='s support -- you can get right to the |
2440 hard control problems without worrying about physics or | 2558 hard control problems without worrying about physics or |
2441 senses. | 2559 senses. |
2442 | 2560 |
2443 * Empathy in a simulated worm | 2561 * =EMPATH=: the simulated worm experiment |
2562 # Empathy in a simulated worm | |
2444 | 2563 |
2445 Here I develop a computational model of empathy, using =CORTEX= as a | 2564 Here I develop a computational model of empathy, using =CORTEX= as a |
2446 base. Empathy in this context is the ability to observe another | 2565 base. Empathy in this context is the ability to observe another |
2447 creature and infer what sorts of sensations that creature is | 2566 creature and infer what sorts of sensations that creature is |
2448 feeling. My empathy algorithm involves multiple phases. First is | 2567 feeling. My empathy algorithm involves multiple phases. First is |
2730 | 2849 |
2731 There is a simple way of taking \Phi-space and the total ordering | 2850 There is a simple way of taking \Phi-space and the total ordering |
2732 provided by an experience vector and reliably infering the rest of | 2851 provided by an experience vector and reliably infering the rest of |
2733 the senses. | 2852 the senses. |
2734 | 2853 |
2735 ** Empathy is the process of tracing though \Phi-space | 2854 ** ``Empathy'' requires retracing steps though \Phi-space |
2736 | 2855 |
2737 Here is the core of a basic empathy algorithm, starting with an | 2856 Here is the core of a basic empathy algorithm, starting with an |
2738 experience vector: | 2857 experience vector: |
2739 | 2858 |
2740 First, group the experiences into tiered proprioceptive bins. I use | 2859 First, group the experiences into tiered proprioceptive bins. I use |
2886 (recur (dec i) (assoc! v (dec i) cur))) | 3005 (recur (dec i) (assoc! v (dec i) cur))) |
2887 (recur i (assoc! v i 0)))))) | 3006 (recur i (assoc! v i 0)))))) |
2888 #+end_src | 3007 #+end_src |
2889 #+end_listing | 3008 #+end_listing |
2890 | 3009 |
2891 ** Efficient action recognition with =EMPATH= | 3010 ** =EMPATH= recognizes actions efficiently |
2892 | 3011 |
2893 To use =EMPATH= with the worm, I first need to gather a set of | 3012 To use =EMPATH= with the worm, I first need to gather a set of |
2894 experiences from the worm that includes the actions I want to | 3013 experiences from the worm that includes the actions I want to |
2895 recognize. The =generate-phi-space= program (listing | 3014 recognize. The =generate-phi-space= program (listing |
2896 \ref{generate-phi-space} runs the worm through a series of | 3015 \ref{generate-phi-space} runs the worm through a series of |
3042 boundaries of transitioning from one type of action to another. | 3161 boundaries of transitioning from one type of action to another. |
3043 During these transitions the exact label for the action is more open | 3162 During these transitions the exact label for the action is more open |
3044 to interpretation, and dissaggrement between empathy and experience | 3163 to interpretation, and dissaggrement between empathy and experience |
3045 is more excusable. | 3164 is more excusable. |
3046 | 3165 |
3047 ** Digression: bootstrapping touch using free exploration | 3166 ** Digression: Learn touch sensor layout through haptic experimentation, instead |
3048 | 3167 # Boostraping touch using free exploration |
3049 In the previous section I showed how to compute actions in terms of | 3168 In the previous section I showed how to compute actions in terms of |
3050 body-centered predicates which relied averate touch activation of | 3169 body-centered predicates which relied averate touch activation of |
3051 pre-defined regions of the worm's skin. What if, instead of recieving | 3170 pre-defined regions of the worm's skin. What if, instead of recieving |
3052 touch pre-grouped into the six faces of each worm segment, the true | 3171 touch pre-grouped into the six faces of each worm segment, the true |
3053 topology of the worm's skin was unknown? This is more similiar to how | 3172 topology of the worm's skin was unknown? This is more similiar to how |
3054 a nerve fiber bundle might be arranged. While two fibers that are | 3173 a nerve fiber bundle might be arranged. While two fibers that are |
3208 | 3327 |
3209 * Contributions | 3328 * Contributions |
3210 | 3329 |
3211 In this thesis you have seen the =CORTEX= system, a complete | 3330 In this thesis you have seen the =CORTEX= system, a complete |
3212 environment for creating simulated creatures. You have seen how to | 3331 environment for creating simulated creatures. You have seen how to |
3213 implement five senses including touch, proprioception, hearing, | 3332 implement five senses: touch, proprioception, hearing, vision, and |
3214 vision, and muscle tension. You have seen how to create new creatues | 3333 muscle tension. You have seen how to create new creatues using |
3215 using blender, a 3D modeling tool. I hope that =CORTEX= will be | 3334 blender, a 3D modeling tool. I hope that =CORTEX= will be useful in |
3216 useful in further research projects. To this end I have included the | 3335 further research projects. To this end I have included the full |
3217 full source to =CORTEX= along with a large suite of tests and | 3336 source to =CORTEX= along with a large suite of tests and examples. I |
3218 examples. I have also created a user guide for =CORTEX= which is | 3337 have also created a user guide for =CORTEX= which is inculded in an |
3219 inculded in an appendix to this thesis. | 3338 appendix to this thesis \ref{}. |
3339 # dxh: todo reference appendix | |
3220 | 3340 |
3221 You have also seen how I used =CORTEX= as a platform to attach the | 3341 You have also seen how I used =CORTEX= as a platform to attach the |
3222 /action recognition/ problem, which is the problem of recognizing | 3342 /action recognition/ problem, which is the problem of recognizing |
3223 actions in video. You saw a simple system called =EMPATH= which | 3343 actions in video. You saw a simple system called =EMPATH= which |
3224 ientifies actions by first describing actions in a body-centerd, | 3344 ientifies actions by first describing actions in a body-centerd, |