Menu

不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之,學至於行之而止矣。
── 《荀子.儒效》

這段話翻成白話文就是「沒聽過比不上聽過;聽過比不上實際看過;看過則比不上實際了解;而了解又不如動手實踐。唯有身體力行才能真正地學到東西。」

這句古老的諺語向我們傳達了「實踐」的重要以及學習的幾個過程。

做為一門學問,深度學習也是同樣道理。 僅說自己對深度學習有興趣或是有關注(聞、見),但卻沒有實際花時間去深入了解或實際應用(知、行)是無法真正學會深度學習的。


雖說如此,不了解深度學習能拿來做什麼的人或許還不少。

我嘗試將自己在學習過程中蒐集到的重要資源由淺入深地做些整理。 希望透過此文,能讓在各個學習階段的你都能從這裡獲得些什麼,並實際動手學習、探索發展快速的深度學習世界。

本文內容會持續被更新,你可以定期回來看看或是關注這個 Github Repo


這裡紀錄了我在學習深度學習時蒐集的一些線上資源。內容由淺入深,而且會不斷更新,希望能幫助你順利地開始學習:)

本文章節

遊玩空間

這節列舉了一些透過瀏覽器就能馬上開始遊玩 / 體驗深度學習的應用。作為這些應用的使用者,你可以先高層次、直觀地了解深度學習能做些什麼。之後有興趣再進一步了解背後原理。

這小節最適合:

Deep Playground ConvNetJS

Deep Playground

ConvNetJS

Magenta Google AI Experiments

Magenta

  • 一個利用機器學習來協助人們進行音樂以及藝術創作的開源專案
  • 可以在網站上的 Demo 頁面嘗試各種由深度學習驅動的音樂 / 繪畫應用(如彈奏鋼琴、擊鼓)

Google AI Experiments

  • 這邊展示了接近 40 個利用圖片、語言以及音樂來與使用者產生互動的機器學習 Apps,值得慢慢探索
  • 知名例子有 Quick Draw 以及 Teachable Machine,將在下方介紹
Quick Draw Teachable Machine

Quick Draw

  • 由 Google 推出的知名手寫塗鴉辨識,使用的神經網路架構有常見的卷積神經網路 CNN 以及循環神經網路 RNN
  • 該深度學習模型會不斷將最新的筆觸當作輸入來預測使用者想畫的物件。你會驚嘆於她精準且即時的判斷

Teachable Machine

  • 利用電腦 / 手機上的相機來訓練能將影像對應到其他圖片、音訊的神經網路,饒富趣味
  • 透過這例子,你將暸解機器學習的神奇之處以及其侷限所在
Fast Neural Style TensorFlow.js

Fast Neural Style

TensorFlow.js

  • TensorFlow.js 頁面有多個利用 JavaScript 實現的深度學習應用,如上圖中的人類姿勢估計 Human Pose Estimation
  • 你可以在該應用裡頭打開自己的攝影機,看該應用能不能偵測到你與朋友的姿勢。
GAN Lab Talk to Transformer

GAN Lab

Talk to Transformer

NVIDIA AI PLAYGROUND Grover

NVIDIA AI PLAYGROUND

  • 提供 GauGAN 的線上展示,讓你可以利用簡單的筆觸來生成真實世界的風景圖片,也能上傳自己的圖片做風格轉換
  • 提供 Image Impainting 服務,讓使用者自由抹去部分圖片並讓 AI 自動生成被抹去的區塊

Grover

  • 一個偵測 / 生成神經假新聞(Neural Fake News)的研究,其網頁展示如何自動生成假新聞。

線上課程

看完遊玩空間的大量實際應用,相信你已經迫不及待地想要開始學習強大的深度學習技術了。

這節列舉了一些有用的線上課程以及學習教材,幫助你掌握深度學習的基本知識(沒有特別註明的話皆為免費存取)。

另外值得一提的是,大部分課程都要求一定程度的 Python 程式能力。

李宏毅教授的機器學習 / 深度學習課程 Deep Learning Specialization @ Coursera

李宏毅教授的機器學習 / 深度學習課程

  • 大概是全世界最好、最完整的 Deep Learning 中文學習資源。
  • 影片內容涵蓋基本理論(約 10 小時觀看時間)一直到進階的生成對抗網路 GAN 以及強化學習 RL
  • 你也可以從這邊看到教授的 Youtube 課程清單

