Resources | How ordinary programmers teach themselves machine learning

A Self-Study Guide for Machine Learning Engineers

     This article will cover all aspects of machine learning, from simple linear regression to state-of-the-art neural networks, so you can not only learn how to use them, but also build them from scratch.

     The following content is oriented towards computer vision, which is the fastest way to learn general knowledge, and the experience you gain from it can be easily transferred to other areas of machine learning.

     In this article we will use TensorFlow as the machine learning framework.

     Learning is the result of a multi-dimensional factor, so if it can be based on learning materials, both theory and practice, the learning effect will be much better. In addition, a good practice method is to participate in Kaggle competitions, and solve real-life problems in the form of competitions to consolidate what you have learned before.

(Requirement: You don't need to be expert level about Python, but have a good grasp of the basics)


1. Courses

1.1 Practical Machine Learning (Johns Hopkins University)

www.coursera.org/learn/pract…

1.2 Machine Learning (Stanford University)

www.coursera.org/learn/machi…

The above two courses will teach you some basics of data science and machine learning, and will also help you learn and master more difficult knowledge.

1.3 CS231n: Convolutional Neural Networks for Visual Recognition 2017 (2016)

cs231n.stanford.edu/

This course is one of the best courses on ML & CV online, not only will it give you an idea of ​​how deep the water is here, but it will also give you a good foundation for further research and exploration.

1.4 Deep Learning (Udacity's course)

www.udacity.com/course/deep…

1.5 CS224d: Deep Learning for Natural Language Processing

cs224d.stanford.edu/

1.6 E-books related to deep learning (covering all aspects of ML)

leonardoaraujosantos.gitbooks.io/artificial-…


2. Actual combat

Below is a list of courses and projects to help understand how it works and find ways to improve.

2.1. Simple exercises related to Tensorflow

www.kadenze.com/courses/cre…

2.2. Tensorflow cookbook

github.com/nfmcclure/t…

2.3. Tensorflow-101 Tutorial Section

github.com/lengstrom/f…

2.4. How to use neural network to achieve image style transfer.

github.com/lengstrom/f…

2.5 Image segmentation

github.com/MarvinTeich…

2.6 Object recognition using SSD

github.com/balancap/SS…

2.7 Fast Mask RCNN for Object Recognition and Segmentation

github.com/CharlesShan…

2.8 Reinforcement learning, very useful for building a robot or Dota AI.

github.com/dennybritz/…

2.9 Magenta Project by Google Brain Team

github.com/tensorflow/…

2.10 Deep Bilateral Learning Real-time Image Enhancement

groups.csail.mit.edu/graphics/hd…

2.11 Autonomous Vehicle Project

github.com/udacity/sel…


3. FAQ

What should I do if I encounter difficulties in the learning process?

First, you have to understand that machine learning is not 100% accurate, most of the time it is just a good guess and requires a lot of tuning iterations. So, in most cases, coming up with some unique ideas is very difficult because most of your time and resources will be spent training the model. So instead of trying to figure out the solution on your own, you can search for papers, projects, and people who can help you. Arguably, the sooner you gain experience, the better.

The following websites can help you:

Why is the paper not fully solving the problem, or why is the paper being verified wrong in some specific cases?

It is a pity to say that not all scientists are willing to disclose their research results, but they need to gain income or fame by publishing papers. So some of them published only part of the material, or gave the wrong formula. So we'd better search for code, not papers. Essays are simply evidence or facts that address a particular problem.

Where can I find the latest learning materials?

Using cloud computing or desktop/laptop?

Cloud computing is the best choice when there is a lot of computing needs. For learning and testing it is much cheaper to use a PC/Laptop with a CUDA capable graphics card. Of course, if you have free cloud resources or excess funds, it is better to use the cloud.

How to improve your hyperparameter tuning skills?

The main problem in training is time, you can't sit there staring at the training data all the time, so it is recommended that you use Grid Search. Just create a set of hyperparameters and model architecture, run them one by one, and save the results. This way you can train at night and compare the results the following day until you find the most promising one.

You can see how this is done in the sklearn library:

scikit-learn.org/stable/modu…


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325786788&siteId=291194637