<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3020437366892008573</id><updated>2012-01-22T13:01:34.089-08:00</updated><category term='Bayesian belief propagation'/><category term='pooling algorithms'/><category term='memory-prediction framework'/><category term='addiction'/><category term='recall'/><category term='ai'/><category term='neural net'/><category term='localization'/><category term='expert systems'/><category term='FDR algorithm'/><category term='Windows'/><category term='coordinate system'/><category term='Markov Networks'/><category term='cortical circuits'/><category term='classification'/><category term='supervision'/><category term='intelligence'/><category term='Stanford model'/><category term='synapses'/><category term='metric'/><category term='CPTs'/><category term='gradient'/><category term='probability'/><category term='predictive memory'/><category term='training'/><category term='Natural Language Processing'/><category term='spatial pooling'/><category term='Jeff Hawkins'/><category term='machine understanding'/><category term='covariance'/><category term='probabilistic reasoning'/><category term='genetics'/><category term='inner-product space'/><category term='logic'/><category term='Ludwig Wittgenstein'/><category term='models'/><category term='hierarchy'/><category term='brain'/><category term='Numenta'/><category term='Vitamin D'/><category term='robots'/><category term='BitWorm'/><category term='Markov chains'/><category term='memory'/><category term='philosophy'/><category term='computers'/><category term='temporal pooling'/><category term='Bayes'/><category term='constraints'/><category term='neurons'/><category term='invariants'/><category term='Hugo'/><category term='Dileep George'/><category term='vectors'/><category term='cortex'/><category term='categorization'/><category term='surprise'/><category term='natural selection'/><category term='Python'/><category term='coordinates'/><category term='songs'/><category term='attention'/><category term='LIPD'/><category term='consciousness'/><category term='causes'/><category term='Sebastian Thrun'/><category term='nervous system'/><category term='particle filters'/><category term='pattern recognition'/><category term='beliefs'/><category term='Hilbert spaces'/><category term='evolution'/><category term='complex numbers'/><category term='NuPIC'/><category term='evidence'/><category term='effects'/><category term='tensors'/><category term='Peter Norvig'/><category term='feedback'/><category term='Charles Darwin'/><category term='hierarchical temporal memory'/><category term='muscle'/><category term='nerves'/><category term='On Intelligence'/><category term='neurotransmitter'/><category term='mesocircuit'/><category term='learning'/><category term='prediction'/><category term='artificial intelligence'/><category term='HTMs'/><category term='SGI'/><category term='eyes'/><category term='neural networks'/><category term='axons'/><category term='patterns'/><category term='Stephen Kuffler'/><category term='objects'/><category term='quantization points'/><category term='Judea Pearl'/><category term='indexing'/><category term='reasoning'/><category term='awareness'/><category term='time'/><category term='sequences'/><category term='inference'/><category term='Hebbian learning'/><category term='nodes'/><category term='behavior'/><category term='history'/><category term='mathematics'/><category term='gambling'/><category term='maps'/><category term='dendrites'/><category term='conscious'/><category term='mu'/><category term='transformations'/><title type='text'>Machine Understanding</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-3709697167057151659</id><published>2012-01-22T12:57:00.000-08:00</published><updated>2012-01-22T13:01:34.376-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='feedback'/><category scheme='http://www.blogger.com/atom/ns#' term='predictive memory'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='particle filters'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Predictive Memory and Particle Filters</title><content type='html'>I keep thinking about the Particle Filters AI method, so might as well right some of it down. Note that in AI Particle Filters has a particular meaning, different from the physics for particles in a real-world simulation or in a video game. In AI filtering is a method for  &lt;em&gt;localization&lt;/em&gt; of an object, which could be a large physical object like a robot. It involves probabilistic methods (Monte Carlo techniques) for predicting where the object might be, combined with sensory feedback. Typically it requires a pre-existing map of the territory (which for a robot is real, but which could be highly abstract in other cases) and a method for matching the feedback to the map. It has been most notably used as an essential software component of the &lt;a href="http://www.nytimes.com/2010/10/10/science/10google.html"&gt;Google self-driving car&lt;/a&gt;. A somewhat more extensive overview can be found at &lt;a href="http://en.wikipedia.org/wiki/Particle_filter"&gt;Particle Filters&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The reason I keep thinking about it is because I started noticing how I consciously (and probably subconsciously) localize myself in the physical world. Most notably, when I am navigating in the dark in my house. I do this to avoid backtracking: turning on a light, going back to the prior switch &amp;amp; turning it off, etc. In any case I know my house well, but in just a few feet in the dark it is easy to get a bit off course and bump into furniture or a wall where I expected a doorway. The stairs can be tricky too.&lt;br /&gt;&lt;br /&gt;So I walk a few feet in what I guess is the right direction based on experience. Then I reach out to touch what I expect is a wall or piece of furniture. Or  I note a change from rug to bare floor, or spot an LED. Usually I get the feedback I expect, but sometimes I find I am off course and need to make a correction.&lt;br /&gt;&lt;br /&gt;In Particle Filter Localization terms, I project a probabilistic range of particles representing where I, the human robot, might be next. Then I check. Often I know exactly where I am after a check, but sometimes all I know is that I am not near a wall or furniture piece. Then I make another mental projection, take a step or two depending on my expectations and level of caution, and try again to touch something. I go through similar mental gymnastics when driving a car or taking a daylight walk, but the feedback is visual rather than touch. &lt;br /&gt;&lt;br /&gt;I went through a similar analysis process after reading Jeff Hawkins theory of predictive memory in &lt;em&gt;On Intelligence&lt;/em&gt;. The theory is that the brain largely operates by making constant predictions, based on memory of historical patterns, and checking them against sensory input. When input varies from predictions, neurons send special signals about detecting novelty to higher brain centers that deal with novelty. For instance, as you read this your brain knows a number of words might be included in this zebra. See, you expected &amp;quot;sentence&amp;quot; or maybe &amp;quot;essay&amp;quot; or the like, you were not expecting &amp;quot;zebra&amp;quot;, and so the normal flow of processing was interrupted.&lt;br /&gt;&lt;br /&gt;I have not seen a neural network model for particle filters. It could be that the resemblance between how human brains seem to work is only superficially like particle filters. More generally we are talking about &lt;strong&gt;feedback&lt;/strong&gt; systems, which can take a number of forms. Even very primitive animals that lack differentiated neurons have feedback systems, so there could be many types of neural feedback schemes operating in the human brain.&lt;br /&gt;&lt;br /&gt;I often notice my dog doing something that makes me think that most mammals, including pre-sapiens homo species, can do that. Yet when these processes, say chasing a rabbit, are abstracted, they can become quite complex. I can imagine chasing a rabbit. I can plan to chase a rabbit into a trap. I can pursue something more abstract, say a solution to a construction problem or even a math problem in a way that resembles chasing a rabbit. Let's see, the answer to the solution of this &lt;a href="http://en.wikipedia.org/wiki/Differential_equation"&gt;differential equation&lt;/a&gt; has disappeared, it is not obvious. I'll beat the bushes, using three techniques known to help solve this type of equation, most-likely technique first. Hopefully one technique will put the problem in a form that I recognize from the standard map for solving such equations. &lt;br /&gt;&lt;br /&gt;How would particle filters be implemented with neural networks? Let me know your thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-3709697167057151659?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/3709697167057151659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2012/01/predictive-memory-and-particle-filters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3709697167057151659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3709697167057151659'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2012/01/predictive-memory-and-particle-filters.html' title='Predictive Memory and Particle Filters'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5520588817016754379</id><published>2011-12-26T17:12:00.000-08:00</published><updated>2011-12-26T17:18:48.533-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='Ludwig Wittgenstein'/><category scheme='http://www.blogger.com/atom/ns#' term='Natural Language Processing'/><category scheme='http://www.blogger.com/atom/ns#' term='probability'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='particle filters'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Stanford AI Class wrap up</title><content type='html'>I managed to muddle my way through the free Internet version of the Stanford Introduction to Artificial Intelligence (AI) course. "Congratulations! You have successfully completed the Advanced Track of Introduction to Artificial Intelligence ..." says my Statement of Accomplishment.&lt;br /&gt;&lt;br /&gt;Before putting on my analyst mask, I would like to thank Stanford University and particularly the instructors, Sebastian Thrun and Peter Norvig, for conducting the course. In particular, for making it free of charge. I am hoping they will leave the instruction videos up for a while, there are some I would like to go over again.&lt;br /&gt;&lt;br /&gt;I got a good review of Bayes Rule, basic probability, and some simple machine learning algorithms. I had not worked on Planning algorithms before, so that was of some interest. Markov Models had always been a bit vague to me, so that section helped me nail down the idea. Games and game theory seem to have made little progress since the 1940's, but I guess they have to be covered, and I did get clear on how MinMax works. Computer vision seemed kind of weak, but then you can't assume students know basic optics and at least we learned how to recognize simple features. Robotics was a prior interest for me, and I did not know about Thrun's obvious favorite, &lt;a href="http://en.wikipedia.org/wiki/Particle_filter"&gt;Particle Filters&lt;/a&gt;, which are a useful paradigm for spatial positioning (aka localization).&lt;br /&gt;&lt;br /&gt;The last two units were on Natural Language Processing, and that is a good place to start a critique (keeping in mind that all this material was introductory). Apparently you can do a lot of tricks processing language, both in the form of sounds/speech and written text, without the algorithms understanding anything. They showed a way to do pretty decent inter-ethnic language translations, but the usefulness depends on humans being able to understand at least one language.&lt;br /&gt;&lt;br /&gt;Plenty of humans do plenty of things, including paid work, without understanding what they are doing. I suppose that could be called a form of artificial intelligence. Pay them and feed them and they'll keep up those activities. But when people do things without understanding (I am pretty sure some of my math teachers fell into that category), danger lurks.&lt;br /&gt;&lt;br /&gt;The Google Car that drives itself around San Francisco (just like Science Fiction!) just demonstrates that driving a Porsche proves little about your intelligence capabilities. Robot auto-driving was a difficult problem for human engineers to solve. They were able to solve it because they understood a whole lotta stuff. Particle Filters, which involve probability techniques combined with sensory feedback to map and navigate an environment, are a cool part of the solution. If I say "I understand now: I have been walking through a structure, and to get to the kitchen I just turn left at the Picasso reproduction," I may be using the word &lt;em&gt;understand&lt;/em&gt; in a way that compares well with what we call the AI capabilities of the Google Car. Still, I don't think the Car meets my criteria for machine understanding. The car might even translate from French to English for its human cargo, but I still classify it as dumb as a brick.&lt;br /&gt;&lt;br /&gt;Hurray! Despite my advancing age, lack of a PhD., less than brilliant business model, and tendency to be interested in too many different things to be successful in this age of specialization, no one seems to have gotten to the essence of how humans understand, and are aware of, the world and themselves.&lt;br /&gt;&lt;br /&gt;If the human brain, or its neural network subcomponents, did Particle Filters, how would that work? I know from much practice that bumping around in the dark can lead to orientation or disorientation, depending on circumstances. On the other hand the random micro-fine movements of the eye might be a physical way of generating randomness to test micro-hypotheses that we are not normally consciously aware of.&lt;br /&gt;&lt;br /&gt;We sometimes say (hear &lt;a href="http://en.wikipedia.org/wiki/Wittgenstein"&gt;Wittgenstein&lt;/a&gt; in my voice) that someone has a &lt;em&gt;shallow understanding&lt;/em&gt; of something. "Smart enough to add columns of numbers, not smart enough to do accounting," or "Good at game basics, but unable to make strategic decisions." Let me put it another way: in some ways the course itself was an intelligence test. I imagine it would be very rough for anyone without a background in algebra and basic probability theory. The students in the class already knew a lot, and had to &lt;em&gt;learn difficult things&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;I want to know how our bodies, our brains, learn difficult things. The only way I will be able to be sure that I understand how that is done is if I can build a machine that can do the same thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5520588817016754379?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5520588817016754379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/12/stanford-ai-class-wrap-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5520588817016754379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5520588817016754379'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/12/stanford-ai-class-wrap-up.html' title='Stanford AI Class wrap up'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-8477851446503687698</id><published>2011-11-16T19:27:00.000-08:00</published><updated>2011-11-16T19:29:23.098-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='models'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><title type='text'>stuck</title><content type='html'>Maybe we need the equivalent of a quantum hypothesis for the brain, in the sense that it may not be possible to construct a corrrect model based on classic principles, no matter how complex.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-8477851446503687698?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/8477851446503687698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/11/stuck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8477851446503687698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8477851446503687698'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/11/stuck.html' title='stuck'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-7740689427356551223</id><published>2011-10-24T11:51:00.000-07:00</published><updated>2011-10-24T12:10:38.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='neural networks'/><category scheme='http://www.blogger.com/atom/ns#' term='expert systems'/><category scheme='http://www.blogger.com/atom/ns#' term='Judea Pearl'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistic reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Stanford model'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Stanford AI Class thoughts, and a brief tour of AI history</title><content type='html'>&lt;div align="center"&gt;"people who face a difficult question often answer an easier one instead, without realizing it"&lt;br /&gt;— Daniel Kahneman,&lt;/div&gt;&lt;br /&gt;Despite time management issues (which will only get worse this week) I managed to struggle through the first two weeks, or four units, of the online Stanford introduction to artificial intelligence course.&lt;br /&gt;&lt;br /&gt;In the past I had already tried to struggle through Judea Pearl's &lt;em&gt;Probabilistic Reasoning in Intelligent Systems&lt;/em&gt;. That was published well over 20 years ago, and yet this course uses many of the same examples. The course is much more about working out actual examples; it is practical, not so theoretical. We've covered Bayes networks and conditional probability, both concepts I had already learned because &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; was using them. Pearl's book contains a lot of material about wrong directions to take; the Stanford course seems to be focussed on what actually works, at least for Google.&lt;br /&gt;&lt;br /&gt;My impression is still that the &lt;strong&gt;Stanford AI paradigm&lt;/strong&gt;, while very practical, is not going to provide the core methods for truly intelligent machines, which I characterize as machine understanding. I think this largely because I am ancient and have watched quite a few AI paradigms come and go over the decades.&lt;br /&gt;&lt;br /&gt;When AI got started, let's say in the 1950's, there was an obsession with &lt;strong&gt;logic&lt;/strong&gt; as the highest form of human intelligence (often equated with &lt;strong&gt;reasoning&lt;/strong&gt;). That computers operated with logic circuits seemed a natural match. Math guys who were good at logic tended to deride other human activities as less difficult and requiring less intelligence. Certain problems, including games with limited event spaces (like checkers), could be solved more rapidly by computers (once a human had written an appropriate program) than by humans. By the sixties, at latest by the seventies, computers running AI programs would be smarter than humans. In retrospect, this was idiotic, but the brightest minds of those times believed it.&lt;br /&gt;&lt;br /&gt;One paradigm that showed some utility was &lt;strong&gt;expert systems&lt;/strong&gt;. To create one of these, experts (typical example: a doctor making a diagnosis) were consulted to find out how they made decisions. Then a flow chart was created to allow a computer program to make a decision in a similar manner. As a result a computer might appear intelligent, especially if provided by the then more difficult trick of an audio imitation voice output, but today no one would call such a system intelligent. That is no more intelligent than the early punch card sorters that once served as input and output for computers that ran on vacuum tubes.&lt;br /&gt;&lt;br /&gt;In the 1980's there was a big push in &lt;strong&gt;artificial neural networks&lt;/strong&gt;. This actually was a major step towards machines being able to imitate human brain functions. It is not a defunct field. Some practical devices today work with technologies developed in that era. But scaling, the problems grew faster than the solutions. No one could build an artificial human brain out of the old artificial neural networks. We know that if we can exactly model a human brain, down to the molecular (maybe even atomic) level, we should get true artificial intelligence. But simplistic systems of neurons and synapses are not easy to assemble into a funcioning human brain analog.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;Stanford model&lt;/strong&gt; for AI has been widely applied to real world problems, with considerable success. This probabilistic model allows it to deal with more complex data than the old logic and expert system paradigms ever could. Machine systems really can learn new things about their environment and store and organize that information in a way that allows for practical decision making. Clearly that is one thing human brains can do, and it is a lot more difficult than playing in a set-piece world like tic-tac-toe or even chess.&lt;br /&gt;&lt;br /&gt;Sad as the state of human reasoning can be at times, and as slow as we are to learn new lessons, and as proud as we are of our least bouts of creativity, (and as much as we may occasionally ignore the rule against run-on sentences), I think the Stanford model is not, by itself, going to lead to machine understanding. The human brain has a lot of very interesting structures at the gross level and at the synaptic level. Neurologists have not yet deciphered them. Their initial "programming," or hard-wiring is purely the result of human evolution.&lt;br /&gt;&lt;br /&gt;When is imitated intelligence real intelligent? When does a machine (or a human, for that matter) understand something, as opposed to merely changing internal memory to reflect the external reality?&lt;br /&gt;&lt;br /&gt;Then again, maybe a Stanford model computer/program/input/output system would have done better at the Stanford AI course than I have. I certainly have not been getting all the quizzes and homework problems right on the first try. On the other hand, I think it will be some good long time before a machine can read, say, a book on neurology and carry on an extended intelligent conversation about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-7740689427356551223?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/7740689427356551223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/10/stanford-ai-class-thoughts-and-brief.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7740689427356551223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7740689427356551223'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/10/stanford-ai-class-thoughts-and-brief.html' title='Stanford AI Class thoughts, and a brief tour of AI history'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4062894493569079262</id><published>2011-09-22T11:21:00.000-07:00</published><updated>2011-09-22T11:42:04.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='neurotransmitter'/><category scheme='http://www.blogger.com/atom/ns#' term='mesocircuit'/><category scheme='http://www.blogger.com/atom/ns#' term='models'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='SGI'/><category scheme='http://www.blogger.com/atom/ns#' term='awareness'/><category scheme='http://www.blogger.com/atom/ns#' term='consciousness'/><title type='text'>Brain Modeling Computational Trajectory</title><content type='html'>&lt;a href="http://www.sgi.com/"&gt;SGI&lt;/a&gt; is a manufacturer of high-performance computers, what might be called small supercomputers. I was listening to their analyst day (I own stock in SGI) this morning and saw an interesting slide, which I reproduce here:&lt;br /&gt;&lt;img alt="brain modeling projection" src="http://www.openicon.com/mu/images/brain_model_projection.jpg" width="450" height="300" /&gt;&lt;br /&gt;&lt;br /&gt;With regard to machine understanding, this is the direct assault method. At some point when the human brain is modeled in sufficient detail the construct should display human memory, intelligence, and even consciousness or self-awareness. It is conceivable that a detailed computer model might exhibit artificial intelligence or understanding but leave us still unable to comprehend the essence of what is happening. More likely we will be enlightened and therefore able to construct working machine entities that have true intelligence and understanding, but are not exactly modeled on the human nervous system.&lt;br /&gt;&lt;br /&gt;There are different levels for modeling biological systems of neurons and brain matter. We might model on the atomic, molecular, sub-cellular, cellular, or neural-functional level. It is not clear what level of detail is assumed in the SGI projection. Best guess is that is has a model for individual neurons, but the complexity is added by adding additional neurons to the network. That would be the main difference between modeling a "cellular neocortical column," a mesocircuit, a rat brain, and a human brain.&lt;br /&gt;&lt;br /&gt;SGI already makes computers for researchers in this field. Of course other vendors' computers can be used. The advantage SGI brings to the table today is the ability to build a large model in computer memory chips (the processors see a big, unified memory), as opposed to hard disks.&lt;br /&gt;&lt;br /&gt;I would be very impressed if someone could correctly model a functioning rat brain by 2014. Keep in mind that just because the computer power is available to do it, does not mean that any given team's model is correct. I wonder what proof on concept would consist of? To test such a brain you would need a test environment. That might be a simulation, but it could also be robotic. Keep in mind that much of what a rat brain does relates not to what we think of as awareness of the environment, but to maintaining body functions.&lt;br /&gt;&lt;br /&gt;Another issue is the initial state problem. Suppose that you "dissect" a rat so that you know the relative placement of every neuron in its central nervous system. Still, to make your model work, you would need a functional initial state for all the the cells. You need to know how synapses are weighted. Probably someone is working on the boot-up of mammal brains during embryonic development. Even just getting the genetically re-programmed neurotransmitter types for each synapse to each cell seems like a more difficult problem that making a generalized computer model based on a neural map plus a generalized neuron.&lt;br /&gt;&lt;br /&gt;Apparently there is plenty of work on this project for everyone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4062894493569079262?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4062894493569079262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/09/brain-modeling-computational-trajectory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4062894493569079262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4062894493569079262'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/09/brain-modeling-computational-trajectory.html' title='Brain Modeling Computational Trajectory'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-801603636748504104</id><published>2011-08-16T09:20:00.000-07:00</published><updated>2011-08-16T09:24:35.914-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sebastian Thrun'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Peter Norvig'/><title type='text'>Stanford AI course</title><content type='html'>I signed up for the free Stanford course, &lt;a href="http://www.ai-class.com/"&gt;An Introduction to Artificial Intelligence&lt;/a&gt; to be taught by Sebastian Thrun and Peter Norvig this fall. I figure it can't hurt, and free is a good price.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-801603636748504104?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/801603636748504104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/08/stanford-ai-course.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/801603636748504104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/801603636748504104'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/08/stanford-ai-course.html' title='Stanford AI course'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-9141998625665564868</id><published>2011-07-21T08:56:00.000-07:00</published><updated>2011-07-21T09:17:14.824-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mu'/><category scheme='http://www.blogger.com/atom/ns#' term='Bayes'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='classification'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='categorization'/><title type='text'>Naive Bayes Classifier in Python</title><content type='html'>I have been busy with many things: indexing a book on software management; trying to learn math things I would have learned when I was 18 or 19 if the Vietnam War had not made me decide to major in Political Science; advising investors about the value of &lt;a href="http://www.openicon.com/confsums/hnsn_main.html"&gt;Hansen Medical's robotics&lt;/a&gt; technology and &lt;a href="http://www.iteris.com/"&gt;Iteris&lt;/a&gt;'s visual analysis software for cars and highway monitoring.&lt;br /&gt;&lt;br /&gt;So even though I continue to think about MU, and to study, I have had nothing in particular worth reporting here. However, I came across a good introductory page on using Bayes probability with the Python programming language. If that is what you need, here it is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.python-course.eu/text_classification_introduction.php"&gt;Text Categorization and Classification in Python with Bayes' Theorem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And I would love to play with a Kinect, but where would the time come from?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-9141998625665564868?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/9141998625665564868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/07/naive-bayes-classifier-in-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/9141998625665564868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/9141998625665564868'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/07/naive-bayes-classifier-in-python.html' title='Naive Bayes Classifier in Python'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5961524176367024856</id><published>2011-04-18T15:37:00.000-07:00</published><updated>2011-04-18T15:47:04.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neural networks'/><category scheme='http://www.blogger.com/atom/ns#' term='Hilbert spaces'/><category scheme='http://www.blogger.com/atom/ns#' term='complex numbers'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Handling Complex Numbers</title><content type='html'>&lt;p&gt;I have not been logging my MU activity very well. I am trying to develop a simple system to test my ideas. The first one bogged down and went nowhere. At the same time looking at a lot of possibly useful math, including Hilbert spaces. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Today was thinking about neural network handling of complex numbers. Decided to let others do my thinking for me and came upon this paper after a search. Reminds me that I think all science journals should be published on the net with no charge to read; that would accelerate the advances we all desire.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.ece.umassd.edu/Faculty/hmichel/publications/JCNN0500.PDF"&gt;Enhanced Artificial Neural Networks Using Complex Numbers by Howard E. Michel and A. S. S. Awwal&lt;/a&gt;. I don't know if I can use their specific model, but it is good food for thought. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5961524176367024856?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5961524176367024856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/04/handling-complex-numbers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5961524176367024856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5961524176367024856'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/04/handling-complex-numbers.html' title='Handling Complex Numbers'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-8222106996521185492</id><published>2011-03-01T18:18:00.000-08:00</published><updated>2011-03-01T18:26:10.619-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='covariance'/><category scheme='http://www.blogger.com/atom/ns#' term='tensors'/><category scheme='http://www.blogger.com/atom/ns#' term='vectors'/><category scheme='http://www.blogger.com/atom/ns#' term='transformations'/><category scheme='http://www.blogger.com/atom/ns#' term='coordinate system'/><category scheme='http://www.blogger.com/atom/ns#' term='gradient'/><title type='text'>gradient covariance</title><content type='html'>Thinking, thinking, thinking. Trying to work towards an example.&lt;br /&gt;&lt;br /&gt;Spent more time than I meant making sure I understand how gradients act, their covariant nature under coordinate changes. Wrote out a "simple" example, just a 2D transformation of the gradient of a simple function. But it still took awhile. I made an arithmetic, an algebra, and a calculus mistake the first time through; am I ever rusty!&lt;br /&gt;&lt;br /&gt;If you are looking for an example of covariance of a tensor or vector, try it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openicon.com/mu/math/gradient_covariance/gradient_covariance.html"&gt;gradient covariance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now to make neuron-like structures do the math for me ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-8222106996521185492?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/8222106996521185492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/03/gradient-covariance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8222106996521185492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8222106996521185492'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/03/gradient-covariance.html' title='gradient covariance'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4340716329050012181</id><published>2011-01-22T10:30:00.000-08:00</published><updated>2011-01-22T10:51:52.606-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='invariants'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><title type='text'>bogged down</title><content type='html'>Earlier this week I thought I was on the verge of a breakthrough, but instead I sank into the bog of mathematics, analytic issues, and philosophical delusions.&lt;br /&gt;&lt;br /&gt;There is a tendency to think of the identification of an object, say a dog or better still, a specific dog, as coinciding in the brain with the firing of a specific neuron, or perhaps a set of neurons. That might in turn fire a pre-verbal response that one could be conscious of, then the actual verbal response, whether as a thought or as speach: "Hugo," my dog.&lt;br /&gt;&lt;br /&gt;Some would make this a paradigm for invariance. Hugo can change in position, wear a sweater, age or even die, but the Hugo object is invariant.&lt;br /&gt;&lt;br /&gt;But that, the noun, is the end result. It is not the system that creates invariance. Nor do I think that the system of building up small clues, as described by Jeff Hawkins and implemented to some extent by Numenta, is sufficient to explain intelligence, though it might serve for object identification.&lt;br /&gt;&lt;br /&gt;I am even wondering about Hebbian learning, in which transitions in neural systems are achieved by changing weights of neural connections. It is simple to model, but if it isn't what is really going on in the brain (or is only part of what is really going on), assuming it is sufficient could be a block to forward progress.&lt;br /&gt;&lt;br /&gt;Maybe I am way off track here. I just read again about how no one could explain all the spectral data accumulated in the 19th century. Then Bohr threw out two assumptions about electrodynamics and added a very simple assumption, that electrons near an atomic nucleus have a minimal energy orbit, and quantum physics finally was off to the races.&lt;br /&gt;&lt;br /&gt;On the other hand, sometimes a slow steady program like Numenta's works better than waiting for a breakthrough. I'm giving my neurons the weekend off and going to the German film festival at the Point Arena Theater.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4340716329050012181?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4340716329050012181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/earlier-this-week-i-thought-i-was-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4340716329050012181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4340716329050012181'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/earlier-this-week-i-thought-i-was-on.html' title='bogged down'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6511690160941302532</id><published>2011-01-13T10:19:00.000-08:00</published><updated>2011-01-13T10:28:13.690-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bayesian belief propagation'/><category scheme='http://www.blogger.com/atom/ns#' term='evidence'/><category scheme='http://www.blogger.com/atom/ns#' term='expert systems'/><category scheme='http://www.blogger.com/atom/ns#' term='causes'/><category scheme='http://www.blogger.com/atom/ns#' term='Judea Pearl'/><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistic reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Pointing Choices</title><content type='html'>Quote of the day:&lt;br /&gt;&lt;br /&gt;"This convention is at variance with that used in many expert systems (e.g. MYCIN), where rules point from evidence to hypothesis (e.g., if symptom, then disease), thus denoting a flow of mental inference. By contrast, the arrows in Bayesian networks point from causes to effects, or from conditions to consequences, thus denoting a flow of constraints attributed to the physical world."&lt;br /&gt;&lt;br /&gt;Judea Pearl, &lt;em&gt;Probabilistic Reasoning in Intelligent Systems&lt;/em&gt;, p. 151&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6511690160941302532?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6511690160941302532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/pointing-choices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6511690160941302532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6511690160941302532'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/pointing-choices.html' title='Pointing Choices'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4220908703038878305</id><published>2011-01-12T11:51:00.000-08:00</published><updated>2011-01-12T11:56:38.640-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eyes'/><category scheme='http://www.blogger.com/atom/ns#' term='predictive memory'/><category scheme='http://www.blogger.com/atom/ns#' term='attention'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><title type='text'>Eyes Follow Brain Shifting of Attention</title><content type='html'>In case you missed it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dailytech.com/article.aspx?newsid=20640"&gt;Human Brain Predicts Visual Attention Before Eyes Even Move&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a confirmation that one of the principle jobs of the brain is to make predictions, then use the senses to confirm or deny the predictions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4220908703038878305?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4220908703038878305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/eyes-follow-brain-shifting-of-attention.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4220908703038878305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4220908703038878305'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/eyes-follow-brain-shifting-of-attention.html' title='Eyes Follow Brain Shifting of Attention'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-3141613913363574837</id><published>2011-01-03T14:14:00.000-08:00</published><updated>2011-01-03T14:17:52.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tensors'/><title type='text'>Tensor Introduction</title><content type='html'>Largely as a prelude to my own work, I posted an &lt;a href="http://www.openicon.com/mu/math/tensors_01.html"&gt;introduction to tensors&lt;/a&gt; at OpenIcon. It may improve as time passes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-3141613913363574837?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/3141613913363574837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/tensor-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3141613913363574837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3141613913363574837'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2011/01/tensor-introduction.html' title='Tensor Introduction'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6803502424212660324</id><published>2010-11-27T09:40:00.000-08:00</published><updated>2010-11-27T10:34:37.898-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistic reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Wandering through the multi-dimensional abyss</title><content type='html'>I have not posted to this blog for a long time partly because I lost my focus on the &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; program within the Machine Understanding arena, and partly because I have been distracted by the need to earn money, and even the political silly season. On a good note my friend Dan Hamburg got elected to be &lt;a href="http://www.mendoday.com/"&gt;Mendocino County&lt;/a&gt; Supervisor, and the government of California can now approve budgets with a majority vote. Which does not mean they will start doing budgets on time, or balance them, or run the state well; but they could.&lt;br /&gt;&lt;br /&gt;I found, slogging through &lt;a href="http://en.wikipedia.org/wiki/Judea_Pearl"&gt;Judea Pearl's&lt;/a&gt; &lt;a href="http://www.amazon.com/gp/product/1558604790?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1558604790"&gt;Probabilistic Reasoning in Intelligent Systems&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1558604790" width="1" height="1" /&gt;&lt;br /&gt;and Terrence Fine's &lt;a href="http://www.amazon.com/gp/product/0130205915?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0130205915"&gt;Probability and Probabilistic Reasoning for Electrical Engineering&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0130205915" width="1" height="1" /&gt;&lt;br /&gt;, that my mind kept fuzzing up. Maybe I am slowing down in my old age, but the real problem was that my last formal training in probability was when I was 19, and interpreting clinical trial p values is guestimate work. I had to regress to a simpler text than what I used in college, and I can recommend &lt;a href="http://www.amazon.com/gp/product/0023447605?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0023447605"&gt;Finite Mathematics with Applications&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0023447605" width="1" height="1" /&gt;&lt;br /&gt;by A. W. Goodman and J.S. Ratti for introductions to simple probability, conditional probability, &lt;a href="http://en.wikipedia.org/wiki/Bayes%27_theorem"&gt;Bayes' Theorem&lt;/a&gt;, and even Markov Chains that were simple enough for me to feel I really understood easy examples and the concepts themselves.&lt;br /&gt;&lt;br /&gt;But my wanderings have been further afield than that. I continue to be fascinated with tensors, and got a lot out of &lt;a href="http://www.amazon.com/gp/product/0486425401?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0486425401"&gt;Introduction to Tensor Calculus, Relativity and Cosmology&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0486425401" width="1" height="1" /&gt;&lt;br /&gt;by D. F. Lawdon. Again, I never got to tensors in college (I ended up a Political Science major), and thinking I was brighter than I really was (brightness is mainly a function of prepartion, I now know), started off with mathematical treatments that were too abstract for me to do more than pretend to follow.&lt;br /&gt;&lt;br /&gt;I have even got stuck on Maxwell's equations for electromagnetism. Now we all should admit that if we read broadly in math and science we don't take the time to really understand everything; we trust our fellows to have done their homework before a set of facts or an equation is presented in a paper or textbook. We may like to feel we agree with quantum physics, but who except for professional physicists have the time to really look at the data and the math in detail? I have always assumed that &lt;a href="http://en.wikipedia.org/wiki/Maxwell%27s_equations"&gt;Maxwell's equations &lt;/a&gt;are correct, and that if I needed to I could look up the definitions of curl, etc., and do the math. But that is not the same thing as the deep understanding one gets from working in electromagnetics on a regular basis.&lt;br /&gt;&lt;br /&gt;I have wandered farther afield than that, to &lt;a href="http://en.wikipedia.org/wiki/Lie_groups"&gt;Lie groups&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Galois_theory"&gt;Galois theory&lt;/a&gt;, which may have nothing to do with machine understanding. Nevertheless, I wander. And I keep coming back to what is known about the structure of the cortex, of the actual tangles of nerve cells themselves, and in particular to the way pyramidal cells span multiple layers of the cortex with their intricate axons and dendrites. How do you create a math that represents such a tangle? Skipping that, you can do funtional units as Numenta does, or you can try the AI tradition with its tradition trying to get the end results without understanding the details of how neurons actually get stuff done.&lt;br /&gt;&lt;br /&gt;Right now I have little paid work going on, so I may be writing in the blog more often. If paid work becomes available, there will be more delays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6803502424212660324?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6803502424212660324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/11/wandering-through-multi-dimensional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6803502424212660324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6803502424212660324'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/11/wandering-through-multi-dimensional.html' title='Wandering through the multi-dimensional abyss'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5672526679859181716</id><published>2010-08-26T13:21:00.000-07:00</published><updated>2010-08-26T13:37:06.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='predictive memory'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Seeing Predictive Memory Everywhere</title><content type='html'>Numenta cancelled its planned October class. I stopped working my way through their examples. I created the index for &lt;em&gt;Microsoft Excel 2010 Inside Out&lt;/em&gt;. My stepson got married.&lt;br /&gt;&lt;br /&gt;Yet all the while I've been watching how my mind works in light of the predictive memory theory. What good would memories be if they did not allow animals to make predictions that help with survival? I have watched my mind make mistakes, in reading for example: wait, that doesn't make sense, I read "farming" for framing. I watch my dog Hugo make decisions (mostly to not obey me). I watch other people make decisions.&lt;br /&gt;&lt;br /&gt;I also continue to ponder how the system works. There are computer models like Numenta's, and biological models. When I study math part of me is assessing its utility for modeling machine understanding. Even reading the Excel book, which I really liked, got me to thinking about how advance Excel tools might be used to model neurons or probabilistic reasoning.&lt;br /&gt;&lt;br /&gt;But I can't say I have any breakthroughs to report. I can't even say I am going to be writing this blog on a regular basis. There are fires that need to be put out, and fires that need to be lit.&lt;br /&gt;&lt;br /&gt;I started on a simple demo program, I mean &lt;em&gt;really&lt;/em&gt; simple demo program, just to get going on flowing data through nodes. I started it in Visual Basic, with the intent of also doing it in Python and at least one other language, maybe C++. I might try to restart the MU project their, or I might go back to working through the Numenta examples. No promises. But if I do manage to get anything done, I'll post it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5672526679859181716?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5672526679859181716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/08/seeing-predictive-memory-everywhere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5672526679859181716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5672526679859181716'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/08/seeing-predictive-memory-everywhere.html' title='Seeing Predictive Memory Everywhere'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-8626465286372359618</id><published>2010-06-10T11:55:00.000-07:00</published><updated>2010-06-10T12:00:12.287-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='Judea Pearl'/><category scheme='http://www.blogger.com/atom/ns#' term='probability'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistic reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Understanding Probability and Probabilistic Reasoning</title><content type='html'>I think I mentioned earlier that I have had problems with the &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; model as described in "&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;Towards a Mathematical Theory of Cortical Micro-circuits&lt;/a&gt;" because of the use of probability-based mathematics. It seems to me that neurons are deterministic mechanisms. But I have noted in the past that I can be pretty dim-witted at times, and decided to study Numenta's HTM systems anyway. I reminded myself that quantum physics has two different formulations, one based on matrix algebra and the other on the Schrodinger equation. They both work, and some brilliant person showed that they are formally the same long, long ago. So when thinking about or solving problems you can use whichever is easiest or gives the best insights. The same way some physics and math problems are easier in polar coordinates than in rectangular coordinates.&lt;br /&gt;&lt;br /&gt;Months ago I ground to a halt in my reading of Judea Pearl's &lt;em&gt;Probabilistic Reasoning in Intelligent Systems&lt;/em&gt;, which provides much of the background to the Numenta discussion. Yesterday I decided to tackle it again and commenced reading at page 143. I noticed that some notation was ambiguous, which is typical of expert writers who assume their readers are right up with them. So I decided to go back and make sure that P(A,B) really does mean the probability that both A and B are true. I thought I'd make sure I understood the Bayes interpretation of probability as well.&lt;br /&gt;&lt;br /&gt;I ended up reading starting at page 29, Chapter 2, Bayesian Inference, 2.1, Basic Concepts, 2.1.1 Probabilistic Formulation and Bayesian Inversion. Note that I took two semesters of logic and one semester of probability in college, and as part of my profession deal with biostatistics, the kind reported from clinical trials, on a regular basis. Note also that I have studied philosphic issues of quantum physics and even the math involved.&lt;br /&gt;&lt;br /&gt;Yet when I read this simple introduction this time, the scales fell from my eyes, or from my cortical networks.&lt;br /&gt;&lt;br /&gt;With probabilistic reasoning, it is fair to say that we are not talking about rolling dice (even though Pearl uses the familar probabilities of two-die rolls to illustrate some points).&lt;br /&gt;&lt;br /&gt;We are talking about the math of pobability theory. For most practical purposes, that is the math of fractions. Third or fourth grade stuff. (I had a fifth grade teacher I hated, Mrs. Lopez, who was all about memorizing things. We memorized the decimal equivalents of about 50 common fractions. I knew I could always get the decimal equivalent by dividing, so considered this a stupid exercise.)&lt;br /&gt;&lt;br /&gt;When thinking about human memory, you can safely substitute "percentage of like situations" for probability.&lt;br /&gt;&lt;br /&gt;Updating the "percentage of like situations" based on experience makes sense. Since we can test for novel situations, like "both A and B" or "A and not C, given B", by multiplying, adding, or subtracting fractions, these updates may effect a chain of knowledge or deductions across the brain (or mind, if you prefer).&lt;br /&gt;&lt;br /&gt;Calling all background information and assumptions a person has K (I don't know why K, maybe it stands for Knowledge), I quote Pearl page 30: "However, when the background information undergoes changes, we need to identify specifically the assumptions that account for our beliefs and articulate explicitly K or some of its elements."&lt;br /&gt;&lt;br /&gt;Many Philosophers, notably Ludwig Wittgenstein, have shown how reasoning goes awry when we use one word to mean multiple things, or one thing that is vague or complex. We think we are being clear using logic symbols or math equations or tech speak. But when something is amiss, it may not be a problem with our reasoning. It may be that we need to update our background assumptions.&lt;br /&gt;&lt;br /&gt;See also &lt;a href="http://en.wikipedia.org/wiki/Bayes%27_theorem"&gt;Bayes' theorem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 120px; HEIGHT: 240px" marginheight="0" src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=iiipublishing&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;md=10FE9736YVPPT7A0FBG2&amp;amp;asins=1558604790" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-8626465286372359618?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/8626465286372359618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/06/understanding-probability-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8626465286372359618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8626465286372359618'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/06/understanding-probability-and.html' title='Understanding Probability and Probabilistic Reasoning'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6117468273158612367</id><published>2010-05-10T10:33:00.000-07:00</published><updated>2010-05-10T10:54:33.346-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='FDR algorithm'/><title type='text'>New Algorithms from Numenta</title><content type='html'>My study of Machine Understanding was on pause for a couple of weeks while I compiled an index for a 802.11n networking book. On May 5 I received a &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; Newsletter, the key point of which is that Jeff Hawkins and crew have been working on a better algorithm for their HTM systems. Sadly, I still have not gone into the details of the old algorithm!&lt;br /&gt;&lt;br /&gt;I'll quote the key passage from Jeff:&lt;br /&gt;&lt;br /&gt;"Last fall I took a fresh look at the problems we faced. I started by&lt;br /&gt;returning to biology and asking what the anatomy of the neocortex&lt;br /&gt;suggests about how the brain solves these problems. Over the course&lt;br /&gt;of three weeks we sketched out a new set of node learning algorithms&lt;br /&gt;that are much more biologically grounded than our previous algorithms&lt;br /&gt;and have the promise of dramatically improving the robustness and&lt;br /&gt;performance of our HTM networks. We have been implementing these new&lt;br /&gt;algorithms for the past six months and they continue to look good."&lt;br /&gt;&lt;br /&gt;Sure. Even my own limited reading so mostly-outdated neurology texts seemed to indicate that the early versions of HTM are simplistic (compared to systems of human brain neurons). The new version, styled FDR (Fixed-sparsity Distributed Representation), are somewhat more complicated, but Jeff believes they are more capable. In particular, they deal better with noise and variable-length sequences.&lt;br /&gt;&lt;br /&gt;On the other hand, we are certainly hoping to get machines to actually understand the world without having to duplicate (in software) a human brain molecule by molecule.&lt;br /&gt;&lt;br /&gt;Jeff gave a lecture on the new algorithm at the University of British Columbia, which will have to do for the rest of us until details are posted at the Numenta web site:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=TDzr0_fbnVk"&gt;http://www.youtube.com/watch?v=TDzr0_fbnVk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See also my &lt;a href="http://www.openicon.com/mu/mu_main.html"&gt;Machine Understanding&lt;/a&gt; main web page.&lt;br /&gt;&lt;br /&gt;In the meantime I intend, in addition to doing my own thinking &amp;amp; tinkering, to resume my program of going through the already-posted, earlier version examples of HTM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6117468273158612367?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6117468273158612367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/05/new-algorithms-from-numenta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6117468273158612367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6117468273158612367'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/05/new-algorithms-from-numenta.html' title='New Algorithms from Numenta'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4508681882071233230</id><published>2010-04-06T09:53:00.000-07:00</published><updated>2010-04-06T10:02:43.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='songs'/><category scheme='http://www.blogger.com/atom/ns#' term='genetics'/><category scheme='http://www.blogger.com/atom/ns#' term='Hebbian learning'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='nervous system'/><title type='text'>Songbirds, Genes, and Neurons</title><content type='html'>I just read a &lt;em&gt;New York Times&lt;/em&gt; article, &lt;a href="http://www.nytimes.com/2010/04/06/science/06bird.html?ref=science"&gt;From a Songbird, New Insights Into the Brain&lt;/a&gt; by Nicholas Wade, and it reminded me of a number of machine understanding issues. So I am going to take a break from my series on the Hierarchical Temporal Memory (HTM) model and muse on intelligence, understanding and song.&lt;br /&gt;&lt;br /&gt;The article gives a minimum of information on how genes actually affect the ability of a bird to learn and sing a song. The key revelations of the article are that the &lt;a href="http://en.wikipedia.org/wiki/Zebra_finch"&gt;zebra finch&lt;/a&gt; (Taeniopygia guttata), has had its &lt;a href="http://en.wikipedia.org/wiki/Genome"&gt;genome&lt;/a&gt; decoded and that about 800 genes change their activity levels in neurons when the finch sings. The article implies that defects in these genes might interrupt singing ability, just as mutated FOXP2 genes in humans cause speech defects. In particular the bird version of FOXP2, if defective, prevents songbirds from singing.&lt;br /&gt;&lt;br /&gt;This would seem to go against my basic understanding of how systems of neurons work, which I like to think I is up with the current scientific consensus. Once a basically functioning neural network is in place, I thought genetic activity becomes background activity. Of course the genes would function just like they do in any cell, releasing instructions for making proteins that regulate cell activity. And maybe some of the 800 genes mentioned in Wade's article are ones that would up-regulate or down-regulate any neural activity, not just songs, or learning. But according to David F. Clayton, "these transcripts don't result in the cells producing proteins in the usual way. Instead they seem to modulate the activity of other genes involved in listening."&lt;br /&gt;&lt;br /&gt;My (learned from textbooks) model is: genes have blueprints for several types of neurons with varying synapses and neurotransmitters and receptor. Signals are conducted by reasonably well understood mechanisms involving membrane potentials along the neurons and either chemical or electrical transmission at synapses. Genes in the neuron are just caretakers once a system is set up. Learning results from a strengthening or weakening of synaptic thresholds. This is called Hebbian learning, and while there are some theories about how Hebbian learning works at the molecular level, at this point I don't take them as proven.&lt;br /&gt;&lt;br /&gt;If the article is true as presented, then individual neurons are more complex than I thought. It is implied that many neurons can function just fine with a mutated FOXP2 genes (every gene would be in every neuron, in fact in every cell), but not neurons that are involved in learning songs. But other neurons learn just fine.&lt;br /&gt;&lt;br /&gt;What would distinguish a song-learning neuron from a muscle-coordination learning neuron? I don't know.&lt;br /&gt;&lt;br /&gt;As is typical with the New York Times, they want to keep you in their ad ghetto, so they provide no link to the research report, but they say it is in the current issue of Nature. Here is the link: &lt;a href="http://www.nature.com/nature/journal/v464/n7289/pdf/nature08819.pdf"&gt;The genome of a songbird&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4508681882071233230?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4508681882071233230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/04/songbirds-genes-and-neurons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4508681882071233230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4508681882071233230'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/04/songbirds-genes-and-neurons.html' title='Songbirds, Genes, and Neurons'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6692614466898552326</id><published>2010-04-05T18:17:00.000-07:00</published><updated>2010-04-05T18:26:59.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='temporal pooling'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='pooling algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='spatial pooling'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><title type='text'>Bitworm HTM Example Program, Part 3: Spatial and Temporal Pool Overview</title><content type='html'>In &lt;a href="http://www.openicon.com/mu/mu_blog/2010/mu_03_31_2010.html"&gt;Understanding Bitworm Part 2&lt;/a&gt; I wrote: "Among the other parameters of CreateNode you can see spatialPoolerAlgorithm and temporalPoolerAlgorithm. I don't think I having used "pooling" yet. Remember I wrote about quantization points? [See &lt;a href="http://www.openicon.com/mu/mu_blog/2010/mu_03_04_2010.html"&gt;How do HTMs Learn?&lt;/a&gt;] There are a number of available points both for spatial and temporal patterns in the unsupervised nodes. They need to be populated, and they may change during the learning phase. Pooling appears to be NuSpeak for this process; a pooler algorithm is the code that matches up incoming data to quantization points."&lt;br /&gt;&lt;br /&gt;To learn about the pooling algorithms I went to the &lt;em&gt;Numenta Node Algorithm Guide&lt;/em&gt;, which is not at the Numenta web site, but installs with NuPIC under \Program Files\Numenta\nupic-1.7.1\share\doc\NodeAlgorithmsGuide.pdf.&lt;br /&gt;&lt;br /&gt;There are two node types implementa the NuPIC learning algorithms:&lt;br /&gt;&lt;br /&gt;SpatialPoolerNode&lt;br /&gt;TemporalPoolerNode&lt;br /&gt;&lt;br /&gt;Some confusion might exist because in more general Numenta discusions a node is treated as a single entity, but both the spatial and the temporal node are needed to create a functioning general node. When the unsupervised node in Bitworm is created with CreateNode(Zeta1Node,...), in effect both a SpatialPoolerNode and a TemporalPoolerNode are created to get full functionality. They refer to both node types being in the same level of the HTM hierarchy. But with you can design more complicated patterns by arranging SpatialPoolerNode and TemporalPoolerNode in an HTM as needed, rather than always pairing them on a level.&lt;br /&gt;&lt;br /&gt;"Spatial pooling can be thought of as a quantization process that maps a potentially infinite number of input patters to a finite number of quantization centers." Which in other lit Numenta calls quantization points. Data, in our HTM world, has a spatial aspect. This might not be change along a spatial dimension; space has a more general sense. For instance, the space might be a range of voltages, or sets of voltages from an EKG, for instance. Spatial data usually varies so complexly that we are only interested in the data that is created by objects, or causes. Spatial pooling groups the data into a limited number of causes (or guesses about causes).&lt;br /&gt;&lt;br /&gt;Temporal pooling does the same thing with the patterns (objects) identified by the spatial pooler over time sequences. "If pattern A is frequently followed by pattern B, the temporal pooler can assign them to the same group."&lt;br /&gt;&lt;br /&gt;A group of nodes forming an HTM level may be able to form invariant representations of objects by combining spatial and temporal pooling. If it can, it passes these representation up the hierarchy.&lt;br /&gt;&lt;br /&gt;Once learning is achieved the nodes can be used for inference: they can identify new data as containing patterns that have already been learned.&lt;br /&gt;&lt;br /&gt;For now I will focus on the learning phase, since the inference phase is relatively easy to understand if you understand how learning takes place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4 align="left"&gt;SpatialPoolerNode&lt;/h4&gt;I just realized the paper I am reading does not actually give the algorithms used. However, the key algorithm is probably related to the maxDistance parameter. Distance here could be ordinary distance, but it is more likely to be distance within a generalized, possible many-dimensional, heterogeneous pattern space. All kinds of problems leap to mind for writing such a generalized algorithm. I would bet that space/data specific algorithms would really help here (sound vs. sight vs. spatial orientation of human fingers), but perhaps if the quantification is always done before the data is fed in, it is just a matter of matching numbers. Anyway, if you have a distance function, you can group the spatial patterns as falling around a set of centers. These centers are your quantization points. As discussed elsewhere these points are flexible; if a lot of patterns fall close to each other, you might want to tighten up the distance parameter because otherwise you don't use all your allocation of quanization points. That should happen automatically, but either it doesn't, so you need to set the maxDistance parameter, or it does but you still have the option of disagreeing with the automatic or default settings.&lt;br /&gt;&lt;br /&gt;Your number of quantization points is set by maxCoincidenceCount. "Storing too few coincidence patterns can result in loss of accuracy due to loss of information. Storing too many coincidence patterns can result in lower generalization and longer training times."&lt;br /&gt;&lt;br /&gt;You can also set the sigma parameter. Here's another insight into the algorithm: "each input pattern is compared to the stroed patterns assuming that the stored patterns are centers of radial basis functions with Gaussian tuning. The sigma parameter specifies the &lt;a href="http://www.robertniles.com/stats/stdev.shtml"&gt;standard deviation&lt;/a&gt; of the &lt;a href="http://en.wikipedia.org/wiki/Gaussian_distribution"&gt;Gaussian&lt;/a&gt; [distribution]." So this would work, along with maxDistance, in matching incoming data patterns to existing quantization points.&lt;br /&gt;&lt;br /&gt;The clonedNodes parameter allows a set of spatial nodes to use the same coincidence patterns. This allows all the nodes in a level to detect the same causes. In vision that could be moving lines, spots, etc.&lt;br /&gt;&lt;br /&gt;The spatial pooler nodes take inputs with the bottomUpIn parameter. The spatial pattern outputs in inference mode are in bottomUpOut; outputs in learning mode go to a temporal pooler.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4 align="left"&gt;TemporalPoolerNode&lt;/h4&gt;Temporal pooling has more options than spatial pooling, in particular offering parameters for both first-order and higher-order learning.&lt;br /&gt;&lt;br /&gt;Your number of temporal groups, or time quantization points, is set by requentedGroupCount.&lt;br /&gt;&lt;br /&gt;You can select a variety of algothims to use to compute output probabilities with the temporalPoolerAlgorithm parameter, but it has no impact on the learning algorithm.&lt;br /&gt;&lt;br /&gt;There are a number of sequencer parameters that allow control of the of the algorithm. sequencerWindowCount allows for multiple stages of discovery (the default is 10). sequencerWindowLength allows segmentation of the input sequence to look for patterns. sequencerModelComplexity apparently allows you to adjust for how the recognizable patterns are balanced between the spatial and temporal dimensions. Some objects produce mainly spatial patterns, others mainly temporal, and most combine the two to a greater degree.&lt;br /&gt;&lt;br /&gt;As with SpatialPoolerNode, you can clone the nodes if you desire. bottomUpIn takes the data in from one or more spatial pooler nodes. bottomUpOut is the resulting vector of real numbers representing "the likelihood that the input belongs to each of the temporal groups of this node."&lt;br /&gt;&lt;br /&gt;In addition to parameters, TemporalPoolerNode takes a command: predict, but it works only in inference mode.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Despite not revealing the details of the algorithms, the Guide, plus the previous materials I read, gave me a good overview of what the algorithms need to achieve. I am pretty sure that I would write algorithms that do approximately what the Numenta pooling algorithms do, but since they have been playing with this for years, I would rather catch up by examinging the code inside the Numenta classes.&lt;br /&gt;&lt;br /&gt;See also: &lt;a href="http://www.openicon.com/mu/mu_blog/2010/mu_03_08_2010.html"&gt;More on Internal Operations of Nodes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6692614466898552326?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6692614466898552326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/04/bitworm-htm-example-program-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6692614466898552326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6692614466898552326'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/04/bitworm-htm-example-program-part-3.html' title='Bitworm HTM Example Program, Part 3: Spatial and Temporal Pool Overview'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5315817357143402803</id><published>2010-03-31T18:24:00.000-07:00</published><updated>2010-03-31T18:38:04.937-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BitWorm'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='nodes'/><category scheme='http://www.blogger.com/atom/ns#' term='pooling algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='NuPIC'/><title type='text'>Understanding the Bitworm NuPIC HTM Example Program, Part 2: Network Creation Overview</title><content type='html'>Now that Bitworm is running (See &lt;a href="http://www.openicon.com/mu/mu_blog/2010/mu_03_29_2010.html"&gt;Bitworm Part 1&lt;/a&gt;), there are a variety of options. In the &lt;a href="http://www.numenta.com/for-developers/documentation.php"&gt;Getting Started&lt;/a&gt; document the next steps are funning Bitworm with "temporally incoherent data" and then with noisy data. We could go to the data generation functions and play with them, then see how Bitworm reacts. I am more interested in how the network is created, and how it functions internally. An overview of this is covered in "Creating the Untrained HTM Network File," (starting page 21 of Getting Started).&lt;br /&gt;&lt;br /&gt;One thing I found helpful is looking at the set of programs in \Numenta\nupic-1.71\share\projects\bitworm\runtimeNetwork\. These include what appears to be an older version of RunOnce.py that uses CreateNetwork.py for network creation. In the "plain" version of RunOnce the network creation segment has just four lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#990000;"&gt;bitNet = Network()&lt;br /&gt;AddSensor(bitNet, featureVectorLength = inputSize)&lt;br /&gt;AddZeta1Level(bitNet, numNodes = 1)&lt;br /&gt;AddClassifierNode(bitNet, numCategories = 2)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AddSensor(), AddZeta1Level(), and AddClassifier() are imported functions from nupic.network.helpers. They don't seem to be used other than for Bitworm, so they are worth discussing only in the context of understanding the node structure of Bitworm. This network appears to have 4 nodes in the Getting Started (page 22) illustration, but in CreateNetwork.py we find five listed: the sensor node, the category sensor node, an unsupervised node, a supervised node, and an effector node. Getting Started calls 3 of the nodes the same, but instead of supervised and unsupervised, refers to bottom-level and top-level nodes.&lt;br /&gt;&lt;br /&gt;Jumping ahead in Getting Started, we find that bitNet = Network() does indeed create an HTM instance that nodes can be added to and arranged in.&lt;br /&gt;&lt;br /&gt;The runtime version replaces these with a single command (but a lot more parameters):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#990000;"&gt;createNetwork(untrainedNetwork = untrainedNetwork,&lt;br /&gt;inputSize = inputSize,&lt;br /&gt;maxDistance = maxDistance,&lt;br /&gt;topNeighbors = topNeighbors,&lt;br /&gt;maxGroups = maxGroups)&lt;/span&gt; &lt;p&gt;&lt;/p&gt;CreateNetwork.py can also be found in the runtime directory. Open it and the first thing you see&lt;br /&gt;CreateNetwork starts by importing nupic.network. So there is a set of one or more functions or classes we can use to get an overview; we'll look inside them later, if necessary. The following line of code gives us our function parameters, some of which are set specifically for Bitworm. So CreateNetwork.py is not a general-purpose HTM creation function.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#990000;"&gt;def createNetwork(untrainedNetwork,&lt;br /&gt;inputSize = 16,&lt;br /&gt;maxDistance = 0.0,&lt;br /&gt;topNeighbors = 3,&lt;br /&gt;maxGroups = 8):&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Next we have some agreement with the plain RunOnce.py:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#990000;"&gt;net = Network()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Network() is an imported function that creates the overall data structure for the HTM.&lt;br /&gt;&lt;br /&gt;Nodes are created with the CreateNode() function. The type of node - sensor, category sensor, unsupervised (Zeta1Nodes), supervised (Zeta1TopNodes), and effectors - is chosen with the first parameter of CreateNode(). Among the other parameters of CreateNode you can see spatialPoolerAlgorithm and temporalPoolerAlgorithm. I don't think I having used "pooling" yet. Remember I wrote about quantization points? [See &lt;a class="navigation2" href="http://www.openicon.com/mu/mu_blog/2010/mu_03_04_2010.html"&gt;How do HTMs Learn?&lt;/a&gt;] There are a number of available points both for spatial and temporal patterns in the unsupervised nodes. They need to be populated, and they may change during the learning phase. Pooling appears to be NuSpeak for this process; a pooler algorithm is the code that matches up incoming data to quantization points.&lt;br /&gt;&lt;br /&gt;I did not get as far as I would have liked today, but I am beginning to see some structure, and dinner is calling. Instead of calling this entry HTM Creation Classes and Functions, I'll call it an Overview.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5315817357143402803?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5315817357143402803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/understanding-bitworm-nupic-htm-example_31.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5315817357143402803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5315817357143402803'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/understanding-bitworm-nupic-htm-example_31.html' title='Understanding the Bitworm NuPIC HTM Example Program, Part 2: Network Creation Overview'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5352703373365614183</id><published>2010-03-29T13:57:00.000-07:00</published><updated>2010-03-29T14:05:35.623-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BitWorm'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern recognition'/><category scheme='http://www.blogger.com/atom/ns#' term='NuPIC'/><category scheme='http://www.blogger.com/atom/ns#' term='inference'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Understanding the Bitworm NuPIC HTM Example Program , Part 1</title><content type='html'>Now for my least favorite part of intellectual projects, figuring out someone else's computer code.&lt;br /&gt;When I installed the NuPIC package, a program called Bitworm was run to show that NuPIC installed correctly. Bitworm's main program, &lt;strong&gt;RunOnce.py&lt;/strong&gt; is written in &lt;a href="http://www.python.org/"&gt;Python script&lt;/a&gt; and might be characterized as a simplest meaningul example program, which makes it considerably more complicated than your typical Hello World one liner.&lt;br /&gt;&lt;br /&gt;The explanation of, and instructions for running and playing with Bitworm can be found in &lt;a href="http://www.numenta.com/for-developers/documentation.php"&gt;Getting Started With NuPIC&lt;/a&gt; (see pages 14-23). If you open RunOnce.py (mine conveniently opened in &lt;a href="http://docs.python.org/library/idle.html"&gt;IDLE&lt;/a&gt;, "Python's Integrated Development Environment") there is a good outline of the process too.&lt;br /&gt;&lt;br /&gt;The point is to test an HTM (Hierarchical Temporal Memory) with a simple data set. If you got here without knowing about HTMs, see www.numenta.com or my glosss starting with &lt;a href="http://www.blogger.com/mu_03_02_2010.html"&gt;Evaluating HTMs, Part 1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bitworm, or RunOnce, starts by creating a minimal HTM. It does this by importing nodes and components using functions that are part of the NuPIC package. It also sets some parameters which have already been built elsewhere. Then the HTM is trained using another already-created data set of bitworms, which are essentially short binary strings easily visualized if 1's as interpreted as black and 0's as white (or whatever colors you like). Later I'll want to look inside the nodes, and at how nodes are interconnected, in order to understand why this works, but for now I'll keep to the top-level-view.&lt;br /&gt;&lt;br /&gt;To test if the NuPIC HTM network learned to distinguish 2 types of bitworms, the training data set is again presented to see what outputs the HTM gives. This is also known as pattern recognition, but in temporal memory talk we prefer the term inference. The bitworms are examples of causes (objects in most other systems), and the HTM infers, from the data, which causes are being presented to it.&lt;br /&gt;&lt;br /&gt;That seems like too easy of a trick, infering causes based on the training set, so RunOnce also sees how the trained network does trying to infer cuases from a somewhat different set of data.&lt;br /&gt;&lt;br /&gt;As output RunOnce gives us the percentages of correct inferences for the training set and second data set, plus some information about the network itself.&lt;br /&gt;&lt;br /&gt;Presuming that you are using Windows and downloaded and setup the NuPIC package (see prior blog entry), to run Bitworm with RunOnce.py, open a command prompt (press Start, in the search box type Command. This should show Command Prompt at the top of the program list. Click it once. Since you will need Command Prompt often, you might also return to Start, right-click on Command Prompt, and Pin to Start Menu. Then it is always in your Start Menu. Or create a shortcut).&lt;br /&gt;&lt;br /&gt;Type:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;cd %NTA%\share\projects\bitworm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and hit Enter. That will get you in the right directory.&lt;br /&gt;&lt;br /&gt;Then run RunOnce by typing the following and hitting Enter:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;python RunOnce.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you get errors, you need to run the Command Prompt as an Administrator. Close the window, then right click on Command Prompt and choose Run As Administrator. Click through security warnings.&lt;br /&gt;&lt;br /&gt;The output says there were two sets off 420 data vectors written. Inference with the training set as input data was 100% accurate. Inference with the 2nd data set was 97.85...% accurate.&lt;br /&gt;&lt;br /&gt;As it says, you can also open report.txt. Here's what mine says:&lt;br /&gt;&lt;br /&gt;General network statistics:&lt;br /&gt;Network has 5 nodes.&lt;br /&gt;Node names are:&lt;br /&gt;category&lt;br /&gt;fileWriter&lt;br /&gt;level1&lt;br /&gt;sensor&lt;br /&gt;topNode&lt;br /&gt;&lt;br /&gt;Node Level1 has 40 coincidences and 7 groups.&lt;br /&gt;Node Level2 has 8 coincidences.&lt;br /&gt;------------------------------&lt;br /&gt;Performance statistics:&lt;br /&gt;&lt;br /&gt;Comparing: training_results.txt with training_categories.txt&lt;br /&gt;Performance on training set: 100.00%, 420 correct out of 420 vectors&lt;br /&gt;Comparing: test_results.txt with test_categories.txt&lt;br /&gt;Performance on test set: 97.86%, 411 correct out of 420 vectors&lt;br /&gt;------------------------------&lt;br /&gt;Getting groups and coincidences from the node Level1 in network ' trained_bitworm.xml&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;====&amp;gt; Group = 0&lt;br /&gt;1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 1&lt;br /&gt;&lt;br /&gt;0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 2&lt;br /&gt;&lt;br /&gt;0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0&lt;br /&gt;&lt;br /&gt;1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 3&lt;br /&gt;&lt;br /&gt;0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0&lt;br /&gt;&lt;br /&gt;1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 4&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 5&lt;br /&gt;&lt;br /&gt;0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0&lt;br /&gt;&lt;br /&gt;0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0&lt;br /&gt;&lt;br /&gt;0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0&lt;br /&gt;&lt;br /&gt;1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;====&amp;gt; Group = 6&lt;br /&gt;&lt;br /&gt;0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style7" align="left"&gt;Full set of Level 2 coincidences:&lt;br /&gt;&lt;br /&gt;0 -&amp;gt; [ 0. 0. 1. 0. 0. 0. 0. 0.]&lt;br /&gt;&lt;br /&gt;1 -&amp;gt; [ 1. 0. 0. 0. 0. 0. 0. 0.]&lt;br /&gt;&lt;br /&gt;2 -&amp;gt; [ 0. 0. 0. 1. 0. 0. 0. 0.]&lt;br /&gt;&lt;br /&gt;3 -&amp;gt; [ 0. 0. 0. 0. 0. 1. 0. 0.]&lt;br /&gt;&lt;br /&gt;4 -&amp;gt; [ 0. 1. 0. 0. 0. 0. 0. 0.]&lt;br /&gt;&lt;br /&gt;5 -&amp;gt; [ 0. 0. 0. 0. 0. 0. 1. 0.]&lt;br /&gt;&lt;br /&gt;6 -&amp;gt; [ 0. 0. 0. 0. 0. 0. 0. 1.]&lt;br /&gt;&lt;br /&gt;7 -&amp;gt; [ 0. 0. 0. 0. 1. 0. 0. 0.]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5352703373365614183?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5352703373365614183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/understanding-bitworm-nupic-htm-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5352703373365614183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5352703373365614183'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/understanding-bitworm-nupic-htm-example.html' title='Understanding the Bitworm NuPIC HTM Example Program , Part 1'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4629929994522547557</id><published>2010-03-22T18:49:00.000-07:00</published><updated>2010-03-22T18:55:19.173-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BitWorm'/><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='NuPIC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Downloading and Installing NuPIC on a Windows computer</title><content type='html'>At last it is time for me to start playing with NuPIC (Numenta Platform for Intelligent Computing). First I need to get a working copy onto my computer, which is running Windows Vista 32-bit Home Premium on an AMD Athlon dual-core processor.&lt;br /&gt;&lt;br /&gt;The main Numenta page is &lt;a href="http://www.numenta.com/"&gt;http://www.numenta.com/&lt;/a&gt;. From there procede to the &lt;a href="http://www.numenta.com/for-developers/software.php"&gt;NuPIC downloads page&lt;/a&gt;. You need to log in, so register if you haven't already done so. The Windows version is 32 bit; there are also Mac and Linux (both 32 and 64 bit) versions available. The Windows version file size is 112 MB, which took my satelite Internet over 20 minutes to download. Then you need &lt;a href="http://www.numenta.com/for-developers/education/installing-nupic.php"&gt;NuPIC installation instructions&lt;/a&gt;. If you are like me, go straight to &lt;a href="http://www.numenta.com/mediawiki/index.php/NuPIC_Windows_Installation_Instructions"&gt;Windows NuPIC installation instructions&lt;/a&gt;. You also need your license file, which is sent to your email address when you register and download NuPIC.&lt;br /&gt;&lt;br /&gt;Oh boy, it come with a &lt;a href="http://en.wikipedia.org/wiki/Python_(programming_language)"&gt;Python&lt;/a&gt; installer. Another programming language to learn (I hope not). Add it, in my case, to APL, Cobol, Fortran, PL1, Pascal, Basic, C, C++, PHP, Javascript ... I hope I have not forgotten anyone important.&lt;br /&gt;&lt;br /&gt;After downloading and running the installation file, I did run into a hitch in the installation wizard. After the Python installation I got the old "not responding" error in the wizard window. Eventually, after closing some other application windows, I saw that a secondary Python window had popped up and needed to have its Continue buttons pressed. Once that was done the "not responding" error in the main install window went away and I completed the install successfully.&lt;br /&gt;&lt;br /&gt;That leaves Python on my system at C:/Python25/&lt;br /&gt;&lt;br /&gt;and NuPIC on my system at C:/Program Files/Numenta/nupic-1.7.1/&lt;br /&gt;&lt;br /&gt;It also means the first example, BitWorm, ran successfully, although I did not learn anything from it yet.&lt;br /&gt;&lt;br /&gt;Next up: the BitWorm example in detail&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4629929994522547557?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4629929994522547557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/downloading-and-installing-nupic-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4629929994522547557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4629929994522547557'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/downloading-and-installing-nupic-on.html' title='Downloading and Installing NuPIC on a Windows computer'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6934218452572706432</id><published>2010-03-18T14:43:00.000-07:00</published><updated>2010-03-18T14:48:49.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern recognition'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='probability'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='recall'/><category scheme='http://www.blogger.com/atom/ns#' term='CPTs'/><title type='text'>Evaluating HTMs: CPT details; specific memories</title><content type='html'>This is the last essay on "&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology&lt;/a&gt;" by Hawkins and George. Here I review two issues raised in Section 6, &lt;strong&gt;Questions&lt;/strong&gt;: details on how conditional probability tables (CPTs) work with HTMs, and why humans can have specific memories of events, but HTMs as currently described do not. The first is very technical, the second has more interesting implications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CPTs&lt;/strong&gt; are used in Bayesian networks to allow the belief (a set of probabilities about causes) of one node to modify another node. They can be create from algorithms using probability theory in conjunction with known data, the beliefs already established in the two nodes. In HTMs they are learned. As the quantization points are learned, the CPTs are the same as the learned quantization function that links the points to the temporal variables. There are two separate algorithms, but they run in parallel, creating an output to send up the hierarchy to the next node. This will probably because more transparent when we look at the actual algorithms used by the HTM nodes.&lt;br /&gt;&lt;br /&gt;It is claimed that humans can remember specific details and events, as well as model the world, whereas HTMs don't keep &lt;strong&gt;specific memories&lt;/strong&gt;. The authors talk about how the human brain might accomplish this feat, and how the capability might be added to HTMs. I instead wonder whether they are right about humans remembering specific details of specific events.&lt;br /&gt;&lt;br /&gt;It certainly is the naive view, and since I subscribe to the &lt;a href="http://en.wikipedia.org/wiki/Scottish_School_of_Common_Sense"&gt;common sense school of philosophy&lt;/a&gt; (with my own updates), assailing the view is mainly just an exercise at this point. But consider this: numerous studies have shown that eye witnesses are unreliable. I suspect that a visual memory is not like a photograph, nor is the memory of a song like a recording, nor is the memory of an event a sort of whole sensory record of a period of time. I believe humans do remember things, and can train their memories to be more like recorders, and in particular can memorize speeches, poems, sequences of numbers, etc. But I think the HTM model actually is at least approximately the way that the brain works. Different levels of the neurological system remember, or become capable of recognizing, different levels of details about things. There are mechanisms in the brain that allow recall of these memories on different levels. But I would be careful about assuming that because we can recall an event (or picture, etc.) in more or less detail we must be calling up a recording. We seldom learn anything of any length in detail by simply hearing or seeing it. If you have memorized that the first digits of pi are 3.14159, what is that a recording of? The words for the number sequence as sounded out in English, a visual memory of seeing this number in a particular typeface in a particular paragraph on paper of a particular tone, or an abstract memory corresponding to abstract groups of abstract units? Typically we must be exposed to something many times to be able to remember it or recognize it, just like an HTM.&lt;br /&gt;&lt;br /&gt;I think we are so good at reconstructing certain types of memories that we think we have photograph or video-like recordings of them. That is why eye witnesses think they are telling the truth, when they often substitute details from other events into a "memory" [notably, a face from a lineup that actually was not present at a crime scene]. That is why our memories are so often mistaken (I could have sworn I turned off that burner!) and why we can recall so much without having a roomful of DVDs in our brains. Our memories are largely indistinguishable from our intelligence, and are both fragmented in detail and yet easily molded into a whole as necessary. This is why recognition is usually much better than recall.&lt;br /&gt;&lt;br /&gt;The more I study HTMs, the more curious I get. I don't know what the next step will be in my investigations, but hopefully I'll let you know soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6934218452572706432?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6934218452572706432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-cpt-details-specific.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6934218452572706432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6934218452572706432'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-cpt-details-specific.html' title='Evaluating HTMs: CPT details; specific memories'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-3123794192730559621</id><published>2010-03-09T14:50:00.000-08:00</published><updated>2010-03-09T14:54:07.256-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='causes'/><category scheme='http://www.blogger.com/atom/ns#' term='supervision'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern recognition'/><category scheme='http://www.blogger.com/atom/ns#' term='inference'/><category scheme='http://www.blogger.com/atom/ns#' term='objects'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><title type='text'>Why Time is Necessary for HTM's Learning</title><content type='html'>In "&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George, Section 5, &lt;strong&gt;Why is Time Necessary to Learn?&lt;/strong&gt; clarifies the role of temporal sequences and temporal pattern points in both learning and recognition (inference) by HTMs.&lt;br /&gt;&lt;br /&gt;The authors use a good example, a cut versus uncut watermelon, to distinguish between pattern matching algorithms, and how HTM's learn to recognize patterns that are created by objects (causes, in HTM vocabulary). Any real world animal, when viewed, presents an almost infinite number of different visual representations. If you use a type of animal, say horses instead of a particular horse, the data is even more divergent. Pattern matching does not work well. But allow an HTM to view an animal or set of animals over time, and it will build up the ability to recognize an animal from different viewpoints: front, back, profile, or against most sorts of backgrounds.To do that requires data presented over time. Data that is close sequentially should be similar but not identical. Early data might be of a horse, head on, far away, which gradually resolves to a horse viewed close up. So over time the HTM can capture the totality of the horse.&lt;br /&gt;&lt;br /&gt;Combining recognition of causes with names given by an outside source is also considered. Thus no amount of viewing a horse will tell an HTMs that human's call the thing "horse." You can do "supervised learning" with an HTM, training it to associate a name with a cause by imposing states on the top level of the HTM hierarchy. But it should be a simple extension to have a vocabulary learning HTM and an object learning HTM in a hierarchy with a learn-to-name-the-object HTM on top.&lt;br /&gt;&lt;br /&gt;Once an HTM has learned to recognize images (or other types of data) it can recognize static images (or data). The authors say "The Belief Propagation techniques of the hierarchy will try to resolve the ambiguity of which sequences are active." I am not clear on that. It seems to me that static temporal patterns happen often enough in the real world so that some temporal pattern points will represent static causes. If the horse stands still in the real world, it would generate such temporal patterns. As the data goes up the hierarchy it tends to filter out ambiguity and stabilize causes, so a leaping horse should still be the same as a frozen image of a leaping horse at some point high enough in the hierarchy.&lt;br /&gt;&lt;br /&gt;Section 6 is a sort of frequently asked questions part of the paper. I'm not sure if I'll cover all the sections or in what order, and I do want to go back to section 3.3 on belief propagation before closing out this series.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-3123794192730559621?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/3123794192730559621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/why-time-is-necessary-for-htms-learning.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3123794192730559621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3123794192730559621'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/why-time-is-necessary-for-htms-learning.html' title='Why Time is Necessary for HTM&apos;s Learning'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4102439199317812734</id><published>2010-03-08T16:34:00.000-08:00</published><updated>2010-03-08T16:41:10.966-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='nodes'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='inference'/><category scheme='http://www.blogger.com/atom/ns#' term='probability'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><title type='text'>Evaluating HTMs, Part 5: Internal Operations of Nodes</title><content type='html'>"&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George, Section 4, &lt;strong&gt;How does each node discover and infer causes?&lt;/strong&gt;, covers questions about the internal operations of nodes that were raised or partly covered in earlier sections.&lt;br /&gt;&lt;br /&gt;Basically, each node simulataneously does both learning and recognition of spatial and temporal patterns. The output is information about the patterns that can be sent up and down the hierarchy of nodes.&lt;br /&gt;&lt;br /&gt;Spatial patterns do not necessarilly mean space as in space-time continuum, although the example used in the essay is of a two dimensional visual space. Space is used in the mathematical sense. The data can be anything quantifiable. The space could be any number of dimensions. For instance the maximum daily surface temperature of the earth would consitute a space within a certain range of degrees Centigrade, to whatever desired level of precision, on a spherical 2D grid representing the surface of the earth to any desired degree of precision. The time sequence in this example would be daily samples. In a digital audio example the time sequence intervals might be something on the order of .0001 seconds.&lt;br /&gt;&lt;br /&gt;The node has a significant number of "quantization points" available to categorize the spatial data. Only the most common data patterns, up to the number of quantization points, will be learned. Anything that is not one of the learned patterns will be assigned a probability that it is one of the learned patterns plus some noise.&lt;br /&gt;&lt;br /&gt;Having leaned the quantization points, the node can start looking for common temporal sequences of them. Again, a limited number of points or memory units are allocated for learned temporal patterns. I can't find where the authors give them a name, so at the risk of being corrected later, I'll call them temporal pattern points. Again, temporal pattern matches don't need to be exact; some noise is tolerated.&lt;br /&gt;&lt;br /&gt;Once learning has taken place (learning can continue), the node can work to infer causes. The patterns held in the quantization points, as well as the patterns of these in time held in the temporal pattern point, can be causes (or call them objects, which is the more typical if less precise vocabulary.). As time passes the data changes and the causes output to the higher level node(s) of the hierarchy change.&lt;br /&gt;&lt;br /&gt;Another very important idea to wrap your head around is that the node, and the HTM, need to deal with probabilities. You might get an exact match with 100% probability, you might even be able to design special situations where you don't need to deal with probability. But the whole point of HTMs (from an engineering standpoint) is to be able to deal with complex real world data, in a manner similar to the human brain. So whether dealing with matching a spatial pattern to the quantization points, or a temporal pattern to the temporal pattern points, you need to think in terms of probability. There is a 42% change that it matches point 7, an 18% change it matches point 42, and a 40% chance that it matches none of the quantization points. With the temporal pattern it gets more complicated, since you can't assume that just because a spatial pattern is most likely point 7, it is not in a temporal pattern that goes, say 49, 3, 7 instead of 49, 3, 42.&lt;br /&gt;&lt;br /&gt;Hey, but that is what computers are handy for, figuring probabilities and keeping track of them.&lt;br /&gt;&lt;br /&gt;The output to the higher-level nodes might be though of as: There is a 12% probability that we are seeing temporal pattern point 7, 35% it is point 16, 48% it is point 34, and 5% it is point 49. It seems to us to be messy, but it is exactly the sort of thing the next level up is looking for. We call it a vector output, but it also can be thought as a set of data pairing probabilities and points that are arbitrarilly assigned to spatial-temporal patterns.&lt;br /&gt;&lt;br /&gt;Hey, I think I am beginning to understand this stuff.&lt;br /&gt;&lt;br /&gt;Which brings me back to one of those basic science and philosophy questions that made me interested in machine understanding in the first place. If everything is abstract, how do we (the HTM or a living human brain) get the picture of the world that seems all so familiar to us? If all the world does it produce neuronal impulses in our bodies, what makes red different from blue, and the junk on my desk resolve easily into envelopes, pens, gadgets, fake wood patterns and a host of other things?&lt;br /&gt;&lt;br /&gt;Next: Why is Time Necessary to Learn?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4102439199317812734?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4102439199317812734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-5-internal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4102439199317812734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4102439199317812734'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-5-internal.html' title='Evaluating HTMs, Part 5: Internal Operations of Nodes'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-959825559375124608</id><published>2010-03-06T15:50:00.000-08:00</published><updated>2010-03-06T15:55:00.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='nodes'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='attention'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><title type='text'>Evaluating HTMs, Part 4: The Importance of Hierarchy</title><content type='html'>See also &lt;a href="http://www.blogger.com/mu_03_02_2010.html"&gt;Part 1&lt;/a&gt;, &lt;a href="http://www.blogger.com/mu_03_03_2010.html"&gt;Part 2&lt;/a&gt;, &lt;a href="http://www.blogger.com/mu_03_04_2010.html"&gt;Part 3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George, Section 3, &lt;strong&gt;Why is Hierarchy Important?&lt;/strong&gt;, draws a detailed picture of the relationship between the structuring of the nodes of an HTM and real-world (or even virtual world) data. To stick closely to the subject of hierarchy, I'll cover subsections 1, 2, and 4, here, leaving subsection 3, Belief Propagation, to be treated as a separate topic.&lt;br /&gt;&lt;br /&gt;If you don't understand the concept of hierarchy, try &lt;a href="http://en.wikipedia.org/wiki/Hierarchy"&gt;Hierarchy&lt;/a&gt; at Wikipedia.&lt;br /&gt;&lt;br /&gt;I think it is best to start with "3.2 The hierarchy of the HTM matches the spatial and temporal hierarchies of the real world." Hierarchies are not always patterns humans impose upon the sensory data we receive from the external world. Each whole has its parts, as a face has eyes, ears, a mouth and nose as well as other features.&lt;br /&gt;&lt;br /&gt;The world itself embodies the principle of locality. Spatial and temporal closeness and distance can be interpreted as a hierarchy, if a more abstract one. One might define "close" as meaning within a nanometer and nano secord, with hierarchical levels covering distances and times grouped by factors of twos or tens, up to the size of the cosmos. Or whatever is convenient for the data you are learning about. The bottom layer of the HTM hierarchy learns from the smallest divisions, and passes its interpretations (beliefs) up the hierarchy. Thus in music if the data is already in the form of notes, the bottom layer might deal with two-note sequences, the next layer with 4 note sequences, then 8 notes, 16 notes, 32 notes, on up to the number of notes in a symphony.&lt;br /&gt;&lt;br /&gt;Music offers a one-dimensional (or two, if you plot the frequency of the notes) example, but HTMs should be able to deal with higher numbers of dimensions as long as the causes have a hierarchical structure.&lt;br /&gt;&lt;br /&gt;Note the design guidance at the end of the section. Our HTM designs should be targetted at problems have appropriate space-time structure. The designs need to capture local correlations first. And the hierarchical structure of nodes should be designed to efficiently model the problem space.&lt;br /&gt;&lt;br /&gt;Now back to 3.1, "Shared representaions lead to generalization and storage efficiency." The belief is that HTMs are efficient at learning complex data and causes. In other words, HTMs scale well. This can be, in computer hardware terms, memory size and computing power. This is possible because the lower levels of the HTM break interpret the data into what might be called micro-causes. Or cause modules. These modules can be reused by any of the causes found much higher in the HTM. This mimics what we know of the human visual pathway, where at the lower levels nerves appear to respond to small features on the retina like spots, short lines at various angles, simple changes in contrast, etc. Using the human face as an example, the HTM might recognize eyes, lips, proportions, etc., and categories within these features. Almost all six billion human faces presently on earth would be interpretable in terms of these basic components and their spatial relationships. Two represent each of the faces you don't need 6 billion 10 megapixel bitmap pictures. You just need 6 billion summaries that could probably be represented with a few bytes of data. Recognition would resolve to summarizing the new picture of a face and then finding the closest summary already held by the HTM.&lt;br /&gt;&lt;br /&gt;The authors point out that "the system cannot easily learn to recognize new objects that are not made up of previously learned sub-objects." Which we see in human behavior from the household chore level right up to big pictures like evolution and relativity staring large groups of scientists in the face for decades before a Darwin or Einstein said "I recognize a new, high-level causation here."&lt;br /&gt;&lt;br /&gt;Within the section is a helpful explanation about "quantization points," which I said were left unclear in section 2. It gives the reason for having a much lower number of quantization points than there are possible events in the event space. It points out that in a 10 by 10 square of binary (black or white) pixels, there are 2 to the 100th different patterns. By limiting the number of quantization points you force the node to group every input image into a type of pattern (some examples could be lines with various orientations, spots that move in a particular direction, more black on the right or left, etc.). These would be "the most common patterns seen by the node during training."&lt;br /&gt;&lt;br /&gt;In section 3.4 the authors give an introductory look at the idea that HTMs can pay attention to certain aspects of the data. In other words, just as you might focus on your newspaper while riding public transportation to work, an HTM can pick some level of the hierarchy of data to focus on. Suppose it is a facial recognition HTM and it thinks a face present to it could be George or Herbert. By focussing on a particular aspect of the face, say the nose-to-lips difference, it might become more certain that the face belongs to George. People can do this both consciously and unconsicously.&lt;br /&gt;&lt;br /&gt;It an HTM could do that, it would be really cool.&lt;br /&gt;&lt;br /&gt;Next: Evaluating HTMs, Part 5: Belief Propagation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-959825559375124608?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/959825559375124608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-4-importance-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/959825559375124608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/959825559375124608'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-4-importance-of.html' title='Evaluating HTMs, Part 4: The Importance of Hierarchy'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-6630919991908382973</id><published>2010-03-04T19:15:00.000-08:00</published><updated>2010-03-04T19:21:40.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='nodes'/><category scheme='http://www.blogger.com/atom/ns#' term='beliefs'/><category scheme='http://www.blogger.com/atom/ns#' term='quantization points'/><category scheme='http://www.blogger.com/atom/ns#' term='sequences'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><title type='text'>How Do HTMs Learn?</title><content type='html'>&lt;h1&gt;&lt;span style="font-size:100%;"&gt;Evaluating HTMs, Part 3: How do HTMs Learn?&lt;/span&gt;&lt;/h1&gt;&lt;br /&gt;"&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George, Section 2, &lt;strong&gt;"How Do HTMs Discover and Infer Causes"&lt;/strong&gt;, gives an overview of the internal mechanisms of HTMs.&lt;br /&gt;&lt;br /&gt;Specifically, it gives an a overview of how HTMs learn. This prompted me to think about the difference between learning and discovery. They could be the same thing, but learning for humans often implies a teacher presenting information to be learned to a student. Discovery implies coming upon something new (perhaps a relationship between already known objects) and realizing that it is new and should be remembered.&lt;br /&gt;Each node in an HTM uses the same algorithm. The nodes are arranged hiearchically, with representations typically showing a row of nodes at the bottom that take input. Each row above the bottom has progressively fewer nodes. The top node is a single node. Its output is a vector that represents a cause, or object related to the data in a causal fashion. In fact each node does this, passing its output vector to the next higher row of nodes. So causes are built up hierarchically. All data and discoveries include a time element. In a visual field, for instance, the time element could be no change in a part of the field, or changing color with time, or following a spot of color from one part of the visual field to another over a course of time.&lt;br /&gt;&lt;br /&gt;Get used to the technical use of the term "belief" if you want to follow discussions about HTMs. This term is used extensively in probabilistic reasoning theory. "A belief is an internal state of each node," but it does correspond to a probability that there is a causal relationship in the data. "I believe the lion must have escaped from the zoo," is a sentence that conveys to us that a person lives where lions do not live in the wild; it differs from "I know ..." because the speaker is admitting there are other possible causes. In a simple HTM, in a lower node, a belief might be something like "28% probability that this is a horizontal line, 16% that this is two animal eyes, etc." Again, beliefs are represented in software by vectors, but they are not generally identical to the output vectors of the nodes.&lt;br /&gt;&lt;br /&gt;In training or learning, the HTM forms new beliefs at the bottom of the hierarchy of nodes first. More complex beliefs can only be created once lower level beliefs exist, but the entire process is flexible. If a lower level node alters its belief, it tends to effect higher level nodes. So learning is not just memorization.&lt;br /&gt;&lt;br /&gt;So how does a node do all this? Nodes are given a set number of "quantization points." Here the authors are not very clear. The input pattern is assigned to one of the quantization points. And/or "the node decides how close (spacially) the current input is to each of the quantization points and assigns a probablity to each quantization point." How it decides is presumably an algorithm. With enough quantization points, each input data set could be matched exactly to a point. Would that set up cause the node to fail? To do as the authors say, the assumption is there are less quantization points than there are possible inputs.&lt;br /&gt;&lt;br /&gt;Step two is "the node looks for common sequences of these quantization points" and "represents each sequence with a variable." So you have to ask, why assign probabilities, why not just assign closest fits? In any case the output variable represents a sequence of quantization points based on the sequence of input data.&lt;br /&gt;&lt;br /&gt;Admitting that the authors are introducing the topic, and its vocabulary, still I would have liked more than two short paragraphs on the internal operations of HTM nodes.&lt;br /&gt;&lt;br /&gt;Interestingly (and copying what is known about the cortex of mammal brains) information can move both up and down the hierarchy of nodes. As just described, data moving up the hierarchy is temporal variables. Data going down the hierarchy represents the "distribution over the quantization points." That would be a probability distribution.&lt;br /&gt;&lt;br /&gt;What I suspect the authors mean is that there is a mechanism to alter the quantization points themselves. Points with long-term zero percent probabilities don't help resolve ambiguity. The set of point probabilities being sent down the hierarchy allows the (lower) node to "take a relatively stable pattern from its parent node(s)" and "turn it into a sequence of spatial patterns."&lt;br /&gt;&lt;br /&gt;The claim is that over time "patterns move from the bottom of the hierarchy to the top." In effect rather than sending the raw data up the hierarchy, the nodes send "names" of data sequences up the hierarchy.&lt;br /&gt;&lt;br /&gt;That would be pretty cool, and I'd like to know exactly how it happens, but this is, afterall, only an introduction.&lt;br /&gt;&lt;br /&gt;Next: Why is a hierarchy important?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-6630919991908382973?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/6630919991908382973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/how-do-htms-learn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6630919991908382973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/6630919991908382973'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/how-do-htms-learn.html' title='How Do HTMs Learn?'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-7490149509778042224</id><published>2010-03-03T16:05:00.000-08:00</published><updated>2010-03-03T16:11:42.686-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Hebbian learning'/><category scheme='http://www.blogger.com/atom/ns#' term='behavior'/><category scheme='http://www.blogger.com/atom/ns#' term='LIPD'/><category scheme='http://www.blogger.com/atom/ns#' term='inference'/><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><title type='text'>Evaluating HTMs, Part 2: What HTMs Do</title><content type='html'>For the introduction See &lt;a href="http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-1.html"&gt;Evaluating HTMs, Part 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George, Section 1, &lt;strong&gt;What Do HTMs Do?&lt;/strong&gt;, asserts that HTMs can &lt;strong&gt;discover&lt;/strong&gt; causal relationships in data presented to them. Once the causality is established, they can &lt;strong&gt;infer&lt;/strong&gt; the cause of a new input. They can &lt;strong&gt;predict&lt;/strong&gt; (with some accuracy) future data sets, and they can use the above three abilities to &lt;strong&gt;direct&lt;/strong&gt; (choose) behavior.&lt;br /&gt;&lt;br /&gt;It should be pointed out immediately that each of these 4 abilities have been demonstrated by other computational systems. Neural network software that could discover certain types of relationships from raw data was available at least as early as the 1980's. Many mathematical forms of analysis can find causal relationships within data, for instance regression analysis. In any system, once a relationship is established, recognizing it should present no great difficulty. Nor should making predictions, or using the system to control behavior.&lt;br /&gt;&lt;br /&gt;What is interesting about the set of claims for HTMs is that they work together holistically (like the human brain) and should be stackable. That is, the HTM systems should be able to deal with external relationships of increasing complexity by stacking HTM subsystems into an appropriate system. In addition, the HTMs can find relationships in time (sequential or temporal relationships).&lt;br /&gt;&lt;br /&gt;In fact, if we call some of the data "objects," for an HTM the objects "have a persistent structure; they exist over time." The authors call the objects "causes." In theory an HTM system could deal with multiple forms of data coming in directly from the world, but usually (for now) the HTM deals with a specific subset of data (much as when a human, say, concentrates on music, or on reading). The data could be a computer file, or a stream of data from input devices.&lt;br /&gt;&lt;br /&gt;For the HTM to work the causes should be relatively stable, but should generate data that changes over time, as a horse moving across a visual field, or a conversation between two people. Causes are typically multiple.&lt;br /&gt;&lt;br /&gt;The discovery of the causal relationships is a &lt;strong&gt;learning&lt;/strong&gt; process. During learning the HTM builds representations of causes in the form of vectors. The relationship is expressed as a set of probabilities for causes; this set is called a "belief." The causes, relationships, and beliefs can be quite complex if the HTM is complex enough. In particular, hierarchies of causes and beliefs can be learned.&lt;br /&gt;&lt;br /&gt;The authors say an HTM, once it has gone through learning, can "&lt;strong&gt;infer&lt;/strong&gt; causes of a novel input." This means that if it is presented with new data, it will try to match the data up to one of the causes it knows about. This is basically pattern recognition, and there are other systems, including certain neural networks, that do this well in certain situations. A good point made by is that if a million pixel visual field (of a scene with motion) is used as the input, it would be rare that an exact pattern would be input twice. So inference, matching a set of data to the closest cause, is a necessity. In the older neural networks causes were typically static; adding a time dimension to the data usually makes it easier for an HTM to learn and infer. I should point out, however, that "infer causes of novel input," to me can mean something more than is claimed by an HTM. For humans, it can mean a deduction, or even a deep set of deductions, rather than just recognizing a pattern or its degree of ambiguity. Then again, perhaps a sufficiently complete HTM system could do even that.&lt;br /&gt;&lt;br /&gt;The ability to predict is the third leg of what HTMs do. In other words, given a sequence already encountered, an HTM will predict that sequence is happening again. This sounds like not much, but it is an ability that is crucial to machine understanding. In particular the authors point to &lt;strong&gt;priming&lt;/strong&gt;. Given the latest data, the HTM makes a prediction and notes differences between what is predicted and what happens. If data is ambiguous or noisy, the HTM may fill in with the predicted data. If a prediction is fed back into the HTM as data, this is akin to thinking or imagining. Thus the machine could plan for the future. The authors claim "HTMs can do this well." Imagine a sheep-herding dog application. The better it can predict the behavior of the sheep, the less energy it should need to herd them.&lt;br /&gt;&lt;br /&gt;Finally, HTMs can &lt;strong&gt;direct&lt;/strong&gt; behavior. Of course almost any device, even simple mechanical ones, can direct behavior. A mouse trap, given a certain type of input, will engage in a known set behavior. Still, mentioning this for HTMs is important because that is exactly what we would expect artificial intelligence or machine understanding to be used for: behavior. An important point is that "From the HTM's perspective, the [output] system it is connected to is just another object in the world." In other words, an HTM can learn about how its own outputs act is causes in the world.&lt;br /&gt;&lt;br /&gt;If you want to get an idea of the potential power of HTMs, before wading through a lot of other materials, section 1.4 of the paper "Direct Behavior", is a great starting point.&lt;br /&gt;&lt;br /&gt;I'm excited after reading this part.&lt;br /&gt;&lt;br /&gt;Possible Acronym: &lt;strong&gt;LIPD&lt;/strong&gt; (learn, infer, predict, direct)&lt;br /&gt;&lt;br /&gt;Next: How do HTMs discover and infer causes?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-7490149509778042224?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/7490149509778042224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-2-what-htms-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7490149509778042224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7490149509778042224'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-2-what-htms-do.html' title='Evaluating HTMs, Part 2: What HTMs Do'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-2111451109944716122</id><published>2010-03-02T12:55:00.000-08:00</published><updated>2010-03-02T12:58:29.016-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='NuPIC'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Evaluating HTMs, Part 1</title><content type='html'>I am now going to evaluate the particular model of Hierarchical Temporal Memory (HTM) developed by Jeff Hawkins, Dileep George, and members of their team at &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt;, &lt;a href="http://www.numenta.com/about-numenta/numenta-technology-2.php"&gt;NuPIC&lt;/a&gt;. My key question will be: could HTMs serve as a basis for machine understanding (MU)? Since there are many subgoals on the way to true MU, I will be evaluating HTM capabilities on a number of issues that are usually within the realm of AI (artificial intelligence).&lt;br /&gt;&lt;br /&gt;This will be a long project. The current plan is to read and critically summarize "&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporary Memory, Concepts, Theory, and Terminology &lt;/a&gt;" by Hawkins and George; read and comment on the "Getting Started with NuPIC Guide;" downloading and trying NuPIC, and then assessing what whether to continue on the project.&lt;br /&gt;&lt;br /&gt;In preparation I have previously read &lt;em&gt;On Intelligence&lt;/em&gt; by Jeff Hawkins twice; read and commented on &lt;a href="http://www.numenta.com/for-developers/education/general-overview-htm.php"&gt;Towards a Mathematical Theory of Cortical Micro-circuits&lt;/a&gt; by George and Hawkins [see early entries of this blog]; took a course in neural networks at SDSU long ago; and read From Neuron to Brain to get detailed information on biological neurons. I know how to write software and I am fairly good at math.&lt;br /&gt;&lt;br /&gt;Still, my head hurts just thinking about it, but here we go (into "HTM Concepts, Theory, and Terminology'):&lt;br /&gt;&lt;br /&gt;In the Introduction the authors remind us that the human mind/brain has capabilities that computers have so far been unable to duplicate. HTMs are a memory system that can learn to solve certain problems. They are organized as hierarchical systems of nodes. HTMs are currently implemented as software on traditional computer hardware. "The learning curve can be steep."&lt;br /&gt;&lt;br /&gt;That is all ground I have already covered in this blog. My learning curve is probably going to be steeper than that of most students who would be interested in this topic, but hopefully watching me struggle will be helpful to at least a few people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-2111451109944716122?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/2111451109944716122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2111451109944716122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2111451109944716122'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/03/evaluating-htms-part-1.html' title='Evaluating HTMs, Part 1'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-5125900067426835392</id><published>2010-02-24T10:32:00.000-08:00</published><updated>2010-02-24T10:53:32.629-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Neuron to Brain Finished</title><content type='html'>As a log, this has not worked out so far. I have finished reading &lt;em&gt;From Neuron To Brain&lt;/em&gt; by Stephen Kuffler, John Nicholls, and Robert Martin. A number of topics in the book would have made good blog entries. I even started one on Mauthner cells, which are large, complex, very interesting neurons found in fish, but did not complete it.&lt;br /&gt;&lt;br /&gt;Except the early chapter on the visual cortex and the last chapter, "Genetic and Environmental Influences in the Mammalian Visual System," there is not much in the book that is directly helpful with issues of machine understanding.&lt;br /&gt;&lt;br /&gt;And yet it does give an appreciation of the neural system, including its biochemistry. It would be a wonder of nature even if it were not capable, in human form, of smashing atoms and writing poetry. I had been working with simplistic ideas about how individual neurons work. That is actually fine for computer models. The fact that there are many modes of operation of neurons shows that evolution can make good use of both true redundancy and the fine tunings that come from slight variations.&lt;br /&gt;&lt;br /&gt;I uncovered a small, common salamander today when pulling wood from the pile to bring up to the woodstove. There is no pond near the wood pile, so this creature had to wander some distance to get to this shelter. It is a good shelter too, complete with insects and other arthropods that make life easy for a salamander. I would tend to say that a salamander does not offer much in the way of understanding capabilities. But salamanders have been navigating the world and keeping alive, so even if we want to think of them as not capable of thought, still they have the necessary degree of intelligence to get them through their generations of life.&lt;br /&gt;&lt;br /&gt;I am looking at the general issue of putting neurons together in patterns that could be said to be capable of at least the rudiments of understanding. There is nothing worth reporting on yet, so I'll probably go back to reporting on what &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; is doing. The geniuses there are working on the problem full time, and are claiming some progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-5125900067426835392?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/5125900067426835392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/02/neuron-to-brain-finished.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5125900067426835392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/5125900067426835392'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/02/neuron-to-brain-finished.html' title='Neuron to Brain Finished'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-3544317076908401387</id><published>2010-01-12T09:24:00.000-08:00</published><updated>2010-01-12T10:04:29.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bayesian belief propagation'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Hebbian learning'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Kuffler'/><category scheme='http://www.blogger.com/atom/ns#' term='Markov Networks'/><category scheme='http://www.blogger.com/atom/ns#' term='tensors'/><category scheme='http://www.blogger.com/atom/ns#' term='Judea Pearl'/><category scheme='http://www.blogger.com/atom/ns#' term='predictive memory'/><category scheme='http://www.blogger.com/atom/ns#' term='muscle'/><title type='text'>Bayesian Wasteland?</title><content type='html'>Despite being overloaded with other concerns, I continue to slog through two books that may (or may not) be helpful with the Machine Understanding project. On the information technology front we have &lt;em&gt;Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference&lt;/em&gt; by Judea Pearl. I'm at page 116 as of last night. On the biological front I continue &lt;em&gt;From Neuron to Brain&lt;/em&gt; by Stephen W. Kuffler; I'm on page 386.&lt;br /&gt;&lt;br /&gt;Regarding &lt;em&gt;Probabilistic Reasoning&lt;/em&gt;, so far I have seen a lot of interesting work on the problem of combining probability calculations with logic. I just finished the section on Markov Networks and am about to read up on Bayesian Networks. My problem so far is that I don't see any advantages to marrying anything I've seen of probabilistic reasoning to Jeff Hawkin's theory of predictive memory. Despite having read "Towards a Mathematical Theory of Cortical Micro-circuits," as reported in previous entries. Then again sometimes I have trouble taking up novel ideas. But my impression so far is that neural networks are not operating on a probability basis. The closest I can get, so far, to that kind of model is a signal-mixing basis, where analog functions might represent Pearl's probabilies. Nor do I see how the probability network models can cope with invariants. The word invariant is not found in the index to &lt;em&gt;Probablistic Reasoning&lt;/em&gt;. I have higher hopes for a Tensor model, even though my own work on that is very preliminary. [I am reminded of the two seemingly totally different mathematical methods used in early quantum mechanics, which then were proven to be equivalants.]&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;From Neuron&lt;/em&gt;, I have been reading astonishing details about how synapses and single nerve cells work, including how experiments were conducted, in mind-numbing detail. I am just getting to where how neurons and sets of neurons have been shown to operate, with the first example being neurons that sense the stretching of muscles. Again, I am pointed to tensors, which can be used to represent how multiple muscles representing various degrees of freedom of motion can lead to a coherent knowledge of where a body part is in three-dimensional, euclidean-modeled space.&lt;br /&gt;&lt;br /&gt;More oddly, &lt;em&gt;Neuron&lt;/em&gt; has basically nothing about Hebbian learning. True, the book is dated 1984. But did no one even try to find a physical basis for Hebbian learning as of that date? If you know of a definitive paper that appears to prove a biochemical mechanism for Hebbian learning, let me and my readers know.&lt;br /&gt;&lt;br /&gt;I intended to explain what I was reading, in suitable chunks, in this blog. But it is easier to just keep reading at this point, rather than writing about details that I am not even sure are important yet. I keep finding I have to go back to basics. Today, worrying about tensors, muscles, feedback, and a neuron-level learning model, I am revisiting a two-neuron learning model that, oddly, I first worked on back in the 1980's. If anything comes of it, I'll let you know here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-3544317076908401387?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/3544317076908401387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2010/01/bayesian-wasteland.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3544317076908401387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3544317076908401387'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2010/01/bayesian-wasteland.html' title='Bayesian Wasteland?'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-2138984028395155536</id><published>2009-12-11T09:14:00.000-08:00</published><updated>2009-12-11T09:45:11.246-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Vitamin D'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Vitamin D for Machine Understanding?</title><content type='html'>As usual, I have too many projects going at once, and this MU blog suffers. I have been slogging through Pearl's &lt;em&gt;Probablistic Reasoning in Intelligent Systems&lt;/em&gt;; bookmark last left at the end of the section "2.1.4 Recursive Bayesian Updating." Also continuing Kuffler et al's &lt;em&gt;From Neuron to Brain&lt;/em&gt;, where I just finished reading about &lt;a href="http://en.wikipedia.org/wiki/GABA"&gt;GABA&lt;/a&gt;, a neurotransmitter for inhibitory synapses. I doubt the specific biochemistry of synapses will be much help in MU, but sometimes it gets me thinking, and sometimes I do some biotechnology analysis and investing, so the database accumulation can't hurt.&lt;br /&gt;&lt;br /&gt;People are already applying some of &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt;'s HTM technology. In case you missed it, Vitamin D, Inc. has a beta you can try, &lt;a href="http://www.vitamindinc.com/"&gt;Vitamin D Video&lt;/a&gt;. It apparently can pick out objects from a webcam video stream. On the one hand that is very impressive, on the other hand it is a long, long way from machine understanding. Typical of my hands-off style, for years I contemplated how I could get my computer to watch my aquarium, and inentify and track the fish in it. I never came up with a good enough plan to try to implement.&lt;br /&gt;&lt;br /&gt;The section in Kuffler I just started reading made me think about animal rights and machine understanding issues because one of the animal models for the neurotransmitter discussed, an LHRH analogue (or apparently now&lt;a href="http://en.wikipedia.org/wiki/LHRH_analogue"&gt; GnRH analogue&lt;/a&gt;), was based in part on studying frogs. I have tended to have the view that understanding and consciousness go together, and that only a few species of animals have much in the way of understanding. I was thinking about whether experimenting with a frog's nerves is a form of torture. In the past I would have said no, but I am not so certain. Frog neural systems are very, very complicated, if only a tiny fraction compared by size to human neural systems. Since I can't say with certainty how human understanding or consciousness work, I can't be certain if a frog understands anything, or if a lack of understanding implies lack of conciousness. Which may just put the animal rights debate on a different level: should animals have rights just because (if) they are conscious?&lt;br /&gt;&lt;br /&gt;One great thing about working with computer models for "artificial intelligence" is that no one is being tortured, except maybe the computer programmers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-2138984028395155536?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/2138984028395155536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/12/vitamin-d-for-machine-understanding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2138984028395155536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2138984028395155536'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/12/vitamin-d-for-machine-understanding.html' title='Vitamin D for Machine Understanding?'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-7498805048189286717</id><published>2009-11-14T10:52:00.000-08:00</published><updated>2009-11-14T10:57:02.302-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='memory-prediction framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Dileep George'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='cortical circuits'/><category scheme='http://www.blogger.com/atom/ns#' term='Markov chains'/><title type='text'>Review of Towards a Mathematical Theory of Cortical Micro-circuits</title><content type='html'>This is a report on my first reading of "&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;Towards a Mathematical Theory of Cortical Micro-circuits&lt;/a&gt;" [Dileep George &amp;amp; Jeff Hawkins, PLoS Computational Biology, October 2009, Volume 5, Issue 10]. There were some bits of it that I had to treat as black boxes, but on the whole I found it comprehensible.&lt;br /&gt;&lt;br /&gt;The core concern of the paper is to map a particular attempt to use computers to implement the Memory-Prediction framework of human intelligence to what is known about how nerve cells actually function in the cortex of the human brain. The specific machine methodology is called Hierarchical Temporal Memory (HTM). The article begins by explaining how HTM operates, then proceeds to map HTM processes to the cortex.&lt;br /&gt;&lt;br /&gt;HTM structures are called nodes, but it should be noted that the nodes have extensive internal structure. They can have multiple inputs and outputs. They can have multiple "coincidence pattern matrices" and &lt;a href="http://en.wikipedia.org/wiki/Markov_chains"&gt;Markov chain&lt;/a&gt; processes. There are four major equations sets necessary for calibrating the nodes. I suggest you take a look at the &lt;a href="http://www.numenta.com/about-numenta/numenta-technology.php"&gt;HTM Technology Overview&lt;/a&gt; if you have not already. In particular, the authors assume the readers understand how Markov chains work, which is not obvious in this context.&lt;br /&gt;&lt;br /&gt;It should be noted that HTM nodes are typically found in a hierarchy of nodes, and that information can move both up and down the hierarchy. The bottom of the hierarchy would typically correspond to sensory input, the top of the hierarchy to conceptual modes.&lt;br /&gt;&lt;br /&gt;In fact, I found it easier to understand how the HTM worked internally when the authors started explaining the details in terms of neuron processes. The Markov chain likelihood circuit (Figure 4), in addition to mapping neurons to an aspect of an HTM node, makes it clearer that a Markov chain, in this context, is a set of information that has (or could have) predictive value. Markov chains are learned expectations about probabilities that events will occur in a time sequence.&lt;br /&gt;&lt;br /&gt;This is a good example of a premise of the Memory-Prediction framework. The Markov chains are a sort of memory, yet they also are used to process information to make predictions. In computer science we tend to separate out memory from logical operations, but in the brain they are mostly inseparable.&lt;br /&gt;&lt;br /&gt;As to the nervous system side of the mirror, I was not surprised to see a lot of the more complex work being performed by pyramidal cells. This neuron type appears to be quite differentiated from the more ordinary neurons that mainly relay information between muscles or sensory cells and the brain. Their very size and location in the cortex (particularly in layers 2, 3, and 5) should arose anyone's curiosity. Whether they really play the roles assigned to them here is not generally known, but hypotheses are made that should be testable.&lt;br /&gt;&lt;br /&gt;The paper also covers the use of HTMs to recognize visual objects. Since much of the work done by Numenta and others using HTMs is in this field, I won't comment further here except to say that I found the work on the subjective contour effect particularly intriguing (example of subjective contours: &lt;a href="http://en.wikipedia.org/wiki/Kanizsa_triangle"&gt;Kanizsa triangle&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Merely categorizing visual objects is a more difficult problem that was originally thought by computer scientists working on Artificial Intelligence (AI). It is not learning about the successes with HTMs with pattern recognition that excites me. It is the way that it is done, and the promise that implies. I want to understand how the brain works in detail, but the ultimate goal is to understand intelligence, awareness, and understanding itself. The way HTMs process information, including the flowing of information both up and down the hierarchy, seems like a necessary condition for attacking these problems of higher intelligence. I don't think anyone thinks HTMs will prove to be entirely sufficient, but they seem like a good starting place for further physical and philosophical investigations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-7498805048189286717?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/7498805048189286717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/11/review-of-towards-mathematical-theory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7498805048189286717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7498805048189286717'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/11/review-of-towards-mathematical-theory.html' title='Review of Towards a Mathematical Theory of Cortical Micro-circuits'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-181366869025292025</id><published>2009-10-23T12:32:00.000-07:00</published><updated>2009-10-23T12:39:18.548-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bayesian belief propagation'/><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Judea Pearl'/><category scheme='http://www.blogger.com/atom/ns#' term='Dileep George'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistic reasoning'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>On Bayesian Belief Propagation</title><content type='html'>&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;Towards a Mathematical Understanding of Cortical Micro-circuits&lt;/a&gt; [Dileep George &amp;amp; Jeff Hawkins, PLoS Computational Biology, October 2009, Volume 5, Issue 10] assumes some knowledge of Bayesian Belief Propagation. I was hoping the article would explain this topic as it went along, but apparently, to AI specialists, this is a well-known area. I found the Wikipedia entry, &lt;a href="http://en.wikipedia.org/wiki/Belief_propagation"&gt;belief propagation&lt;/a&gt;, jumps into mathematical formulism rather quickly. Some words of explanation without math symbols would probably help many people who are interested in machine understanding; that is my goal here. If some of you Bayesian belief propagation experts think I have it wrong, or want to add anything, feel free to add comments. I have ordered a copy of the classic work on the subject, &lt;a href="http://www.amazon.com/gp/product/1558604790?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1558604790"&gt;Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1558604790" width="1" height="1" /&gt;, and so hope to be more fluent in this area at a later date.&lt;br /&gt;&lt;br /&gt;Bayesian Belief Propagation (BBP) was formulated by Judea Pearl, who later authored &lt;em&gt;Probabilistic Reasoning in Intelligent Systems&lt;/em&gt;. It appears to be a system for determining unknown probabilities within certain types of complex systems. Let's start with a review of a very simple probability model.&lt;br /&gt;&lt;br /&gt;Much of early probability work was formulated in terms of a pair of ordinary gambling dice, six-sided cubes with faces numbered one through six. Thrown many times, they make a nice distribution pattern of numbers two through twelve. It can be shown with a little math and logic that there are percentages that are expected for each of these numbers. If you make a large number of dice throws, say more than 100, and you get results that differ by very much from the expected distribution of results, you may be looking at one of two things. It is possible that you have a distribution skewed purely by chance. On the other hand, you might want to investigate whether your dice and throwing systems are physically constructed to be truly random in the results they give.&lt;br /&gt;&lt;br /&gt;Now imagine a black box, say the size of a shoe box. If you shake the box and then stop shaking, it gives you a number. In fact, imagine a room with a variety of such boxes. You shake them, keeping tracks of the resulting numbers for each. If one box consistently gives numbers between 2 and 12 inclusive, and the frequencies for each number match the pattern that we believe two dice would give, then we can conclude that the internal mechanism of the box, whatever it is, has a probability distribution that is created by the same logic that creates the dice probability distribution. There might even be a tiny pair of nano-dice inside.&lt;br /&gt;&lt;br /&gt;In computer programming we tend to think in purely causal mechanics. If something does not happen as expected, we have a bug in our program. But in the case of living groups of biological neurons we cannot (so far) look at the inner mechanics of each neuron while watching how the whole group operates. However, if we can control the inputs and read the outputs of a system, then, if we can do the math, we might figure out the probabilities of individual neurons firing given known inputs from the other neurons in the system.&lt;br /&gt;&lt;br /&gt;Formally, BBP allows us to calculate the probability characteristics for nodes we can't observe directly, if we can observe enough of the rest of the system. A node does not need to be a neuron. In an AI system, a node is a processing unit with inputs, outputs, or both, that connect it to the system of nodes in question. In our case the nodes are part of a &lt;a href="http://en.wikipedia.org/wiki/Bayesian_network"&gt;Bayesian network&lt;/a&gt;, also known as a belief network. Communication (or messaging) within the network is in terms of probabilities. (See also &lt;a href="http://en.wikipedia.org/wiki/Bayesian_probability"&gt;Bayesian probability&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;img alt="simple Bayesian network" src="http://www.openicon.com/mu/images/bayesian_net.gif" width="144" height="144" /&gt;&lt;br /&gt;&lt;br /&gt;Think of a network of three people, where each of the people represents a node. Let there be a piece of paper we will call the message (it is blank; the paper is the message, in this case). Let each person have a single die and the rule: if you have the message, throw the die. If it comes up a one, a two, or a three, pass the message to the left. Otherwise, pass it to the right. If we watch the game progress, the message moves around or back and forth in a random pattern. However, it is not a Bayesian network, because it is cyclical. Bayesian networks are not cyclic. Messages more only in one direction.&lt;br /&gt;&lt;br /&gt;Now start a series of games in which the message is always handed to person 1 (node 1). Person 1 throws the die and passes the message to person 2 if the result is 3 or less, and to person 3 if the result is 3 or more. Person 2 also throws a die and simply holds the message if the result is 3 or less, but passes if to person 3 if the result is 3 or more. When person 3 gets a message the game is over.&lt;br /&gt;&lt;br /&gt;It is a simple game and a tad boring, but if we focus on the propagation time, the number of die throws from the beginning of a game until the end of a game, we can see a set of variations. Over the long run they should form a probability distribution of the times.&lt;br /&gt;&lt;br /&gt;Now change the rules slightly. Say person 2 forwards the message if the die comes out 2 or higher. The range of possible results does not change, but the probability distribution will.&lt;br /&gt;&lt;br /&gt;Now suppose you know about this type of game, but you can't see the game because it is in a tent. You see a message handed in, and can time how long it is before the message is handed back out by person 3.&lt;br /&gt;&lt;br /&gt;By keeping track of the times, you can get the probability distribution. That should tell you the exact rules of the game being played, including the probability that person 1 will give the message directly to person 3, and how long person 2 might keep the message before passing it.&lt;br /&gt;&lt;br /&gt;In more complex networks, you need to pin down the probabilities at more of the nodes, if you want to be able to characterize the probability rules for an unknown node.&lt;br /&gt;&lt;br /&gt;Which is what the BBP algorithm is supposed to do. It calculates the probabilities for an unobservable node based on the observed nodes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-181366869025292025?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/181366869025292025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/on-bayesian-belief-propagation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/181366869025292025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/181366869025292025'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/on-bayesian-belief-propagation.html' title='On Bayesian Belief Propagation'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-3125216605501394543</id><published>2009-10-17T09:21:00.000-07:00</published><updated>2009-10-17T09:41:50.208-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='synapses'/><category scheme='http://www.blogger.com/atom/ns#' term='Dileep George'/><category scheme='http://www.blogger.com/atom/ns#' term='dendrites'/><category scheme='http://www.blogger.com/atom/ns#' term='models'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Bottom Up Machine Understanding</title><content type='html'>The first paragraph of "&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;Towards a Mathematical Theory of Cortical Micro-circuits&lt;/a&gt;" [Dileep George &amp;amp; Jeff Hawkins, PLoS Computational Biology, October 2009, Volume 5, Issue 10] states:&lt;br /&gt;&lt;br /&gt;Understanding the computational and informtion processing roles of cortical circuitry is one of the oustanding problems in neuroscience. ... the data are not sufficient to derive a computational theory in a purely bottom-up fashion&lt;br /&gt;&lt;br /&gt;My own cortex, probably not wanting to give itself a headache by proceeding too rapidly into what looks like a dense and difficult paper, immediately drifted off into thoughts on deriving a computational theory in a purely bottom-up fashion.&lt;br /&gt;&lt;br /&gt;The closer we get to the physical bottom, the easier it seems to be to understand that the project might work. Suppose we could model an entire human brain at the molecular level. We imagine a scanner that can tell us, for a living person who we admit is intelligent and conscious, where each molecule is to a sufficient degree of exactitude. We also would have a computational system for the rules of molecular physics, and appropriate inputs and outputs.&lt;br /&gt;&lt;br /&gt;Unless you believe that the human mind is not material (a &lt;a href="http://www.iiipublishing.com/blog/2009/10/blog_10_08_2009.html"&gt;dualist or idealist philosophic view&lt;/a&gt;), such a molecular-detail model should run like a human brain. At first it should think (and talk and act, to the extent the outputs allow) exactly like the person whose brain was scanned.&lt;br /&gt;&lt;br /&gt;However, that does not mean scientists would understand how the brain works, or how a computational machine could exhibit understanding. Reproducing a phenomena and understanding a phenomena are not the same thing. The advantage of such a molecular computional brain model would be that we could run experiments on it in a way that could not be done on human beings or even on other mammals. We could start inputting and tracing data flows. We could interrupt and view the model in detail at any time. We could change parameters and isolate subsystems. Perhaps, further in the future, such a model could even be constructed without having to scan a human brain for the initial state.&lt;br /&gt;&lt;br /&gt;At present, for a bottoms-up approach that might actually be workable in less than a decade, we would probably want to do a neuron-by-neuron model (probably with all the non-neural supporting cells in the brain as well). However, a lot of new issues arise even at this seemingly low level, even if we presume we have some way to scan into the model all of the often-complicated axon to dendrite paths and synapses. If learning is indeed based on synapse strength (&lt;a href="http://en.wikipedia.org/wiki/Hebbian_theory"&gt;Hebbian hypothesis&lt;/a&gt;), we would need both a good model for synapse dynamics and a detailed original state of synapses. This would require modeling the synapses themselves at the molecular level, or perhaps one-level up at the some molecular aggregate level. In effect it would not be possible to model an adult brain that has exhibited intelligence and understanding. We would need to start with a baby brain and hope that it would go through a pattern of neural information development similar to that of a human child.&lt;br /&gt;&lt;br /&gt;A complete neural-level model would be much easier to test intelligence hypothesese on than a molecular-level model. It would not in itelf indicate that we understand how humans understand the world. By running the model in two parallel instances (with identical starting states), but with selected malfunctions, we could probably isolate most of the sub-systems required for intelligence. This should help us build a comprehensible picture of how intelligence operates once it is established and of how it can be constructed by neural circuits from whatever the raw ingredients of intelligence turn out to be.&lt;br /&gt;&lt;br /&gt;Despite our lack of such complete bottom-up models, I don't think it is too early to try to reconstruct how the brain works, or how to make machines intelligent. The paper outlines the HTM approach to this subject. HTM was based on a great deal of prior work in neuroscience and in modeling neural aggregates with computers. Often in science success has come from the combination of bottom-up and top-down approaches. Biological species, and fossil species, were long catalogued and studied before Darwin's theory of evolution revealed the connections between species. &lt;a href="http://www.iiipublishing.com/philo/persons/charles_darwin.html"&gt;Darwin&lt;/a&gt; did not invent the concept of evolution of species, or of inherited traits, which many scientists already believed were shown by the fossil record and living organisms. He added the concept of natural selection, and suddenly evolution made sense. The whole picture popped into view in a way that any intelligent human being could see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-3125216605501394543?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/3125216605501394543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/bottom-up-machine-understanding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3125216605501394543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/3125216605501394543'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/bottom-up-machine-understanding.html' title='Bottom Up Machine Understanding'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-1560055310584433423</id><published>2009-10-14T13:15:00.000-07:00</published><updated>2009-10-14T13:38:01.873-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bayesian belief propagation'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='Dileep George'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='cortical circuits'/><category scheme='http://www.blogger.com/atom/ns#' term='Markov chains'/><title type='text'>Markov Chains for Brain Models</title><content type='html'>I got an email from &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; today, telling me that &lt;a href="http://dileepgeorge.com/"&gt;Dileep George&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; had a paper, "&lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;Towards a Mathematical Theory of Cortical Micro-circuits&lt;/a&gt;", published in the &lt;a href="http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000532"&gt;PLoS Computational Biology journal&lt;/a&gt;. Part of the abstract states:&lt;br /&gt;“we describe how Bayesian belief propagation in a spatio-temporal hierarchical model, called&lt;br /&gt;Hierarchical Temporal Memory (HTM), can lead to a mathematical model for cortical circuits. An HTM node is abstracted using a coincidence detector and a mixture of Markov chains.”&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Hierarchical_temporal_memory"&gt;HTM&lt;/a&gt; is the model being used by Numenta and others to crack to machine understanding problem by making an abstract, computable model of the human cortex (brain). I figured the article would explain “Bayesian belief propagation” which parses into three words I understand. I knew I had run into the term “Markov chains” before, in probability theory and elsewhere. I thought I would just refresh my memory about good old &lt;a href="http://en.wikipedia.org/wiki/Andrey_Markov"&gt;Andrey Markov&lt;/a&gt; with Wikipedia. But the &lt;a href="http://en.wikipedia.org/wiki/Markov_chains"&gt;Markov chains&lt;/a&gt; article at Wikipedia was tough going, jumping into the math without clearly explaining it in English. The definition there was comprehensible: “a &lt;a title="Stochastic process" href="http://en.wikipedia.org/wiki/Stochastic_process"&gt;random process&lt;/a&gt; where all information about the future is contained in the present state.” That implies there is a set of rules, expressed as probabilities, so that if you know the current state of a system you can predict its future state probabilities. It neatly combines determinism with indeterminism. For a first impression, I found the &lt;a href="http://en.wikipedia.org/wiki/Examples_of_Markov_chains"&gt;Examples of Markov Chains&lt;/a&gt; article more helpful.&lt;br /&gt;&lt;br /&gt;I thought I might find a better explanation on my book shelf. There was nothing in my Schaum’s Statistics, but my next guess (thank you, cortex) &lt;a href="http://www.amazon.com/gp/product/0070080208?ie=UTF8&amp;amp;tag=iiipublishing&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0070080208"&gt;Schaum's Outline of Operations Research&lt;/a&gt;&lt;img style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0070080208" width="1" height="1" /&gt;&lt;br /&gt;by Richard Bronson and Govindasami Naadimuthu, has an entire chapter, “Finite Markov Chains,” starting on page 369.&lt;br /&gt;&lt;br /&gt;Markov chains are a subset of Markov processes. Markov processes consist of a set of objects with a set of states for the objects. At each point in time each object must be in one of the states. As time progresses, “the probability that an object moves from one state to another state in one time period depends only on the two states,” the current state and the probabilities for the future states given the current state.&lt;br /&gt;&lt;br /&gt;For example, in the board game Monopoly each “square” or piece of real estate is part of the set of objects. The two dice create a probability structure, the standard one for two dice. The probability that, at any point, a player will transition to the same point, the forward adjacent point, or any point beyond the 12th point forward is zero, because the dice can only roll numbers between 2 and 12. However, more typically there would be a set of states and a probability for the transition to each of the states, including the transition of remaining in the current state.&lt;br /&gt;&lt;br /&gt;If there are N possible states, and you know all the probabilities for transitions, you can show this and manipulate it mathematically with a matrix P, the stochastic or transition matrix. There would be N rows and columns in P. As in all probability theory, in any row the probabilities add up to 1.&lt;br /&gt;&lt;br /&gt;N=2 is the simplest meaningful number of states. Let’s call them black and white. It is really only interesting if the transitions are different. Say 90% of the time black transitions to white, but only 20% of the time white transitions to black. Then the matrix P would be&lt;br /&gt;&lt;br /&gt;.1 .9&lt;br /&gt;.8 .2&lt;br /&gt;&lt;br /&gt;There is some ability to predict the future in a statistical way if you have a Markov chain like this. Without doing any math, you would expect over time that if you have only one object, it would probably be white. If it is black, probably the next state of the sequence flips to white, but if it is white, probably the next state will be white. If you have a large number of objects, you can know the likelihood that a given percentage of them will be white or black. Yet you can’t know for sure. Even the least likely state, all objects black, can occur at any time if each black stays black but each white transitions to black.&lt;br /&gt;&lt;br /&gt;You can see that Markov chains might be used to represent the states of neurons or of collections of neurons. In my simple examples above, each object influences only its own future state. But in real systems often future state probabilities are determined by the states of a collection of objects. It could be a collection of transistors, or a collection of nerve cells, or HTM nodes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-1560055310584433423?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/1560055310584433423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/markov-chains-for-brain-models.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/1560055310584433423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/1560055310584433423'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/markov-chains-for-brain-models.html' title='Markov Chains for Brain Models'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4993709039032842074</id><published>2009-10-06T09:22:00.000-07:00</published><updated>2009-10-06T10:26:18.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Hebbian learning'/><category scheme='http://www.blogger.com/atom/ns#' term='neurons'/><category scheme='http://www.blogger.com/atom/ns#' term='synapses'/><category scheme='http://www.blogger.com/atom/ns#' term='Charles Darwin'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Synaptic Transmission Puzzle</title><content type='html'>&lt;span style="color:#660000;"&gt;"Over the past twenty years, a wide variety of modes of synaptic transmission have been discovered, in addition to simple, chemically mediated increases in permeability leading to excitation and inhibiation. Such modes of transmission include electrical exictation and inhibition, combined chemical-electrical synapses, chemical synapted changes produced by reductions in memberane permeability, and prolonged synaptic potentials mediated by chemical reactions in the postsynaptic cell." &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;-- page 208, &lt;em&gt;From Neuron to Brain&lt;/em&gt;, Second Edition, by Stephen W. Kuffler, John G. Nicholls, and A. Robert Martin; 1984, Sinauer Associates, Inc., Suderland, Massachusetts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In Jeff Hawkins' &lt;em&gt;On Intelligence,&lt;/em&gt; he presents a predictive-memory model for human intelligence which he believes can serve as a basis for intelligent machines [which I call machine understanding to emphasize that the machines would not merely be mimicking surface features of human intelligence, as is the case with, for example, expert systems]. I agree with him that while neuroscience and computing science have made great progress in understanding many details of the human brain, and in writing software, we need to have an overview that allows us to make progress on the centrals issues that interest us. Thus, in Hawkins' model, he does not worry about the exact nature of neural synapses.&lt;br /&gt;&lt;br /&gt;But at the very least, we should be aware of how complicated human &lt;a href="http://en.wikipedia.org/wiki/Synapse"&gt;synapses&lt;/a&gt; are. This should allow us a greater freedom of thought when modeling the mechanics of machine understanding than if we simply assumed synapses all work alike. I suspect the &lt;a href="http://en.wikipedia.org/wiki/Hebbian_theory"&gt;Hebbian learning model&lt;/a&gt; for neurons would benefit from considering that the real world may complex, and in that complexity there may be keys to progress that we leave out with overly simple models.&lt;br /&gt;&lt;br /&gt;What struck me most about the above paragraph about synapses, however, is the role played by evolution. &lt;a href="http://www.iiipublishing.com/philo/persons/charles_darwin.html"&gt;Charles Darwin&lt;/a&gt; wrote about the process of species creation, but we have long grown used to the idea that evolution takes place on a molecular level. Each nerve cell, presumably, contains the full set of genes of the organism, but many different types of synapses are manifested. There must be controlling, blueprint genes that tell the cells which typese of synapses they are to form as they develop. In turn, we can expect that many different blueprints have been tried over the last four million years or so. The most successful gave their human organisms survival advantages.&lt;br /&gt;&lt;br /&gt;It would be interesting to know how much synaptic variation exists in the current human population. Is this variation responsible, or partly responsible, for variations in basic intelligence capabilities of human beings?&lt;br /&gt;&lt;br /&gt;This brings us back to the hard-wiring versus plastic debate. Human beings are very adaptable, as is shown by their ability to learn any of thousands of human languages as a child. We tend to think that we are very plastic and programmable creatures. But nerve transmission speeds and synaptic types are hard wired, as is the basic design of the brain. One might say we have the hard-wired capability to be flexible.&lt;br /&gt;&lt;br /&gt;And that is what we aim to build into the new machines: hard wiring (a stable system with a design we understand and can reproduce) that is capable of showing the flexibility required to exhibit intelligence and understanding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4993709039032842074?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4993709039032842074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/synaptic-transmission-puzzle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4993709039032842074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4993709039032842074'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/synaptic-transmission-puzzle.html' title='Synaptic Transmission Puzzle'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4680044120755496670</id><published>2009-10-03T10:17:00.000-07:00</published><updated>2009-10-03T10:51:51.273-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='genetics'/><category scheme='http://www.blogger.com/atom/ns#' term='natural selection'/><category scheme='http://www.blogger.com/atom/ns#' term='nerves'/><category scheme='http://www.blogger.com/atom/ns#' term='axons'/><category scheme='http://www.blogger.com/atom/ns#' term='Charles Darwin'/><category scheme='http://www.blogger.com/atom/ns#' term='dendrites'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>The Amazing Genetics of Nerves</title><content type='html'>I'll start with a quote from Stephen W. Kuffler, John G. Nicholls and A. Robert Martin's &lt;em&gt;From Neuron to Brain&lt;/em&gt; (second edition, page 177; 1984 Sinauer Associates Inc.):&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;"... conduction velocity plays a significant role in the scheme of organization of the nervous system. It varies by a factor of more than 100 in nerve fibers that transmit different information content. In general, nerves that conduct most rapidly (more than 100 m/sec) are involved in mediating rapid reflexes, such as those used for regulating posture. Slower conduction velocities are associated with less urgent tasks such as regulating the distribution of blood flow to various parts of the body, controlling the secrection of glands, or regulating the tone of visceral organs."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Presumably much of this fine-tuning was achieved in mammals long before humans evolved. It is a great example of what can be achieved with evolution through natural selection. Apparently there is a cost to speedy nerve connections. There must be genes that can be turned on to produce extra structural elements (proteins, fats, etc) that speed up transmission velocity. There must be controlling genes that turn the structural genes on and off during nerve development, as appropriate.&lt;br /&gt;&lt;br /&gt;Given these possibilities, there must be an overall genetic blueprint for nerve transmission velocity types. This blueprint would have been fine-tuned over time through the survival of the fittest. Having high cost, fast transmission where needed, and low-cost slower transmission where that will do, would give a slight evolutionary advantage.&lt;br /&gt;&lt;br /&gt;The issue of transmission speed would be relatively simple comparted to creating a genetic blueprint for the orders-of-magnitude more complex human brain. Yet the construction process would be similar. A variety of brain cell types were already developed by mammals and primates. Probably (please comment if you know!) more cell types, including synapse types, evolved (from the usual mutation + selection process) for the human brain. The overall structure of the brain could be one blueprint, but it is an extremely complicated one. We know it involves axons and dendrites often both connecting to neighboring neurons and running long distances to connect to neurons after bypassing thousands, millions, or billions of closer neighbors.&lt;br /&gt;&lt;br /&gt;This could only happen through evolution. Again, we have Charles Darwin to thank for setting us on the right path to understanding both nature and ourselves. As to machine understanding, the human brain is our best blueprint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4680044120755496670?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4680044120755496670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/amazing-genetics-of-nerves.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4680044120755496670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4680044120755496670'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/10/amazing-genetics-of-nerves.html' title='The Amazing Genetics of Nerves'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-8567414017119222814</id><published>2009-09-15T14:50:00.000-07:00</published><updated>2009-10-03T10:31:06.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metric'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Kuffler'/><category scheme='http://www.blogger.com/atom/ns#' term='tensors'/><category scheme='http://www.blogger.com/atom/ns#' term='inner-product space'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='neural net'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='coordinate system'/><title type='text'>How I Spent My Summer</title><content type='html'>Obviously I have not spent time on the blog lately. I had a busy time indexing a technology book, and when that was done was behind on many other things. I have also been doing a considerable amount of studying on issues of machine understanding, but delayed my project of going through &lt;em&gt;On Intelligence&lt;/em&gt; by Jeff Hawkins and explicating it. I have read it twice now; I am not ready for a third read. I did look at the web sites associated with the Hawkin's model, and will report on them when I have a chance to study them in more detail.&lt;br /&gt;&lt;br /&gt;I am reading, or wading through, &lt;em&gt;Neuron to Brain&lt;/em&gt; by Stephen W. Kuffler et al. The chapter on the structure of the visual cortex was near the front, which made interesting compare and contrast reading with &lt;em&gt;On Intelligence&lt;/em&gt;. But I did not make the effort to write up my thoughts, and that must now wait for a vacation from other duties.&lt;br /&gt;&lt;br /&gt;I have become better at tensor analysis, which had the added benefit of making Einstein's "The Foundation of the &lt;a href="http://en.wikipedia.org/wiki/General_relativity"&gt;General Theory of Relativity&lt;/a&gt;" readable. I don't think tensors are going to be good models for neural networks, but the concept of invariance is well-developed with &lt;a href="http://en.wikipedia.org/wiki/Tensor"&gt;tensors&lt;/a&gt; and it seems central to the topic of maching understanding. By thinking about the structure of neurons in the brain, and invariance, I hope to at least exercise my mind in the vicinity of the problem.&lt;br /&gt;&lt;br /&gt;Today I am fascinated by the possible application of metrics, &lt;a href="http://en.wikipedia.org/wiki/Inner_product_space"&gt;inner-product spaces&lt;/a&gt;, and invariant angles to the question of how human babies construct their mental world. I was struck by the important of coordinating tactile senses with vision and auditory sensation. The main apparatus for this is the human arm. Excluding the hand, the arm consists of two big angles, one at the shoulder, the other at the elbow. There are a lot of degrees of freedom therein. To grab objects requires a lot of coordination. The angles are going to vary with muscle tone, which is controlled by the motor areas of the brain. But the general space should be an inner-product space. Changes of coordinates, say if the coordinate system was directed from the eyes, would not change the angles, lengths, or positions of the hands.&lt;br /&gt;&lt;br /&gt;It makes me think about how flexible the human mind can be, and then contrast with how rigid people's thoughts can be. Once we learn about Euclidean space we tend to think we are walking around in it, with the ground as a two-dimensional plane. The idea that a coordinate system could be anchored by an imaginary line perpendicular to a line connnected the eyes strikes us as peculiar. Yet we use that coordinate system constantly, perhaps more than any other.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-8567414017119222814?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/8567414017119222814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/09/how-i-spent-my-summer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8567414017119222814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/8567414017119222814'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/09/how-i-spent-my-summer.html' title='How I Spent My Summer'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-2129909181963211657</id><published>2009-07-08T10:44:00.000-07:00</published><updated>2009-07-08T10:53:02.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='HTMs'/><category scheme='http://www.blogger.com/atom/ns#' term='Numenta'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchical temporal memory'/><category scheme='http://www.blogger.com/atom/ns#' term='cortex'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><title type='text'>Numenta</title><content type='html'>While I am getting up to speed (a slow process, given my other commitments), there is no reason for someone who is interested in this topic to zoom to the cutting edge. A good place for a jump start, after you have read &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A//www.amazon.com/Intelligence-Jeff-Hawkins/dp/0805078533?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212444407&amp;amp;sr=1-1&amp;amp;tag=iiipublishing&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;On Intelligence&lt;/a&gt;, is the &lt;a href="http://www.numenta.com/"&gt;Numenta&lt;/a&gt; web site. You can also check out the &lt;a href="http://www.onintelligence.org/"&gt;OnIntelligence.org&lt;/a&gt; web site, which sponsors some forums on Hawkins's predictive memory model of intelligence and has some links to related materials. Today I'll just describe what is at the Numenta site.&lt;br /&gt;&lt;br /&gt;If you have not read &lt;em&gt;On Intelligence&lt;/em&gt;, in particular Chapter 6, "How the Cortex Works," you can still get a lot out of reading materials at the Numenta site. However, I would advise reading the book first, old fashioned as that may sound.&lt;br /&gt;&lt;br /&gt;You might be ready to jump right into "&lt;a href="http://www.numenta.com/Numenta_HTM_Concepts.pdf"&gt;Hierarchical Temporal Memory Concepts, Theory and Terminology&lt;/a&gt;" by Jeff Hawkins and Dileep George. You are going to want to read it at some point. It is focused on HTMs (Hierarchical Temporal Memory technology). This is an attempt to implement the model of the human brain cortex, but in data-processing rather than biological terms. It is also the main technology being developed at Numenta.&lt;br /&gt;&lt;br /&gt;On the other hand you may want to look at the &lt;a href="http://www.numenta.com/about-numenta/numenta-technology.php"&gt;HTM Technology Overview&lt;/a&gt; first. It is short and sweet, and also has a link to Problems That Fit HTMs. Of course if the HTM actually is a good model for the human cortex, HTMs should do well at problems that people (and often other mammals) do well at, but that computers, even using AI (artificial intelligence) techniques are not good at.&lt;br /&gt;&lt;br /&gt;If you are a hands-on person, you could skip the theory and start with one of the software development kits. One is &lt;a href="http://www.numenta.com/vision-software.php"&gt;Vision Software&lt;/a&gt;, the other is &lt;a href="http://www.numenta.com/for-developers.php"&gt;NuPIC&lt;/a&gt; which now includes Vision. However, the NuPIC web page has a link to technical resources that would be important if you get serious about working with HTMs.&lt;br /&gt;&lt;br /&gt;I'll write more about Numenta, just as I'll be writing more commentary on machine understanding and intelligence in general. I will be approaching HTMs from a critical perspective: do they implement a predictive memory model; is this the best implementation; and is the model really central to biological intelligence and machine understanding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-2129909181963211657?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/2129909181963211657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/07/numenta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2129909181963211657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2129909181963211657'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/07/numenta.html' title='Numenta'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-2387368776938962866</id><published>2009-06-23T16:03:00.000-07:00</published><updated>2009-06-23T16:15:12.097-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Theories of the Brain</title><content type='html'>As a summary, what &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; says on page 2 of &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A//www.amazon.com/Intelligence-Jeff-Hawkins/dp/0805078533?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212444407&amp;amp;sr=1-1&amp;amp;tag=iiipublishing&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;On Intelligence&lt;/a&gt; seems accurate to me and note this was published in 2004: &lt;blockquote&gt;Yet we have no productive theories about what intelligence is or how the brain works as a whole. Most neurobiologists don't think much about overall theories of the brain because they're engrossed in doing experiments to collect more data about the brain's many subsystems. And although legions of computer programmers have tried to make computers intelligent, they have failed. I believe they will continue to fail as long as they keep ignoring the differences between computers and brains.&lt;/blockquote&gt;Of course later Hawkins discusses in some detail both neuroscience and attempts at creating human-like machine behavior with what we will call the old AI, or Artificial Intelligence.&lt;br /&gt;&lt;br /&gt;All of my experience led me to the same conclusion. It is not that some scientists, computer software engineers, and philosophers have not looked at the problems that &lt;em&gt;On Intelligence&lt;/em&gt; addresses. In retrospect, however, most of them made the same fundamental mistake. Characterize it as trying to replicate behavior instead of creating intelligence that replicates human intelligence and therefore human behavior. And one reason most people made the same mistake was because there was no good model of the brain available from the neuroscientists.&lt;br /&gt;&lt;br /&gt;I have on my bookshelf &lt;em&gt;The Formal Mechanics of Mind&lt;/em&gt; by Stephen N. Thomas. The inside cover blurb says "The author's intention is to provide an analysis of the nature of the mind, and of our knowledge of it—an analysis that solves or avoids longstanding philosophical problems and that fits well with the results of psychological and neuropsychological investigations of mental phenomena." It is a good book. Published in 1978, it is one of the best I had read before &lt;em&gt;On Intelligence&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;On the other hand we have the computer programming AI people. They did some pretty good work, but it is a cautionary tale. Most AI worked with very simple models of objects. AI did best, or appeared to do best, when dealing with certain higher human mental functions, like formal logic. But the brain does not appear to operate with formal logic. Humans invented formal logic. It may (or may not) serve as a basis for a theory of mathematics, as &lt;a href="http://en.wikipedia.org/wiki/Bertrand_Russell"&gt;Bertrand Russel&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/A._N._Whitehead"&gt;A. N. Whitehead&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ludwig_Wittgenstein"&gt;Ludwig Wittgenstein&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/John_von_Neuman"&gt;John von Neuman&lt;/a&gt; attempted to show.&lt;br /&gt;&lt;br /&gt;We will, of course, be using mathematics to understand "real" intelligence. Yet there is almost no math in On Intelligence. Before we can develop a math, or apply an existing branch of mathematics, to this problem we have to understand both the true nature of the problem and how the brain implements the solution, both structurally and dynamically.&lt;br /&gt;&lt;br /&gt;I also have on my bookshelf, among other books on neural networks, &lt;em&gt;Parallel Distributed Processing&lt;/em&gt; by James L. McClelland et. al. I wrote some computer programs to implement some of the models presented in the book. That was back in the late 1980's. The intelligence problem, then, seemed to be solvable in a piecemeal manner. Difference types of neural networks could be combined and improved until something approaching intelligence emerged. But my own attempts at building an intelligence model went nowhere, and I got involved in trying to save some redwood forests. The forests were clearcut despite my efforts, and I'll take Hawkins' word for it when he said that the neural network model had not made substantial progress in the 1990's. Again, neural network software and hardware became very good at certain things, notably pattern recognition. But while intelligent systems (humans) can recognize patters, apparently pattern recognition is not in itself the basis of intelligence.&lt;br /&gt;&lt;br /&gt;Next up: Real Intelligence versus AI&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-2387368776938962866?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/2387368776938962866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/06/theories-of-brain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2387368776938962866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2387368776938962866'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/06/theories-of-brain.html' title='Theories of the Brain'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-1815086842410918269</id><published>2009-06-18T16:30:00.000-07:00</published><updated>2009-06-18T16:48:10.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>On Passions and Machine Understanding</title><content type='html'>Today I started reading &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A//www.amazon.com/Intelligence-Jeff-Hawkins/dp/0805078533?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212444407&amp;amp;sr=1-1&amp;amp;tag=iiipublishing&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;On Intelligence&lt;/a&gt; by &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; for the third time. The first time I read the book I was impressed. The second time I read the book I believe I understood the more difficult parts. This time I am reading the book with two agendas: commenting on it in-depth, and developing my own ideas, complete with a mathematical framework, for machine understanding.&lt;br /&gt;&lt;br /&gt;On page 1 of the prologue Jeff writes:&lt;br /&gt;&lt;blockquote&gt;&lt;p align="left"&gt;But I have a second passion that predates my interest in computers, one I view as more important. I am crazy about brains. I want to understand how the brain works, not just from a philosophical perspective, not just in a general way, but in a detailed nuts and bolts engineering way.&lt;/p&gt;&lt;/blockquote&gt;I suffer from passion attention deficit disorder (PADD). I am of the same temporal generation as Jeff Hawkins, a child of the space, computer, and nuclear age. I cannot even remember when I first wondered how people can be intelligent and conscious. Such wonder was in the air of the science fictions novels I read as a child. But I have other passions as well. So I have engaged in a variety of pursuits over the decades, only once in a while returning to the contemplation of machine understanding and its related issues of biology, philosophy, and technology.&lt;br /&gt;&lt;br /&gt;Hopefully my interest in literature and writing, history, gardening, politics, and art will bring something to this enterprise. If nothing else, I can chronicle the field's development. And I hope to range into any topic that could be helpful in the endeavor, not just neuroscience and computer technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-1815086842410918269?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/1815086842410918269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/06/on-passions-and-machine-understanding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/1815086842410918269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/1815086842410918269'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/06/on-passions-and-machine-understanding.html' title='On Passions and Machine Understanding'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-7420903354884164481</id><published>2009-04-08T10:15:00.000-07:00</published><updated>2009-04-08T11:29:49.979-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='invariants'/><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='coordinates'/><category scheme='http://www.blogger.com/atom/ns#' term='tensors'/><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='cortex'/><category scheme='http://www.blogger.com/atom/ns#' term='On Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Hugo'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>The Cortex, Dogs, and Changes of Coordinates</title><content type='html'>I finished my second read-though of &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A//www.amazon.com/Intelligence-Jeff-Hawkins/dp/0805078533?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212444407&amp;amp;sr=1-1&amp;amp;tag=iiipublishing&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;On Intelligence&lt;/a&gt; by &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt; several weeks ago. I got a lot out of this reading, and even was able to follow the details of Chapter 6 which eluded me the first time. Despite good intentions I neglected to write down my much-provoked thoughts until now. I have been spending most of that time indexing the new edition of &lt;a href="http://www.blogger.com/%3Ca%20href=%22http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fredirect.html%3Fie%3DUTF8%26location%3Dhttp%253A%2Fwww.amazon.com%2FIntelligence-Jeff-Hawkins%2Fdp%2F0805078533%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1212444407%26sr%3D1-1%26tag%3Diiipublishing%26linkCode%3Dur2%26camp%3D1789%26creative%3D9325&amp;amp;tag=iiipublishing&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Windows Internals&lt;/a&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=iiipublishing&amp;amp;l=ur2&amp;amp;o=1" width="1" border="0" /&gt; by Mark Russinovich et. al., which is interesting in an entirely different way: one sees the products of human intelligence, but it is obvious that there is no danger of a Windows operating system of the current style becoming intelligent or conscious, ever.&lt;br /&gt;&lt;br /&gt;In addition to following Jeff's suggestions about noticing how my own mind works, I have been thinking about these matters while watching my dog, Hugo. Let's say he represents mammals in general. He may not have the big old cortex that Jeff admires so much, but he seems to be constantly using his little one to make predictions. Hugo has to make a lot of decisions, and he often freezes in place while making them. Come when called? Maybe, maybe not. A treat in hand might just mean being captured and taken indoors, or left out of a car ride. To make such decisions, I believe, Hugo has to predict outcomes.&lt;br /&gt;&lt;br /&gt;Like most dogs, Hugo likes to chase thrown toys. He has come to associate arm movements with probable outcomes. He knows if you are throwing in a particular direction, and begins his run in that direction without waiting for the toy to be released. He expects the toy to appear in front of him. If it does not, he looks back. Will I go ahead and throw the toy past him, or throw it in another direction.&lt;br /&gt;&lt;br /&gt;Do this a few times, and he stops dashing as soon as my arm is moving. He waits to see if and where where I actually throw the toy.&lt;br /&gt;&lt;br /&gt;I also believe Hugo has a construct of the world very similar to our human construct. He navigates the real world with an ease that can only come from having an internal map of the world. He understands the three-dimensional nature of the world, and in particular that obstacles like a tree or a house can have space behind them.&lt;br /&gt;&lt;br /&gt;All this means is that if we want to build cortex like machine designs, we can do a lot without having to recreate a human brain. A car as smart as Hugo could go anywhere it wants on roads without smashing into other cars. This reminds me of science fiction stories where human brains are disembodied and plugged directly into space ships.&lt;br /&gt;&lt;br /&gt;So maybe our first goal should be to create animal-brain equivalents and see what can be done with them.&lt;br /&gt;&lt;br /&gt;I just happen to be reviewing the branch of mathematics that deals with changes of coordinates. I've always wanted to understand quantum physics and general relativity better, so I occasionally break open a math book, because at some point you must do the math to know what the smart guys are talking about. It is clear to me that human brains, and probably mammal brains too, are pretty good at changes of coordinates. The fact that we construct a mental map of the world and so easily map visual, audio, and tactile coordinates to it and back again is pretty remarkable.&lt;br /&gt;&lt;br /&gt;I am again about to review how invariants are treated in tensor mathematics. Maybe that has nothing to do with the ability of the cortex to navigate the world, but it just might. Our brains certainly are good at creating invariant memories and comparing them to real world experiences.&lt;br /&gt;&lt;br /&gt;Using the cortex to analyze the cortex: now that is a wonder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-7420903354884164481?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/7420903354884164481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/04/cortex-dogs-and-changes-of-coordinates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7420903354884164481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/7420903354884164481'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/04/cortex-dogs-and-changes-of-coordinates.html' title='The Cortex, Dogs, and Changes of Coordinates'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-4473768258863488046</id><published>2009-01-21T13:00:00.000-08:00</published><updated>2009-01-21T13:06:02.044-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='surprise'/><category scheme='http://www.blogger.com/atom/ns#' term='gambling'/><category scheme='http://www.blogger.com/atom/ns#' term='sequences'/><category scheme='http://www.blogger.com/atom/ns#' term='addiction'/><category scheme='http://www.blogger.com/atom/ns#' term='prediction'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='brain'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Gambling, Addiction and Prediction</title><content type='html'>Why do people love to gamble? True, there is a range of how much various people like to gamble. At one end there are people are (or pretend to be) bored by it (I exclude people who, for whatever reason, won’t even try games of chance or skill). At the other end are people who lose their savings, homes, and families, or even fingers and lives to legal and illegal gambling operations.&lt;br /&gt;&lt;br /&gt;It may all have to do with the brain’s built-in prediction mechanisms.&lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt;’s theory of the &lt;a href="http://en.wikipedia.org/wiki/Memory-prediction_framework"&gt;sequential and predictive basis of human intelligence&lt;/a&gt;, the primary intelligent function of the brain is to remember sequences of data and use that memory to predict future sequences of data. This is true both for sensory data that we think of as naturally sequential, like the notes in a music tune, and for sensory data that we normally think of as non-sequential, like the features in a human face. According to the theory we construct a model of a human face from sequences of visual input (supplemented by other data, like touching one’s own face). If we see an eye, we expect to see a sequence of other features: another eye, a nose, mouth, eyebrows, hair, chin, ears. We expect to hear a voice when a mouth moves, but not when an eye blinks.&lt;br /&gt;&lt;br /&gt;An important element in building a model of the world is surprise. Using memory, the brain predicts what it expects to see, hear, and feel next. When something different occurs, the element of surprise turns on higher functions in the brain. We may look at something more closely. Perhaps it is a face, but it is a strange face. Is this a sign of danger? Friend or foe, we need to memorize the new face and whatever we associate with it (perhaps the face belongs to someone who is being introduced by a friend; we need to remember that association, or the physical place where we met the person).&lt;br /&gt;&lt;br /&gt;There is a bit of a nervous rush when a prediction is made that turns out to be false. The mind gears up to determine why it made a false prediction, both in order to deal with the unexpected situation and to be able to predict it in the future. Probably this rush is partly neurochemical. We’ll call it a bit of adrenaline, although it is possibly based on another neurotransmitter or hormone. Adrenaline rush is the lay term I will use.&lt;br /&gt;&lt;br /&gt;Games can teach, and they can while the time away. Even when they are not played for money or prizes, they can have an addictive quality. In almost every game an element of prediction is involved. The outcome provides relief if it was predicted, and a rush of neural activity if it was not predicted.&lt;br /&gt;&lt;br /&gt;Generally, people like adrenaline rushes, especially in small doses. They like a thrill more than they like boredom. Games are played partly because they provide small, safe levels of thrill in situations that would otherwise being predictable and boring.&lt;br /&gt;&lt;br /&gt;Gambling involves making a prediction. It involves two highs for the human brain. Most of us enjoy winning. Getting money from winning gives the same motivation as getting a snack, affection, or a pay check.&lt;br /&gt;&lt;br /&gt;I believe that it is losing, however, that makes gambling addictive. When you lose in a random game of chance, your brain is fooled. It made a prediction. It was surprised by the outcome. Now it is designed to frantically memorize what happened and construct a way of making a correct prediction.&lt;br /&gt;&lt;br /&gt;Gamblers often come to believe, after a string of losses, that they are about to make a correct prediction or a series of correct predictions. This is how your brain works: long experience has taught it that nature is a set of sequences, and past sequences can predict future sequences. The brain is fooled by the artificial construction of random events like dice throws, roulette wheel spins, and card deals. Worse, there is a sometimes-confusing element of predictability to some of this (two dice will roll a seven more often than a two; in poker three of a kind comes up more often than four of a kind) that tends to reinforce the brains belief that it can make sense out of randomness. The brain persists in the false belief that random events become predictable if only you keep placing bets long enough.&lt;br /&gt;&lt;br /&gt;There is a rush when losing. People, on a chemical level, don’t feel pain when they lose. The chips or money they gamble is abstract, removed from the necessities or pleasures they could buy if had not lost. But the loss forces the higher intelligence centers of the brain to gear up. It is like taking a tiny bit of a stimulant. It is pleasurable.&lt;br /&gt;&lt;br /&gt;This is often why otherwise highly intelligent individuals will lose vast sums of money in casinos. It is precisely like drug addiction. They may, at some conscious level, when away from a casino, coldly say that they understand they cannot beat a random game with odds set so that the house wins. But in the casino they cannot get out of the loop of feeding themselves tiny bits of adrenaline with each wager, win or lose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-4473768258863488046?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/4473768258863488046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/01/gambling-addiction-and-prediction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4473768258863488046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/4473768258863488046'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/01/gambling-addiction-and-prediction.html' title='Gambling, Addiction and Prediction'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3020437366892008573.post-2185780554536064518</id><published>2009-01-08T09:05:00.000-08:00</published><updated>2009-01-08T09:45:31.468-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Hawkins'/><category scheme='http://www.blogger.com/atom/ns#' term='indexing'/><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='conscious'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='machine understanding'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><title type='text'>Welcome to Machine Understanding</title><content type='html'>I have been interested in the idea of intelligent, understanding, conscious machines (computers and robots) since I was a child. How could a fan of science fiction books and movies not be? At some point I started wondering how the human mind itself could be intelligent, understanding, and conscious. During my life I have periodically returned to that theme.&lt;br /&gt;&lt;br /&gt;A relatively recent wake-up call for me was &lt;em&gt;On Intelligence&lt;/em&gt; by &lt;a href="http://en.wikipedia.org/wiki/Jeff_Hawkins"&gt;Jeff Hawkins&lt;/a&gt;. I read the book last year and I am re-reading it now. So most of these early blog entries are inspired by statements from the book. I am more than half-way through the book, well into the nuts-and-bolts of Chapter 6, so I will probably both comment on what I am reading and go back to various passages in the front half of the book.&lt;br /&gt;&lt;br /&gt;A few years ago my article &lt;a href="http://www.openicon.com/indexing_white_paper1.html"&gt;Indexing Books: Lessons in Language Computations&lt;/a&gt; was published by the &lt;a href="http://www.asindexing.org/site/asipub2.shtml"&gt;&lt;em&gt;Key Words&lt;/em&gt;&lt;/a&gt;, the Bulletin of the &lt;a href="http://www.asindexing.org/site/index.html"&gt;American Society for Indexing&lt;/a&gt;. I don't want to discourage you from reading the article, but let me sum it up: if a machine can't read with comprehension, it can't create a high-quality index for a text. Most people think using a computer to generate a good index of a text should be an easy accomplishment.&lt;br /&gt;&lt;br /&gt;I chose the term "machine understanding" over AI, artificial intelligence, because I agree with Jeff that the AI field has mainly been a failure. Perhaps I should have called it "human understanding," since we don't really have a good understanding of why humans can understand things, exhibit intelligence, and are conscious.&lt;br /&gt;&lt;br /&gt;This blog is mainly for me to keep a record of my thoughts, but if anyone else stumbles across it I hope I can introduce them to the ideas of people who work in this fascinating field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3020437366892008573-2185780554536064518?l=machineunderstanding.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://machineunderstanding.blogspot.com/feeds/2185780554536064518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://machineunderstanding.blogspot.com/2009/01/welcome-to-machine-understanding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2185780554536064518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3020437366892008573/posts/default/2185780554536064518'/><link rel='alternate' type='text/html' href='http://machineunderstanding.blogspot.com/2009/01/welcome-to-machine-understanding.html' title='Welcome to Machine Understanding'/><author><name>William P. Meyers</name><uri>http://www.blogger.com/profile/14258196216689767630</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://1.bp.blogspot.com/_NAPTOcitvQU/S8nw4YwUw6I/AAAAAAAAABk/vEL0pEq6ufY/S220/billhugo7-30.jpg'/></author><thr:total>0</thr:total></entry></feed>