Deep Learning Specialization @ Coursera

  • 原 Google Brain 的吳恩達教授開授的整個深度學習專項課程共分五堂課,從神經網路的基礎到能夠進行機器翻譯、語音辨識的序列模型,每堂課預計 1 個月完成,收費採訂閱制
  • 程式作業會交互使用 NumpyKeras 以及 TensorFlow 來實作深度學習模型
Practical Deep Learning For Coders @ fast.ai Deep Learning @ Kaggle Learn

Practical Deep Learning For Coders @ fast.ai

  • 7 週課程,一週約需安排 10 小時上課。該課程由傑里米·霍華德來講解深度學習,其在知名數據建模和數據分析競賽平台 Kaggle 維持兩年的世界第一

Deep Learning @ Kaggle Learn

Elements of Artificial Intelligence MIT Deep Learning

Elements of Artificial Intelligence

  • 芬蘭最高學府赫爾辛基大學推出的 AI 課程。此課程目的在於讓所有人都能了解 AI,不需要任何程式經驗。這堂課非常適合完全沒有接觸過深度學習或是相關領域的人
  • 課程分 6 個部分,包含「何謂 AI ?」、「真實世界的 AI」、「機器學習」以及「神經網路」等章節

MIT Deep Learning

  • 麻省理工學院推出的深度學習課程,內容包含深度學習基礎、深度強化學習以及自動駕駛相關知識。Github Repo 包含了多個教學筆記本,值得參考
  • 上圖是 DeepTraffic,由 MIT 的研究科學家 Lex Fridman 推出的一個深度強化學習競賽。此競賽目標是建立一個可以在高速公路上駕駛汽車的神經網路。你可以在這裡看到線上 Demo 以及詳細說明
6.S191: Introduction to Deep Learning AI For Everyone

6.S191: Introduction to Deep Learning

  • 麻省理工學院推出的另一堂基礎深度學習課程,介紹深度學習以及其應用。內容涵蓋機器翻譯、圖像辨識以及更多其他應用。此課程使用 Python 以及 TensorFlow 來實作作業,並預期學生具備基礎的微積分(梯度 & Chain Rule)以及線性代數(矩陣相乘)

AI For Everyone

  • Coursera 課程。吳恩達教授在這堂簡短的課程裡頭,針對非技術人士以及企業經理人說明何謂 AI、如何建立 AI 專案以及闡述 AI 與社會的關係。此課程十分適合沒有技術背景的讀者。從 AI For Everyone 學到的 10 個重要 AI 概念則是我個人上完課後整理的心得分享。
CS224n: Natural Language Processing with Deep Learning To Be Updated

CS224n: Natural Language Processing with Deep Learning

實用工具

這節列出一些在你的深度學習路上可以幫得上些忙的工具。

Colaboratory TensorBoard

Colaboratory

  • 由 Google 提供的雲端 Jupyter 筆記本環境,讓你只要用瀏覽器就能馬上開始訓練深度學習模型。你甚至還可以使用一個免費的 Tesla K80 GPU 或 TPU 來加速訓練自己的模型
  • 該計算環境也能與自己的 Google Drive 做連結,讓運算雲端化的同時將筆記本 / 模型結果都同步到自己的筆電上

TensorBoard

  • TensorBoard 是一個視覺化工具,方便我們了解、除錯並最佳化自己訓練的深度學習模型
  • 除了 TensorFlow 以外,其他基於 Python 的機器學習框架大多也可以透過 tensorboardX 來使用 TensorBoard
Embedding Projector Lucid

Embedding Projector

Lucid

  • Lucid 是一個嘗試讓神經網路變得更容易解釋的開源專案,裡頭包含了很多視覺化神經網路的筆記本
  • 你可以直接在 Colab 上執行這些筆記本並了解如何視覺化神經網路
Papers with Code What-If Tool

Papers with Code

  • 將機器學習的學術論文、程式碼實作以及 SOTA 的評價排行榜全部整理匯總在一起的網站,非常適合想要持續追蹤學術及業界最新研究趨勢的人
  • 在這邊可以瀏覽包含電腦視覺、自然語言處理等各大領域在不同任務上表現最好的論文、實作以及資料集

