Intelligence equals Zipping Information

Just been chugging along through coursera courses and my weekly readings.  This week, I came across FB’s AI research group’s Memory Networks paper.  I thought it was interesting particularly because they are having some success with it.  The paper effectively stores information in an array and retrieves it to make intelligent predictions. To me this further adds evidence that brains’ work via a memory system and this approach from FB folks is very similar to what Jeff Hawkins is proposing.

The second thing  I discovered this week was on what the so called Artificial Intelligence methods (such as the Gradient Descent and Logistic classifiers) are really doing.  In our brains we make prediction via our memory system and possibly using sparse codes.  Sparse codes are effectively a way of zipping and storing information.  In the current state of the art Artificial Intelligence Methods, the derived/fitted regression parameters are effectively mathematical ways of zipping information.  Thus the point of this entire “building intelligence” exercise is to store information in ways that can help you make accurate predictions.

Coding up Augmented Spatial Pooler

As of now, I am focusing all my efforts on coding up Augmented Spatial Pooler as defined in this paper (working on it as of 20 September 2015)

http://www.ict.griffith.edu.au/~johnt/publications/IJMLC2012.pdf

We have put a binary version of spatial pooler here.

Our Spatial Pooler implementation on Github

we have also put a Augmented Spatial Pooler version of the code here.

Our Augment Spatial Pooler implementation on Github

Augmented Spatial Pooling and Spatial Pooling for Greyscale Images

I am trying to better understand spatial pooling and am wanting to code up a working version of it on my own.  I found two works (shown below) by Professor John Thornton in Australia as quite useful in this regard.  I hope to implement these in time.

I had trouble keeping up with my overall schedule this week but I plan to finish it all up by tomorrow.

 

Grinding It Out!

Written by Chirag on Sunday, July 19, 2015 at 6:30pm

 I grinded through my weekly schedule.  One coincidental fact to add was that the Recursion book I am reading quoted Douglas Hofstadter’s GEB book.  This gives me further confidence that recursion might be a useful tool for building intelligent machines.

Here is a basic thought process on when to use recursion. A problem must have three distinct properties.  This is directly quoted from Thinking Recursively by Eric S. Roberts

* It must be possible to decompose the original problem into simpler instances of the same problem.

* Once each of these simpler subproblems has been solved, it must be possible to combine these solutions to produce a solution to the original problem

* As the large problem is broken down into successively less complex ones, those sub problems must eventually become so simple that they can be solved without further subdivision.

At the end of the first chapter, there were three problems to solve.  The last (and the difficult one) asked to find a light weight (counterfeit) coin among 16 coins. If you had a balance which you can use to compare two coins, how many trials would it take to find counterfeit coin among the 16 coins.  The standard answer is four trials but you can do better than that. The answer here is three.   I have uploaded a recursive solution (Recursion1\divideandconquer.py) on my github account.

I also ordered Rajesh Rao’s book Bayesian Brain. This will be on the next reading schedule. I also thought more about reaching out to Neuroscience PhD students. I really want to understand what I can gain out of attending a Neuroscience PhD program. So I have reached out to NJIT, UC San Diego and UT Austin Neuroscience programs.

Strange Loops

Written by Chirag on Sunday, July 12, 2015 at about 2:35pm

Over the past week, I have been more aggressive in trying to keep up with my schedule.   I have added one more book to my weekly reading list and have defined a key question that needs to be answered by science.

1) I have added Thinking Recursively by Eric S. Roberts.

2) The key question is why does our brain think it is alive?  To me it is endlessly fascinating that you can put together bunch of chemicals (as in what’s in our brain) and if put together exactly right, you create a system that thinks it is alive? How does this happen?  To me only person, who has even tried to ask this question and come up with a solution is Douglas Hofstadter in his book GEB. More on this a bit later!

Recursions and Strange Loops

Recursion: Separately, my view is that Strange Loops (Douglas Hofstadter’s Theory) and Recursion are quite related.   Also, as I read more about HTM, I don’t think the Brain uses Bayes’ Theorem directly.  It is coincidental as in the Brain is a memory system, so it is constantly using priors to make future predictions.  So it gives us a feeling that it is using Bayesian Inference to come up with a most likely outcome.

It’s worth emphasizing that Vicarious (AI company) algorithms are defined as Recursive Cortical Networks (RCNs). As per wikipedia, RCN is a visual perception system that interprets the contents of photographs and videos in a manner similar to humans. The system is powered by a balanced approach that takes sensory data, mathematics, and biological plausibility into consideration. On October 22, 2013, beating CAPTCHA, Vicarious announced its AI was reliably able to solve modern CAPTCHAs, with character recognition rates of 90% or better.

