1. 程式人生 > >我在機器學習踩過的坑,現在告訴你怎麽跳過去

我在機器學習踩過的坑,現在告訴你怎麽跳過去

表示 alt 這樣的 就是 學習者 又是 路徑 com weixin

我在機器學習踩過的坑,現在告訴你怎麽跳過去

https://mp.weixin.qq.com/s/ko3WtQqilQ-7-H9vRZHdlg

大家好,我是為人造的智能操碎了心的智能禪師。

最近很多讀者問本禪師:

轉行機器學習需要註意哪些事情呢?

我想學習機器學習,需要學習哪些知識呢?

機器學習如何避免走彎路呢?

本禪師表示非常理解大家的需求。

人工智能(其實本禪師認為目前看來翻譯成人造智能可能更直白一點)毫無疑問,已經是科技趨勢,卻又是門檻相對較高、對學習者要求非常高的一門科學。

說起對機器學習所需要的基礎知識掌握程度,一個有經驗的開發者可能並不比剛開始接觸機器學習的學生多。

機器學習有哪些關鍵要素?需要掌握什麽語言?如何理解機器是怎麽學習的?… 接下來,我們聽聽人工智能頭條特約作者李燁,講講她開始學習機器學習的經驗。

講講她踩過的那xiiieeeee坑們,以及如何從一個摸著石頭過河的機器學習的新手,逐步成為老司機的。

李燁,高級軟件工程師,現就職於微軟(Microsoft),曾在易安信(EMC)和太陽微系統(Sun Microsystems)任軟件工程師。先後參與聊天機器人、大數據分析平臺等項目的開發。

學習“機器學習”這件事,我走過很長的一段彎路

有一些心得、體會和方法,在此和大家分享。

技術分享圖片

以模型為驅動,了解“機器學習”的本質

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

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

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

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

技術分享圖片

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

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

反復學習,從記憶到掌握

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

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

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

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

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

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

技術分享圖片

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

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

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

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

對於一些數學模型本身就比較復雜的,比如條件隨機場、隱馬爾科夫這類涉及場論和勢函數的模型。

如果直接入手,往往會被卡在模型函數本身上。但是當有了前面幾個模型的基礎,了解了更抽象層面的原理,掌握起來就容易多了。

數學需要多精深?

技術分享圖片

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

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

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

基礎數學概念

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

  • 學過坐標系
  • 了解函數、向量和矩陣的概念
  • 能從直觀角度對求導、求微與函數的關系有所理解
  • 並掌握最簡單的矩陣運算

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

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

  • 讀懂它們都針對哪些變量進行了怎麽樣的運算
  • 這些變量和運算對應的物理意義是什麽
  • 第一個式子是對哪種真實場景的數學描述
  • 最後推導的結果又具備怎樣的特征

技術分享圖片

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

兩條路徑反芻數學知識

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

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

如果有可能,可以事先復習一下大學本科的高數(數學分析)、概率統計和線性代數課本。

或者,在學習模型的過程中,一旦遇到了數學上的阻礙,就回頭去查找相應知識。

制定數學知識速查手冊

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

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

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

日常學習 Tips

關聯

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

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

記錄

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

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

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

分享

知識技能這種東西,學了,就得“得瑟”——把學習到的新知識、理論、方法,分享給更多的人。如此一來,倒逼自己整理體系、記憶要點,堪稱與人方便自己方便的最佳實例。

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

江湖有句話:寧舍一錠金,不舍一句春。意思就是,寧願我舍去一錠金子不要,也不願把我學習的門道泄露給別人。可見,學習的方法的價值,才是最為寶貴的。

我在機器學習踩過的坑,現在告訴你怎麽跳過去