What-If Tool

  • 一個與 TensorBoard 以及 Jupyter Notebook 整合的探索工具,讓使用者不需寫程式碼就能輕鬆觀察機器學習模型的內部運作以及嘗試各種 What-if 問題(如果 ~ 會怎麼樣?)
  • 基本上就是用來觀察已訓練的模型在測試資料集上的表現。利用此工具,使用者可以了解(不僅限於)以下的問題:模型在各類別數據上的表現有無差距?模型是否存在偏見?應該如何調整 Native / Positive False 的比例?
  • 此工具的一大亮點在於讓非專業領域人士也能探索、理解 ML 模型表現。且只要給定模型與資料集, 就不需要每次為了 What-if 問題就寫用過即丟的程式碼

其他教材

除了線上課程以外,網路上還有無數的學習資源。

這邊列出一些推薦的深度學習教材,大多數皆以數據科學家常用的 Jupyter 筆記本的方式呈現。

你可以將感興趣的筆記本導入實用工具裡提到的 Colaboratory(Colab),馬上開始學習。

Seedbank Deep Learning with Python

Seedbank

  • 讓你可以一覽 Colab 上超過 100 個跟機器學習相關的筆記本,並以此為基礎建立各種深度學習應用
  • 熱門筆記本包含神經機器翻譯音樂生成以及 DeepDream
  • 因為是 Google 服務,筆記本大多使用 TensorFlow 與 Keras 來實現模型

Deep Learning with Python

Stanford CS230 Cheatsheets practicalAI

Stanford CS230 Cheatsheets

practicalAI

  • 在 Github 上超過 1 萬星的 Repo。除了深度學習,也有介紹 Python 基礎Pandas 的使用方式
  • 使用 Pytorch 框架來實現深度學習模型,且所有內容都是 Jupyter 筆記本,可以讓你在 Colab 或本地端執行
AllenNLP Demo To Be Updated

AllenNLP Demo

  • 清楚地展示了如機器理解命名實體識別等多個自然語言處理任務的情境。每個任務的情境包含了任務所需要的輸入、SOTA 模型的預測結果以及模型內部的注意力機制,對理解一個 NLP 任務的實際應用情境有很大幫助
  • AllenNLP 是一個由 AI2PyTorch 實現的自然語言處理函式庫

優質文章

這邊列舉了一些幫助我釐清重要概念的部落格以及網站,希望能加速你探索這個深度學習世界。

只要 Google 一下就能發現這些部落格裡頭很多文章都有中文翻譯。但為了尊重原作者,在這邊都列出原文連結。

經典論文

這邊依發表時間列出深度學習領域的經典 / 重要論文。

為了幫助你快速掌握論文內容以及歷年的研究趨勢,每篇論文下會有非常簡短的介紹(WIP)。

但我們推薦有興趣的人自行閱讀論文以深入了解。

自然語言處理 Natural Language Processing (NLP)

電腦視覺 Computer Vision (CV)

類神經網路架構 Neural Network Architecture

資料集 Dataset

物體偵測與切割 Object Detection and Segmentation

生成模型 Generative Models

其他整理

這邊列出其他優質的資源整理網站 / Github Repo,供你繼續探索深度學習。

deep-learning-ocean

  • 整理了不少深度學習資源,但最值得參考的是數據集以及論文的分類整理。

待辦事項

還有不少內容正在整理,以下是目前我們打算增加的一些項目:

  • 深度學習中英術語對照表
  • 值得追蹤的業界 / 學界影響人物清單
  • 無圖的資源列表版本
  • 一些 Jupyter Notebook 範例

而我們也會持續將新資源加入如實用工具優質文章等列表裡頭。

如何貢獻

非常歡迎你一起加入改善這個 Repo,讓更多人有方向地學習 Deep Learning:)

如果你有

  • 其他值得推薦的深度學習資源
  • 針對此 Repo 內容的改善建議
  • 其他任何你想得到的東西

都歡迎你提出新的 Issue 來讓我們知道。

如果是想增加新資源的話,只附上連結也是沒有問題的,謝謝!


最後,如果你覺得本文實用,還請幫我分享此文並給 Github Repo 一個小星星。 這樣可以讓更多人注意到這些寶貴資源的存在並開始有方向的學習,謝謝!

有再多資源,沒有親自動手做都是無法真正地學到東西的。因此,最後的最後讓我再次強調主動學習的重要:

告訴我資訊,我只會忘記;教導我知識,我會記得;讓我實際參與,我將能真正地學到東西。
── 班傑明·富蘭克林

所以,現在就開始學習吧!

跟資料科學相關的最新文章直接送到家。
只要加入訂閱名單,當新文章出爐時,
你將能馬上收到通知