Delayed Multiple Input Multiple Output Interface library

On my last post, I talked about the « connectionist theory base models ».
I started coding a C# library that could help me in my AI projects in a sense that I keep on spending time putting « small » systems together to make a bigger and smarter one. It’s been some time that I thought it must exist some way to ease things up…

The initial idea is based on a feeling I have around a lot of systems I have to deal with at school, at work, in my everyday life, in programming… : modularity.

They all have common characteristics, but one among them is a major one : the all have either input(s) or output(s) or a combination of the two.
They all have a function which make them useful and working.
You can easily think of such systems like :

  • Your coffee machine
    • Function : make coffee
    • Input : coffee, water and energy
    • Output : drinkable coffee
  • Your DVD player
    • Function : read a DVD and generate appropriate video signals out of it
    • Input : DVD and energy
    • Output : TV compatible video signals

They have a second similarity : they may need to know what happened in the past. Some of the actions of a system may depend on what it did before or on what were the previous inputs.

Another important characteristic is that those systems can be and most of the time are connected to another system. In the previous example of the DVD player, what would be the goal of a DVD player if it could not be connected to a TV ?

These are the major point I kept in mind to start coding the library.
Finally after some iterations and some diverse structure trials I finally came to a satisfying system that allows to mimic all the points I talked about combined with an ease of use in term of programming.

If you are interested in the details or want to try/use this C# library, I published it on GitHub : https://github.com/remyzerems/DeMIMOI
I called it DeMIMOI which stands for Delayed Multiple Input Multiple Output Interface, in reference to the control theory denomination.

At this time I did not use the library in an AI context but I already tried the DeMIMOI library for signal filtering for example. The use case is provided as a sample in the GitHub repository.

I’m pretty sure this is going to help in my experimentations since I’ll be able to build and test reasonably small parts of a system and then simply connect it to a bigger system to include this new module.

The other interesting part is that I’m more on the connectionism theory regarding AI, so I think it will help me make connection based systems easily.

New computer !!

Hey there !

Some news on the status of my projects and experimentations ! I just bought me a brand new computer. It’s a custom configuration which comprises the following main elements :

  • Mother board : Gigabyte H97-HD3
  • CPU : Intel Core i5 4590 @ 3.3GHz
  • RAM : GSkill 2x4Gb DDR3-1600
  • GPU : Gigabyte GeForce GTX 660 (yay ! This means CUDA and GPU computing support !)

I’m quite happy with it ! No more VM to run, and no more computing limitations (well even if there’s still limitations of course…).
I’m installing and setting my programming environment and everything else on it.

So far, I ran a few of my programs and was really stunned by how fast it compiled and ran… Waww that’s promising !

In the mean time, I started coding some stuff related to what I would call « connectionist theory base models ». I’ll talk more about it on a specific post but to me it sounds to be fundamental models which can be used to model/represent nearly anything you can think of…
It’s still a little bit fresh in my mind and in my code, that’s why I want to give this some more time and make a special post about this all.

Stay tuned !

Interesting article on Artificial Intelligence

I had in my daily feeds an interesting article about a project involving Artificial Intelligence applyed to a real life system.

It’s about a helicopter how has to learn by itself to maintain a given height using a neural network trained by an evolutionary technique.

Check it out ! http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2012/sab323_and43/Website_sab323_and43_EvolvingHelicopter/website_evolvinghelicopter.html

I find this article quite interesting and inspiring as it demonstrates that with a quite simple installation and AI algorithms it is still possible to obtain something working and converging to a solution !

In another hand, there’s some stuff I don’t really interstand, like why did they chose to measure the helicopter height with a homemade IR and not with a potentiometer placed at the tip of the boom… I think there may be some good reasons…

Apart from that I really think it’s a good project and experiment !
Thank you Akshay and Sergio for sharing this ! Good work !

Interesting article about a new vision algorithm

That’s quite curious as I’m just resuming on my projects with vision stuff that an article about some guys from the MIT just found a new vision algorithm ! Coincidence ? Mmmh ?

So here is the article : http://www.technologyreview.com/aroundmit/526151/orienteering-for-robots/

Here is the French version (I didn’t forget ya !) : http://www.techno-science.net/?onglet=news&news=12669

In my mind, I think it seems to be quite interesting ! It extracts more data from what’s already available today. But well, the point is that it seems to require some laser pointing/measurement system which generally costs a lot of money and is pretty hard to embed on a small system.
Moreover, the article does not mention how long it takes for the algorithm to spit the results out… So we currently don’t know if it is going to be working « realtime » or not…

We have to wait for the presentation in June to have more details probably… Except that, it looks great and it may bring some new stuff in the vision algorithms though !

Time will tell !