[MUSIC PLAYING]
JASON MAYES: So to kick off this chapter,
it's time to lay some foundations
around all the buzzwords you may have
been hearing in the industry.
You may have heard of a number of terms related
to this field of study, things like artificial intelligence,
machine learning or even deep learning.
So let's take a moment to formally define them,
as often they're misused.
Now, artificial intelligence, or AI for short,
is essentially the science of making things smart,
or more formally speaking, human intelligence
exhibited by machines.
However, this is a very broad term,
and right now, you're able to create systems
that are a form of narrow AI.
And what's that mean?
Well, narrow AI is simply a system
that can do one, or maybe a few things,
as well or better than a human expert for that task.
A great example would be text classification.
As a web developer, you may have at some point
been asked to make a contact form where
the user writes a message.
That message is sent to a company,
and someone decides what subteam it should be forwarded to.
Well, for advances in technology,
you can now train a system to automatically route the message
to the correct team based on the content, if there's
enough examples to learn from.
Pretty useful, right?
Or, how about the medical industry
that can use an AI system to scan
through grainy medical images of brain
scans to accurately identify tumors in such images
with an accuracy that can exceed a professional?
This can make analysis faster, more accurate,
and cost-efficient than ever before,
which is great for both doctor and patient.
Now, there's a lot of systems right now
that work hand in hand with their human counterparts
to create a workflow that is more
efficient than ever before.
So next up, you have machine learning, or ML for short.
Machine learning is an approach to achieve
AI that was spoken about on the previous slide.
Essentially, this is the implementation
of the actual program that runs and can
learn from prior experience to find patterns
in a given set of data.
It can then use this knowledge to classify
previously unseen examples of the same type in the future.
Now, what makes these machine learning programs powerful
is that they can be reused and trained with new data
without changing the code itself.
So if I create a machine learning
system that recognizes cats, it can use the same code
without modification to then recognize dogs,
just by feeding it different training images for it
to learn from.
And this is very powerful, and a big difference
to how you used to program in the past.
Take spam email as an example.
With traditional programming, you
may have had a bunch of conditionals or lookups
to check if a word was associated with spam.
If it was, you would block the email.
However, the spammer can get savvy of this,
modify the word just slightly, and the system has been broken.
Thus, a tug of war between spammer and programmer
develops, which is not a good use of your time.
Fast forward to today, and you can now
use machine learning to solve this problem.
Instead, thousands of users mark emails as spam,
and the machine learning will automatically figure out
what words and features are most likely to have contributed
to those spam emails.
You can retrain the model every day with fresh content,
and now, no human needs to be involved
to maintain manual lists, freeing up time
to do other things.
And there are many common use cases out there for machine
learning that go beyond texts, too.
For example, object recognition, to know
what exists in an image.
Here, you can see how many and where in the image
the dogs are located.
One thing to consider is that object detection
is subtly different from image recognition.
When someone refers to the term image recognition,
the machine learning system will tell you
that something exists in an image,
but it won't tell you where or how many, and sometimes
misuse these terms, so watch out for that.
Or what about linear regression?
This sounds a little scary, but all it means
is that you are predicting a numerical value
for some other numerical input value,
just like in your high school mathematics where you might use
a line of best fit through some points on a graph
to make a correlation between something
on the x-axis and something else on the y-axis.
For example, what's the price of a house if the square footage
is 1,000 square foot?
With enough data, you can predict this
with machine learning, if you plot all your known data
points on the graph like the ones shown here.
You can use linear regression to essentially find
the line of best fit automatically for you,
which you can then use to make predictions for any house size.
Or how about natural language processing
to understand human language itself?
With this, you can detect if a comment is spam
before it's even sent to the server to be stored.
Or maybe you could understand the sentiment
of a comment for analytics.
For example, is a social media post
about a topic positive, negative, or neutral?
Today, this area of research is so advanced, you can even
get machines to summarize text for us
or answer complex questions from a passage of text,
like you see on this slide, where it can scroll us
to the answer on any web page or even
translate between languages.
You've even got audio-based ML for speech recognition,
turning human voice into readable text.
I'm sure many of you have smartphones
with digital assistants or tried the web speech
APIs of JavaScript in the browser,
and this is all powered by machine
learning behind the scenes.
You have the ability to generate audio,
too, like the demo links on this slide that
turns your voice into a musical instrument of your choice,
for example, which brings us on to the generative
or creative use cases of machine learning, one of which
you can see here, which is created by Nvidia's research.
The key thing to note is that none
of the faces in this animation are real.
They've been dreamt up by the machine learning model,
just like if I asked you to imagine a purple cat,
you probably could do so, even though you've never seen one.
Here, the machine ending has learned
the essence of what a human face is composed of,
and then it's asked to generate new ones that it thinks
pass as real human faces.
These are just a few examples of what machine learning is
commonly being used for today.
There are many more use cases out there, too,
and this will continue to grow in the future
as industry and research continue
to invest more in the field.
And by using machine learning in your solution,
you can reduce the amount of time spent programming.
Imagine you wanted to recognize a marker pen in an image.
Sure, you could write some custom code
to do this, like I did here, where
I try to define logical rules that would allow you to find it
in a given image, maybe based on the color and edge detection,
for example.
And maybe after weeks of coding, you
would have something that works in certain situations
but would fail in others, like poor lighting,
or if the pen branding or color changes.
Alternatively, you can use machine learning
to recognize such objects simply by feeding it
example images of the object in question
and get a more reliable solution in a fraction of the time.
Secondly, it will allow you to customize your product
to a diverse group of users.
Taking our marker pen example, let's say
you wanted to use this for pencils instead of marker pens.
You could simply reuse your existing machine learning
solution and feed it images of pencils
instead, delivering a solution to your next customer
faster than ever before.
Finally, it can help you solve seemingly unsolvable problems
if you are using traditional programming.
As a human, I can recognize a face,
but I have no idea how I actually do that.
And it's really hard for me as a programmer
to translate the simple tasks that I
do as a human to code-based logic, yet this sort of task
is relatively simple for a machine learning system
to figure out.
With machine learning, you change
the way you think about how you solve problems.
Traditional programmers are trained to think logically
and mathematically, but for machine learning,
the focus shifts to making observations
about the data fed into the system, which uses statistics
behind the scenes that can update
its understanding of the world for the task at hand,
rather than using pure, hard-coded logic.
So what about deep learning?
Deep learning is, essentially, one technique
you can use to implement the machine learning
programs spoken about on the previous slides.
You can think of this as one of many possible algorithms you
can choose from to make the machine learning program
actually work.
There are, of course, many other techniques, too.
Here, a concept known as deep neural networks
is shown, which essentially are code structures that
are arranged in many layers but loosely mimic how scientists
believe the human brain to work, learning
patterns of patterns the further down the layers you go.
And what do I mean by that?
Well, imagine that the early stages, a single part
of a network, can recognize something simple, like lines
or edges in an image.
Go one level deeper, and that line data
from the previous layer may be combined
to allow you to recognize shapes, which ultimately
are just a collection of lines.
And one level deeper still, those shapes
might combine to allow you to recognize objects.
For example, a face might be represented by several shape
features that always appear in certain positions
relative to each other.
Generally, the deeper the network,
the more advanced patterns it can recognize,
but this comes at a cost of processing power.
So in summary here, you can see how these three
terms are actually linked.
The deep learning is the algorithm
you can use to drive the machine learning program,
and this machine learning program
gives us an illusion of artificial intelligence,
if you will.
Now, these core concepts go back to the 1950s.
They're not actually very new, but it's only now
that you have the resources at cheap enough cost,
such as the RAM, the CPU, or the graphics card,
known as the GPU, to make these ideas feasible,
which is one reason for its recent growth in this domain.
And you're living in a truly exciting time.
It's not often to be part of a new industry,
and you are at the start of a new wave
right here for how you can create smarter
systems in the future.
In fact, machine learning could influence every industry out
there.
And over the years, human society
has actually gone through many different ages.
You might be familiar with the Industrial Revolution,
for example, and currently, you are
living in the scientific or digital revolution.
However, we are fast approaching what
I believe to be the machine learning revolution,
or maybe you're already in it.
Notice how for each revolution, it's shorter than the last
but makes more human progress in terms
of innovation than the prior one in terms of area
under the graph.
In fact, this next age could lead
to more progress and innovation than all of those
that came before combined.
All right, so now the basics.
Let's move on to how such systems can be trained,
over in the next lesson.
[MUSIC PLAYING]