Wednesday 26 February 2014

Wellcome to the Entropic AI blog

In this my first post, I would like to introduce you to the history behind this kart simulation.

Back in april 2013, I read an article at eliax.com (big thanxs to José Elias for the greatest blog) about a new approach at artificial intelligence based solely on entropy concepts, driven just by thermodinamical laws, that was surprisingly good in making phisyc systems, of any kind, to "behave intelligently": Causal Entropic Forces by Alexander D. Wissner-Gross.

It chatched my attention so I jumped from link to link to link in search of some more insight on it. Reading those links made me understand the idea even before taking a look at the original paper, and when I read the world "Montecarlo", the algorithm popped up in my mind.

So I sat and code a quick and dirty approach to the algoritm in a couple of days, resulting in the first version of the kart simulator. It was very very simple, but the AI managed to drive the kart on track quite impresivley... and I didn't code anythink like "run" or "drive inside the track".




After this first success, I started to really investigate the paper, trying to get down to the formulaes to know more about the correct way to do it, but I was not really prepared to understand it all, really, so I focused on the kart example, trying to make it better by my own.

Eventually, the AI becomes as good at driving this kart as anyone can be, seriously, and small "imperfections" on how the kart is driven use to be my fault, as the simulation code for the kart physics is just a bad "proof of concept" and is not really that realistic, so the AI does it right for the pseudo-realistic simulation I gave to it.

Actually, V0.7 of the algortihm mimic almost 100% of the paper formulaes properly -as far as I can tell- with some simplifications and also with some additions of my own.

So how good this AI can be? Well, basically you can make the AI manage any kind of "thing" you can simulate as long as you let it decide on one or more "free parameters" or degrees of freedom.

It means that, if you have a drone, a lunar rober, a probe to a distant sun, a industrial proccess you want to optimize, a simulation of an ameba... just anything, as long as you let the AI push the "joysticks" and provide a way to simulate how will the system evolve in a small time, the AI will move the joysticks in such a way the drone will fly in a "intelligent way", whatever this means. You don't need to give it a goal, nor instructions on how to drive the drone, just let it play for you.

I think this is such an important step in AI that, in a future, it may become as important as todays neuronal networks are, and who knows, if both approaches are mixed together the right way, we could get magic from them.

So I open up all my findings, thoughts, videos, code and exes so anyone can play with this, invent new ways to apply it, games, industrial optimizations... but sharing findings here so everyone can benefit from it.

Please feel free to download and play with the files, comment on it, ask about anything, share your wildest thoughts, modify or torture the code, convert to other languajes, etc., I will apreciate!

