乾貨:最全面的深度學習自學資源匯總

2021-02-21 雷課

深度學習作為機器學習的一個分支,是近年來最熱門同時也是發展最快的人工智慧技術之一,相關學習資源包括免費公開教程和工具都極大豐富,同時這也為學習 深度學習技術 的IT人才帶來選擇上的困擾,Yerevann整理的這個深度學習完全指南 ,匯集了目前網絡上最優秀的深度學習自學資源,而且會不定期更新,非常值得收藏關注,以下是IT經理網編譯整理的指南內容:

自學基本要求(數學知識、編程知識)

數學知識:學員需要具備普通大學數學知識,例如 《Deep Learning》 一書中若干章節提到的數學概念:

Deep Learning第二章:線性代數

Deep Learning第三章:概率與信息理論

Deep Learning第四章:數值計算

編程知識:你需要懂得編程才能開發和測試深度學習模型,我們建議在機器學習領域首選Python。同時也要用到面向科學計算的NumPy/SciPy代碼庫。資源連結如下(本文出現的星標代表難度等級):

Justin Johnson’s Python / NumPy / SciPy / Matplotlib tutorial for Stanford’s CS231n ★

Scipy lecture notes – 涵蓋了常用的各種庫,介紹也比較詳細,還涉及一些深入的技術話題 ★★

四大入門教程

如果你具備以上自學基本要求技能,我們建議從以下四大入門在線教程中任選一項或多項組合學習(星標為難度等級):

Hugo Larochelle’s video course   這是YouTube上很火的一個深度學習視頻教程,錄製於2013年,但今天看內容並不過時,很詳細地闡釋了神經網絡背後的數學理論。  幻燈片和相關資料傳送門 . ★★

Stanford’s CS231n (應用於視覺識別的卷積神經網絡) 由已經投奔Google的李飛飛教授和 Andrej Karpathy、Justin Johnson共同執教的課程,重點介紹了圖像處理,同時也涵蓋了深度學習領域的大多數重要概念。  視頻 連結(2016) 、  講義傳送門 ★★

Michael Nielsen的在線著作: Neural networks and deep learning 是目前學習神經網絡  最容易的教材 ,雖然該書並未涵蓋所有重要議題,但是包含大量簡明易懂的闡釋,同時還為一些基礎概念提供了實現代碼。★

Ian Goodfellow、Yoshua Bengio and Aaron Courville共同編著的 Deep learning 是目前深度學習領域  最全面的教程 資源,比其他課程涵蓋的範圍都要廣。 ★★★

機器學習基礎

機器學習是通過數據教計算機做事的科學,同時也是一門藝術,機器學習是計算機科學和數學交匯的一個相對成熟的領域,深度學習只是其中新興的一小部分,因此,了解機器學習的概念和工具對我們學好深度學習非常重要。以下是機器學習的一些重要學習資源(以下課程介紹部分內容不再翻譯):

Visual introduction to machine learning – decision trees ★

Andrew Ng’s course on machine learning , the most popular course on Coursera ★★

Larochelle’s course doesn’t have separate introductory lectures for general machine learning, but all required concepts are defined and explained whenever needed.

1. Training and testing the models (kNN) ★★

2. Linear classification (SVM) ★★

3. Optimization (stochastic gradient descent) ★★

5. Machine learning basics ★★★

Principal Component Analysis explained visually ★

How to Use t-SNE Effectively ★★

機器學習的編程學習資料:大多數流行機器學習算法都部署在Scikit-learn 這個Python庫中,從頭部署算法能夠幫我們更好地了解機器學習的工作原理,以下是相關學習資源:

Practical Machine Learning Tutorial with Python covers linear regression, k-nearest-neighbors and support vector machines. First it shows how to use them from scikit-learn, then implements the algorithms from scratch. ★

Andrew Ng’s course on Coursera has many assignments in Octave language. The same algorithms can be implemented in Python. ★★

神經網絡基礎

神經網絡是強大的機器學習算法,同時也是深度學習的基礎:

A Visual and Interactive Guide to the Basics of Neural Networks – shows how simple neural networks can do linear regression ★

1. Feedforward neural network ★★

2. Training neural networks (up to 2.7) ★★

4. Backpropagation ★★

5. Architecture of neural networks ★★

1. Using neural nets to recognize handwritten digits ★

2. How the backpropagation algorithm works ★

4. A visual proof that neural nets can compute any function ★

6. Deep feedforward networks ★★★

Yes you should understand backprop explains why it is important to implement backpropagation once from scratch ★★

Calculus on computational graphs: backpropagation ★★

