这篇文章包含了我目前为止找到的最好的教程内容。这不是一张罗列了所有网上跟机器学习相关教程的清单——不然就太冗长太重复了。我这里并没有包括那些质量一般的内容。我的目标是把能找到的最好的教程与机器学习和自然语言处理的延伸主题们连接到一起。
我这里指的“教程”,是指那些为了简洁地传授一个概念而写的介绍性内容。我尽量避免了教科书里的章节,因为它们涵盖了更广的内容,或者是研究论文,通常对于传授概念来说并不是很有帮助。如果是那样的话,为何不直接买书呢?当你想要学习一个基本主题或者是想要获得更多观点的时候,教程往往很有用。
我把这篇文章分为了四个部分:机器学习,自然语言处理,python和数学。在每个部分中我都列举了一些主题,但是因为材料的数量庞大,我不可能涉及到每一个主题。
如果你发现到我遗漏了哪些好的教程,请告诉我!我尽量把每个主题下的教程控制在五个或者六个,如果超过了这个数字就难免会有重复。每一个链接都包含了与其他链接不同的材料,或使用了不同的方式表达信息(例如:使用代码,幻灯片和长文),或者是来自不同的角度。
机器学习
Start Here with Machine Learning (machinelearningmastery.com)
https://machinelearningmastery.com/start-here/
Machine Learning is Fun! (medium.com/@ageitgey)
https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471
Rules of Machine Learning: Best Practices for ML Engineering(martin.zinkevich.org)
http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf
Machine Learning Crash Course: Part I, Part II, Part III (Machine Learning at Berkeley)
https://ml.berkeley.edu/blog/2016/11/06/tutorial-1/
https://ml.berkeley.edu/blog/2016/12/24/tutorial-2/
https://ml.berkeley.edu/blog/2017/02/04/tutorial-3/
An Introduction to Machine Learning Theory and Its Applications: A Visual Tutorial with Examples (toptal.com)
https://www.toptal.com/machine-learning/machine-learning-theory-an-introductory-primer
A Gentle Guide to Machine Learning (monkeylearn.com)
https://monkeylearn.com/blog/gentle-guide-to-machine-learning/
Which machine learning algorithm should I use? (sas.com)
https://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/
The Machine Learning Primer (sas.com)
https://www.sas.com/content/dam/SAS/en_us/doc/whitepaper1/machine-learning-primer-108796.pdf
Machine Learning Tutorial for Beginners (kaggle.com/kanncaa1)
https://www.kaggle.com/kanncaa1/machine-learning-tutorial-for-beginners
激活和损失函数
Sigmoid neurons (neuralnetworksanddeeplearning.com)
http://neuralnetworksanddeeplearning.com/chap1.html#sigmoid_neurons
What is the role of the activation function in a neural network? (quora.com)
https://www.quora.com/What-is-the-role-of-the-activation-function-in-a-neural-network
Comprehensive list of activation functions in neural networks with pros/cons(stats.stackexchange.com)
https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons
Activation functions and it’s types-Which is better? (medium.com)
https://medium.com/towards-data-science/activation-functions-and-its-types-which-is-better-a9a5310cc8f
Making Sense of Logarithmic Loss (exegetic.biz)
http://www.exegetic.biz/blog/2015/12/making-sense-logarithmic-loss/
Loss Functions (Stanford CS231n)
http://cs231n.github.io/neural-networks-2/#losses
L1 vs. L2 Loss function (rishy.github.io)
http://rishy.github.io/ml/2015/07/28/l1-vs-l2-loss/
The cross-entropy cost function (neuralnetworksanddeeplearning.com)
http://neuralnetworksanddeeplearning.com/chap3.html#the_cross-entropy_cost_function
偏差
Role of Bias in Neural Networks (stackoverflow.com)
https://stackoverflow.com/questions/2480650/role-of-bias-in-neural-networks/2499936#2499936
Bias Nodes in Neural Networks(makeyourownneuralnetwork.blogspot.com)
http://makeyourownneuralnetwork.blogspot.com/2016/06/bias-nodes-in-neural-networks.html
What is bias in artificial neural network? (quora.com)
https://www.quora.com/What-is-bias-in-artificial-neural-network
感知机
Perceptrons (neuralnetworksanddeeplearning.com)
http://neuralnetworksanddeeplearning.com/chap1.html#perceptrons
The Perception (natureofcode.com)
https://natureofcode.com/book/chapter-10-neural-networks/#chapter10_figure3
Single-layer Neural Networks (Perceptrons) (dcu.ie)
http://computing.dcu.ie/~humphrys/Notes/Neural/single.neural.html
From Perceptrons to Deep Networks (toptal.com)
https://www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks
回归
Introduction to linear regression analysis (duke.edu)
http://people.duke.edu/~rnau/regintro.htm
Linear Regression (ufldl.stanford.edu)
http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/
Linear Regression (readthedocs.io)
http://ml-cheatsheet.readthedocs.io/en/latest/linear_regression.html
Logistic Regression (readthedocs.io)
https://ml-cheatsheet.readthedocs.io/en/latest/logistic_regression.html
Simple Linear Regression Tutorial for Machine Learning(machinelearningmastery.com)
http://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/
Logistic Regression Tutorial for Machine Learning(machinelearningmastery.com)
https://machinelearningmastery.com/logistic-regression-tutorial-for-machine-learning/
Softmax Regression (ufldl.stanford.edu)
http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/
梯度下降
Learning with gradient descent (neuralnetworksanddeeplearning.com)
http://neuralnetworksanddeeplearning.com/chap1.html#learning_with_gradient_descent
Gradient Descent (iamtrask.github.io)
http://iamtrask.github.io/2015/07/27/python-network-part2/
How to understand Gradient Descent algorithm (kdnuggets.com)
http://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html
An overview of gradient descent optimization algorithms(sebastianruder.com)
http://sebastianruder.com/optimizing-gradient-descent/
Optimization: Stochastic Gradient Descent (Stanford CS231n)
http://cs231n.github.io/optimization-1/
生成学习
Generative Learning Algorithms (Stanford CS229)
http://cs229.stanford.edu/notes/cs229-notes2.pdf
A practical explanation of a Naive Bayes classifier (monkeylearn.com)
https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier/
支持向量机
An introduction to Support Vector Machines (SVM) (monkeylearn.com)
https://monkeylearn.com/blog/introduction-to-support-vector-machines-svm/
Support Vector Machines (Stanford CS229)
http://cs229.stanford.edu/notes/cs229-notes3.pdf
Linear classification: Support Vector Machine, Softmax (Stanford 231n)
http://cs231n.github.io/linear-classify/
深度学习
A Guide to Deep Learning by YN² (yerevann.com)
http://yerevann.com/a-guide-to-deep-learning/
Deep Learning Papers Reading Roadmap (github.com/floodsung)
https://github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap
Deep Learning in a Nutshell (nikhilbuduma.com)
http://nikhilbuduma.com/2014/12/29/deep-learning-in-a-nutshell/
A Tutorial on Deep Learning (Quoc V. Le)
http://ai.stanford.edu/~quocle/tutorial1.pdf
What is Deep Learning? (machinelearningmastery.com)
https://machinelearningmastery.com/what-is-deep-learning/
What’s the Difference Between Artificial Intelligence, Machine Learning, and Deep Learning? (nvidia.com)
https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/
Deep Learning — The Straight Dope (gluon.mxnet.io)
https://gluon.mxnet.io/
优化和降维
Seven Techniques for Data Dimensionality Reduction (knime.org)
https://www.knime.org/blog/seven-techniques-for-data-dimensionality-reduction
Principal components analysis (Stanford CS229)
http://cs229.stanford.edu/notes/cs229-notes10.pdf
Dropout: A simple way to improve neural networks (Hinton @ NIPS 2012)
http://cs229.stanford.edu/notes/cs229-notes10.pdf
How to train your Deep Neural Network (rishy.github.io)
http://rishy.github.io/ml/2017/01/05/how-to-train-your-dnn/
长短期记忆(LSTM)
A Gentle Introduction to Long Short-Term Memory Networks by the Experts(machinelearningmastery.com)
https://machinelearningmastery.com/gentle-introduction-long-short-term-memory-networks-experts/
Understanding LSTM Networks (colah.github.io)
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
Exploring LSTMs (echen.me)
http://blog.echen.me/2017/05/30/exploring-lstms/
Anyone Can Learn To Code an LSTM-RNN in Python (iamtrask.github.io)
http://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/
卷积神经网络
Introducing convolutional networks (neuralnetworksanddeeplearning.com)
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks
Deep Learning and Convolutional Neural Networks(medium.com/@ageitgey)
https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learning-and-convolutional-neural-networks-f40359318721
Conv Nets: A Modular Perspective (colah.github.io)
http://colah.github.io/posts/2014-07-Conv-Nets-Modular/
Understanding Convolutions (colah.github.io)
http://colah.github.io/posts/2014-07-Understanding-Convolutions/
递归神经网络
Recurrent Neural Networks Tutorial (wildml.com)
http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
Attention and Augmented Recurrent Neural Networks (distill.pub)
http://distill.pub/2016/augmented-rnns/
The Unreasonable Effectiveness of Recurrent Neural Networks(karpathy.github.io)
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
A Deep Dive into Recurrent Neural Nets (nikhilbuduma.com)
http://nikhilbuduma.com/2015/01/11/a-deep-dive-into-recurrent-neural-networks/
强化学习
Simple Beginner’s guide to Reinforcement Learning & its implementation(analyticsvidhya.com)
https://www.analyticsvidhya.com/blog/2017/01/introduction-to-reinforcement-learning-implementation/
A Tutorial for Reinforcement Learning (mst.edu)
https://web.mst.edu/~gosavia/tutorial.pdf
Learning Reinforcement Learning (wildml.com)
http://www.wildml.com/2016/10/learning-reinforcement-learning/
Deep Reinforcement Learning: Pong from Pixels (karpathy.github.io)
http://karpathy.github.io/2016/05/31/rl/
生成对抗网络(GANs)
Adversarial Machine Learning (aaai18adversarial.github.io)
https://aaai18adversarial.github.io/slides/AML.pptx
What’s a Generative Adversarial Network? (nvidia.com)
https://blogs.nvidia.com/blog/2017/05/17/generative-adversarial-network/
Abusing Generative Adversarial Networks to Make 8-bit Pixel Art(medium.com/@ageitgey)
https://medium.com/@ageitgey/abusing-generative-adversarial-networks-to-make-8-bit-pixel-art-e45d9b96cee7
An introduction to Generative Adversarial Networks (with code in TensorFlow) (aylien.com)
http://blog.aylien.com/introduction-generative-adversarial-networks-code-tensorflow/
Generative Adversarial Networks for Beginners (oreilly.com)
https://www.oreilly.com/learning/generative-adversarial-networks-for-beginners
多任务学习
An Overview of Multi-Task Learning in Deep Neural Networks(sebastianruder.com)
http://sebastianruder.com/multi-task/index.html
自然语言处理
Natural Language Processing is Fun! (medium.com/@ageitgey)
https://medium.com/@ageitgey/natural-language-processing-is-fun-9a0bff37854e
A Primer on Neural Network Models for Natural Language Processing(Yoav Goldberg)
http://u.cs.biu.ac.il/~yogo/nnlp.pdf
The Definitive Guide to Natural Language Processing (monkeylearn.com)
https://monkeylearn.com/blog/the-definitive-guide-to-natural-language-processing/
Introduction to Natural Language Processing (algorithmia.com)
https://blog.algorithmia.com/introduction-natural-language-processing-nlp/
Natural Language Processing Tutorial (vikparuchuri.com)
http://www.vikparuchuri.com/blog/natural-language-processing-tutorial/
Natural Language Processing (almost) from Scratch (arxiv.org)
https://arxiv.org/pdf/1103.0398.pdf
深度学习和自然语言处理
Deep Learning applied to NLP (arxiv.org)
https://arxiv.org/pdf/1703.03091.pdf
Deep Learning for NLP (without Magic) (Richard Socher)
https://nlp.stanford.edu/courses/NAACL2013/NAACL2013-Socher-Manning-DeepLearning.pdf
Understanding Convolutional Neural Networks for NLP (wildml.com)
http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/
Deep Learning, NLP, and Representations (colah.github.io)
http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/
Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models (explosion.ai)
https://explosion.ai/blog/deep-learning-formula-nlp
Understanding Natural Language with Deep Neural Networks Using Torch(nvidia.com)
https://devblogs.nvidia.com/parallelforall/understanding-natural-language-deep-neural-networks-using-torch/
Deep Learning for NLP with Pytorch (pytorich.org)
http://pytorch.org/tutorials/beginner/deep_learning_nlp_tutorial.html
词向量
Bag of Words Meets Bags of Popcorn (kaggle.com)
https://www.kaggle.com/c/word2vec-nlp-tutorial
On word embeddings Part I, Part II, Part III (sebastianruder.com)
http://sebastianruder.com/word-embeddings-1/index.html
http://sebastianruder.com/word-embeddings-softmax/index.html
http://sebastianruder.com/secret-word2vec/index.html
The amazing power of word vectors (acolyer.org)
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
word2vec Parameter Learning Explained (arxiv.org)
https://arxiv.org/pdf/1411.2738.pdf
Word2Vec Tutorial — The Skip-Gram Model, Negative Sampling(mccormickml.com)
http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/
http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2-negative-sampling/
编码器-解码器
Attention and Memory in Deep Learning and NLP (wildml.com)
http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/
Sequence to Sequence Models (tensorflow.org)
https://www.tensorflow.org/tutorials/seq2seq
Sequence to Sequence Learning with Neural Networks (NIPS 2014)
https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf
Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences (medium.com/@ageitgey)
https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-translation-with-deep-learning-and-the-magic-of-sequences-2ace0acca0aa
tf-seq2seq (google.github.io)
https://google.github.io/seq2seq/
Python
Machine Learning Crash Course (google.com)
https://developers.google.com/machine-learning/crash-course/
Awesome Machine Learning (github.com/josephmisiti)
https://github.com/josephmisiti/awesome-machine-learning#python
7 Steps to Mastering Machine Learning With Python (kdnuggets.com)
http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html
An example machine learning notebook (nbviewer.jupyter.org)
http://nbviewer.jupyter.org/github/rhiever/Data-Analysis-and-Machine-Learning-Projects/blob/master/example-data-science-notebook/Example%20Machine%20Learning%20Notebook.ipynb
Machine Learning with Python (tutorialspoint.com)
https://www.tutorialspoint.com/machine_learning_with_python/machine_learning_with_python_quick_guide.htm
范例
How To Implement The Perceptron Algorithm From Scratch In Python(machinelearningmastery.com)
http://machinelearningmastery.com/implement-perceptron-algorithm-scratch-python/
Implementing a Neural Network from Scratch in Python (wildml.com)
http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/
A Neural Network in 11 lines of Python (iamtrask.github.io)
http://iamtrask.github.io/2015/07/12/basic-python-network/
Implementing Your Own k-Nearest Neighbour Algorithm Using Python(kdnuggets.com)
http://www.kdnuggets.com/2016/01/implementing-your-own-knn-using-python.html
ML from Scatch (github.com/eriklindernoren)
https://github.com/eriklindernoren/ML-From-Scratch
Python Machine Learning (2nd Ed.) Code Repository (github.com/rasbt)
https://github.com/rasbt/python-machine-learning-book-2nd-edition
Scipy and numpy
Scipy Lecture Notes (scipy-lectures.org)
http://www.scipy-lectures.org/
Python Numpy Tutorial (Stanford CS231n)
http://cs231n.github.io/python-numpy-tutorial/
An introduction to Numpy and Scipy (UCSB CHE210D)
https://engineering.ucsb.edu/~shell/che210d/numpy.pdf
A Crash Course in Python for Scientists (nbviewer.jupyter.org)
http://nbviewer.jupyter.org/gist/rpmuller/5920182#ii.-numpy-and-scipy
scikit-learn
PyCon scikit-learn Tutorial Index (nbviewer.jupyter.org)
http://nbviewer.jupyter.org/github/jakevdp/sklearn_pycon2015/blob/master/notebooks/Index.ipynb
scikit-learn Classification Algorithms (github.com/mmmayo13)
https://github.com/mmmayo13/scikit-learn-classifiers/blob/master/sklearn-classifiers-tutorial.ipynb
scikit-learn Tutorials (scikit-learn.org)
http://scikit-learn.org/stable/tutorial/index.html
Abridged scikit-learn Tutorials (github.com/mmmayo13)
https://github.com/mmmayo13/scikit-learn-beginners-tutorials
Tensorflow
Tensorflow Tutorials (tensorflow.org)
https://www.tensorflow.org/tutorials/
Introduction to TensorFlow — CPU vs GPU (medium.com/@erikhallstrm)
https://medium.com/@erikhallstrm/hello-world-tensorflow-649b15aed18c
TensorFlow: A primer (metaflow.fr)
https://blog.metaflow.fr/tensorflow-a-primer-4b3fa0978be3
RNNs in Tensorflow (wildml.com)
http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/
Implementing a CNN for Text Classification in TensorFlow (wildml.com)
http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/
How to Run Text Summarization with TensorFlow (surmenok.com)
http://pavel.surmenok.com/2016/10/15/how-to-run-text-summarization-with-tensorflow/
PyTorch
PyTorch Tutorials (pytorch.org)
http://pytorch.org/tutorials/
A Gentle Intro to PyTorch (gaurav.im)
http://blog.gaurav.im/2017/04/24/a-gentle-intro-to-pytorch/
Tutorial: Deep Learning in PyTorch (iamtrask.github.io)
https://iamtrask.github.io/2017/01/15/pytorch-tutorial/
PyTorch Examples (github.com/jcjohnson)
https://github.com/jcjohnson/pytorch-examples
PyTorch Tutorial (github.com/MorvanZhou)
https://github.com/MorvanZhou/PyTorch-Tutorial
PyTorch Tutorial for Deep Learning Researchers (github.com/yunjey)
https://github.com/yunjey/pytorch-tutorial
数学
Math for Machine Learning (ucsc.edu)
https://people.ucsc.edu/~praman1/static/pub/math-for-ml.pdf
Math for Machine Learning (UMIACS CMSC422)
http://www.umiacs.umd.edu/~hal/courses/2013S_ML/math4ml.pdf
线性代数
An Intuitive Guide to Linear Algebra (betterexplained.com)
https://betterexplained.com/articles/linear-algebra-guide/
A Programmer’s Intuition for Matrix Multiplication (betterexplained.com)
https://betterexplained.com/articles/matrix-multiplication/
Understanding the Cross Product (betterexplained.com)
https://betterexplained.com/articles/cross-product/
Understanding the Dot Product (betterexplained.com)
https://betterexplained.com/articles/vector-calculus-understanding-the-dot-product/
Linear Algebra for Machine Learning (U. of Buffalo CSE574)
http://www.cedar.buffalo.edu/~srihari/CSE574/Chap1/LinearAlgebra.pdf
Linear algebra cheat sheet for deep learning (medium.com)
https://medium.com/towards-data-science/linear-algebra-cheat-sheet-for-deep-learning-cd67aba4526c
Linear Algebra Review and Reference (Stanford CS229)
http://cs229.stanford.edu/section/cs229-linalg.pdf
概率
Understanding Bayes Theorem With Ratios (betterexplained.com)
https://betterexplained.com/articles/understanding-bayes-theorem-with-ratios/
Review of Probability Theory (Stanford CS229)
http://cs229.stanford.edu/section/cs229-prob.pdf
Probability Theory Review for Machine Learning (Stanford CS229)
https://see.stanford.edu/materials/aimlcs229/cs229-prob.pdf
Probability Theory (U. of Buffalo CSE574)
http://www.cedar.buffalo.edu/~srihari/CSE574/Chap1/Probability-Theory.pdf
Probability Theory for Machine Learning (U. of Toronto CSC411)
http://www.cs.toronto.edu/~urtasun/courses/CSC411_Fall16/tutorial1.pdf
微积分
How To Understand Derivatives: The Quotient Rule, Exponents, and Logarithms (betterexplained.com)
https://betterexplained.com/articles/how-to-understand-derivatives-the-quotient-rule-exponents-and-logarithms/
How To Understand Derivatives: The Product, Power & Chain Rules(betterexplained.com)
https://betterexplained.com/articles/derivatives-product-power-chain/
Vector Calculus: Understanding the Gradient (betterexplained.com)
https://betterexplained.com/articles/vector-calculus-understanding-the-gradient/
Differential Calculus (Stanford CS224n)
http://web.stanford.edu/class/cs224n/lecture_notes/cs224n-2017-review-differential-calculus.pdf
Calculus Overview (readthedocs.io)
http://ml-cheatsheet.readthedocs.io/en/latest/calculus.html