第03课:如何学习“机器学习”
第03課:如何學習“機器學習”
學習“機器學習”這件事,我走過很長的一段彎路。有一些心得、體會和方法,在此和大家分享。
《機器學習極簡入門》
以模型為驅動,了解“機器學習”的本質
本課力圖引導大家以模型為驅動,進行學習。
我選擇了幾種經典模型(例如:線性回歸、邏輯回歸、決策樹、支持向量機、條件隨機場、K 均值等),作為入門的進階。
初次學習模型,不必貪多。但就這些選定的模型,一定要搞清楚其問題域、模型函數、目標函數、訓練算法……潛入到數學公式推導的層面,對每一步的公式變換和對應的物理意義有所理解,然后再去實踐。
這一個個的模型,就是機器學習的“肌肉”,我們要通過觀察學習這一塊塊肌肉,以其為載體來了解機器學習的核心——將事物轉化為數值,將關系、變換轉化為運算,以事實(數據)為依據,以規章(算法)為準繩,通過計算來掌握事物的客觀規律(模型)。
要知道,這些經典模型固然經典,但是到了實際應用中,它們并非神圣不可改變。也不是說機器學習就僅限于這些經典模型。
只有掌握了機器學習精髓的人,才可能靈活運用現有模型去解決實際問題,甚至進一步針對具體問題得出自己的模型和/或算法。
反復學習,從記憶到掌握
當然,達到這種程度并非一蹴而就,總要從最簡單的模型開始。
根據我的經驗,即使要真正掌握本課列出的這幾個最常用且相對簡單的模型,也需要反復學習。
有可能第一遍看完有點似是而非,或者感覺自己明白了,但要自己從頭推導又會半截斷片兒。
就像剛學完又忘掉的生字,或是背誦一半99乘法口訣想不起后續的小學生,這都是非常正常的現象。真正原因,就是還沒有真正掌握。
反復多學幾遍,從頭到尾掌握整件事情的邏輯,知道一個模型是怎么從最初設定目標,到一步步實現目標的——當真正掌握了這個過程之后,再回頭看一個個具體的模型,每一步都是順利成章的。
掌握了事物內在的邏輯性,再去記憶,就容易多了。
學習標準設置得不必太高,比如可以這樣:
第一遍學,只要求自己能完全掌握機器學習數據、模型、算法相互作用的基本關系,訓練過程和評價標準。具體的模型,掌握最簡單的線性回歸就可以。
只要 end2end 掌握了第一個模型,做到:能夠從模型函數開始推導出目標函數,再用梯度下降算法求解,用(偽)代碼實現梯度下降求解過程。
第一遍學習掌握一個模型;第二遍學習就不難掌握2-3個模型;第三遍就有可能掌握本課列出的大部分模型………如此由易到難,螺旋式推進。
對于一些數學模型本身就比較復雜的,比如條件隨機場、隱馬爾科夫這類涉及場論和勢函數的模型,如果直接入手,往往會被卡在模型函數本身上。但是當有了前面幾個模型的基礎,了解了更抽象層面的原理,掌握起來就容易多了。
數學需要多精深?
很多同學,想學機器學習。但是一上來就看模型,看到一大堆炫酷的公式,往往感覺很嚇人。
有些人也就因此萌生退意,要么放棄,要么只用現成工具把模型當作黑盒使用。
其實,學習經典模型,并不需要多么精深的數學功底,理工科大學本科的數學課就基本夠用了。
基礎數學概念
在學習的最初階段,只要:
- 學過坐標系;
- 了解函數、向量和矩陣的概念;
- 能從直觀角度對求導、求微與函數的關系有所理解;
- 并掌握最簡單的矩陣運算。
就可以對本課中的經典機器學習模型有一定深度的感性認識了。
本課中的公式都是經過精簡的,務必要掌握。如果實在數學工具掌握太少,最次也要讀懂一組公式推導中的第一個和最后一個式子:
-
讀懂它們都針對哪些變量進行了怎么樣的運算;
-
這些變量和運算對應的物理意義是什么;
-
第一個式子是對哪種真實場景的數學描述;
-
最后推導的結果又具備怎樣的特征。
初次學習者,可以暫且掌握到這個深度。
兩條路徑反芻數學知識
當然,僅僅這樣的程度,套用現成模型還將就,卻不可能達到靈活運用的程度。
所以,還是建議同學們力求理解每一步推導過程。
如果有可能,可以事先復習一下大學本科的高數(數學分析)、概率統計和線性代數課本。或者,在學習模型的過程中,一旦遇到了數學上的阻礙,就回頭去查找相應知識。
制定數學知識速查手冊
很多數學問題,之所以讓人頭大,其實并不是真的有多難,而是符號系統比較復雜,運算繁復,或者運算所表達的物理意義多樣。
很多時候造成困擾是因為想不起來這里用到什么定理,哪個公式,或者這樣操作表達的含義是什么。
如果把常用的細小知識點都記錄下來,按主題整理在一起,做成速查手冊(小字典),需要用的時候迅速查找一下對應點,能讓我們學習“機器學習”的道路順暢不少。
下面是兩個我自己制作的例子,大家可以參考一下:
- 機器學習常用微積分知識速查手冊
- 機器學習常用線性代數知識速查手冊
日常學習 Tips
關聯
把新學到的東西和日常的工作、生活聯系起來,進行思考。比如:將理論代入現實,不同領域間事物的類比,相似內容的對比等。
以身邊的實例來檢測理論。不僅能夠加深理論知識的理解,而且有助于改進日常事物的處理方法。
記錄
準備一個筆記本,紙的或者電子的。有什么發現、感想、疑問、經驗等等,全都記下來。
如果是對某個話題、題目有比較完整的想法,最好能夠及時整理成文,至少記錄下要點。
隔一段時間后把筆記整理一下,把分散的點滴整理成塊,一點點填充自己的“思維地圖”。
分享
知識技能這種東西,學了,就得“得瑟”——把學習到的新知識、理論、方法,分享給更多的人。如此一來,倒逼自己整理體系、記憶要點,堪稱與人方便自己方便的最佳實例。
把自己的感想、體會、經驗分享出來也是同理,還多出了鍛煉自己邏輯思維能力和歸納總結能力。一舉多得,何樂而不為?
總結
以上是生活随笔為你收集整理的第03课:如何学习“机器学习”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件设计师大纲
- 下一篇: cesium--3d-tiles译文[官