150多个最好的与机器学习,自然语言处理和Python相关的教程
本文翻译自Over 150 of the Best Machine Learning, NLP, and Python Tutorials I’ve Found, 首发于伯乐在线,未经许可禁止转载。
机器学习已经发展了很久, 它的历史可以追溯到1959年,但是如今此领域的发展速度可以说是空前的。在最近的几篇文章中, 我讨论了人工智能领域为何会在现在以及不久的将来持续蓬勃发展。如今很多对机器学习感兴趣的同学都普遍表示入门很难。
在准备博士课题的期间,我尝试在网络上搜索与机器学习和自然语言处理相关的优秀资源。当我找了一个有趣的教程或者视频,从这个教程或者视频出发我又可以找到三四个更多的教程或视频,最终就会出现的画面就是我还没有开始认真研究第一个找到的教程,浏览器已经打开了20个标签等待我去浏览了。(注: Tab Bundler 可以帮助让我们的标签更有条理).
在找到了超过25个与机器学习相关的速查表后,我写了篇文章, 在里面整理了所有优秀的速查表.
为了给后面学习的童鞋铺路,我将我找到的最好的一些教程内容整理成了一份列表。这份列表并没有包含所有网上能找到的与机器学习相关的教程,否则这份列表将会过于臃肿。我的目标就是将我在机器学习和自然语言处理领域各个方面找到的我认为最好的教程整理出来。
在教程中,为了能够更好的让读者理解其中的概念,我将避免罗列书中每章的详细内容,而是总结一些概念性的介绍内容。为什么不直接去买本书?当你想要对某些特定的主题或者不同方面进行了初步了解时,我相信这些教程对你可能帮助更大。
本文中我将分四个主题进行整理: 机器学习,自然语言处理,Python和数学。在每个主题中我将包含一个例子和多个资源。当然我不可能完全覆盖所有的主题啦。
在将来,我也将会整理一系列类似的资源列表,包括书籍,视频和代码项目等。因为我目前也的确正在编译这些资源。
如果你发现我在这里遗漏了好的教程资源,请联系告诉我。为了避免资源重复罗列,我在每个主题下只列出了5、6个教程。下面的每个链接都应该链接了和其他链接不同的资源,也会通过不同的方式(例如幻灯片代码段)或者不同的角度呈现出这些内容。
机器学习
- Machine Learning is Fun! (medium.com/@ageitgey)
- Machine Learning Crash Course: Part I, Part II, Part III (Machine Learning at Berkeley)
- An Introduction to Machine Learning Theory and Its Applications: A Visual Tutorial with Examples (toptal.com)
- A Gentle Guide to Machine Learning (monkeylearn.com)
- Which machine learning algorithm should I use? (sas.com)
激活函数和损失函数
- Sigmoid neurons (neuralnetworksanddeeplearning.com)
- What is the role of the activation function in a neural network? (quora.com)
- Comprehensive list of activation functions in neural networks with pros/cons (stats.stackexchange.com)
- Activation functions and it’s types-Which is better? (medium.com)
- Making Sense of Logarithmic Loss (exegetic.biz)
- Loss Functions (Stanford CS231n)
- L1 vs. L2 Loss function (rishy.github.io)
- The cross-entropy cost function (neuralnetworksanddeeplearning.com)
偏差
- Role of Bias in Neural Networks (stackoverflow.com)
- Bias Nodes in Neural Networks (makeyourownneuralnetwork.blogspot.com)
- What is bias in artificial neural network? (quora.com)
感知器
- Perceptrons (neuralnetworksanddeeplearning.com)
- The Perception (natureofcode.com)
- Single-layer Neural Networks (Perceptrons) (dcu.ie)
- From Perceptrons to Deep Networks (toptal.com)
回归
- Introduction to linear regression analysis (duke.edu)
- Linear Regression (ufldl.stanford.edu)
- Linear Regression (readthedocs.io)
- Logistic Regression (readthedocs.io)
- Simple Linear Regression Tutorial for Machine Learning (machinelearningmastery.com)
- Logistic Regression Tutorial for Machine Learning (machinelearningmastery.com)
- Softmax Regression (ufldl.stanford.edu)
梯度下降
- Learning with gradient descent (neuralnetworksanddeeplearning.com)
- Gradient Descent (iamtrask.github.io)
- How to understand Gradient Descent algorithm (kdnuggets.com)
- An overview of gradient descent optimization algorithms (sebastianruder.com)
- Optimization: Stochastic Gradient Descent (Stanford CS231n)
生成学习
- Generative Learning Algorithms (Stanford CS229)
- A practical explanation of a Naive Bayes classifier (monkeylearn.com)
支持向量机
- An introduction to Support Vector Machines (SVM) (monkeylearn.com)
- Support Vector Machines (Stanford CS229)
- Linear classification: Support Vector Machine, Softmax (Stanford 231n)
反向传播
- Yes you should understand backprop (medium.com/@karpathy)
- Can you give a visual explanation for the back propagation algorithm for neural networks? (github.com/rasbt)
- How the backpropagation algorithm works (neuralnetworksanddeeplearning.com)
- Backpropagation Through Time and Vanishing Gradients (wildml.com)
- A Gentle Introduction to Backpropagation Through Time (machinelearningmastery.com)
- Backpropagation, Intuitions (Stanford CS231n)
深度学习
- Deep Learning in a Nutshell (nikhilbuduma.com)
- A Tutorial on Deep Learning (Quoc V. Le)
- What is Deep Learning? (machinelearningmastery.com)
- What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning? (nvidia.com)
优化和降维
- Seven Techniques for Data Dimensionality Reduction (knime.org)
- Principal components analysis (Stanford CS229)
- Dropout: A simple way to improve neural networks (Hinton @ NIPS 2012)
- How to train your Deep Neural Network (rishy.github.io)
长短期记忆(LSTM)
- A Gentle Introduction to Long Short-Term Memory Networks by the Experts (machinelearningmastery.com)
- Understanding LSTM Networks (colah.github.io)
- Exploring LSTMs (echen.me)
- Anyone Can Learn To Code an LSTM-RNN in Python (iamtrask.github.io)
卷积神经网络(CNNs)
- Introducing convolutional networks (neuralnetworksanddeeplearning.com)
- Deep Learning and Convolutional Neural Networks (medium.com/@ageitgey)
- Conv Nets: A Modular Perspective (colah.github.io)
- Understanding Convolutions (colah.github.io)
循环神经网络(RNNs)
Recurrent Neural Networks Tutorial (wildml.com)
Attention and Augmented Recurrent Neural Networks (distill.pub)
The Unreasonable Effectiveness of Recurrent Neural Networks (karpathy.github.io)
A Deep Dive into Recurrent Neural Nets (nikhilbuduma.com)
增强学习
- Simple Beginner’s guide to Reinforcement Learning & its implementation (analyticsvidhya.com)
- A Tutorial for Reinforcement Learning (mst.edu)
- Learning Reinforcement Learning (wildml.com)
- Deep Reinforcement Learning: Pong from Pixels (karpathy.github.io)
生成对抗网络(GANs)
- What’s a Generative Adversarial Network? (nvidia.com)
- Abusing Generative Adversarial Networks to Make 8-bit Pixel Art (medium.com/@ageitgey)
- An introduction to Generative Adversarial Networks (with code in TensorFlow) (aylien.com)
- Generative Adversarial Networks for Beginners (oreilly.com)
多任务学习
- An Overview of Multi-Task Learning in Deep Neural Networks (sebastianruder.com)
自然语言处理(NLP)
- A Primer on Neural Network Models for Natural Language Processing (Yoav Goldberg)
- The Definitive Guide to Natural Language Processing (monkeylearn.com)
- Introduction to Natural Language Processing (algorithmia.com)
- Natural Language Processing Tutorial (vikparuchuri.com)
- Natural Language Processing (almost) from Scratch (arxiv.org)
深度学习与NLP
- Deep Learning applied to NLP (arxiv.org)
- Deep Learning for NLP (without Magic) (Richard Socher)
- Understanding Convolutional Neural Networks for NLP (wildml.com)
- Deep Learning, NLP, and Representations (colah.github.io)
- Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models (explosion.ai)
- Understanding Natural Language with Deep Neural Networks Using Torch (nvidia.com)
- Deep Learning for NLP with Pytorch (pytorich.org)
词向量
- Bag of Words Meets Bags of Popcorn (kaggle.com)
- On word embeddings Part I, Part II, Part III (sebastianruder.com)
- The amazing power of word vectors (acolyer.org)
- word2vec Parameter Learning Explained (arxiv.org)
- Word2Vec Tutorial — The Skip-Gram Model, Negative Sampling (mccormickml.com)
编码器-解码器
- Attention and Memory in Deep Learning and NLP (wildml.com)
- Sequence to Sequence Models (tensorflow.org)
- Sequence to Sequence Learning with Neural Networks (NIPS 2014)
- Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences (medium.com/@ageitgey)
- How to use an Encoder-Decoder LSTM to Echo Sequences of Random Integers (machinelearningmastery.com)
- tf-seq2seq (google.github.io)
Python
- 7 Steps to Mastering Machine Learning With Python (kdnuggets.com)
- An example machine learning notebook (nbviewer.jupyter.org)
例子
- How To Implement The Perceptron Algorithm From Scratch In Python (machinelearningmastery.com)
- Implementing a Neural Network from Scratch in Python (wildml.com)
- A Neural Network in 11 lines of Python (iamtrask.github.io)
- Implementing Your Own k-Nearest Neighbour Algorithm Using Python (kdnuggets.com)
- Demonstration of Memory with a Long Short-Term Memory Network in Python (machinelearningmastery.com)
- How to Learn to Echo Random Integers with Long Short-Term Memory Recurrent Neural Networks (machinelearningmastery.com)
- How to Learn to Add Numbers with seq2seq Recurrent Neural Networks (machinelearningmastery.com)
Numpy和Scipy
- Scipy Lecture Notes (scipy-lectures.org)
- Python Numpy Tutorial (Stanford CS231n)
- An introduction to Numpy and Scipy (UCSB CHE210D)
- A Crash Course in Python for Scientists (nbviewer.jupyter.org)
scikit-learn
- PyCon scikit-learn Tutorial Index (nbviewer.jupyter.org)
- scikit-learn Classification Algorithms (github.com/mmmayo13)
- scikit-learn Tutorials (scikit-learn.org)
- Abridged scikit-learn Tutorials (github.com/mmmayo13)
Tensorflow
- Tensorflow Tutorials (tensorflow.org)
- Introduction to TensorFlow — CPU vs GPU (medium.com/@erikhallstrm)
- TensorFlow: A primer (metaflow.fr)
- RNNs in Tensorflow (wildml.com)
- Implementing a CNN for Text Classification in TensorFlow (wildml.com)
- How to Run Text Summarization with TensorFlow (surmenok.com)
PyTorch
- PyTorch Tutorials (pytorch.org)
- A Gentle Intro to PyTorch (gaurav.im)
- Tutorial: Deep Learning in PyTorch (iamtrask.github.io)
- PyTorch Examples (github.com/jcjohnson)
- PyTorch Tutorial (github.com/MorvanZhou)
- PyTorch Tutorial for Deep Learning Researchers (github.com/yunjey)
Math
- Math for Machine Learning (ucsc.edu)
- Math for Machine Learning (UMIACS CMSC422)
线性代数
- An Intuitive Guide to Linear Algebra (betterexplained.com)
- A Programmer’s Intuition for Matrix Multiplication (betterexplained.com)
- Understanding the Cross Product (betterexplained.com)
- Understanding the Dot Product (betterexplained.com)
- Linear Algebra for Machine Learning (U. of Buffalo CSE574)
- Linear algebra cheat sheet for deep learning (medium.com)
- Linear Algebra Review and Reference (Stanford CS229)
概率论
- Understanding Bayes Theorem With Ratios (betterexplained.com)
- Review of Probability Theory (Stanford CS229)
- Probability Theory Review for Machine Learning (Stanford CS229)
- Probability Theory (U. of Buffalo CSE574)
- Probability Theory for Machine Learning (U. of Toronto CSC411)
微积分
- How To Understand Derivatives: The Quotient Rule, Exponents, and Logarithms (betterexplained.com)
- How To Understand Derivatives: The Product, Power & Chain Rules (betterexplained.com)
- Vector Calculus: Understanding the Gradient (betterexplained.com)
- Differential Calculus (Stanford CS224n)
- Calculus Overview (readthedocs.io)