Play with neural networks! ★

神經網絡實操教程

Implementing softmax classifier and a simple neural network in pure Python/NumPy – Jupyter notebook available ★

Andrej Karpathy implements backpropagation in Javascript in his Hacker’s guide to Neural Networks . ★

Implementing a neural network from scratch in Python ★

改進神經網絡學習

神經網絡的訓練可不容易,很多時候機器壓根不會學習(underfitting),有時候又「死學」,照本宣科你輸入的知識,無法總結歸納出新的數據(overfitting),解決上述問題的方法有很多,如下是

推薦教程:

2.8-2.11. Regularization, parameter initialization etc. ★★

7.5. Dropout ★★

6 (first half). Setting up the data and loss ★★

3. Improving the way neural networks learn ★

5. Why are deep neural networks hard to train? ★

7. Regularization for deep learning ★★★

8. Optimization for training deep models ★★★

11. Practical methodology ★★★

ConvNetJS Trainer demo on MNIST – visualizes the performance of different optimization algorithms ★

An overview of gradient descent optimization algorithms ★★★

Neural Networks, Manifolds, and Topology ★★★

常用的主流框架

目前很多 深度學習算法 都對最新的計算機硬體進行了優化,大多數框架也提供Python接口(Torch除外,需要Lua)。當你了解基本的深度學習算法的部署後,是時候選擇一個框架開工了(這部分還可CTOCIO文章:  2016年人氣最高的六款開源深度學習工具 ):

Theano provides low-level primitives for constructing all kinds of neural networks. It is maintained by  a machine learning group at University of Montreal . See also:  Speeding up your neural network with Theano and the GPU – Jupyter notebook available ★

TensorFlow is another low-level framework. Its architecture is similar to Theano. It is maintained by the Google Brain team.

Torch is a popular framework that uses Lua language. The main disadvantage is that Lua’s community is not as large as Python’s. Torch is mostly maintained by Facebook and Twitter.

There are also higher-level frameworks that run on top of these:

Lasagne is a higher level framework built on top of Theano. It provides simple functions to create large networks with few lines of code.

Keras is a higher level framework that works on top of either Theano or TensorFlow.

如果你有框架選擇困難症,可以參考斯坦福課程 Lecture 12 of Stanford’s CS231n . ★★

卷積神經網絡

卷積神經網絡Convolutional networks (CNNs),是一種特定的神經網絡,通過一些聰明的方法大大提高了學習速度和質量。卷積神經網絡掀起了計算機視覺的革命,並廣泛應用於語音識別和文本歸類等領域,以下是

推薦教程:

9. Computer vision (up to 9.9) ★★

6 (second half). Intro to ConvNets ★★

7. Convolutional neural networks ★★

8. Localization and detection ★★

9. Visualization, Deep dream, Neural style, Adversarial examples ★★

13. Image segmentation (up to 38:00) includes upconvolutions ★★

6. Deep learning ★

9. Convolutional networks ★★★

Image Kernels explained visually – shows how convolutional filters (also known as image kernels) transform the image ★

ConvNetJS MNIST demo – live visualization of a convolutional network right in the browser ★

Conv Nets: A Modular Perspective ★★

Understanding Convolutions ★★★

Understanding Convolutional neural networks for NLP ★★

卷積神經網絡框架部署和應用

所有重要的框架都支持卷積神經網絡的部署,通常使用高級函數庫編寫的代碼的可讀性要更好一些。

Theano: Convolutional Neural Networks (LeNet) ★★

Using Lasagne for training Deep Neural Networks ★

Detecting diabetic retinopathy in eye images – a blog post by one of the best performers of Diabetic retinopathy detection contest in Kaggle. Includes a good example of data augmentation. ★★

Face recognition for right whales using deep learning – the authors used different ConvNets for localization and classification.  Code and models are available . ★★

Tensorflow: Convolutional neural networks for image classification on CIFAR-10 dataset ★★

Implementing a CNN for text classification in Tensorflow ★★

DeepDream implementation in TensorFlow ★★★

92.45% on CIFAR-10 in Torch – implements famous VGGNet network with batch normalization layers in Torch ★

Training and investigating Residual Nets – Residual networks perform very well on image classification tasks. Two researchers from Facebook and CornellTech implemented these networks in Torch ★★★

ConvNets in practice – lots of practical tips on using convolutional networks including data augmentation, transfer learning, fast implementations of convolution operation ★★

遞歸神經網絡

遞歸神經網絡Recurrent entworks(RNNs)被設計用來處理序列數據(例如文本、股票、基因組、傳感器等)相關問題,通常應用於語句分類(例如情感分析)和語音識別,也適用於文本生成甚至圖像生成。

