Deep learning, a prominent topic in the field of artificial intelligence, has been concerned for quite a long time. It is a concern because of breakthroughs in the areas of computer vision (computer vision) and gaming (Alpha GO) that transcend human capabilities. Since the last survey, there has been a significant increase in attention to deep learning.
is what Google Trends show us:
If you are interested in this topic, this article is a very good non-technical introduction. If you are interested in understanding the latest trends in deep learning, this article is a comprehensive summary.
Here, our goal is to provide a learning path for novices and people who want to explore deeper learning. So are you ready to embark on a journey to conquer deep learning? Let's hit the road.
Step 0: Prepare for the expedition
It is recommended that you understand the basics of machine learning before entering the field of deep learning. "Learning Path to machine learning" is a complete resource that allows you to begin to understand the field.
If you want a shorter version, take a look at the following:
Basic Mathematics, Resource 1: "Mathematics | Khan Academy "(in particular calculus, probability theory and linear algebra)
Python Basics, resources: "Getting Started with computer science", edx course
Statistical basis, Resources: "Introduction to Statistics", Udacity's curriculum
Machine learning Basics, resources: "Getting Started with machine learning", Udacity's Course
Time: 2-6 months recommended
Step 1: Set up your machine.
Before proceeding to the next step, make sure you have the support hardware. General recommendations should have at least:
A good enough GPU (4+ GB), preferably Nvidia's
A sufficient CPU (such as Intel Core i3 can, and Intel Pentium not)
4GB of memory or depending on the data set.
If you are still unsure, check out this hardware guide
PS: If you are a hardcore gamer (of course not just a candy grinder player!). ), you may already have the hardware you need.
If you don't have the hardware you need, you can buy or rent an Amazon Web service (AWS). Here's a good guide to using AWS for deep learning.
Note: There is no need to install any in-depth learning libraries at this stage, as these are done in step 3.
Step 2: Try
Now that you have enough preparatory knowledge, you can learn more about deep learning.
Depending on your preferences, you can focus on:
Blog: (Resource 1: "Basics of deep Learning" Resource 2: "Hacker's Neural Network Guide")
Video: "Simplified deep learning"
Textbooks: Neural networks and deep learning
In addition to these prerequisites, you should also know the popular deep learning library and the languages that run them. This is a (non-exhaustive) list (see Wiki page for a more comprehensive list):
Caffe
deeplearning4j
TensorFlow
Theano
Torch
Some of the other well-known libraries include:
Mocha
Neon
H2o
MXNet
Keras
Lasagne
Nolearn
Here's a list of deep learning libraries that are categorized by language
Suggested Stanford's cs231n course 12th Lecture: Overview of the popular Deep Learning Library
Time: 1-3 Weeks recommended
Step 3: Choose your own path to adventure
Now the fun part is coming! Deep learning has been applied in various fields and has brought the most advanced results. In order to enter this field, you, the reader, need to choose a suitable way to go. This should be a practical experience so that you can get an appropriate foundation on top of what you now understand.
Note: Each path contains an introductory blog, a practice project, a program library of deep learning required for the project, and an ancillary course. Start by understanding the introduction and then install the required libraries to begin the project work. If you encounter any difficulties in this, take advantage of the relevant courses to get support.
Computer vision of deep learning
Introduction: "DL forcomputer Vision" Computer Vision Blog
Project: "Facialkeypoint Detection" face critical point detection tutorial
Library Required: Nolearn
Related courses: "CS231N: visual identification of convolutional neural networks"
Natural language processing of deep learning
Introduction: "Deeplearning, NLP, and representations" ("deep learning, natural language processing and rendering" blog)
Project: "Deep learning chat Robot":
"The first part"
"Part Two"
Library Required: TensorFlow
Related courses: "CS224D: Application of deep learning in natural language processing"
Voice/audio recognition for deep learning
Introduction: "In-depth speech: lessons learned in depth" news and corresponding videos.
Project: "Generating music with Magenta (TensorFlow)"
Required libraries: Magenta,
Related courses: "Deep learning (Spring 2016), CILVR Lab @ New York
Intensive learning of deep learning
Introduction and Project: "Deep reinforcement learning: Table tennis game from Pixels"
Required libraries: no requirements. But you need to OpenAI gym to test your model.
Related courses: "cs294: Deep Reinforcement Learning"
Time: 1-2 months recommended
Step 4: Deep learning
Now (almost) able to take a hole in deep learning celebrity classroom! The road ahead is long and profound (pun), in fact, is not yet explored. Now it's up to you to know and use this new skill on your own. Here are some tips to improve your skills.
Select a different path to repeat the above steps.
Deep learning is not mentioned above! (For example: deep learning of trading, deep learning for optimizing energy efficiency)
Use your newly learned skills to create a thing (remember, the greater the power, the greater the responsibility,)
Test your deep learning skills (e.g. Kaggle)
Participate in the deep learning community (e.g. Google Group)
Focus on the latest research findings and researchers. (such as "RE. Work DL Summit ")
Time: Suggestion--No limit!
Specifically, use Python to develop or learn machine learning, the important module of deep learning! Should be said to be an essential module!
1. Pre-preparation, you need to know more or less the Python scientific operations, data collation and the image of the results of the module, these three essential: NumPy, Pandas, Matplotlib.
2. Advanced preparation, in machine learning, Scikit Learn is a module that brings together a number of machine learning methods that support a variety of machine learning methods. You can always find the right one for your project.
3. Also advanced, TensorFlow, who has made a huge contribution to neural networks, is a developer who has developed Google and dug a lot of Theano. I think the development of neural networks is no more tensorflow than the other. And you think Google, the big company, the pace of the update will certainly not be slow. Watch it.
4. If you want to easily and quickly build a neural network, Keras This module is very good, his bottom is tensorflow and Theano, so in Windows, MacOS, Linux can be used.
5. There are a lot of other modules that can be used, but in my personal machine-learning career, I use them mostly.
in order to facilitate everyone's learning, promote the Chinese in the field of machine learning power, I have to do a set of Scikit Learn,theano, Keras, there are tensorflow Chinese teaching video, machine learning Introduction series. The domestic response is still not good, but on YouTube has been a lot of people watching. I hope you will support the strength of the Chinese people.
Python machine learning Library and deep Learning Library summary
1. Scikit-learn (key recommendation)
Scikit-learn is a Python module based on scipy for machine learning and features a variety of classifications, regression and clustering algorithms including support vector machines, logistic regression, naive Bayesian classifier, random forest, Gradient boosting, Clustering algorithms and Dbscan. and also designed Python numerical and scientific libraries Numpy and Scipy
2. Keras (Deep learning)
Keras is a deep learning framework based on Theano, and its design references torch, written in Python language, is a highly modular neural network library that supports both GPU and CPU.
3. Lasagne (deep learning)
Not just a tasty Italian dish, but also a deep learning library with similar features to Keras, but it is somewhat different in design.
4.pylearn2
Pylearn is a Theano-based library program that simplifies machine learning research. It encapsulates many common models and training algorithms for deep learning and AI research into a single experimental package, such as a random gradient descent.
5.NuPIC
Nupic is a machine intelligence platform with the HTM learning algorithm as a tool. The HTM is the precise method of computation of the cortex. The core of HTM is the time-based continuous learning algorithm and the storage and revocation space-time patterns. Nupic is suitable for a wide variety of problems, especially for detecting anomalies and predicting stream data sources.
6. Nilearn
Nilearn is a Python module that is able to quickly statistic and learn neural image data. It uses the Scikit-learn Toolkit in the Python language and some applications for predictive modeling, classification, decoding, and connectivity analysis to perform multivariate statistics.
7.PyBrain
Pybrain is based on the Python language reinforcement learning, artificial intelligence, neural network library abbreviation. It aims to compare your algorithms by providing flexible, easy-to-use and powerful machine learning algorithms and testing in a variety of pre-defined environments.
8.Pattern
Pattern is a network mining module under the Python language. It provides tools for data mining, natural language processing, network analysis, and machine learning. It supports vector space model, clustering, support vector machine and perceptron and classifies with KNN classification.
9.Fuel
Fuel provides data for your machine learning model. He has an interface to share data sets such as Mnist, CIFAR-10 (Image dataset), Google's one Billion Words (text). You use him to replace your data in many ways.
10.Bob
Bob is a free tool for signal processing and machine learning. Its toolkit, written in Python and the C + + language, is designed to be more efficient and less development time, consisting of a large number of packages that handle image tools, audio and video processing, machine learning, and pattern recognition.
11.Skdata
Skdata is a library of machine learning and statistical data sets. This module provides standard Python language usage for toy problems, popular computer vision and natural language datasets.
12.MILK
Milk is a machine learning toolkit under the Python language. It mainly uses supervised taxonomy in many available classifications such as SVMS,K-NN, random forest, decision trees. It also performs feature selection. These classifiers are combined in many ways to form different classification systems such as unsupervised learning, close relationship gold propagation, and K-means clustering supported by milk.
13.IEPY
Iepy is an open source information extraction tool that focuses on relational extraction. It is focused on users who need to extract information from large datasets and scientists who want to try out new algorithms.
14.Quepy
Quepy is a Python framework that makes queries in the database query language by altering natural language problems. He can simply be defined as a different type of problem in natural language and database queries. So you can build your own system that enters your database in natural language without coding.
Quepy now provides support for SPARQL and MQL query languages. and plan to extend it to other database query languages.
15.Hebel
Hebel is a library program for deep learning of neural networks in the Python language, using Pycuda for GPU and cuda acceleration. It is the most important type of neural network model tool and can provide some different activation functions for active functions, such as power, Nesterov power, signal loss and stop method.
16.mlxtend
It is a library program that consists of a useful tool and an extension of the daily data Science task.
17.nolearn
This package contains a number of utility modules that can help you complete your machine learning tasks. Many of these modules work with Scikit-learn, and others are usually more useful.
18.Ramp
Ramp is a library program that develops a solution for accelerating prototyping in machine learning in the Python language. He is a lightweight pandas-based machine learning pluggable framework, its existing Python language for machine learning and statistical tools such as Scikit-learn, RPY2, etc.) ramp provides a simple declarative syntax exploration function that enables the implementation of algorithms and transformations quickly and efficiently.
19.Feature Forge
This series of tools creates and tests machine learning features through a Scikit-learn-compatible API.
This library program provides a set of tools that will make you very useful in many machine learning programs. When you use the Scikit-learn tool, you will feel a lot of help. (although this can only work if you have different algorithms.) )
20.REP
Rep is an environment that is provided in a harmonious, renewable way for directing data movement drivers.
It has a uniform classifier wrapper to provide a wide variety of operations, such as TMVA, Sklearn, Xgboost, Uboost and so on. And it can train the classifier in a group in a parallel way. At the same time it also provides an interactive plot.
21.Python Learning Machine Samples
Simple software collection built with Amazon's machine learning.
22.python-elm
This is an implementation of an extreme learning machine based on Scikit-learn in the Python language.
23.gensim
Theme Model Python implementation
Scalable statistical semantics
Analyze plain-text documents for semantic structure
Retrieve semantically similar documents