In this video, I'd like to
show you a fun and historically
important example of Neural Network Learning.
Of using a Neural Network for autonomous driving
that is getting a car to learn to drive itself.
The video that I
showed a minute, was something
that I've gotten from Dean Pomilieu,
who Colleague who works
out in Carnegie Mellon University out
on the east coast of the United States,
and in part of the
video you see visualizations like
this, and what I should tell you what the visualization
looks like before starting to
video. Down here
on the lower left is the
view seen by the car
of what's in front of it
and so here you know, you will kind
of see you know, a road that's
maybe going a bit to
the left and going a little bit to
the right, and up
here on top, this
first horizontal bar shows the
direction selected by the
human driver and is the
location of this bright
white band that shows the
steering direction selected by the
human driver, where, you
know, here, far to the left
corresponds to steering hard left;
here corresponds to steering hard
to the right; and so
this location, which is a
little bit to the left,
a little bit left of
center, means that the human
driver, at this point, was
steering slightly to the left. A
nd this second part here
corresponds to the steering
direction selected by the
learning algorithm; and again, the
location of this sort
of white band, means the
neural network was here, selecting
a steering direction just slightly to
the left and in fact,
before the neural network starts
learning initially, you
see that the network outputs a
grey band, like a
grey uniform, grey band throughout
this region, so the uniform
grey fuzz corresponds to the
neural network having been randomly
initialized, and initially having
no idea how to
drive the car, or initially having
no idea what direction to steer in.
And it's only after it's learned
for a while that it will then start
to output like a solid white
band in just a small
part of the region corresponding
to choosing a particular steering direction.
And that corresponds to when a neural network.
Becomes more confident in selecting, you know,
a and in one
location rather than outputting
a sort of light gray
fuzz, but instead outputting
a white band that's
more constantly selecting one steering direction.
Alban is a system
of artificial neural networks, that learns to steer
by watching a person drive. Alban
is designed to control the
tube a modified army
Humvee who could put
sensors, computers and actuators
for autonomous navigation experiments.
The initial spec in
configuring Alban is training in
the training the person drives
to be a car while Alban watches.
Once every two seconds, Alban
digitizes a video image
of the road ahead, and records the person's steering direction.
This training image is reduced
in resolution to 30 by
32 pixels and provided
as input to Alban's three-layer
network.
Using the back propagation learning algorithm; Alban
is training to output the same
steering direction as the
human driver for that image
Initially, the network's steering response is random.
After about two minutes of
training, the network learns
to accurately imitate the steering
reactions of the
human driver. This same
training procedure is repeated for other road types.
After the networks have been trained the
operator pushes the run
switch and often begins
driving. 12 times
per second, Alban digitizes an
image and feeds it to its neural networks.
Each network, running in parallel,
produces a steering direction and a measure of it's
confidence in its response.
The steering direction
from the most confident network.
In this case, the network trained
for the one-lane road is used to control the vehicle.
Suddenly, an intersection appears ahead
of the vehicle.
As the vehicle approaches the intersection,
the confidence of the one-lane network decreases.
As it crosses the intersection, and
the two-lane road ahead comes
into view, the confidence of the two-lane network rises.
When it's confidence rises, the two-lane
network is selected to steer,
safely guiding the vehicle
into it's lane, on the two-lane road.
So that was autonomous
driving using a neural network. Of course, there are more
recently more modern attempts
to do autonomous driving in a few properties, in
the U.S., in Europe, and so on.
They're giving more robust driving
controllers than this, but I
think it's still pretty remarkable and
pretty amazing how a simple
neural network trained with back-propagation
can, you know, actually learn to drive a car somewhat well.