教程如下:

The Unreasonable Effectiveness of Recurrent Neural Networks – describes how RNNs can generate text, math papers and C++ code ★

Hugo Larochelle’s course doesn’t cover recurrent neural networks (although it covers many topics that RNNs are used for). We suggest watching Recurrent Neural Nets and LSTMs by Nando de Freitas to fill the gap ★★

10. Recurrent Neural Networks, Image Captioning, LSTM ★★

13. Soft attention (starting at 38:00) ★★

Michael Nielsen’s book stops at convolutional networks. In the Other approaches to deep neural nets section there is just a brief review of simple recurrent networks and LSTMs. ★

10. Sequence Modeling: Recurrent and Recursive Nets ★★★

Recurrent neural networks from Stanford’s CS224d (2016) by Richard Socher ★★

Understanding LSTM Networks ★★

遞歸神經網絡的框架部署與應用

Theano: Recurrent Neural Networks with Word Embeddings ★★★

Theano: LSTM Networks for Sentiment Analysis ★★★

Implementing a RNN with Python, Numpy and Theano ★★

Lasagne implementation of Karpathy’s char-rnn ★

Combining CNN and RNN for spoken language identification in Lasagne ★

Automatic transliteration with LSTM using Lasagne ★

Tensorflow: Recurrent Neural Networks for language modeling ★★

Recurrent Neural Networks in Tensorflow ★★

Understanding and Implementing Deepmind’s DRAW Model ★★★

LSTM implementation explained ★★

Torch implementation of Karpathy’s char-rnn ★★★

Autoencoders

Autoencoder是為非監督式學習設計的神經網絡,例如當數據沒有標記的情況。Autoencoder可以用來進行數據維度消減,以及為其他神經網絡進行預訓練,以及數據生成等。以下課程資源中,我們還收錄了Autoencoder與概率圖模型整合的一個autoencoders的變種,其背後的數學機理在下一章「概率圖模型」中會介紹。

推薦教程:

6. Autoencoder ★★

7.6. Deep autoencoder ★★

14. Videos and unsupervised learning (from 32:29) – this video also touches an exciting topic of generative adversarial networks. ★★

14. Autoencoders ★★★

ConvNetJS Denoising Autoencoder demo ★

Karol Gregor on Variational Autoencoders and Image Generation ★★

Autoencoder的部署

大多數autoencoders都非常容易部署,但我們還是建議您從簡單的開始嘗試。課程資源如下:

Theano: Denoising autoencoders ★★

Diving Into TensorFlow With Stacked Autoencoders ★★

Variational Autoencoder in TensorFlow ★★

Training Autoencoders on ImageNet Using Torch 7 ★★

Building autoencoders in Keras ★

概率圖模型

概率圖模型(Probabilistic Graphical model,PGM)是統計學和機器學習交叉分支領域,關於概率圖模型的書籍和課程非常多,以下我們收錄的資源重點關注概率圖模型在深度學習場景中的應用。其中Hugo Larochelles的課程介紹了一些非常著名的模型,而Deep Learning一書有整整四個章節專門介紹,並在最後一章介紹了十幾個模型。本領域的學習需要讀者掌握大量數學知識:

3. Conditional Random Fields ★★★

4. Training CRFs ★★★

5. Restricted Boltzman machine ★★★

7.7-7.9. Deep Belief Networks ★★★

9.10. Convolutional RBM ★★★

13. Linear Factor Models – first steps towards probabilistic models ★★★

16. Structured Probabilistic Models for Deep Learning ★★★

17. Monte Carlo Methods ★★★

18. Confronting the Partition Function ★★★

19. Approximate Inference ★★★

20. Deep Generative Models – includes Boltzmann machines (RBM, DBN, …), variational autoencoders, generative adversarial networks, autoregressive models etc. ★★★

Generative models – a blog post on variational autoencoders, generative adversarial networks and their improvements by OpenAI. ★★★

The Neural Network Zoo attempts to organize lots of architectures using a single scheme. ★★

概率圖模型的部署

高級框架(Lasagne、Keras)不支持概率圖模型的部署,但是Theano、Tensorflow和Torch有很多可用的代碼。

Restricted Boltzmann Machines in Theano ★★★

Deep Belief Networks in Theano ★★★

Generating Large Images from Latent Vectors – uses a combination of variational autoencoders and generative adversarial networks. ★★★

Image Completion with Deep Learning in TensorFlow – another application of generative adversarial networks. ★★★

Generating Faces with Torch – Torch implementation of Generative Adversarial Networks ★★

