第03課 如何學習「機器學習」

2021-10-09 16:34:00 字數 2633 閱讀 3833

學習「機器學習」這件事,我走過很長的一段彎路。有一些心得、體會和方法,在此和大家分享。

本課力圖引導大家以模型為驅動,進行學習。

我選擇了幾種經典模型(例如:線性回歸,邏輯回歸,決策樹,支援向量機,條件隨機場,k 均值等),作為入門的高階。

初次學習模型,不必貪多。但就這些選定的模型,一定要搞清楚其問題域、模型函式、目標函式、訓練演算法……潛入到數學公式推導的層面,對每一步的公式變換和對應物理意義有所理解,然後再去實踐。

這乙個個的模型,就是機器學習的「肌肉」,我們要通過觀察學習這一塊塊肌肉,以其為載體來了解機器學習的核心——將事物轉化為數值,將關係、變換轉化為運算——以事實(資料)為依據,以規章(演算法)為準繩,通過計算來掌握事物的客觀規律(模型)。

要知道,這些經典模型固然經典,但是到了實際應用中,它們並非神聖不可稍加改變。也不是說機器學習就僅限於這些經典模型。

只有掌握了機器學習精髓的人,才可能靈活運用現有模型去解決實際問題,甚至進一步針對具體問題發明自己的模型和/或演算法。

當然,達到這種程度並非一撮而就,總要從最簡單的模型開始。

根據我的經驗,即使是本課列出的這幾個最常用也相對簡單的模型,要真正掌握,都需要反覆學習。

有可能第一遍看完有點似是而非,或者感覺自己明白了,但要自己從頭推導又會半截斷片兒。

就像剛學完又忘掉生字,或是背誦到一半想不起後續99乘法表的小學生,這都是非常正常的現象。真正原因,就是還沒有真正掌握。

反覆多學幾遍,從頭到尾掌握整件事情的邏輯,知道乙個模型是怎麼從最初設定目標,到一步步實現目標的——當真正掌握了這個過程之後,再回頭看乙個個具體的模型,每一步都是順利成章的。

掌握了事物內在的邏輯性,再去記憶,就容易多了。

學習標準設定得不必太高,比如可以這樣:

第一遍學,只要求自己能完全掌握機器學習資料、模型、演算法相互作用的基本關係,訓練過程和評價標準。具體的模型,掌握最簡單的線性回歸就可以。

只要 end2end 掌握了第乙個模型,做到:能夠從模型函式開始推導出目標函式,再用梯度下降演算法求解,用(偽)**實現梯度下降求解過程。

第一遍學習掌握乙個模型;第二遍學習就不難掌握2-3個模型;第三遍就有可能掌握本課列出的大部分模型………如此由易到難,螺旋式推進

對於一些數學模型本身就比較複雜的,比如條件隨機場、隱馬爾科夫這類涉及場論和勢函式的模型,如果直接入手,往往會被卡在模型函式本身上。但是當有了前面幾個模型的基礎,了解了更抽象層面的原理,掌握起來就容易多了。

很多同學,想學機器學習。但是一上來就看模型,看到一大堆炫酷的公式,往往感覺很嚇人。

有些人也就因此萌生退意,要麼放棄,要麼只用現成工具把模型當作黑盒使用。

其實,學習經典模型,並不需要多麼精深的數學功底,理工科大學本科的數學課就基本夠用了。

基礎數學概念

在學習的最初階段,只要:

就可以對本課中的經典機器學習模型有一定深度的感性認識了。

本課中的公式都是減了再減的,務必要掌握。如果實在數學工具掌握太少,最次最次,也至少要讀懂一組公式推導中的第乙個和最後乙個式子——

初次學習者,可以暫且掌握到這個深度。

兩條路徑反芻數學知識

當然,僅僅這樣的程度,套用現成模型還將就,卻不可能達到靈活運用的程度。

所以,還是建議同學們力求理解每一步推導過程。

如果有可能,可以事先複習一下大學本科的高數(數學分析)、概率統計和線性代數課本。或者,在學習模型的過程中,一旦遇到了數學上的阻礙,就回頭去查詢相應知識。

制定數學知識速查手冊

很多數學問題,之所以讓人頭大,其實並不是真的有多難,而是符號系統比較複雜,運算繁複,或者運算所表達的物理意義多樣。

很多時候造成困擾是因為想不起來這裡用到什麼定理,哪個公式,或者這樣操作表達的含義是什麼了。

如果把常用的細小知識點都記錄下來,按主題整理在一起,做成速查手冊(小字典),需要用的時候迅速查詢一下對應點,效果往往意想不到地好。能讓我們學習「機器學習」的道路順暢不少。

關聯把新學到的東西和日常的工作、生活聯絡起來,進行思考。比如:將理論代入現實,不同領域間事物的模擬,相似內容的對比等。

以身邊的例項來檢測理論。不僅能夠加深理論知識的理解,而且有助於改進日常事物的處理方法。

記錄準備乙個筆記本,紙的或者電子的。有什麼發現、感想、疑問、經驗等等,全都記下來。

如果是對某個話題、題目有比較完整的想法,最好能夠及時整理成文,至少記錄下要點。

隔一段時間後把筆記整理一下,把分散的點滴整理成塊,一點點填充自己的「思維地圖」。

分享把自己的感想、體會、經驗分享出來也是同理,還多出了鍛鍊自己邏輯思維能力和歸納總結能力。一舉多得,何樂而不為?

如何學習機器視覺

在與大家交流的過程中,發現了乙個問題,一直想說出來。可是通常實話都不會那麼順耳,所以總有些猶豫。可後再一想,既然大家來此的目的不過是為了討論問題 互通有無,那麼說了也應無妨。這個問題就是 我發現國內80 搞這行 機器視覺 的朋友所走的路子是錯的。於是在國外,從事這一行業的人現在也就可以簡單而清楚地分...

機器學習 四 之如何學習機器學習

推薦一篇很好的文章,本文部分借鑑於 kaggle的 手寫識別 首先 我們要了解 什麼是tensorflow?其次 我們要學會一些概念 再其次 我們要學會整個機器學習的思路 建立乙個機器學習的model 1 制定乙個model是線性的還是非線性的 2 使用乙個最簡單的單層的神經網路進行學習 3 選擇l...

機器學習 機器學習目錄

注 後期有時間的話會對每乙個演算法進行講解。1 普通線性回歸 2 廣義線性模型 3 邏輯回歸 4 線性判定分析1 決策樹基本原理與構建 2 cart演算法 3 回歸決策樹 4 分類決策樹1 貝葉斯定理與樸素貝葉斯 2 高斯貝葉斯分類器 3 多項式貝葉斯分類器 4 伯努利貝葉斯分類器 5 遞增式學習1...