fbpx

深度學習 : 以 Python 實踐卷積神經網路( CNN )

Contents

在 Theano 和 TensorFlow 中將電腦視覺和資料科學與機器學習相結合!

從這 7.5 小時的課程,你會學到

  • 理解卷積( convolution )
  • 理解卷積如何應用於音效( audio effects )
  • 理解卷積如何應用於圖像效果( image effects )
  • 寫程式實現高斯( Gaussian )模糊和邊緣檢測
  • 寫程式實現簡單的迴聲效果( echo effect )
  • 理解卷積如何幫助圖像分類
  • 理解並解釋卷積神經網路(CNN)的體系結構
  • 在 Theano 中實現卷積神經網路( convolutional neural network )
  • 在 TensorFlow 中實現卷積神經網路( convolutional neural network )

要求

課程說明

這是我關於 Python 深度學習的資料科學和機器學習系列的第三部分。此時,你已經了解了許多關於神經網路和深度學習的知識,包括不僅僅是反向傳播等基礎知識,還包括如何使用動量和自適應學習率等現代技術來改進它。你已經在 Theano 和 TensorFlow 中編寫了深度神經網路,並且你知道如何使用 GPU 運行程式碼。

本課程全部是關於如何使用卷積神經網路( Convolutional Neural Networks,CNN )電腦視覺進行深度學習。當涉及圖像分類時,這些都是最先進的技術,並且他們擊敗了像 MNIST 這樣的任務的簡單深度網路。

在本課程中,我們將討論賭注並觀察 StreetView House Number(SVHN)資料集 – 該資料集以各種角度使用較大的彩色圖像 – 因此計算和分類任務的難度都會變得更加嚴峻。但是我們會證明卷積神經網路 ( CNN ) 能夠應對挑戰!

因為卷積是這類神經網路的核心部分,所以我們將深入討論這個話題。它具有比你想像的更多的應用,比如模擬人造器官如胰腺和心臟。我將向你展示如何建構可應用於音頻的捲積濾波器,如迴聲效果,並且我將向你展示如何為圖像效果構建濾波器,如高斯模糊和邊緣檢測

我們也會做一些生物學,並討論卷積神經網路是如何被動物視覺皮層啟發。

在描述卷積神經網路的體系結構之後,我們將直接跳入程式碼,並且展示如何擴展我們上一次建構的深層神經網路(在第2部分中),只需一些新功能將它們轉化為 CNN。然後我們將測試他們的表現,並展示在 Theano 和 TensorFlow 中編寫的捲積神經網路如何能夠勝過 StreetView House Number 資料集上的簡單神經網路的準確性。

本課程的所有材料都是免費的。 你可以使用之前課程中顯示的簡單命令下載並安裝 Python、Numpy、Scipy、Theano 和 TensorFlow。

本課程著重於 “如何建構和理解”,而不僅僅是 “如何使用”。 讀完一些文件後,任何人都可以在 15 分鐘內學會使用 API。 這不是關於 “記住事實”,而是關於通過實驗 “親眼看到”。 它會教你如何視覺化模型內部發生的事情。 如果你不僅僅想膚淺地了解機器學習模型,本課程很適合你

注意:

所有的課程中的程式碼都可以從我的github下載:

/lazyprogrammer/machine_learning_examples

在目錄中:cnn_class

確保你總是用“ git pull ”,如此你總是拿到最新版本!

必要條件 / 假設你已具備以下知識 :

  • 微積分
  • 線性代數
  • 機率
  • Python 程式設計 : if/else, loops, lists, dicts, sets
  • Numpy 程式設計:矩陣和向量操作,載入一個 CSV 檔
  • 可以在 Theano 和 TensorFlow 中編寫前饋神經網路( feedforward neural network )

提示(通過課程):

  • 以 2x 觀看。
  • 拿手寫筆記。 這將大大增加你記住訊息的能力。
  • 寫下方程。 如果你不這樣做,我保證它看起來像亂碼。
  • 在討論板上提出許多問題。 越多越好!
  • 意識到大多數練習將需要幾天或幾週才能完成。
  • 自己編寫程式碼,不要只是坐在那裡看我寫程式。

修課順序

  • 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,或請參考先修課

目標受眾

  • 學生和專業計算機科學家
  • 軟體工程師
  • 從事計算機視覺任務的資料科學家
  • 那些想要將深度學習應用於圖像的人
  • 那些想運用過去學到的簡單( vanilla=raw )深度網路( deep networks )拓展深度學習知識的人
  • 不清楚反向傳播是什麼或者它是如何工作的人不應該參加這個課程,而應該參考第1部分第2部分
  • 對 Theano 和 TensorFlow 基礎知識不清楚的人在參加本課程前應參加第2部分

講師簡介

Lazy Programmer Inc 資料科學家和大數據工程師

我是一名資料科學家、大數據工程師和全端軟體工程師。

我有電腦工程的碩士,專長為機器學習和模式辨識。

我曾在網路廣告和數位媒體企業擔任過資料科學家和大數據工程師,圍繞所謂的資料建構各種高流量的 web 服務。我曾經使用 Hadoop / Pig / MapReduce 創建新的大數據管道,也曾建立機器學習模型來預測點擊率,使用線性迴歸、Bayesian Bandits 和協同過濾 ( collaborative filtering )建立新聞推薦系統,並使用A / B測試驗證結果。

我曾在大學部與研究所教授資料科學、統計學、機器學習、演算法、微積分、電腦圖學和物理學,任職的學校如哥倫比亞大學、紐約大學、Hunter 學院和 The New School。

有多家企業已從我的 Web 程式設計專業知識中受益。我做所有的後端(伺服器)、前端(HTML / JS / CSS)和運營/佈署工作。 我使用的技術包含:Python、Ruby / Rails、PHP、Bootstrap、jQuery(Javascript)、Backbone 和  Angular。至於儲存/資料庫,我採用 MySQL、Postgres、Redis、MongoDB等。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

報名參加課程

Sponsored by Udemy


也許你會有興趣


追蹤 Soft & Share

幫我們個小忙!

Comments are closed.

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: