All Projects → emilwallner → How To Learn Deep Learning

emilwallner / How To Learn Deep Learning

Licence: mit
A top-down, practical guide to learn AI, Deep learning and Machine Learning.

Projects that are alternatives of or similar to How To Learn Deep Learning

deep-learning-coursera-complete
Deep Learning Specialization by Andrew Ng on Coursera - My Completed Coursework Repo - All 5 Courses
Stars: ✭ 104 (-80.88%)
Mutual labels:  cnn, rnn
Deeplearning
深度学习入门教程, 优秀文章, Deep Learning Tutorial
Stars: ✭ 6,783 (+1146.88%)
Mutual labels:  cnn, rnn
Handwritingrecognitionsystem
Handwriting Recognition System based on a deep Convolutional Recurrent Neural Network architecture
Stars: ✭ 262 (-51.84%)
Mutual labels:  cnn, rnn
Lightnet
Efficient, transparent deep learning in hundreds of lines of code.
Stars: ✭ 243 (-55.33%)
Mutual labels:  cnn, rnn
Rmdl
RMDL: Random Multimodel Deep Learning for Classification
Stars: ✭ 375 (-31.07%)
Mutual labels:  cnn, rnn
Crnn Pytorch
Pytorch implementation of CRNN (CNN + RNN + CTCLoss) for all language OCR.
Stars: ✭ 248 (-54.41%)
Mutual labels:  cnn, rnn
Unet Zoo
A collection of UNet and hybrid architectures in PyTorch for 2D and 3D Biomedical Image segmentation
Stars: ✭ 302 (-44.49%)
Mutual labels:  cnn, rnn
Sign Language Gesture Recognition
Sign Language Gesture Recognition From Video Sequences Using RNN And CNN
Stars: ✭ 214 (-60.66%)
Mutual labels:  cnn, rnn
Fast Pytorch
Pytorch Tutorial, Pytorch with Google Colab, Pytorch Implementations: CNN, RNN, DCGAN, Transfer Learning, Chatbot, Pytorch Sample Codes
Stars: ✭ 346 (-36.4%)
Mutual labels:  cnn, rnn
Text Classification Cnn Rnn
CNN-RNN中文文本分类,基于TensorFlow
Stars: ✭ 3,613 (+564.15%)
Mutual labels:  cnn, rnn
Caption generator
A modular library built on top of Keras and TensorFlow to generate a caption in natural language for any input image.
Stars: ✭ 243 (-55.33%)
Mutual labels:  cnn, rnn
Tensorflow Tutorial
Tensorflow tutorial from basic to hard, 莫烦Python 中文AI教学
Stars: ✭ 4,122 (+657.72%)
Mutual labels:  cnn, rnn
Pytorch Sentiment Analysis
Tutorials on getting started with PyTorch and TorchText for sentiment analysis.
Stars: ✭ 3,209 (+489.89%)
Mutual labels:  cnn, rnn
Automatic speech recognition
End-to-end Automatic Speech Recognition for Madarian and English in Tensorflow
Stars: ✭ 2,751 (+405.7%)
Mutual labels:  cnn, rnn
Natural Language Processing With Tensorflow
Natural Language Processing with TensorFlow, published by Packt
Stars: ✭ 222 (-59.19%)
Mutual labels:  cnn, rnn
Mydeeplearning
A deep learning library to provide algs in pure Numpy or Tensorflow.
Stars: ✭ 281 (-48.35%)
Mutual labels:  cnn, rnn
Deep Learning With Python
Deep learning codes and projects using Python
Stars: ✭ 195 (-64.15%)
Mutual labels:  cnn, rnn
Iseebetter
iSeeBetter: Spatio-Temporal Video Super Resolution using Recurrent-Generative Back-Projection Networks | Python3 | PyTorch | GANs | CNNs | ResNets | RNNs | Published in Springer Journal of Computational Visual Media, September 2020, Tsinghua University Press
Stars: ✭ 202 (-62.87%)
Mutual labels:  cnn, rnn
Basicocr
BasicOCR是一个致力于解决自然场景文字识别算法研究的项目。该项目由长城数字大数据应用技术研究院佟派AI团队发起和维护。
Stars: ✭ 336 (-38.24%)
Mutual labels:  cnn, rnn
Tsai
Time series Timeseries Deep Learning Pytorch fastai - State-of-the-art Deep Learning with Time Series and Sequences in Pytorch / fastai
Stars: ✭ 407 (-25.18%)
Mutual labels:  cnn, rnn

Approach

A practical, top-down approach, starting with high-level frameworks with a focus on Deep Learning.


Language versions: Korean | English

Plug: I write about learning Machine learning online and independent research 👉 Enjoy!

Getting started [2 months]

There are three main goals to get up to speed with deep learning:

  1. Get familiar to the tools you will be working with, e.g. Python, the command line and Jupyter notebooks
  2. Get used to the workflow, everything from finding the data to deploying a trained model
  3. Building a deep learning mindset, an intuition for how deep learning models behave and how to improve them
  • Spend a week on codecademy.com and learn the python syntax, command line and git. If you don't have any previous programming experience, it's good to spend a few months learning how to program. Otherwise, it's easy to become overwhelmed.
  • Spend one to two weeks using Pandas and Scikit-learn on Kaggle problems using Jupyter Notebook on Colab, e.g. Titanic, House prices, and Iris. This gives you an overview of the machine learning mindset and workflow.
  • Spend one month implementing models on cloud GPUs. Start with FastAI and PyTorch. The FastAI community is the go-to place for people wanting to apply deep learning and share the state of the art techniques.

Once you have done this, you will know how to add value with ML.

Portfolio [3 - 12 months]

Think of your portfolio as evidence to a potential employer that you can provide value for them.

When you are looking for your first job, there are four main roles you can apply for

  1. Machine Learning Engineering,
  2. Applied Machine Learning Researcher / Residencies,
  3. Machine Learning Research Scientist, and
  4. Software Engineering.

A lot of the work related to machine learning is pure software engineering roles (category 4), e.g. scaling infrastructure, but that's out of scope for this article.

It's easiest to get a foot in the door if you aim for Machine Learning Engineering roles. There are a magnitude more ML engineering roles compared to category 2 & 3 roles, they require little to no theory, and they are less competitive. Most employers prefer scaling and leveraging stable implementations, often ~1 year old, instead of allocating scarce resources to implement SOTA papers, which are often time-consuming and seldom work well in practice.

Once you can cover your bills and have a few years of experience, you are in a better position to learn theory and advance to category 2 & 3 roles. This is especially true if you are self-taught, you often have an edge against an average university graduate. In general, graduates have weak practical skills and strong theory skills.

Context

You'll have a mix of 3 - 10 technical and non-technical people looking at your portfolio, regardless of their background, you want to spark the following reactions:

  • the applicant has experience tackling our type of problems,
  • the applicant's work is easy to understand and well organized, and
  • the work was without a doubt 100% made by the applicant.

Most ML learners end up with the same portfolio as everyone else. Portfolio items include things as MOOC participation, dog/cat classifiers, and implementations on toy datasets such as the titanic and iris datasets. They often indicate that you actively avoid real-world problem-solving, and prefer being in your comfort zone by copy-pasting from tutorials. These portfolio items often signal negative value instead of signaling that you are a high-quality candidate.

A unique portfolio item implies that you have tackled a unique problem without a solution, and thus have to engage in the type of problem-solving an employee does daily. A good starting point is to look for portfolio ideas on active Kaggle competitions, and machine learning consulting projects, and demo versions of common production pipelines. Here's a Twitter thread on how to come up with portfolio ideas.

Here are rough guidelines to self-assess the strength of your portfolio:

Machine learning engineering:

