Thursday, June 1, 2017

Why Build Robots?

DRAFT

Why go to all the trouble and expense to build a physical robot?  Can't we just run out software on a desktop PC and feed it a diet of images and text that comes from convenient on-line databases?   Why a robot?  Because a robot can't "cheat" it has to deal with the real world an use whatever data it finds without prior editing and cleaning.

Don't get me wrong, I do most of my development on a desktop using either Linux or Mac OS.  But then I do most of my hardware building using "one by" pine lumber, solderless breadboards and many flying Dupont leads.   I see desktop devilment is "breadboarding" where poutiest and develop new ideas before exposing them to more realistic environments.

But also, it's fun to build things that move especially things that move and interact with the environment.  It is humbling to as the environment will always present conditions you never envisioned.    Simulated environment by definition only contain that what the simulation designer was able to think of.

Why the name "NNetLogic"?

(MY FIRST TEST POST)


Fist, why did I pick the name "nnetlogic"?  What does it mean?  The name reflects my goal of combining todays' hot topic of deep learning neural networks with older logic programming or rule based expert systems technology.  Why?  To address this scenario:  My new robot has a camera, it shoots a photo and tells me it sees a whale.  Obviously there are no whales in my office.  Using only a neural network based classifier I would have to think about retiring it with different data and decide whow the data should be different and try again.   But the desired scenario is I simply tell the robot "whales are large marine mammals, these live in the ocean. My office is not in the ocean."   After that simple statement the robot would not suggest "whale" as one of the object in an office.

In my proposed architecture pattern recognizers provide data to rule based logical inference engines.

A simple example of this architecture is a networked trained to recognize the 10 handwritten digits that feeds into a logic data base that contains a very simple "is-a" net that contains "1 is-a oddNumber", 2 is-a evenNumber" and so on.    Then we ask the system if it saw an odd or even number.

A moderate example is the scenario that involved the whale above

A more complex and interesting case is to use the expert system "rule base" within the feedback loop of a reinforcement learning system.

Humans, I think, learn new tasks in new domains in a predictable way.  Let's say we are learning to play a guitar and have as yet zero musical background.  We do bring with us to this task a highly developed perceptual system that can recognize already familiar objects light strings, fingers, lines on paper and so on.  And we also bring with us out language ability ad general purpose memory.   At first I have tho think about only the objects I already know,  I think using high level reasoning and language about fingers and which finger goes on which string and progress is slow.   After some weeks my perceptive system as learned "G Major Chord" and "E Minor Chord" and I no longer have to think about fingers and strings and my thinking/langual system can now be more efficient as it can think in terms of higher level abstractions.

Restating this in terms of my proposed artitecture, my front-end neural network is being training in real time by my rule based language system and after some time many of the low level rules aboutfingrs and strings are not needed.   It seems that over timothy patterns in the logic database should match up closely with the output laver of the neural network

How information can flow from a logic database that is filled with hand coded rules into a deep learning network is the eventual subject of study.  Hence the name "nnetlogic".