| To test out increasingly 'general' and advanced A.I, you need a sandbox/playground environment... You can use a real-world environment with a robot (noisy, more latency, computationally restrictive , more headaches, and extra development time) Or you can utilize a 'virtual' world.
Minecraft is being used as Microsoft's sandbox/playground.
Video games are a good sandbox/playground : physics engine+sim+a.i hook. You can generalize this into an observation->action loop platform. There are many open source platforms out there for this.
Take Box2d as an example which OpenAI put a custom wrapper around.. It's a 2d Physics simulation engine. 2-Dimensions = less complexity than 3-D. You have your 'physical environment' and then you hook that into your A.I .. observation/command loop. There are public Sandboxes/playgrounds and there are private ones. Many of these engines aren't hard to tie into. I'm sure this was one of the major things to resolve at OpenAI as it is for anybody in the space : make a 'playground environment for testing your A.I'... I'm also sure that OpenAI has a more advanced private gym with higher fidelity links to the A.I like everyone in the space does. Members only ;) So, OpenAI has packaged a bunch of open source engines/etc into an approachable platform to make development easier. Also, OpenAI hopes to get people to upload their results and have them detail how they achieved their results... Interesting. A.I development is at the point IMO where you don't need a name or accolades to contribute. You don't need a PHD. You don't need to be an expert in the field. You don't need to be some award winning coder. In some ways, that can harm you w.r.t to having an ingrained view on how to approach problems in a space that is begging for new paradigms. Dedicate a solid month and you can have make a virtual A.I gym setup and be off and running. If you have done any serious code development, you can easily break into this space. The thing that will be the most time consuming will be wrestling with these packages, dependencies, understanding them, and figuring out how to hook/in out of them. It seems openAI has tried to reduce this pain with the release of openAI gym. However, you'll find, if you get into any serious A.I dev, you're going to want to start cutting through people's wrappers and add-on layers that add latency, increase complexity, and keep your A.I away from the heart of the sim. You'll want your own custom hooks....
You'll want the code to be as low level as possible. Hi there (gdb), cute handle =P. |
http://otoro.net/ml/pendulum-esp-mobile/