10 comments:

  1. Hey there Sergio i found your blog from micheal scarfs blog post on Alex wissner gross's equation for intelligence.

    https://michaelscharf.blogspot.com.br/2014/02/a-new-equation-for-intelligence-f-t-s.html?showComment=1486250361048#c5670284811336006273

    And i am so-so happy that i found it! I have been following Alex's work for years ever since i first watched his TED talk. As soon as i heard about this work, even though others i have talked to seem to not understand. I instantly understood and "felt" the potential this work has, i truly believe that through this work, we can create the AGI that i am sure we all dream of.

    Right now i'm actually attending this two month academy in florianopolis, Brazil called Exosphere. (http://exosphe.re/) I came to the academy specifically so i could gain more knowledge to get further ahead in my project of creating AGI through the use of this equation for intelligence.

    I was going through the process of coding the pseudocode as shown in Alex's supplemental materials paper but i got stuck.

    But i see you have already made it yourself and you made it open source! Thank you so much for your work!

    Here is the thesis i wrote on my blog which describes this theory i have about life and intelligence that life and intelligence are probably one in the same and i also describe an idea i have and am working on to create an self evolving AI with this theory.

    http://ideastwctw.blogspot.com.br/p/ai-will-eat.html

    I would really love to share ideas and even work with you.

    There are many smart people here at this academy but many of the people here don't seem to truly comprehend the power of this equation of intelligence (there is one person here who shows interest and he also has a friend who works with the AI company Sentient) I much elation to know that i am not alone in this endeavour.

    ReplyDelete
  2. I've looked through some of the source code and i'm trying to find the part of the code that deals specifically with the causal entropic forcing.

    As apart of this academy we are supposed to complete a project, and a project i wanted to do was remake and even make one of my own simulations with entropic AI software using Alex's equation for intelligence to control the simulation.

    If i have enough time i also want to use the entropic AI to control one of the robots here at the academy to make it move around and do intelligence tasks.



    ReplyDelete
    Replies
    1. Hi Roshawn, nice to know about you! I already read your post about entropic AI and let a comment on some details.

      To understand where in the code is the Alexander's formula, you should need to read a little throu this blog, mostly in the oldest post when it all began for me.

      Or, if you understand spanish, you can her it from me here: https://www.youtube.com/watch?v=aY7KWrWPB18

      The latest posts use a different version of the idea, one that is based on fractals and that is not in the source code.

      I am actually writting a doc with all the theory used and the pseudocode covering a GAI from the Alexander's paper idea to a fractal inteligencia + a fractal memory.

      It is too long to be covered here, so I will release it as a small book or similar when finished.

      Delete
    2. This other talk has english subtitles:

      https://www.youtube.com/watch?v=j64vpvVkUAM

      Delete
    3. Ah, then i will definitely read through it (have already read a little, i loved your post on consciousness!)

      I also responded to your comment on my blog, i tryed to clarify the ideas about "eating" the Earth that i was talking about.

      Let me know your thoughts.

      Also thank you very much for reading it, it brings me much joy to know that a great mind such as yourself actually appreciates and likes my ideas.

      Delete
    4. Hello Sergio i've decided as apart of this project i would like to recreate your kart example but instead of the entropic AI controlling a simulated kart, i want to make it control a real robot car. I think it would be really cool to show off a path finding robot kart moving around the room using entropic AI.

      I would like your help with the project, my teacher who is currently working on his phd in pure mathematics will also help me with my project, his name is Roberto and he also knows Spanish so i will have him watch your videos as well.

      I have until march 1st to complete this project to show off on demo day. Your guidance would be much appreciated.

      Delete
    5. 3 weeks seems too short if you are not used to the algorithms!

      Anyway, you will need a 3D reconstruction of your environment and a simulation of your robot so you can simulate it crossing the room.

      If you are using ROS equiped robot, it will have all the libraties needed, but I can no thelp you in that part, I know nothing!

      So first make sure you have all this available to code the AI on top of that.

      Delete
    6. We have access to software that can scan a room by picking up the edges of objects in a room and mapping it with point cloud data.

      Like the software shown in this video: https://www.youtube.com/watch?v=LKxBgoekuTU

      I also have a person here who knows how to build and program robots so i should be good to go on that end.

      Right now i'm stuck on actually coding the psuedocode in Alex's supplemental materials paper: http://www.alexwg.org/publications/PhysRevLett_110-168702_SupplementalMaterial.pdf

      You said 3 weeks seem to short, and i agree 3 weeks is short, but its only a 2 month program and the goal is to get something done in this amount of time, kind of like a hackathon. Which is why your guidance would be very helpful.

      Delete
    7. Actually just checked with my robot guy and it turns out his room scanning software isn't good enough for what i was proposing and he also doesn't have ROS and he also doesn't wish to deal with it.

      So it looks like i won't be able to do the robot thing.

      I'll just stick to actually really trying to understand the algorithms and learning how to implement them to various simulations.

      This is the code i have coded so far from his paper into python.

      http://pastebin.com/zY6uk0DK

      I've also read through video 1 the basics and has really helped me understand more about how it all works.

      I don't understand well enough just yet to implement it on my own but i definitely have a clearer picture.

      I'm going to have my teacher read through it and he will likely be able to understand it well enough to implement it.

      Also is there another place we can talk that's better than here? I see you use twitter.

      Delete
    8. You can mail me to sergio at hcsoft.net

      Delete