episode 2 home

how to get into deep learning?

as you scroll from article to article, struggling to find any good resources on how to get into Deep Learning, you might become demotivated eventually. What most people often don't realize is that DL is more maths than code. part of mastering DL comes by mastering the mathematics behind it. Now by no means, am I a master in deep learning, but I do like the mathematics that goes behind each concept, which makes me understand it even more.

i will attempt to break down what is deep learning and how one can get started on it, and hopefully, you might have an easier time learning and understanding it.

step one: learn to code.

probably a no brainer, but it is very important to learn how to code. The only probelm with only knowing "applied DL" or knowing only how to code, is the fact that you cannot apply your profound coding knowledge to novel solutiosn that require you to think outside the box. why you may ask? Because, you don't know the fundamentals. You cannot get good at Deep Learning by just knowing how to code.

so when you open up your computer and dream of earning $300k+/year, your first step might want to be to pick up a programming language. Now, the choice doesn't matter, but it is recommended you go with Python/C++, if you are going into Deep Learning. At least, as far as I know, these two are the languages with the most support. You might want to learn the basics of these languages, mainly:

you might want to spend a month or two, trying to learn these core concepts and the secondary concepts that come along with it, and learn to solve few problems so you get comfortable with the syntax of the language.

tip for python developers: learn to use virtual environments.

it is probably a bad idea for you to install pytorch (foreshadowing?) globally/system-wide. it is much better practice for you to use isolated environments, whether that's through anaconda or venv (virtualvenv is dead), and do your dirty business within each environment.

as the rising new developer that you are, you will make a lot of mistakes, and you'll feel grateful that you didn't mess around with anything globally. thanks to me, of course.

step two: learn a library.

libraries are specialized, pre-compiled pieces of code that allows you to build on top of the foundation that has been laid out in front of you. for example:

scikit-learn is a library that contains many machine learning algorithms as well as data preprocessing techniques that allows you to have a very friendly introduction into machine learning.

torch is a library that allows you to build neural networks and build complex models that are used in top deep learning reasearch papers [the big bucks that you need is in this!!]

this will take some time for you to learn. give yourself at least 4-6 months for you to properly acquaint yourself with the overwhelming amount of power you have to creating deep learning models. as for a python developer, you choices are to choose either torch or tensorflow, and though tensorflow looks a lot uglier, it comes down to personal preference.

for developers who chose pytorch, this might help: learnpytorch.io

step three: be humble.

as a developer, not only will you fail in making simple syntactical errors that makes you want to throw your computer away and regret your life choices, you will also fail a lot of times in building models. whether that's understanding how the training loop works [i still have to refer to the docs for that] or writing hundreds of lines of code to create a dataset class, architecture and training loop, you will end up with a lot of problems. you will never get it in your first try.

it's easy for you to feel cocky after a while, but make sure that doesn't hinder your learning, you might want to look into the "Dunning-Kruger Effect", or just read this blog.

[almost there] step four: learn math.

possibly the most important part, i mean seriously, i cannot stress how important this is. the reason why i put this point last, though it's important, is that it can have a huge learning curve, especially if you're not that great at math, and learning the nuances is a consistent, long-term effort. i consider myself to be pretty decent at math, and still to this day, i find something new every other day that makes me question how much math really is necessary.

well, to break it down... not that much. you should be good enough to understand most of the things if you know:

and the most important part, practice. practice how like jaden smith practiced for karate kid, because trust me, you're going to need it.

few resources that might help:

keep these things in mind and within 3-6 years, hopefully, you'll becomes someone prominent in deep learning. when you do, remember that this blog started it all.