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