Live data from Hacker News

TensorKart: self-driving MarioKart with TensorFlow

kevinhughes.ca

51–60 of 70 posts

Re: TensorKart: self-driving MarioKart with TensorFlow

#51

Earlier quoted context omitted.

1. The AI in games has access to internal representations of game state and does not have to recognize it from pixels on screen. This is a massive difference. 2. The logic is usually a bunch of (human-authored) scripts consisting of if-else spaghetti.

Also, the AI opponents don't have to play by the same rules. They go by fun > fairness to keep things interesting. That's why you normally can't keep a huge lead on AI opponents, because they "rubberband" back up to you faster than they should be able to. Wouldn't surprise me if they don't even 'drive' in any sense while off-screen, just increment some abstract position relative to the track length. But I don't know…

"Wouldn't surprise me if they don't even 'drive' in any sense while off-screen, just increment some abstract position relative to the track length. But I don't know this for a fact." This seems unlikely, especially given how item pickup zones operate. Since an item box disappears for a short period of time after someone drives over it, it's imperative that the position of the CPU player who drove over it, and the one that comes after that (and inherently gets no item) is represented accurately. Even off-screen, AI continues to collect and utilize items.

Then again, maybe this is just done by cheating simply with an RNG.

Re: TensorKart: self-driving MarioKart with TensorFlow

#53
I'm interested in knowing why the Python and C components communicate with HTTP, beyond reading about the bugfix. Wouldn't it be easier to use sockets or files or some other mechanism to integrate the two languages?

Just something to think about as a developer. I would imagine that on a local machine, using HTTP as the protocol might add latency.

Re: TensorKart: self-driving MarioKart with TensorFlow

#54
post #26

Personally I think the most impressive thing here isn't that you created a self-driving MarioKart, but that you trained TensorFlow based on input screenshots of your desktop. I feel like that could be a good next step - a ubiquitous neural net model that, after mapping inputs, will learn to play any video game that's on your screen.

There's work being done to allow reinforcement nets to do transfer learning.

Re: TensorKart: self-driving MarioKart with TensorFlow

#55
post #25

This is pretty cool; as someone who is currently working on the second project (traffic sign recognition) for the Udacity "Self-Driving Car Engineer" nanodegree, using TensorFlow - it is interesting to me how it seems like the "standard" MNIST CNN can be adapted to so many other use cases. For the project I am currently working on, I'm using a slightly modified form of LeNet - which isn't too different from the TF MN…

From the post: > Later, I switched to use Nvidia’s Autopilot... So I guess he didn't use the MNIST CNN model.

However, if you look at the code:

https://github.com/SullyChen/Autopilot-TensorFlow/blob/maste...

You can see that it follows much the same pattern as LeNet CNN for MNIST - a few (ok, more than a few!) convolutional layers followed by a few fully connected layers.

Maybe you could call it a "follow on" or perhaps an ANN pattern?:

Conv -> Conv -> Reshape/Flatten -> FC -> FC -> FC

(disregarding activation and such)

...which is really the lesson of the LeNet MNIST CNN - at least, that's my takeaway.

Re: TensorKart: self-driving MarioKart with TensorFlow

#56
post #41

Earlier quoted context omitted.

Reinforcement Learning. Here's a good intro: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html

Perfect, thank you!!! You made my day. :-D

...later found this nice explanation of RL concepts if it helps someone: https://www.nervanasys.com/demystifying-deep-reinforcement-l...

Re: TensorKart: self-driving MarioKart with TensorFlow

#57
post #55

Earlier quoted context omitted.

From the post: > Later, I switched to use Nvidia’s Autopilot... So I guess he didn't use the MNIST CNN model.

However, if you look at the code: https://github.com/SullyChen/Autopilot-TensorFlow/blob/maste... You can see that it follows much the same pattern as LeNet CNN for MNIST - a few (ok, more than a few!) convolutional layers followed by a few fully connected layers. Maybe you could call it a "follow on" or perhaps an ANN pattern?: Conv -> Conv -> Reshape/Flatten -> FC -> FC -> FC (disregarding activation and such) ...w…

You're right, that does look similar... I expected this to be based on some type of RNN!

Re: TensorKart: self-driving MarioKart with TensorFlow

#58

Earlier quoted context omitted.

These are Tool-Assisted Speedruns. That means that it's a human player using things like slow motion, mem dumps and other mechanisms to play perfect games. It's more an example of human's abilities when augmented with computers than AI discovering those glitches itself.

The most amazing run I've seen so far was a RTA (realtime time attack) of mega man 2. A human player is manually collision glitching and writing over memory with a sequence of inputs. And the RTA time in 2016 is now faster than the initial TAS records.

Do you have a link? Sounds like it'd be a very interesting watch.

Edit: I found one that has an example (I think) around 7:38 http://www.nicovideo.jp.am/watch/sm13963118 - the collision detection pushes megaman into the wall and jumps between different sections. Very interesting indeed!

Re: TensorKart: self-driving MarioKart with TensorFlow

#59

Earlier quoted context omitted.

1. The AI in games has access to internal representations of game state and does not have to recognize it from pixels on screen. This is a massive difference. 2. The logic is usually a bunch of (human-authored) scripts consisting of if-else spaghetti.

Also, the AI opponents don't have to play by the same rules. They go by fun > fairness to keep things interesting. That's why you normally can't keep a huge lead on AI opponents, because they "rubberband" back up to you faster than they should be able to. Wouldn't surprise me if they don't even 'drive' in any sense while off-screen, just increment some abstract position relative to the track length. But I don't know…

[deleted]

Re: TensorKart: self-driving MarioKart with TensorFlow

#60
post #33

Earlier quoted context omitted.

> the Udacity "Self-Driving Car Engineer" nanodegree That looks like a great course by the way, thanks for sharing.

I'm one of cr0sh's classmates. I don't have any background in ML/AI/etc, so I've had to supplement the Udacity course materials with a lot of external resources (just finished watching the Stanford CS231n course, which was very helpful), but overall the course been really interesting+fun so far. It's really nice to be exposed to new kinds of tech I've never heard of / used before. Refreshing change from webdev. If yo…

I'm also a web developer and I plan on taking the SDC nanodegree program in the February.

Ideally, I want to work on self driving cars or AI in my day to day job, but I don't want to get my hopes up. Do you think that after you complete the nanodegree you will attempt to change your career to an SDC engineer or AI/ML engineer? Or is this just meant to fulfill a curiosity of yours?

Post reply on HN