SPEAKER 1: Oceanic ecosystems are
threatened by a lack of science-based fishery
management today.
For example, 34% of the world's major commercial fish species
are overfished.
And more than $23 billion of seafood
is stolen annually from the sea through illegal and unregulated
fishing, also causing habitat destruction.
This is why a free website called GlobalFishingWatch.org
was launched by Google in partnership
with other organizations, such as Oceana and SkyTruth,
in 2016.
To monitor fishing activity globally
and make it transparent to anyone online for free.
They use satellite technology, cloud computing, and machine
learning in order to find navigation patterns,
using a public signal received by a GPS-like device called
the Automatic Identification System or AIS, used
by the vessels in the sea.
You can imagine tracking 60 million points from vessels
worldwide quickly grows into a big data problem.
So let's dive in and see how to approach the problem.
Thanks to data, today we can understand our natural world
with far greater richness than ever
before by orders of magnitude.
This now empowers us to build amazing apps that
can help us solve complex social and environmental challenges.
And so in this series, let's build an app together.
Meet Brian, who's worked at Google for over 14 years.
He's a co-founder of Global Fishing Watch.
BRIAN SULLIVAN: So to understand why we did Global Fishing
Watch, we first really had to understand
what the state of fishing at a global level was in the world.
And the stats were pretty sobering.
So when you think of something like a tuna or a swordfish,
about 90% of that species has disappeared
in the last generation or two.
And when you look at fish that actually end up on a plate,
you're talking about how about one in five, or 20% of those,
is considered IUU, so Illegal, Unreported, or Unregulated.
And then when you finally look at fisheries themselves,
they say that about 90% plus of them
were either at capacity, overfished,
or trying to recover.
So when we started Global Fishing Watch,
I like to say that it wasn't possible three years earlier.
It was barely feasible when Global Fishing Watch
was starting.
And now we wonder how we didn't do it sooner.
And from a pure technology and machine learning perspective,
our first versions of this were rough heuristics.
It gave us a rough sense of where a vessel might be.
And now machine learning has evolved so far so
that we're able to not only see whether or not
a vessel's fishing based on how it's moving.
We're also able to differentiate the type of fishing
that they're doing.
And so we continue to stay on the cutting edge of machine
learning as it applies to the fundamental conservation issues
or policy issues that we're addressing with fishing.
SPEAKER 1: I love this project, and definitely recommend
leveraging all the extensive work the amazing Global Fishing
Watch teams have made accessible on their website
as well as on their beautiful YouTube channel.
BRIAN SULLIVAN: So within Google,
I feel really lucky that I get to work
on a team whose focus is to make a positive change in the world
from an environmental or societal perspective.
I honestly don't think this would
have been possible without Google
willing to invest in something like fishing,
that isn't something you would normally associate with Google.
At the end of the day, it was about making
information universally accessible and digestible,
very much part of our mission.
So to actually build Global Fishing Watch,
we really used the full suite of Google Cloud platform products.
Fundamentally, BigQuery was the only tool
that was out there that was enabling
us to look at billions and billions of these ship position
reports.
And be able to look and them not only over time, but also
spatially.
Just storing that alone was the type of thing
that didn't scale to a lot of other areas.
But then the ability to go in and analyze it
in near real time, so it enables an analyst
to kind of see how this is unfolding
and tweak their algorithms as necessary.
SPEAKER 1: And if you're curious about how to make a time series
classification app that includes latitude and longitudinal data,
let me give you a quick tour using Google Cloud tools.
Let's start with a snapshot of the products used.
First up is Apache Beam, which is an open source library
that you run a Google's data processing service, called
Data Flow, to create two data sets needed
for machine learning.
One is for training and the other for evaluation.
Next is TensorFlow Keras, which is a high level API
library used to define a machine learning model,
where we then train in Vertex AI.
As for the data, we get this from Global Fishing Watch's
GitHub repository.
It includes a ship's unique identifier
called Maritime Mobile Service Identity or MMSI, which
was broadcasted at different times along with its lat,
long coordinates, distance from shore
and port, its speed, and its course
at different times of the day.
The irregularity in time in which the data's collected then
requires us to transform it into even hourly intervals, which
we call time steps.
The model uses a one-dimensional,
Fully Convolutional Network, FCN.
Because it enables us to feed a variable number of hourly time
steps.
It assesses patterns in the vessel's movements
within each window of time.
And as an output, it labels whether it is fishing or not.
Now, for this type of supervised learning,
we need training data that has fishing labels.
And Global Fishing Watch performed the labor
of love of manually investigating and then
producing over 140,000 label time ranges.
And for context, even though that's
a tiny subset relative to the massive data set,
it's more than enough to build a model.
Next, we create the training and evaluation
data sets in parallel via an Apache Beam
pipeline running on Data Flow.
Now, from a data preparation standpoint,
we ideally want to feed the model raw data that
resembles what we get from the field
in order to get predictions as new data arrives.
Next, we define the model using Keras,
and train it on Vertex AI, which is an API with a client library
and user interface that enables you to train, save, deploy,
and request predictions.
After our model is trained, we save it in Cloud Storage
and can either load it into a Python app, deploy
it as an endpoint in Vertex AI, or in a web app using Cloud Run
Serverless infrastructure.
We visualize the predictions in a free Jupyter
notebook called Colab using a map visualization library.
We can see the ship moving and changing color
when it's fishing and when it's not,
according to the predictions.
[MUSIC PLAYING]
So what's next?
Well, in this video description is a detailed blog post,
some friendly links, and most importantly,
an awesome lab built in collaboration with my peer
David, which contains all the code needed so you do not
have to write a single line and can interact with the map
yourself.
If you found this content helpful, by the way,
you can subscribe or leave a comment on other AI
for Good use cases you have in mind.
And community, before we end, I'm
going to leave you with Brian's fun fact about the project.
BRIAN SULLIVAN: It's really shaped kind of the way I go out
and the way I interact with nature now.
And it just makes me really kind of figure out what's around
the corner for the next thing.
And there's so many incredible stories
of seeing what happens when you simply put information
in the hands of others, and how they go on and take that
into other areas.
[MUSIC PLAYING]