精華論文、視頻與論壇匯總

Deep learning papers reading roadmap 深度學習重要論文的大清單。

Arxiv Sanity Preserver 為瀏覽 arXiv上的論文提供了一個漂亮的界面.

Videolectures.net 含有大量關於深度學習的高級議題視頻

/r/MachineLearning 一個非常活躍的Reddit分支. 幾乎所有重要的新論文這裡都有討論。

相關焦點

  • 目前最全面的深度學習教程自學資源匯總
    ,是近年來最熱門同時也是發展最快的人工智慧技術之一,相關學習資源包括免費公開教程和工具都極大豐富,同時這也為學習深度學習技術的IT人才帶來選擇上的困擾,Yerevann整理的這個深度學習完全指南,匯集了目前網絡上最優秀的深度學習自學資源,而且會不定期更新,非常值得收藏關注,以下是IT經理網編譯整理的指南內容: 自學基本要求(數學知識、編程知識)
  • 【入門必備】史上最全的深度學習資源匯總,速藏!
    TensorFlow乾貨文章,今天,收福利的機會又來了,本篇文章將針對深度學習資源進行一下匯總,歡迎轉發、點讚、收藏。此外,深度學習的分層處理的思想也大大提高了模型的泛化能力。深度學習發展到今天,大致分為以下一些比較流行的網絡結構:深度神經網絡(DNN)、卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)等。應用最廣的幾個研究領域分別是自然語言處理、語音識別和圖像處理。出現了Tensorflow、Keras、Caffe、Torch等技術框架。
  • 資源分享 | 梵文網絡學習資源匯總
    本文旨在給對梵語學習感興趣的朋友們提供一些有用且無(低)成本的學習資源。梵語自學難度較高,尤其到後期接觸Sandhi轉寫時最好可以有專業人士指導,但早期基本詞語詞法尚可通過自學完成。本文所列舉資源絕大部分只能對梵語學習起到輔助作用,對最難的句間語法少有涉及,在學習時務必購買一本優質完整的教材(文章最後部分有教材推薦)。
  • 乾貨!機器學習&深度學習經典資料匯總(續)
    Online learning,GPU Random forest,GPU CRF也會後續公開。《Hacker’s guide to Neural Networks》介紹:【神經網絡黑客指南】現在,最火莫過於深度學習(Deep Learning),怎樣更好學習它?
  • 深度學習全網最全學習資料匯總之入門篇
    面對如此重要的江湖地位,我們相信一定有為數眾多的 AI 開發者對深度學習技術充滿了好奇心,想要快速著手使用這項強大的技術來解決現實生活中的實際問題。因此,雷鋒網(公眾號:雷鋒網)將圍繞深度學習技術整理一個系列文章,全面覆蓋與其相關的各項知識點。本文針對如何入門深度學習這一話題,整理了若干參考資料,希望對廣大開發者有所裨益。
  • 資源|李宏毅中文《機器學習/深度學習》2019上線(附ppt及視頻分享)
    吳恩達、李飛飛等大牛的機器學習、深度學習公開課都乾貨滿滿,惠及很多學者。但是很遺憾的是他們的課程都是英文的,對於中文較差些的學生很不友好,而另外一位臺灣大學(NTU)的博士李宏毅則也是幽默風趣,在課程中加入二次元的元素,最重要的是中文授課,可以說非常適合我們入門或者重溫機器學習/深度學習的知識,我們也將這門課程推薦給大家~一、作者介紹:李宏毅(Hung-yi Lee)目前任臺灣大學電機工程學系和電機資訊學院的助理教授
  • 資源|Stanford NLP組2019最新NLP與深度學習-CS224n課程分享
    ,第一時間送達一、資源簡介斯坦福自然語言處理小組2019年的最新課程《CS224n: NLP與深度學習》春季課程已經全部結束了,課程內容囊括了深度學習在各項NLP任務中應用的最新技術,非常值得一看。自然語言處理( NLP )是資訊時代最重要的技術之一,也是人工智慧的重要組成部分。NLP的應用無處不在,因為人們幾乎用語言交流一切:網絡搜索、廣告、電子郵件、客戶服務、語言翻譯、醫療報告等。
  • 翻譯學習 | Trados與MemoQ自學資源大合集
    假期已至,學習不停。今天豆丁想跟大家分享的是假期充電神器——Trados和MemoQ兩大計算機輔助翻譯(CAT)工具的寶藏自學教程。下面推薦的幾個自學教程是我在複習翻譯技術工具的時候淘到的,它們的都有三個特點:易懂、完整、免費。有了它們的幫助,利用假期自學速成CAT工具完全不是夢。
  • 資源連結|深度學習教程資源整理(伯克利、斯坦福、MIT、阿里、吳恩達)
    dl=0 獻給新手的深度學習綜述https://arxiv.org/pdf/1807.08169v1.pdf深度學習是機器學習和人工智慧研究的最新趨勢之一。它也是當今最流行的科學研究趨勢之一。深度學習方法為計算機視覺和機器學習帶來了革命性的進步。
  • 資源推薦|機器學習與深度學習視頻和書籍資源拿去!
    (Machine Learning)授課:Georgia Techhttps://www.udacity.com/course/machine-learning--ud262Udacity — 深度學習(Deep Learning)授課:Vincent Vanhoucke
  • 【乾貨】史上最全的PyTorch學習資源匯總
    資源整理自網絡,原文地址:https://github.com/INTERMT/Awesome-PyTorch-Chinese目錄            · PyTorch學習教程、手冊            · PyTorch視頻教程
  • 資源 | 300頁Python深度學習pdf-中文版
    又一本中文版的書籍來了,之前的那本沒領的可以點擊下面這個連結:乾貨|520頁中文版《動手學深度學習》視頻+pdf+github獲取。這次免費給大家的pdf是Deep Learning with Python,中文就是Python深度學習。挺全面的,就300頁左右,說多不多,列印出來也就10+塊。
  • 語法乾貨最全面匯總:不定代詞篇
    >one/ones/it/that/each/everyfew/a few/little/a little/many/much: 我的語法速記專欄裡有關於這些詞的巧記方法,大家記得關注我然後找到對應視頻學習
  • 乾貨分享 | 機器學習、深度學習、nlp、cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 這裡有一份最新的AI學習資源匯總,你收藏了嗎
    如今,作為一名AI算法工程師,我們生活在一個幸福的時代,我們可以很方便地學習世界名校的公開課程,閱讀各種經典的書籍。本文匯總了一份最新的AI學習資源,關注公眾號「AI工程師成長之路」,回復「AI資源匯總」進行領取。以下是相關AI學習資源的詳細介紹。一.
  • 新手必備 | 史上最全的PyTorch學習資源匯總
    【磐創AI導讀】之前的文章中,我們總結了適合新手快速入門的Tensorflow學習資源匯總,今天我們將為大家介紹另一個深度學習框架
  • B站最強學習資源匯總(Python,數據科學,機器學習)
    ,並檢查它們的收斂程度;理解深度學習時代關於如何構建訓練/開發/測試集以及偏差/方差分析最新最有效的方法;能夠用TensorFlow實現一個神經網絡。課程內容基本上是以代碼編程為主,也會有少量的深度學習理論內容。課程會從Tensorflow最基礎的圖(graphs),會話(session),張量(tensor),變量(Variable)等一些最基礎的知識開始講起,逐步講到Tensorflow的基礎使用,以及在Tensorflow中CNN和LSTM的使用。
  • 乾貨|給妹紙的深度學習教學(3)——用VGG19開荒
    妹紙:對了,你那邊有比較系統的深度學習和機器學習的資料嗎,我舍友也想要。花花:(懵逼。。)額,好像是有,那我晚點整理一下吧。遂,花花整理之:寫在前面,以下部分網站需要「翻牆」後食用,不在國內所以也不知道究竟被牆多少。
  • 乾貨滿滿:5本必看深度學習書籍!
    《深度學習》(Deep Learning) 推薦的第一本書是Ian Goodfellow所著的《深度學習》(Deep Learning)。沒有哪個盤點深度學習的書單能夠繞開這本書,畢竟它是Google Brain和OpenAI上的傑出研究成果。已經有一部分人將其視為指導深度學習的聖經,因為它是現存唯一囊括幾十年研究成果的巨著。
  • 從Zero到Hero,OpenAI重磅發布深度強化學習資源
    OpenAI 相信深度學習——特別是深度強化學習——將在強大是 AI 技術發展中發揮核心作用。雖然有很多資源可以讓人們快速了解深度學習,但深度強化學習更具挑戰性。根據這一部分的內容,至少我們會對強化學習有一個清晰的認識,也就正式從小白到入門了。簡介後面的資源章節才是進階者的最愛,OpenAI 會先介紹如何才能做好強化學習研究,包括需要怎樣的背景知識、如何寫 RL 代碼及思考強化學習問題等。當然這一部分還提供了非常多的「硬資源」,OpenAI 按照 12 大研究主題提供了 98 篇「必讀」論文,並提供了其它一些練習題與挑戰賽。