隨著機器學習越來越受到公眾的關注,很多初學者希望能快速瞭解機器學習及前沿技術。而今天谷歌上線了基於 TensorFlow 的機器學習速成課程,它包含 40 多項練習、25 節課程以及 15 個小時的緊湊學習內容。谷歌官方描述為機器學習熱愛者的自學指南,且課程資料都是中文書寫,課程視訊都由機器學習技術轉述為中文音訊。這對於中文讀者來說將會有很大的幫助,當然我們也能選擇英文語音以更精確地學習內容。此外,據機器之心瞭解,這曾是谷歌內部培訓工程師的課程,有近萬名谷歌員工參與並將學到的東西用在產品的優化和增強上。
課程地址:developers.google.cn/machine-lea…
按照該課程所述,讀者可能需要初級代數知識,如變數與係數、線性方程組和函式曲線等以理解基本的機器學習模型。此外,讀者也需要一些 Python 程式設計經驗,但一般只需要最基礎的函式定義、列表/字典、迴圈和條件表示式等。本課程的實現是基於 Python 和 TensorFlow,不過讀者在學習前並不需要任何 TensorFlow 知識。
除了前面所述的兩個基本要求外,讀者可能還需要準備一些基礎知識,當然等真正遇到再去查資料也完全沒問題。其實準備工作主要分為數學基礎、程式設計基礎和函式庫三個部分,我們給各位讀者提供機器之心的資源文章合集,以便查閱相關問題。
在數學方面,代數相關的變數、係數、線性方程、對數和 Sigmoid 函式有助於讀者瞭解模型最基本的表達,包括怎麼定義的推斷過程、如何構建的損失函式以及啟用函式等。線性代數相關的矩陣和張量等知識有助於讀者理解模型在計算過程中到底代表了什麼意思,例如矩陣乘法這種仿射變換在神經網路中代表了神經元的線性組合或全連線。概率論與統計學也是有要求的,不過本課程僅僅需要能知道均值、方差等概念就行。對於微積分,我們只需要瞭解導數、偏導數和鏈式法則的基本概念就行,雖然最優化方法需要非常多的數學知識才能明確地推匯出流行的優化器表示式,但在基礎階段只需要呼叫工具就行了。
在 Python 程式設計與常見第三方庫等方面,該課程也只有非常少的要求,掌握基本的操作就行。例如 Python 的列表、字典和元組三大資料結構,還有迴圈和條件等基本表示式。而需要了解的第三方庫也是科學計算方面代表,如 NumPy、Pandas 和 Matplotlib 等。以下是 2017 年機器之心發過的教程,它基本上可以為讀者提供足夠的學習資料。
目錄
簡介:
前提條件和準備工作
機器學習概念:
框架處理(15 分鐘)機器學習中的監督學習
深入瞭解機器學習(20 分鐘)什麼是損失函式,權重和 bias 是什麼
降低損失(60 分鐘)兩種梯度下降,及對學習率的實驗
使用 TensorFlow 基本步驟(60 分鐘)不能不懂的 TensorFlow
泛化(15 分鐘)什麼是過擬合,怎樣評價一個模型的好壞,把資料集分成測試和訓練兩部分
訓練及測試集(25 分鐘)驗證把資料集分成兩部分的好處
驗證(40 分鐘)擔心過擬合?在測試和訓練集外多弄一個驗證集
表示法(65 分鐘)特徵工程,75% 機器學習工程師的時間都在乾的事
特徵組合(70 分鐘)明白什麼是特徵組合,怎麼用 TensorFlow 實現
正則化:簡單性(40 分鐘)L2 正則化,學習複雜化和普遍化的取捨
邏輯迴歸(20 分鐘)理解邏輯迴歸,探索損失函式和正則化
分類(90 分鐘)評估一個邏輯迴歸模型的正確性和精度
正則化:稀鬆性(45 分鐘)L2 的其他種類
介紹神經網路(40 分鐘)隱藏層,啟用函式
訓練神經網路(40 分鐘)反向傳播
多種類神經網路(50 分鐘)理解多類分類器問題,Softmax,在 TensorFlow 中實現 Softmax 結果。
嵌入(80 分鐘)什麼是嵌入,這是幹什麼的,怎樣用好。
工程:
生產 ML 系統(3 分鐘)ML 生產中的寬度
靜態 vs. 動態訓練(7 分鐘)靜態和動態訓練的優缺點
靜態 vs. 動態推斷(7 分鐘)靜態和動態推斷的優缺點
資料依賴(14 分鐘)理解 ML 中的資料依賴
生活中實際的 ML 例子:
預測癌症(5 分鐘)
18 世紀文獻(5 分鐘)
真實世界方針(2 分鐘)
結論:
下一步要學習的內容,推薦了 TensorFlow,Google 的課程深度學習,及 Kaggle 比賽等。
練習題:
大部分練習題的資料是用的 California housing data set 。
測試分成三種,程式設計練習,檢查你的理解和 Playground。
課程特點
這一機器學習速成課程最大的特點是它有完整的中文資料、中文語音和字幕以及中文測試題,它為機器學習初學者提供了最實用的的資料。
如下所示,該課程提供的課件非常適合於國內初學者:
如下所示,該課程提供了很多中文練習,包括程式設計練習和文字理解的選擇題,這非常有助於各位讀者檢驗在視訊和資料中學習到的知識。
如下展示了機器學習術語,這一部分分成全面的介紹了機器學習中的術語的含義,非常好懂。
最後,該課程還提供了非常多的中文學習資料或技術部落格,這些文字資料同樣也是擴充套件讀者知識並從原理上學習新技術的重要保證。