
From Garfield to Lil Bub
and GitHub's Octocat,
cats have become the Internet's unofficial mascot,
playing critical roles
in some of the Web's most viral content.
But cats are unpredictable creatures.
With millions upon millions of cat photos on the Web,
each containing very different shapes,
textures, colors, poses, and backgrounds,
how do we determine whether an image has a cat in it?
Google Photos organizes all of your photos
and makes them searchable,
but how are cat photos identified
when they are merely labeled
with nondescript terms like #Max"?
Image classification assigns text labels to images,
but even with a huge number of training examples,
computers cannot extrapolate enough meaningful information
from raw pixels alone
to easily identify a cat in a photo.
We need to build models
that can see pictures more like humans do.
We can do that with a convolutional neural network.
A convolutional filter is an NxN,
for example, 3x3 grid of numbers,
that is applied to an image in different ways
to generate a feature map,
a map of all feature crosses, or combinations in the image.
Filters form a feature hierarchy.
Convnets use filters to build representations
that become progressively easier to classify,
from pixels to textures, from textures to shapes,
and from shapes to objects.
Training a small Convnet,
we can build a cat classifier
that can identify cats with up to 80% accuracy
using just 40 lines of code.
Let's see the image classifier in action.
Is there a cat in this photo?
Definitely.
How about this one?
Most certainly not.
A drawing of a cat is still identified as a cat.
So is a cat relaxing on a bed.
But a cat in a bunny-shaped cat bed--
not so much.
However, even despite its high accuracy,
the Convnet has its limitations.
As you can see, the human eye
is still better than a machine at cat classification.
Using a similar technique to the cat classifier,
we can train models to classify dogs
or even inanimate objects, like handbags.
To identify content labels in our training data,
we leverage the same Google machine learning technology
that powers Google Image Search and Google Photos,
which can recognize over 27,000 different labels.
Convnets can also be trained
to recognize more abstract concepts,
such as whether a photo was taken on a smartphone
or by a professional.
These nets can be build on top of a pretrained base network
via a process called "transfer learning,"
which makes it possible to train on far less data.
Keep reading to learn more
about convolutional neural networks
and image classification.
Then in the companion activity,
you can build your own cat classifier
using TensorFlow APIs.
Introducing ML Présentation du machine learning 机器学习简介 Kitten Rescue Cat Cam powered by EXPLORE.org 머신러닝 소개 Google Basics for Teaching Fundamentos do Google para o Ensino CS First Learning Course Builder Basics Computational Thinking for Educators