From the very early days of Zen, I have had an interest in AI (Artificial Intelligence).  For a long time I hoped that I could free up enough time to get involved in some AI research, but my hope was naïve.  Building Zen, particularly in the early days, took up all of my time.  Several times I (again naively) thought that “once I’ve finished A, B, and C, I’ll have some free time”.  But of course, as soon as A, B, and C were finished, D, E, and F came along!

In 2005, ten years after starting Zen, I finally managed to put aside a little time in the evenings to start my AI research.

noughts & crossesThe initial challenge I set myself was to write an algorithm that could learn to play noughts and crosses.  It would start by not knowing the rules and so would just play randomly.  All it knew was that the game involves two players taking alternate turns, and that on its turn it must output a number between one and nine, representing the nine squares on the board.

I developed four iterations of this program, and the fourth one was able to learn successfully to become a perfect player, given enough games.  Its learning speed was incredibly slow however.  It would have needed to play all conceivable game combinations to become a perfect player, and – believe it or not – there are just over a quarter of a million different game combinations.

An algorithm that learns so slowly is of very little use.  It would be fine with noughts and crosses, as playing a quarter of a million games automatically – e.g. two computers playing against each other – could be done quickly.  But using this approach with a more complex game like Chess or Go would never work.  There are just too many game combinations.

Humans of course don’t need to play thousands of games of noughts and crosses before they become perfect players.  They quickly figure out that staring in the middle is good, and if the opponent starts in the middle, then you need to play in a corner.  Humans are also able to generalise.  They can see that the board is symmetrical, so one corner is as good as another.

It occurred to me that the ability to generalise is a fundamental part of being intelligent.  We are faced on a daily basis with new situations.  Most of these are very similar to situations we’ve faced in the past, but they are rarely exactly the same.  Our ability to generalise – drawing on past experience, past successes and failures, allows us to deal with these new situations intelligently, and mostly with ease.

With this in mind, I set off developing the fifth iteration of my learning algorithm, that would have the ability to generalise.  If successful, it would learn to become a perfect noughts and crosses player considerably quicker than iteration 4.  If successful, it would then hopefully have the ability to learn more complex games like Chess and Go.

Me & Maiya at laptop-500pxIt was now 2007, and my daughter Maiya was born.  My evenings were then taken up with more important things!

Nearly twelve years have passed since I put my home AI project on the shelf.  Now the time has come to blow the dust off it and get back to trying to develop the fifth iteration – a learning algorithm that can generalise.

The big change of course, is that my new role as Chairman and Brand Ambassador has freed up the time I need to pursue my AI research.  A big thank you to Paul for allowing this opportunity to open up for me.

So I’m proud to announce the formation of the Zen AI & Robotics division!

I have to own up that I’m giving it a grand title.  In reality, our new “division” will consist of me sitting in my office or at home coding.  Nothing more… at least initially.

My goal is to develop a truly useful learning algorithm that can learn any game of any complexity.  To achieve this, the algorithm will need a keen ability to make generalisations about how to be a good player, and then refine those generalisations to become an even better player.  I have no idea whether I will be able to achieve that.  But I’m going to try!

I hope that I can push forward the boundaries of human knowledge on AI, but there’s a huge amount of AI research going on all over the world at the moment, so there’s a very big possibility that I’ll be reinventing wheels that were invented many years ago.

If everything goes unbelievably well, I’ll end up with a piece of AI software that can learn to do a wide range of things. Playing games like nought & crosses, chess, and Go would be the first part of the journey, but not my end goal.  My end goal is to develop something that acts intelligently in the real world.  The rules of the real world are of course vastly more complex than the rules of any game, so the challenge is enormous.

AnkiVector-500pxMy current thinking for my first real-world application would be a robot dog!  There are of course a number of robot dogs/pets already on the market, and some of them appear to be quite clever, but they don’t have anywhere close to the intelligence of a real dog.  For example, the Anki Vector will quite happily play with its cube because it has been pre-programmed to do that.  It couldn’t though learn to do something new like fetching a newspaper off the doormat.  It would be my aim to create a robot dog that could be trained to do a wide range of new things, just as you can train a real dog.

The robot dog though would still only be an interim step.  The ultimate end-goal would be a humanoid robot that could learn to do a wide range of tasks that currently only humans can do.  Quite a scary thought!

c3po

But I’m getting carried away… the starting point today is noughts & crosses.  And that is an endeavour that is not in any way scary.

If you’d like to know more, please come and have a chat or drop me an email.

Richards Updates
Carbon Neutral
Phone | Zen Internet

Zen Internet - Home SalesSales
01706 902573

Phone | Zen Internet

Zen Internet - Customer EnquiriesCustomer Enquiries
01706 902001