Also, I think Recursion by itself is a pretty cool tool to have in your arsenal as it is a super awesome problem solving technique.  I have coded my first recursion example in Python. Yes, am getting little more comfortable with Python and have pushed it out on my Github account here: https://github.com/g402chi

Strange Loops:As I am reading GEB by Douglas Hofstadter and his theory of Strange Loops. Example of Strange Loops are Catch-22s or Which came first the Chicken or the Egg. I like to use examples first because that is usually the easiest way to get a point across.

As per wikipedia:”A strange loop arises when, by moving only upwards or downwards through a hierarchical system, one finds oneself back to where one started.

Strange loops may involve self-reference and paradox. The concept of a strange loop was proposed and extensively discussed by Douglas Hofstadter in Gödel, Escher, Bach, and is further elaborated in Hofstadter’s book I Am a Strange Loop, published in 2007.

A tangled hierarchy is a hierarchical consciousness system in which a strange loop appears. In short, a strange loop is a paradoxical level-crossing feedback loop”

I realize Douglas Hofstadter, in his book GEB, is absolutely trying to answer the right question.  As in how does the brain of any given animal think it is alive.  This is the most key, tremendously important, question that modern science should be trying to answer.  My conjecture is that we can not build truly intelligent machines until we answer this question. My guess on the future is that if the nature is able to build this brain that thinks it is alive, it must be possible to do it.  We need to figure this out. I am not even talking about a human brain, take a C. Elegan brain, ant brain.  However small you would like it to be. All these insects, they are self aware and are acting on their behalf only.

As per Douglas Hofstadter,

“the psychological self arises out of a similar kind of paradox. We are not born with an ‘I’ – the ego emerges only gradually as experience shapes our dense web of active symbols into a tapestry rich and complex enough to begin twisting back upon itself. According to this view the psychological ‘I’ is a narrative fiction, something created only from intake of symbolic data and its own ability to create stories about itself from that data. The consequence is that a perspective (a mind) is a culmination of a unique pattern of symbolic activity in our nervous systems, which suggests that the pattern of symbolic activity that makes identity, that constitutes subjectivity, can be replicated within the brains of others, and perhaps even in artificial brains.

My Plan for Building a Brain

Written by Chirag on Sunday, June 14, 2015

I have formulated a Comprehensive Plan 1.0 to get me really deep in the weeds of learning about Artificial Intelligence. I have a very ambitious goal of developing something brain like, even if it’s 100 X 100 Neurons:-).  I am trying to develop the algorithm on my own so I can manipulate it and understand it very easily.  Ultimate would be to build some product with it.  I am very set on creating a product that’s physical and interacts with the physical world.

I will most likely follow the model by Jeff Hawkins HTM algorithms or Cireneikual’s version (blogger).  I am avoiding academic degree programs purposefully to reach my goal because I think they will slow me down.  Also, school tends to take all the fun out of your hobbies.  I have learned overtime (through experience), that can become expert at anything provided they spend enough time on the material.

Before I present my plan to the world.  It’s worth emphasizing why I am doing this.  I started picking up AI as a hobby because I was just plain interested in brains and how intelligence worked.  I left software industry eight years ago (currently am a bond analyst) and I have always wondered why we have not made a meaningfully progress in AI.  I want to contribute in building intelligent machines and not just machines mimicking intelligent behavior.  I think companies like Vicarious and Numenta are at the forefront of creating intelligent machines.  If you follow their trails (books, papers, people) and read Ray Kurzweil’s Singularity is Near (2005), it will become pretty clear the technology based on cortical principles will be the future of Intelligent Machines and it will affect all matters which concern humanity and this universe.

Approach and Plan to Build a Brain:

I am a very slow learner and my approach to learning is tailored to my learning capabilities.  My main advantage is persistence or drive as they call it. Basically, I learn through repetition and in very small chunks. My day job requires a lot of hours and it’s impossible to put in any significant time during business days.  I read brain and AI related to literature during my commute (40 minutes each way) to NYC.  On Sundays, I do the heavy lifting towards my goal.

My day job is some what unrelated.  I have a medium-term plan of someday committing fully to building “Intelligent Machines”. My background is in computer engineering (bachelors) and masters in computational finance. Over the past eight years, I haven’t really done much coding. I don’t consider VBA coding. So it’s been a real struggle to get up and running on Jeff Hawkins’ NuPIC algorithms (it’s all python based).

