M2M Day 202: Putting the pedal to the metal

Max Deutsch
3 min readMay 22, 2017

--

This post is part of Month to Master, a 12-month accelerated learning project. For May, my goal is to build the software part of a self-driving car.

For most of this month, I’ve been focused on creating a steering angle predicator for my self-driving car.

However, to finish off my car, it’s important that I understand how to build a system to control the accelerator/throttle and the brake of the car (i.e. “the pedals”).

While this may sound like a completely new challenge, it turns out that I can build my pedal system without writing any new lines code.

After all, my steering model was constructed by 1. Showing the computer a bunch of images, 2. Assigning a numeric value to each image, 3. Asking the computer to figure out how the pixels of the images relate to the numeric values, 4. Using this relation to predict the numeric value assigned to other images.

In the case of the steering predicator, this numeric value represented steering angle. But, it could have just as easily represented the throttle or braking amount.

Thus, to build the pedal system, all I needed to do was re-assign each image a numeric value that corresponds to the correct throttle amount or braking amount, and then ask the computer (in the same exact way) to determine the relation between the pixels and the numeric values.

So, that’s what I did.

For example, in the case of throttle, I prepared the data.txt with 10,000 images matched to their corresponding throttle amount, and then ran this file through the exact same machine learning model.

And, as expected, the model learned over time, reduced Loss, and determined an effective way to predict throttle amount.

I did the same for the braking system.

In other words, the machine learning model that I’ve been using is completely generic. It doesn’t matter if the inputs are steering angles, throttle values, or braking values. The model doesn’t discriminate.

This is perhaps anticlimactic, in some sense, but in another sense, quite an amazing thing: Machine learning technology has gotten to a point where we don’t need to create highly specialized models for each application. Instead, a single model is fairly extensible across many domains — and this will just keep getting better.

The point is that I don’t really have to do much work to get throttling and braking for free. It’s a pretty good deal…

Read the next post. Read the previous post.

Max Deutsch is an obsessive learner, product builder, guinea pig for Month to Master, and founder at Openmind.

If you want to follow along with Max’s year-long accelerated learning project, make sure to follow this Medium account.

--

--