16 Chapter 1. Introduction
left me with an entire semester (
⇡ 4
months) to kill –
it was an excellent time to start studying
deep learning.
My first stop, as is true for most academics, was to read through all the recent publications
on deep learning. Due to my machine learning background, it didn’t take long to grasp the actual
theoretical foundations of deep learning.
However, I’m of the opinion that until you take your theoretical knowledge and implement
it, you haven’t actually learned anything yet. Transforming theory into implementation is a
very
different process, as any computer scientist who has taken a data structures class before will
tell you: reading about red-black trees and then actually implementing them from scratch requires
two different skill sets.
And that’s exactly what my problem was.
After reading these deep learning publications, I was left scratching my head; I couldn’t take
what I learned from the papers and implement the actual algorithms, let alone reproduce the results.
Frustrated with my failed attempts at implementation, I spent hours searching on Google,
hunting for deep learning tutorials, only to come up empty-handed. Back then, there weren’t many
deep learning tutorials to be found.
Finally, I resorted to playing around with libraries and tools such as Caffe, Theano, and Torch,
blindly followed poorly written blog posts (with mixed results, to say the least).
I wanted to get started, but nothing had actually clicked yet – the deep learning lightbulb in my
head was stuck in the “off” position.
To be totally honest with you, it was a painful, emotionally trying semester. I could clearly see
the value of deep learning for computer vision, but I had nothing to show for my effort, except for a
stack of deep learning papers on my desk that I understood but struggled to implement.
During the last month of the semester, I finally found my way to deep learning success through
hundreds of trial-and-error experiments, countless late nights, and a lot of perseverance. In the long
run, those four months made a massive impact on my life, my research path, and how I understand
deep learning today. . .
. . . but I would not advise you to take the same path I did.
If you take anything from my personal experience, it should be this:
1. You don’t need a decade of theory to get started in deep learning.
2. You don’t need pages and pages of equations.
3. And you certainly don’t need a degree in computer science (although it can be helpful).
When I got started studying deep learning, I made the critical mistake of taking a deep dive into
the publications without ever resurfacing to try and implement what I studied. Don’t get me wrong
– theory is important. But if you don’t (or can’t) take your newly minted theoretical knowledge and
use apply it to build actual real-world applications, you’ll struggle to find your space in the deep
learning world.
Deep learning, and most other higher-level, specialized computer science subjects are recog-
nizing that theoretical knowledge is not enough –
we need to be practitioners in our respective
fields as well
. In fact, the concept of becoming a deep learning practitioner was my
exact motiva-
tion in writing Deep Learning for Computer Vision with Python.
While there are:
1.
Textbooks that will teach you the theoretical underpinnings of machine learning, neural
networks, and deep learning
2.
And countless “cookbook”-style resources that will “show you in code”, but never relate the
code back to true theoretical knowledge. . .
. . . none of these books or resources will serve as the bridge between the other.
On one side of the bridge you have your textbooks, deeply rooted in theory and abstraction.
And on the other side, you have “show me in code” books that simply present examples to you,