當前位置:
首頁 > 知識 > 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程

請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程

本文英文出處:Robbie Allen

翻譯/吳楚

校對/田晉陽

機器學習的發展可以追溯到1959年,有著豐富的歷史。這個領域也正在以前所未有的速度進化。在之前的一篇文章(https://unsupervisedmethods.com/why-artificial-intelligence-is-different-from-previous-technology-waves-764d7710df8b)中,我們討論過為什麼通用人工智慧領域即將要爆發。有興趣入坑ML的小夥伴不要拖延了,時不我待!

在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網路資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。

找到超過25個有關ML的「小抄」後,我寫一篇博文(https://unsupervisedmethods.com/cheat-sheet-of-machine-learning-and-python-and-math-cheat-sheets-a4afe4e791b6),裡面的資源都有超鏈接。

為了幫助也在經歷類似探索過程的童鞋,我把至今發現的最好的教程匯總了一個列表。當然這不是網路上有關ML的最全集合,而且其中有一部分內容很普通。我的目標是要找到最好的有關機器學習子方向和NLP的教程。

我引用了能簡潔介紹概念的基礎內容。我已經迴避包含一些大部頭書的章節,和對理解概念沒有幫助的科研論文。那為什麼不買一本書呢? 因為教程能更好地幫助你學一技之長或者打開新視野。

我把這博文分成四個部分,機器學習,NLP,Python,和數學基礎。在每一小節我會隨機引入一些問題。由於這方面學習材料太豐富了,本文並未涵括所有內容。

機器學習

1、機器學習就是這麼好玩!(medium.com/@ageitgey)

機器學習速成課程(Berkeley的ML):

Part I:https://ml.berkeley.edu/blog/2016/11/06/tutorial-1/

Part II:https://ml.berkeley.edu/blog/2016/12/24/tutorial-2/

Part III:https://ml.berkeley.edu/blog/2017/02/04/tutorial-3/

機器學習入門與應用:實例圖解(toptal.com)

https://www.toptal.com/machine-learning/machine-learning-theory-an-introductory-primer

機器學習的簡易指南 (monkeylearn.com)

https://monkeylearn.com/blog/a-gentle-guide-to-machine-learning/

如何選擇機器學習演算法?(sas.com)

https://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/

2、Activation and Loss Functions

激活函數與損失函數

sigmoid 神經元 (neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap1.html#sigmoid_neurons

激活函數在神經網路中有什麼作用?(quora.com)

https://www.quora.com/What-is-the-role-of-the-activation-function-in-a-neural-network

https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons

激活函數及其分類比較(medium.com)

https://medium.com/towards-data-science/activation-functions-and-its-types-which-is-better-a9a5310cc8f

理解對數損失 (exegetic.biz)

http://www.exegetic.biz/blog/2015/12/making-sense-logarithmic-loss/

損失函數(Stanford CS231n)

http://cs231n.github.io/neural-networks-2/#losses

http://rishy.github.io/ml/2015/07/28/l1-vs-l2-loss/

交叉熵損失函數(neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap3.html#the_cross-entropy_cost_function

3、偏差(Bias

神經網路中的偏差的作用(stackoverflow.com)

https://stackoverflow.com/questions/2480650/role-of-bias-in-neural-networks/2499936#2499936

http://makeyourownneuralnetwork.blogspot.com/2016/06/bias-nodes-in-neural-networks.html

什麼是人工神經網路中的偏差 (quora.com)

https://www.quora.com/What-is-bias-in-artificial-neural-network

4、感知器(Perceptron)

感知器模型(neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap1.html#perceptrons

感知器(natureofcode.com)

http://natureofcode.com/book/chapter-10-neural-networks/#chapter10_figure3

一層的神經網路(感知器模型)(dcu.ie)

http://computing.dcu.ie/~humphrys/Notes/Neural/single.neural.html

從感知器模型到深度網路(toptal.com)

https://www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks

5、回歸演算法

線性回歸分析簡介(duke.edu)

http://people.duke.edu/~rnau/regintro.htm

http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/

線性回歸 (readthedocs.io)

http://ml-cheatsheet.readthedocs.io/en/latest/linear_regression.html

邏輯斯特回歸 (readthedocs.io)

http://ml-cheatsheet.readthedocs.io/en/latest/logistic_regression.html

機器學習之簡單線性回歸教程(machinelearningmastery.com)

http://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/

機器學習之邏輯斯特回歸教程(machinelearningmastery.com)

http://machinelearningmastery.com/logistic-regression-tutorial-for-machine-learning/

http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/

6、梯度下降

基於梯度下降的學習 (neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap1.html#learning_with_gradient_descent

//iamtrask.github.io/2015/07/27/python-network-part2/

如何理解梯度下降演算法?(kdnuggets.com)

http://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html

梯度下降優化演算法概覽(sebastianruder.com)

http://sebastianruder.com/optimizing-gradient-descent/

優化演算法:隨機梯度下降演算法 (Stanford CS231n)

http://cs231n.github.io/optimization-1/

7、生成學習

生成學習演算法 (Stanford CS229)

http://cs229.stanford.edu/notes/cs229-notes2.pdf

貝葉斯分類演算法之實例解析(monkeylearn.com)

https://monkeylearn.com/blog/practical-explanation-naive-bayes-classifier/

8、支持向量機

支持向量機(SVM)入門(monkeylearn.com)

https://monkeylearn.com/blog/introduction-to-support-vector-machines-svm/

支持向量機(Stanford CS229)

http://cs229.stanford.edu/notes/cs229-notes3.pdf

線性分類:支持向量機,Softmax (Stanford 231n)

http://cs231n.github.io/linear-classify/

9、後向傳播演算法(Backpropagation)

後向傳播演算法必知(medium.com/@karpathy)

https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b

來,給我圖解一下神經網路後向傳播演算法?(github.com/rasbt)

https://github.com/rasbt/python-machine-learning-book/blob/master/faq/visual-backpropagation.md

後向傳播演算法是如何運行的?(neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap2.html

沿時後向傳播演算法與梯度消失(wildml.com)

http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/

簡易入門沿時後向傳播演算法(machinelearningmastery.com)

http://machinelearningmastery.com/gentle-introduction-backpropagation-time/

奔跑吧,後向傳播演算法!(Stanford CS231n)

http://cs231n.github.io/optimization-2/

10、深度學習

果殼裡的深度學習(nikhilbuduma.com)

http://nikhilbuduma.com/2014/12/29/deep-learning-in-a-nutshell/

深度學習教程 (Quoc V. Le)

http://ai.stanford.edu/~quocle/tutorial1.pdf

深度學習,什麼鬼?(machinelearningmastery.com)

http://machinelearningmastery.com/what-is-deep-learning/

什麼是人工智慧,機器學習,深度學習之間的區別? (nvidia.com)

https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/

11、優化演算法與降維演算法

數據降維的七招鍊金術(knime.org)

https://www.knime.org/blog/seven-techniques-for-data-dimensionality-reduction

主成分分析(Stanford CS229)

http://cs229.stanford.edu/notes/cs229-notes10.pdf

Dropout: 改進神經網路的一個簡單方法(Hinton @ NIPS 2012)

http://videolectures.net/site/normal_dl/tag=741100/nips2012_hinton_networks_01.pdf

http://rishy.github.io/ml/2017/01/05/how-to-train-your-dnn/

12、長短期記憶(LSTM)

老司機帶你簡易入門長短期神經網路(machinelearningmastery.com)

http://machinelearningmastery.com/gentle-introduction-long-short-term-memory-networks-experts/

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

漫談LSTM模型(echen.me)

http://blog.echen.me/2017/05/30/exploring-lstms/

//iamtrask.github.io/2015/11/15/anyone-can-code-lstm/

13、卷積神經網路(CNNs)

卷積網路入門(neuralnetworksanddeeplearning.com)

http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks

深度學習與卷積神經網路模型(medium.com/@ageitgey)

https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learning-and-convolutional-neural-networks-f40359318721

http://colah.github.io/posts/2014-07-Conv-Nets-Modular/

http://colah.github.io/posts/2014-07-Understanding-Convolutions/

14、遞歸神經網路(RNNs)

遞歸神經網路教程 (wildml.com)

http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/

注意力模型與增強型遞歸神經網路(distill.pub)

http://distill.pub/2016/augmented-rnns/

http://karpathy.github.io/2015/05/21/rnn-effectiveness/

深入遞歸神經網路模型(nikhilbuduma.com)

http://nikhilbuduma.com/2015/01/11/a-deep-dive-into-recurrent-neural-networks/

15、強化學習

給小白看的強化學習及其實現指南 (analyticsvidhya.com)

https://www.analyticsvidhya.com/blog/2017/01/introduction-to-reinforcement-learning-implementation/

強化學習教程(mst.edu)

https://web.mst.edu/~gosavia/tutorial.pdf

強化學習,你學了么?(wildml.com)

http://www.wildml.com/2016/10/learning-reinforcement-learning/

http://karpathy.github.io/2016/05/31/rl/

16、對抗式生成網路模型(GANs)

什麼是對抗式生成網路模型?(nvidia.com)

https://blogs.nvidia.com/blog/2017/05/17/generative-adversarial-network/

用對抗式生成網路創造8個像素的藝術(medium.com/@ageitgey)

https://medium.com/@ageitgey/abusing-generative-adversarial-networks-to-make-8-bit-pixel-art-e45d9b96cee7

對抗式生成網路入門(TensorFlow)(aylien.com)

http://blog.aylien.com/introduction-generative-adversarial-networks-code-tensorflow/

《對抗式生成網路》(小學一年級~上冊)(oreilly.com)

https://www.oreilly.com/learning/generative-adversarial-networks-for-beginners

17、多任務學習

深度神經網路中的多任務學習概述(sebastianruder.com)

http://sebastianruder.com/multi-task/index.html

NLP

?

1、NLP

《基於神經網路模型的自然語言處理》(小學一年級~上冊)(Yoav Goldberg)

http://u.cs.biu.ac.il/~yogo/nnlp.pdf

自然語言處理權威指南(monkeylearn.com)

https://monkeylearn.com/blog/the-definitive-guide-to-natural-language-processing/

自然語言處理入門(algorithmia.com)

https://blog.algorithmia.com/introduction-natural-language-processing-nlp/

自然語言處理教程 (vikparuchuri.com)

http://www.vikparuchuri.com/blog/natural-language-processing-tutorial/

Natural Language Processing (almost) from Scratch (arxiv.org)

初高中生課程:自然語言處理 (arxiv.org)

https://arxiv.org/pdf/1103.0398.pdf

2、深度學習和 NLP

基於深度學習的NLP應用(arxiv.org)

https://arxiv.org/pdf/1703.03091.pdf

基於深度學習的NLP(Richard Socher)

https://nlp.stanford.edu/courses/NAACL2013/NAACL2013-Socher-Manning-DeepLearning.pdf

理解卷積神經網路在NLP中的應用(wildml.com)

http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/

http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/

嵌入表示,編碼,注意力,預測 : 新一代深度學習因NLP的精妙而存在(explosion.ai)

https://explosion.ai/blog/deep-learning-formula-nlp

理解基於神經網路的自然語言處理(Torch實現) (nvidia.com)

https://devblogs.nvidia.com/parallelforall/understanding-natural-language-deep-neural-networks-using-torch/

深度學習在NLP中的應用(Pytorch實現) (pytorich.org)

http://pytorch.org/tutorials/beginner/deep_learning_nlp_tutorial.html

3、詞向量(Word Vectors)

詞袋法遇到感知器裝袋法(kaggle.com)

https://www.kaggle.com/c/word2vec-nlp-tutorial

學習單詞嵌入表示法(sebastianruder.com)

Part I:http://sebastianruder.com/word-embeddings-1/index.html

Part II:http://sebastianruder.com/word-embeddings-softmax/index.html

Part III:http://sebastianruder.com/secret-word2vec/index.html

單詞嵌入表示的神奇力量(acolyer.org)

https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

解釋word2vec 的參數學習(arxiv.org)

https://arxiv.org/pdf/1411.2738.pdf

word2vec教程 skip-gram 模型,負採樣(mccormickml.com)

http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

4、Encoder-Decoder

注意力機制與記憶機制在深度學習與NLP中的應用(wildml.com)

http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/

序列到序列模型(tensorflow.org)

https://www.tensorflow.org/tutorials/seq2seq

利用神經網路學習序列到序列模型(NIPS 2014)

https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf

基於深度學習和魔法序列的語言翻譯(medium.com/@ageitgey)

https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-translation-with-deep-learning-and-the-magic-of-sequences-2ace0acca0aa

如何使用編碼-解碼LSTM輸出隨機整數對應的序列(machinelearningmastery.com)

http://machinelearningmastery.com/how-to-use-an-encoder-decoder-lstm-to-echo-sequences-of-random-integers/

https://google.github.io/seq2seq/

Python

1、Python

使用Python精通機器學習的七步法(kdnuggets.com)

http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html

http://nbviewer.jupyter.org/github/rhiever/Data-Analysis-and-Machine-Learning-Projects/blob/master/example-data-science-notebook/Example Machine Learning Notebook.ipynb

2、實例

小白如何用python實現感知器演算法(machinelearningmastery.com)

http://machinelearningmastery.com/implement-perceptron-algorithm-scratch-python/

小學生用python實現一個神經網路(wildml.com)

http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/

//iamtrask.github.io/2015/07/12/basic-python-network/

自己動手用ptython實現最近鄰演算法(kdnuggets.com)

http://www.kdnuggets.com/2016/01/implementing-your-own-knn-using-python.html

python實現長短期記憶網路的記憶機制(machinelearningmastery.com)

http://machinelearningmastery.com/memory-in-a-long-short-term-memory-network/

如何用長短期記憶遞歸神經網路輸出隨機整數(machinelearningmastery.com)

http://machinelearningmastery.com/learn-echo-random-integers-long-short-term-memory-recurrent-neural-networks/

如何用seq2seq遞歸神經網路學習加法運算(machinelearningmastery.com)

http://machinelearningmastery.com/learn-add-numbers-seq2seq-recurrent-neural-networks/

3、Scipy 和 numpy

Scipy課程筆記(scipy-lectures.org)

http://www.scipy-lectures.org/

Python Numpy 教程(Stanford CS231n)

http://cs231n.github.io/python-numpy-tutorial/

Numpy 與 Scipy 入門(UCSB CHE210D)

https://engineering.ucsb.edu/~shell/che210d/numpy.pdf

http://nbviewer.jupyter.org/gist/rpmuller/5920182#ii.-numpy-and-scipy

4、scikit-learn

http://nbviewer.jupyter.org/github/jakevdp/sklearn_pycon2015/blob/master/notebooks/Index.ipynb

Scikit-learn 中的分類演算法(github.com/mmmayo13)

https://github.com/mmmayo13/scikit-learn-classifiers/blob/master/sklearn-classifiers-tutorial.ipynb

Scikit-learn教程(scikit-learn.org)

http://scikit-learn.org/stable/tutorial/index.html

簡明版Scikit-learn教程(github.com/mmmayo13)

https://github.com/mmmayo13/scikit-learn-beginners-tutorials

5、Tensorflow

Tensorflow教程(tensorflow.org)

https://www.tensorflow.org/tutorials/

Tensorflow入門--CPU vs GPU

(medium.com/@erikhallstrm)

https://medium.com/@erikhallstrm/hello-world-tensorflow-649b15aed18c

Tensorflow入門(metaflow.fr)

https://blog.metaflow.fr/tensorflow-a-primer-4b3fa0978be3

Tensorflow實現RNNs (wildml.com)

http://www.wildml.com/2016/08/rnns-in-tensorflow-a-practical-guide-and-undocumented-features/

Tensorflow實現文本分類CNN模型(wildml.com)

http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/

如何用Tensorflow做文本摘要(surmenok.com)

http://pavel.surmenok.com/2016/10/15/how-to-run-text-summarization-with-tensorflow/

6、PyTorch

Pytorch教程(pytorch.org)

http://pytorch.org/tutorials/

Pytorch快手入門 (gaurav.im)

http://blog.gaurav.im/2017/04/24/a-gentle-intro-to-pytorch/

https://iamtrask.github.io/2017/01/15/pytorch-tutorial/

Pytorch實戰(github.com/jcjohnson)

https://github.com/jcjohnson/pytorch-examples

PyTorch 教程(github.com/MorvanZhou)

https://github.com/MorvanZhou/PyTorch-Tutorial

深度學習研究人員看的PyTorch教程(github.com/yunjey)

https://github.com/yunjey/pytorch-tutorial

數學

1、機器學習中的數學 (ucsc.edu)

https://people.ucsc.edu/~praman1/static/pub/math-for-ml.pdf

機器學習數學基礎(UMIACS CMSC422)

http://www.umiacs.umd.edu/~hal/courses/2013S_ML/math4ml.pdf

2、線性代數

線性代數簡明指南(betterexplained.com)

https://betterexplained.com/articles/linear-algebra-guide/

碼農眼中矩陣乘法 (betterexplained.com)

https://betterexplained.com/articles/matrix-multiplication/

理解叉乘運算(betterexplained.com)

https://betterexplained.com/articles/cross-product/

理解點乘運算(betterexplained.com)

https://betterexplained.com/articles/vector-calculus-understanding-the-dot-product/

機器學習中的線性代數(U. of Buffalo CSE574)

http://www.cedar.buffalo.edu/~srihari/CSE574/Chap1/LinearAlgebra.pdf

深度學習的線代小抄(medium.com)

https://medium.com/towards-data-science/linear-algebra-cheat-sheet-for-deep-learning-cd67aba4526c

複習線性代數與課後閱讀材料(Stanford CS229)

http://cs229.stanford.edu/section/cs229-linalg.pdf

3、概率論

貝葉斯理論 (betterexplained.com)

https://betterexplained.com/articles/understanding-bayes-theorem-with-ratios/

理解貝葉斯概率理論(Stanford CS229)

http://cs229.stanford.edu/section/cs229-prob.pdf

複習機器學習中的概率論(Stanford CS229)

https://see.stanford.edu/materials/aimlcs229/cs229-prob.pdf

概率論(U. of Buffalo CSE574)

http://www.cedar.buffalo.edu/~srihari/CSE574/Chap1/Probability-Theory.pdf

機器學習中的概率論(U. of Toronto CSC411)

http://www.cs.toronto.edu/~urtasun/courses/CSC411_Fall16/tutorial1.pdf

4、計算方法(Calculus)

如何理解導數:求導法則,指數和演算法(betterexplained.com)

https://betterexplained.com/articles/how-to-understand-derivatives-the-quotient-rule-exponents-and-logarithms/

如何理解導數,乘法,冪指數,鏈式法(betterexplained.com)

https://betterexplained.com/articles/derivatives-product-power-chain/

向量計算,理解梯度(betterexplained.com)

https://betterexplained.com/articles/vector-calculus-understanding-the-gradient/

微分計算(Stanford CS224n)

http://web.stanford.edu/class/cs224n/lecture_notes/cs224n-2017-review-differential-calculus.pdf

計算方法概論(readthedocs.io)

http://ml-cheatsheet.readthedocs.io/en/latest/calculus.html

為幫助對自然語言處理感興趣的同學快速高效入門,AI慕課學院特邀新加坡南洋理工大學博士玖強老師,為大家帶來《NLP工程師入門實踐班:基於深度學習的自然語言處理》,課程包含NLP三大知識模塊,演算法理論+案例實訓,搭配典型行業應用,層層遞進,直通自然語言處理的本質及其應用!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

如何在 Keras 中從零開始開發一個神經機器翻譯系統?

TAG:AI研習社 |