Even though ML engineering roles are the most strategic entry point, they are still highly competitive. In general, there are ~50 software engineering roles for every ML role. From the self-learners I know, 2/3 fail to get a foot in the door and end up taking software engineering roles instead. You are ready to look for a job when you have two high-quality projects that are well-documented, have unique datasets, and are relevant to a specific industry, say banking or insurance.

Project Type Base score
Common project -1 p
Unique project 10 p
Multiplier Type Factor
Strong documentation 5x
5000-word article 5x
Kaggle Medal 10x
Employer relevancy 20x
  • Hireable: 5,250 p
  • Competative: 15,000 p

Applied research / research assistant/ residencies:

For most companies, the risk of pursuing cutting edge research is often too high, thus only the biggest companies tend to need this skillset. There are smaller research organizations that hire for these positions, but these positions tend to be poorly advertised and have a bias for people in their existing community.

Many of these roles don't require a Ph.D., which makes them available to most people with a Bachelor's or Master's degrees, or self-learners with one year of focussed study.

Given the status, scarcity, and requirements for these positions, they are the most competitive ML positions. Positions at well-known companies tend to get more than a thousand applicants per position.

Daily, these roles require that you understand and can implement SOTA papers, thus that's what they will be looking for in your portfolio.

Projects type Base score
Common project -10 p
Unique project 1 p
SOTA paper implementation 20 p
Multiplier type Factor
Strong documentation 5x
5000-word article 5x
SOTA performance 5x
Employer relevancy 20x
  • Hireable: 52,500 p
  • Competitive: 150,000 p

Research Scientist:

Research scientist roles require a Ph.D. or equivalent experience. While the former category requires the ability to implement SOTA papers, this category requires you to come up with research ideas. The mainstream research community measure the quality of research ideas by their impact, here is a list of the venues and their impact. To have a competitive portfolio, you need two published papers in the top venues in an area that's relevant to your potential employer.

Project type Base score
Common project -100 p
An unpublished paper 5 p
ICML/ICLR/NeurIPS publication 500p
All other publications 50 p
Multiplier type Factor
First author paper 10x
Employer relevancy 20x
  • Hireable: 20,000 p
  • Competitive roles and elite PhD positions: 200,000 p

Examples:

Most recruiters will spend 10-20 seconds on each of your portfolio items. Unless they can understand the value in that time frame, the value of the project is close to zero. Thus, writing and documentation are key. Here's another thread on how to write about portfolio items.

The last key point is relevancy. It's more fun to make a wide range of projects, but if you want to optimize for breaking into the industry, you want to do all projects in one niche, thus making your skillset super relevant for a specific pool of employers.

Further Inspiration:

Theory 101 [4 months]

Learning how to read papers is critical if you want to get into research, and a brilliant asset as an ML engineer. There are three key areas to feel comfortable reading papers:

  1. Understanding the details of the most frequent algorithms, gradient descent, linear regression, and MLPs, etc
  2. Learning how to translate the most frequent math notations into code
  3. Learn the basics of algebra, calculus, statistics, and machine learning
  • For the first week, spend it on 3Blue1Brown's Essence of linear algebra, the Essence of Calculus, and StatQuests' the Basics (of statistics) and Machine Learning. Use a spaced repetition app like Anki and memorize all the key concepts. Use images as much as possible, they are easier to memorize.
  • Spend one month recoding the core concepts in python numpy, including least squares, gradient descent, linear regression, and a vanilla neural network. This will help you reduce a lot of cognitive load down the line. Learning that notations are compact logic and how to translate it into code will make you feel less anxious about the theory.
  • I believe the best deep learning theory curriculum is the Deep Learning Book by Ian Goodfellow and Yoshua Bengio and Aaron Courville. I use it as a curriculum, and the use online courses and internet resources to learn the details about each concept. Spend three months on part 1 of the Deep learning book. The MachineLearningGod shows a great way to study the book. Use lectures and videos to understand the concepts, Khan academy type exercises to master each concept, and Anki flashcards to remember them long-term.

Key Books:

Forums

Other good learning strategies:

If you have suggestions/questions create an issue or ping me on Twitter.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].