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)的研究,其網頁展示如何自動生成假新聞。

Waifu Vending Machine This Waifu Does Not Exist

Waifu Vending Machine

  • Waifu 來自日文 ワイフ,指的是一些非常受到歡迎、且被不少玩家/觀眾視為妻子的動漫女性角色。Sizigi Studios 團隊利用 GAN 隨機初始 16 名虛擬動漫角色,讓使用者可以進一步依照喜愛來創造專屬於自己的 Waifu。
  • Waifu Vending Machine 產生的 Waifu 品質很高,使用者可以下載並分享自己創造的 Waifu,也可以選擇購買印製該 Waifu 的海報與抱枕。

This Waifu Does Not Exist

  • 以 Nvidia 的 StyleGAN 隨機生成的 Waifu(右圖左側)。作者 Gwern 同時也使用開源的小型 GPT-2 隨機生成一段動漫劇情(右圖右側)。自釋出後已超越一百萬使用者拜訪該網站。
  • 你也可以用大螢幕查看作者的另個相關網站:These Waifus Do Not Exist,用全畫面一次「觀賞」數十名隨機生成的 Waifus。

AI Notes Anomagram

AI Notes

Anomagram

  • Anomagram 是一個以 Tensorflow.js 實作,可以建立、訓練並測試能夠用來做異常檢測的 Autoencoder。

線上課程

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

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

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

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

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

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

MIT 6.S191 Introduction to Deep Learning

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

AI For Everyone

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

CS224n: Natural Language Processing with Deep Learning CS231n: Convolutional Neural Networks for Visual Recognition

CS224n: Natural Language Processing with Deep Learning

CS231n: Convolutional Neural Networks for Visual Recognition


Making Friends with Machine Learning To be Updated

Making Friends with Machine Learning

  • MFML 是一門對 Google 內部開授的 ML/AI 訓練課程,由其 Chief Decision Scientist Cassie Kozyrkov 主講。此課程於 2021/11/25 對外開放
  • 此課程提供從構思 ML 專案到 launch AI 產品的步驟與大局觀,十分適合剛接觸相關領域的產品經理與企業決策者入門。

實用工具

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

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 問題就寫用過即丟的程式碼

BertViz ML Visuals

BertViz

ML Visuals

  • ML Visuals 是一個社群開源項目,提供超過 100 個常見的機器學習概念 / 深度學習架構圖,可讓任何人在學術論文或是文章直接使用這些圖表。
  • 所有圖表都可以直接從 Google slide 上觀看並使用。建議前往 Github repo 查看最新版本。

其他教材

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

這邊列出一些推薦的深度學習教材,大多數皆以數據科學家常用的 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 Hands-on Machine Learning 2

AllenNLP Demo

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

Hands-on Machine Learning 2

  • 前 YouTube 影片分類 PM Aurélien Geron 教你如何透過 Scikit-Learn、Keras 以及 TensorFlow 2 來進行機器學習以及深度學習任務與應用的筆記本彙整。
  • 第二版專注在 TensorFlow 2,其 Github repo 已有超過 6 千顆星,第一版則有高達 2 萬星。

優質文章

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

只要 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 一個小星星。 這樣可以讓更多人注意到這些寶貴資源的存在並開始有方向的學習,謝謝!

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

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

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

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