Here is my current plan/schedule.  Each item in my plan has a purpose to address my weakness.  As of June 14, 2015 (Sunday), this is what I believe will me push me into understanding all that is NuPIC.  I want to code my own version of HTM (Jeff Hawkins) Algorithm as a starting point. After that, I want to run a lot of examples and really get good at using it.

Here is My Weekly Activity Schedule: Apologies will add the links in coming days to below books. Added Thinking Recursively on July 12, 2015 at 3:52pm.

Goal: Build a Brain
Activity When?
Review All Things Learned: This is a critical step for me. I like to keep what I learned in a repeating loop.  So that it becomes a handy tool in my daily abilities of learning more. I was able to significantly improve my engineering GPA through this approach (starting Junior year).Also constant repetition meant that I never had to study for exams. It meant that I had no stress. I liked that feeling. I want to have that and not be overwhelmed by my hobby. I have already created a set of notes/learnings for this week.  Once they become more coherent, I will post them online. Business Day Commute
Read 5 pages per week on Godel, Escher and Bach (GEB).  In this book, I am hoping D. Hofstadter answers the key question.  How can brain chemicals turn into living/thinking system. Why does a brain think it is alive when its subcomponents are not alive.  Modern so called artificial intelligence is mimicking intelligent behavior but it is not intelligent or alive.  I am hoping GEB answers this question for me. Business Day Commute
Read 5 pages of The Future of the Brain. This is a 2014 book.  I am hoping it will give me a sense of where the Neuroscience and AI field is going. Who are the big people in the field and what are their views. Business Day Commute
Read Numenta White Paper 5 pages/week, Take Digital Notes Weekend
Read 5 pages/week on Sparse Distributed Representations by Kanerva, Take Digital Notes.  It has been shown that brains only store few details of the current state of the world.  Jeff Hawkins’ HTM uses Sparse Distributed Representations (SDR) to reflect this attribute.  I want to understand inside/out what SDRs are and how they are used.  Pentti Kanerva has a book on it. So you know I be reading it/coding it and rereading and recoding it. Weekend
Read 5 pages/week on Bayes’ Inference/Theorem Book, by a British Computational Neuroscientist.  You gotta read this!!Berkley Paper on Bayes’ TheoremBayesian Probability Theoryhttp://greenteapress.com/thinkbayes/html/index.html, this is python examples straight up with explanations. you know I am gonna read this!Examples Take Digital Notes. I want to really get good understanding and applying Bayes’ Inference, Maximum Likelihood Estimators and Markov Chains.  There is a lot of evidence that humans are Bayes’ rule observers. Learned this from the book below. Weekend
Read Probabilistic Models Of the Brain Weekend
Practice python coding at least one hour or Read Python Data Science book week or weekend. Use Github, Look at AI examples.  Right now I am using codeacademyand am reading Datascience from Scratch

Read Thinking Recursively, 5 pages/week by Eric S. Roberts

Weekend/Business Day
Update The Blog.  I want to do this step because I want to attract like minded people and get a useful dialogue going. You know get the crowd sourcing going a bit. Set of a global meme on “building a brain”, in a crowd sourced way. Weekend

The Beginning!

Written by Chirag on Sunday, June 7, 2015.

Hello,

My name is Chirag. I have been intrigued by Jeff Hawkins 2004 book On Intelligence.

I believe this approach will be the future of artificial intelligence. My goal is to learn everything about the underlying methods of Jeff Hawkins approach.  Jeff Hawkins has a company called Numenta, which has released an open source version of its algorithms. The open source community is called NuPIC.The mission of this project is to build and support a community interested in machine learning and machine intelligence based on modeling the neocortex and the principles upon which it works.

In particular, Numenta’s open source online learning system is based on Hierarchical temporal memory (HTM).  The underlying algorithm uses Sparse Distributed Representations as well.  To learn more about  Sparse Distributed Representations, I am reading Pentti Kanerva’s book Sparse Distribute Memory.

As of June 7, 2015 (Sunday), I am reading and learning from Kanerva’s book.  The book is very well written.  It goes through the basic math and statistic involved in understanding the book first.

After reading the book, I hope to implement my own version of the algorithm in Python.  I know very little Python. Fortunately, someone has a basic version of the algorithm noted here.

Happy Aritificial Intelligence Learning!