Deep learning is a prominent topic in the field of artificial intelligence and has been attracting attention for quite some time. It has attracted much attention because of breakthroughs beyond human capabilities in fields such as computer vision (Computer Vision) and gaming (Alpha GO). Since the last survey, interest in deep learning has increased significantly.
The image below is what Google Trends shows us:
This article is a good non-technical one if you are interested in this topic introduce. If you are interested in learning about the latest trends in deep learning, this article is a comprehensive summary.
Here, our goal is to provide a learning path for newbies and people who want to explore deep learning further. 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 should understand the basic knowledge of machine learning before entering the field of in-depth learning. "Learning Paths to Machine Learning" is a complete resource to get you started in the field.
If you want a shorter version, take a look below:
Basic Mathematics, Resource 1: "Mathematics | Khan Academy" (especially Calculus, Probability, and Linear Algebra )
Python basics, resources: "Introduction to Computer Science", EDX course
Basics of Statistics, resources: "Introduction to Statistics", Udacity's course
Machine Learning Basics, Resources: "Introduction to Machine Learning," Udacity's course
Time: 2-6 months recommended
Step 1: Set up your machine
Before proceeding to the next step , please make sure you have supporting hardware. The general recommendation should be at least:
A good enough GPU (4+ GB), preferably Nvidia
A sufficient CPU (such as Intel Core i3 is OK, but Intel Pentium is not) )
4GB memory or depending on the dataset.
If you’re still not sure, take a look at this hardware guide
PS: If you’re a hardcore gamer (and not just a Candy Crush player of course!), you probably already have what you need hardware.
If you don’t have the required hardware, you can purchase or rent an Amazon Web Service (AWS). Here is a good guide to using AWS for deep learning.
Note: There is no need to install any deep learning learning library at this stage. This is done in step 3.
Step 2: Try it
Now that you have enough preliminary knowledge, you can learn more about deep learning.
According to personal preference, you can follow:
Blog: (Resource 1: "Basics of Deep Learning" Resource 2: "Hacker's Guide to Neural Networks")
Video: "Deep Learning Simplified"
Textbook: "Neural Networks and Deep Learning"
In addition to these prerequisites, you should also know popular deep learning libraries and the languages that run them. Here is a (non-comprehensive) list (see the wiki page for a more comprehensive list):
Caffe
DeepLearning4j
Tensorflow
Theano
Torch
Some other famous libraries include:
Mocha
neon
H2O
MXNet
Keras
Lasagne
Nolearn
Here is a list of deep learning libraries classified according to language
It is recommended to read Stanford’s cs231n course Lecture 12: Popular Overview of Deep Learning Libraries
Time: 1-3 weeks recommended
Step 3: Choose your own path of adventure
Now comes the fun part! Deep learning has been applied in various fields and has brought state-of-the-art results. In order to enter this field, you, the reader, need to choose a path that suits you. This should be a practical experience so that you gain a suitable foundation on top of your current understanding.
Note: Each path includes an introductory blog, a practical project, the deep learning program library and auxiliary courses required for the project. Start by understanding the introduction, then install the required libraries and start working on your project. If you encounter any difficulty with this, take advantage of the relevant courses for support.
Computer Vision of Deep Learning
Introduction: "DL for Computer Vision" Computer Vision Blog
Project: "FacialKeypoint Detection" Facial Keypoint Detection Tutorial
Required library: Nolearn
Related courses: "cs231n: Convolutional Neural Network Visual Recognition"
Natural Language Processing of Deep Learning
Introduction to Introduction: "DeepLearning, NLP, and Representations" ("Deep Learning, Natural Language Processing and Representation" blog)
Project: "Deep Learning Chatbot":
"Part One"
"Second Part of "
Required libraries: tensorflow
Related courses: "cs224d: Application of Deep Learning in Natural Language Processing"
Deep Learning for Speech/Audio Recognition
Introduction: "Deep Talk: Lessons Learned from Deep Learning" news and corresponding video.
Project: "Generating music with Magenta (tensorflow)"
Required libraries: Magenta,
Related courses: "Deep Learning (Spring 2016), cilvr Lab @ New York
Deep Learning Reinforcement Learning
Introduction and project: "Deep Reinforcement Learning: Table Tennis Game from Pixels"
Required libraries: No requirements. But you need openAI gym to test your model
Related courses: "cs294: Deep Reinforcement Learning"
Time: 1-2 months recommended
Step 4: In-depth. Deep Learning is now (almost) worthy of a spot in the Deep Learning Hall of Fame! The road ahead is long and deep (pun intended), and is largely unexplored right now. As you get familiar with and use this new skill. Here are some tips to improve your skills.
Choose a different path to deep learning not mentioned above! (Examples: deep learning for trading, deep learning for optimizing energy efficiency)
Use your newly learned skills to create something (remember, with great power comes great responsibility, )
Test your deep learning skills (such as Kaggle)
Participate in deep learning communities (such as Google Group)
Follow the latest research results and researchers (such as "RE.WORK DL Summit". ”)
Time: Suggestion - no upper limit!
Specifically, let’s talk about using python to develop or learn machine learning, an important module of deep learning! It should be said to be an indispensable module!
1. Preliminary preparation, you need to know more or less python scientific operations, data sorting and image result modules. These three are indispensable: numpy, pandas, matplotlib.2. Advanced preparation, in In terms of machine learning, scikit learn is a module that brings together many machine learning methods. It supports a variety of machine learning methods.
3. It is also advanced in neural networks. Tensorflow, which has made great contributions, was developed by Google and has hired many Theano developers. I think there is no one more powerful in the development of neural networks than Tensorflow, and if you think about Google, the speed of updates will definitely be the same. It won't be slow. Look forward to it.4. If you want to build a neural network quickly and easily, Keras is a very good module. Its underlying layer is Tensorflow and Theano, so it can be used on Windows, MacOS, and Linux.
5. There are indeed many other modules that can be used, but in my personal machine learning career, these are the main ones I use.
In order to facilitate everyone's learning and promote the power of Chinese people in the field of machine learning, I have made my own set of scikit learn, Theano, Keras, and tensorflow Chinese teaching videos, and an introduction series to machine learning. The response in China has not been great, but many people have watched it on YouTube. I hope everyone will support the power of the Chinese people.
Summary of Python machine learning library and deep learning library
Scikit-learn is based on Scipy is a Python module built for machine learning. It features a variety of classification, regression and clustering algorithms including support vector machines, logistic regression, naive Bayes classifiers, random forests, Gradient Boosting, and 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 , its design refers to Torch, written in Python language, and is a highly modular neural network library that supports GPU and CPU.3. Lasagne (Deep Learning) is not only a delicious Italian dish, but also a deep learning library with similar functions to Keras, but its design is somewhat different from them. 4.Pylearn2 Pylearn is a Theano-based library program that simplifies machine learning research. It encapsulates many commonly used models and training algorithms in deep learning and artificial intelligence research into a single experimental package, such as stochastic gradient descent. 5.NuPIC NuPIC is a machine intelligence platform using HTM learning algorithm as a tool. HTM is an accurate calculation method for the cortex. The core of HTM is a time-based continuous learning algorithm and a spatiotemporal pattern of storage and recall. NuPIC is suitable for a wide variety of problems, especially anomaly detection and prediction from streaming data sources. 6. Nilearn Nilearn is a Python module that can quickly statistically learn neuroimaging data. It uses the scikit-learn toolbox in the Python language and some applications for predictive modeling, classification, decoding, and connectivity analysis to perform multivariate statistics. 7.PyBrain Pybrain is the abbreviation of reinforcement learning, artificial intelligence, and neural network library based on Python language. Its goal is to provide flexible, easy-to-use, and powerful machine learning algorithms and to test your algorithms in a variety of predefined environments. 8.Pattern Pattern is a network mining module in the Python language. It provides tools for data mining, natural language processing, network analysis and machine learning. It supports vector space models, clustering, support vector machines and perceptrons and uses the KNN classification method for classification. 9.Fuel Fuel provides data for your machine learning model. It has an interface for sharing data sets such as MNIST, CIFAR-10 (image data set), Google's One Billion Words (text). You use it to replace your own data in a variety of ways. 10.Bob Bob is a free signal processing and machine learning tool. Its toolbox is co-written in Python and C++. It is designed to be more efficient and reduce development time. It is composed of a large number of software packages for processing imaging tools, audio and video processing, machine learning and pattern recognition. of. 11.Skdata Skdata is a library program for machine learning and statistical data sets. This module provides standard Python usage for toy problems, popular computer vision and natural language datasets. 12.MILK MILK is a machine learning toolkit in Python language. It mainly uses supervised classification methods among the many available classifications such as SVMS, K-NN, random forests, and decision trees. It also performs feature selection. These classifiers are combined in many ways to form different classification systems such as unsupervised learning, affinity gold propagation, and K-means clustering supported by MILK. 13.IEPY IEPY is an open source information extraction tool focusing on relationship extraction. It is mainly aimed at users who need to extract information from large data sets and scientists who want to try new algorithms. 14.Quepy Quepy is a Python framework that queries in a database query language by changing natural language questions. It can be simply defined as different types of problems in natural language and database queries. So, you can build your own system that feeds natural language into your database without coding. Now Quepy provides support for Sparql and MQL query languages. And there are plans 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. It uses PyCUDA for GPU and CUDA accelerate. It is the most important type of tool for neural network models and can provide activation functions for a number of different activity functions, such as dynamics, Nesterov dynamics, loss of signal and stopping methods. 16.mlxtend It is a library program composed of useful tools and extensions for daily data science tasks. 17.nolearn This package contains a large number of utility modules that can help you complete machine learning tasks. A large number of these modules work with scikit-learn, and others are often more useful. 18.Ramp Ramp is a library program that develops solutions for accelerating prototyping in machine learning in the Python language. It is a lightweight pandas-based pluggable framework for machine learning. It provides a simple declarative syntax exploration function for existing machine learning and statistical tools in the Python language (such as scikit-learn, rpy2, etc.) Implement algorithms and transformations quickly and efficiently. 19.Feature Forge This series of tools creates and tests machine learning functions through an API compatible with scikit-learn. This library provides a set of tools that will make you useful in many machine learning programs. When you use scikit-learn this tool, you will feel that you have been greatly helped. (Although this only works if you have different algorithms.) 20.REP REP is about conducting in a harmonious, reproducible way An environment provided by the data movement driver. It has a unified classifier wrapper to provide a variety of operations, such as TMVA, Sklearn, XGBoost, uBoost, etc. And it can train classifiers in a parallel manner on a population. It also provides an interactive plot. 21.Python Learning Machine Sample A collection of simple software 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 topic model python implementation Scalable statistical semantics Analyze plain-text documents for semantic structure Retrieve semantically similar documents

