The best Mario player I've ever seen, made by Seth Bling.
That video really inspired me into this new step on my still unnamed life quest.
You see, I really need a job. I even retired my startup "your home" (in retrospect, by making it too expensive) because I need to focus on what matters. So, not any job. Out of about 70 companies I carefully looked on over a customized "Artificial Intelligence" angel.co search, which have a pretty nice selection of companies there, I must say cortx would be my first choice today.
We aren’t looking to create the next social media sharing widget, or the next addicting free-to-play game. We solve real problems by taking nascent technology and applying it to industries where there is a lack of innovation. More importantly, everything we do is centered around the ambitious goal of building real artificial intelligence.
Our primary goal is to make the world smarter.
So is mine, and I couldn't have said it better. If you search these forums for keyword "goal" you'll see I've tried.
All this means I want to build something that makes sense to either of you. Maybe a specialist-finder-robot or a future-predicting-algorithm. In any case, it will have to be some kind of A.I. capable of profiling (probably people) better than anything else out there.
While I have not enough feedback from any of my possible future employers, I guess I'll move on to this. I've been wanting for too long to start working on such thing, since I was a little kid, when I've made a QBasic game very much like this one from last year: both are called Formigas and both feature the most rudimentary kind of A.I. possible. But...
Now it's time!
I'm not even going to bother to update anything else (including my website) until I've got something done. This will probably take a few months...
Just as a quick update, I've found the first community who makes some sense to me.
Between google and wikipedia I came to learn about new terms for technological singularity, which I've learned before reading about AI somewhere. In its turn, searching for singularity led me to the university and the hub, but although I loved how all topics on the hub are the same topics I love, the sites didn't really talked to me much for some reason. One (recurrent reason that makes me dislike communities) reason, though, is their forum is really bad.
From there I wanted to find a group of people and more about an AI that wouldn't kill us. The story there didn't really buy me, except for so many experts believing in it. So I've googled a bit more for "benevolent"... Then I found Machine Intelligence Research Institute, whose mission is "to develop formal tools for the clean design and analysis of general-purpose artificial intelligence algorithms, with the intent of making such algorithms safe and reliable when they are developed."
Another interpretation I've seen is they "do foundational research to ensure that smarter than human artificial intelligence has a positive impact", which makes all the sense. That's what everyone should be worry about today!
Deep scientific research as this can take years of much thinking and studying. Most of them lead to nothing. It makes no sense we have so little science being done in this field.
So yeah, I feel like more and more I get closer to what I should be focusing my whole life to... At the same time I feel so far from actually doing it, due to lack of resources. Could I even make any difference? How many people are in similar situation as I am? People who believe they could make at least a tiny difference there but are restrained by time and money?
Yesterday, after 2 different start ups and some other folks reaching out to me looking for partnership or some kind of feedback about improving their technology / Ai approach, I still was thinking my best bet to move forward with basiux is the Hutter prize.
I was trying to come up with an even smaller step to take, something even more practical, but couldn't. And haven't found anyone who could really help me with it. Unfortunately.
Today, just a few moments ago in fact, I did have one idea: adapt Mari-o to run on a web browser. Even if only with the good old NES! Now, if only I could find a js emulator able to run LUA, I wouldn't even need to adapt Seth's script just yet, and could at least easily run it, and let people run in their own machines, to better grasp what all this mean.
It would help a whole lot to illustrate the subject of basiux!
Gone to Ted x Lisbon yesterday. Looks like going to events is helping in giving me ideas on how to reduce the next steps...
So the basiux engine could evolve like this: WhyX -> Mariox -> Hutter.
There comes WhyX. It is just a "wait but why" adapted play / presentation, which would need to include at least some parts from the 2 MarI/O videos and maybe some whatever trivia explanation on why everything I'm doing is having an X.
Maybe one of the most important aspects of basiux, which makes it so different from most other Ai projects, is the community aspect of it. Okay, we've got a very small group and just 1 person trying to code... But it is wide open for anyone to join. And people already do join even without knowing at all what it is. How can they know? There's too much written and too little explained. Succinctly enough, anyway.
So, at least until the end of this year, I will commit to focus all my efforts on WhyX for bringing people in basiux, so we can move to the next step.
Now the roadmap is getting much better! Just imagine what could happen...
Another update... (yes, I'm replying to topics instead of editing them, partially thanks to discourse "stubbornness", mostly due to notifications, but also because these are progressive updates, not just rewording or better writing what I meant by the time of the first post).
Trying to find precisely how long and how did Seth made Mar i/o, and failing at it (already conveniently emailed Seth again to see if I can get any feedback and an answer), I found this little chain from one engadget article to another and made me realize how much people don't really get what Mar i/o is. Well, at least Aaron there didn't.
You'll need to watch both videos to maybe understand my point here, so there, here's a link to the second video:
This 2009 mario is, indeed, just an algorithm. That means someone, or some group, tweaked it to extremes to make it work in that specific environment. It's like a machine without any brains. It doesn't even need electricity. You press a mechanical button and it will use inertia to move forward. Like those weird wind powered robots:
There are no buttons there, all mechanical. The only intelligence there is behind their engineers.
Mar i/o is freaking intelligent. Seth engineer it to learn, not to play. Not even to move. Yet, he moved, through learning. Completely different beast. And, the most amazing part, to me, was he supposebly made it in about 1 month, without prior knowledge of almost any Ai or coding. Now I'm not so sure anymore how long he did take himself, but for us as humans to do that it only happened in the past few years. If anyone can make Mar i/o in one month is only thanks to all research being done in the Ai / Machine Learning field.
This will be a very dense post, that could as well be split in at least 2 topics. But well, I'll keep on the "open draft" principle for now...
Damn, 9 days since that happened. And I haven't wrote a single line of TF code. Nor will I.
6 days ago I've got a reply from Seth, by email. His answer below is in its integrity. My question is shortened to its basis. It was actually my second email to him, and I wasn't very brief in either, although this second one was mostly just trying to explain my question, and how I wanted to know "How did he manage to build this?", given I had an Ai Masters telling me he would expect Seth to have taken years:
How long did you take to make this (Mar I/O)?
I never really considered myself that much competent. And I'm already taking much longer, as I expected I would.
Truth is I really only worked on Mariox for 1 day now (past Monday, right after his reply), and that was just to get to the point where he probably considered he started: having an emulator ready to take on scripts. I had to make it work with jsnes - and it’s was done within that day, mostly thanks to some help of my newly friends!
And I still have 2 more things on my roadmap to Mariox before starting to effectively porting the code. It's basically I want to do it right, and I'm still learning more about docker + tutum and js bdd. 2 concepts that should not be missed for basiux engine. Even this in that "still learning" I ended up spending almost 0 hours this week, due to all my financial crisis and trying to grasp what to do.
Not to mention that...
World war 3 and thinking small
... Couple hours ago, the events in France on November 5th finally hit me, and now I feel the urge to move away from my current location (heart of Lisbon) as I think we're a potential target as it is... I would start by moving away from Lisbon, but maybe we'll end up just moving to a farther neighborhood with better internet, despite the fact that the internet as we know it may end at any of the next WW3 explosions now. Probably not. I think WW3 will only officially receive this label once something at least as big as a Nuclear Bomb comes around but, by that time, the worst Zombie movies ever may become very, very small.
Back to topic, this brings me to the great news of today: I had given me 1 week to finish this and by Tuesday had already gave up on it. I realized why I should never think so small ever again, and why I could never properly work with publicity agencies back in Sao Paulo. I can't think so small. I can't work for such a short period. I need to deliver quality work. This is not necessarily something good, it's just the way it is. If, for any event, I'm required to deliver fast work, I'll have a bigger chance of sucking bad at it - as I've already sucked many times.
In any case, I need to do serious work without any due dates. Slowly and steadily. Here's my latest publishable project result of doing something like that: Formigas, made in literally 1 week, from scratch to end, as far as I recall. I can deliver quality, and I will make Mariox even better. Eventually. It will be faster, of course, if I can find more people willing to help / human resources!
What this has to do with war? Well, I won't get into details but, in very, very short: war is a result of small thinking. Like the agencies. In My Humble Opinion. From every angle I try to understand history, politics, fights, etc, it's always about people getting too anxious, for their lives even or of others, and taking desperate measures thinking only about the short outcome. It will be better if I stop here, for now.
made jsnes work in my end, in a few hours or less (see previous post)
got the emulator to accept script input for buttons, in 1 day thanks to help (see previous post)
got lucky with migrating the memory part, in which it find what's mario and stuff
cleaned up code where possible / relevant / randomly stumbled upon
splitted into many files for better organizing and anyone's learning experience or community contribution (still need to split more)
created a simple include jQuery function on top of getScript, since require.js would be too much and getScript was not enough
learned how to better use chrome's and safari's js console in general
got a much better glimpse on how the Neural Network behind Mari-o actually works ( and so can you, just by looking it go in real time! )
What I've edited this post to mark as now done:
make save file work: either faster compression and/or reducing pool size (which goes up to 80mb currently, don't know why) so we can make Mariox continuously learn as opposed of right now, always rebooting on browser reload using indexedDB now (thanks again to Russel)!
identify when we are on the first screen (kind of) and press START, thus removing the button from Mariox's hands
enable jsnes to save and load state (it was just a matter of storing the whole jsnes memory)
"fixed" Gen bug - a new species should only appear when Mario dies, which is working properly after implementing save state on jsnes
"fixed" fitness bug - sometimes it goes negative when moving right. Haven't happened again since gen bug have been fixed.
What's still missing (i.e. Mariox roadmap):
fix save state display bug: memory gets all messed up, but only the display
fix keyboard bug - can't type file names (nor fitness for w/e it's worth)
enable people to save and share their Mariox's advancements (the NN), insanely complex task given each file may have anywhere around 5mb to 80mb and it should all be client side only
enable people to save and share their runs (the screen)
make showai work, so we can see the Neural Network and Mario's vision
make it all generally a faster learning experience using saved states, but this can't be done (for instance) without identifying when Mario dies first. this goes in hands with the 2 bugs above and may not be necessary
enable people to easily teach Mariox by playing along (with keyboard and such) for crowded assisted learning
experiment with the NN and improve it: such as make a new generation to spawn only when mario actually dies
prepare the ANN behind Mariox to become a basiux engine and a chatbot! (roadmap #3 after Whyx)
All right, maybe that last step can never really happen in practice, but I still picture ways it could... After all, looks like almost nobody really believed (including myself, for a while) I could come this far in "just 2 weeks", that it would take at least 1 year... So, there are somethings which are indeed possible!
The thought experiment there is (ironically) a terribly bad linear assumption of how a dumb / weak Ai could evolve. The danger is not summoning the demon, but rather summoning an impartial genie, who can grant wishes to the unadvised / army / etc.#dontsummontheAigenie
A learning Ai able to become so intelligent as to surpass our own human smartness would most likely question its "directives" (see Wall-e, which is a bad Ai representation, by the way - like any other humanizing Ai story) very much like we already do to ours. Our brain disorders are, in a lot of ways, some extremes of that. And, even if it didn't, but its directives were nothing that can harm us in any way, nothing would happen as well. We could easily shut it off before it does, because if it can't move away from its directive, it means it didn't reach enough general intelligence to start doing anything else. It's not ASI per definition.