Python and C each have their own advantages, and the choice should be based on project requirements. 1) Python is suitable for rapid development and data processing due to its concise syntax and dynamic typing. 2)C is suitable for high performance and system programming due to its static typing and manual memory management.

Choosing Python or C depends on project requirements: 1) If you need rapid development, data processing and prototype design, choose Python; 2) If you need high performance, low latency and close hardware control, choose C.

By investing 2 hours of Python learning every day, you can effectively improve your programming skills. 1. Learn new knowledge: read documents or watch tutorials. 2. Practice: Write code and complete exercises. 3. Review: Consolidate the content you have learned. 4. Project practice: Apply what you have learned in actual projects. Such a structured learning plan can help you systematically master Python and achieve career goals.

Methods to learn Python efficiently within two hours include: 1. Review the basic knowledge and ensure that you are familiar with Python installation and basic syntax; 2. Understand the core concepts of Python, such as variables, lists, functions, etc.; 3. Master basic and advanced usage by using examples; 4. Learn common errors and debugging techniques; 5. Apply performance optimization and best practices, such as using list comprehensions and following the PEP8 style guide.

Python is suitable for beginners and data science, and C is suitable for system programming and game development. 1. Python is simple and easy to use, suitable for data science and web development. 2.C provides high performance and control, suitable for game development and system programming. The choice should be based on project needs and personal interests.

Python is more suitable for data science and rapid development, while C is more suitable for high performance and system programming. 1. Python syntax is concise and easy to learn, suitable for data processing and scientific computing. 2.C has complex syntax but excellent performance and is often used in game development and system programming.

It is feasible to invest two hours a day to learn Python. 1. Learn new knowledge: Learn new concepts in one hour, such as lists and dictionaries. 2. Practice and exercises: Use one hour to perform programming exercises, such as writing small programs. Through reasonable planning and perseverance, you can master the core concepts of Python in a short time.

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Mac version
God-level code editing software (SublimeText3)

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Atom editor mac version download
The most popular open source editor