機器學習進階的五個境界
作者: 郭瑞東
關於機器學習,這個話題最近實在太火了,甚至有些虛火了。有了虛火,就容易有泡沫。大浪淘沙,要想在數據科學這個行業生存下來,任何一個從業者都需要認清自己的位置,每上一個台階,需要的努力方向都是不同的,每上一個台階,身邊的同行者也會越來越少。這篇小文,是想幫讀者去去火,認清自己的位置。
本文受 Harvard劉小樂老師(Shirley Liu)兩年前的舊文:「Levels of Bioinformatics Research」,講生物信息學家的五個層次的啟發。
Level 1 數據渣,這個階段的人最突出特點是沒有寫過一行機器學習的代碼。要知道機器學習是個必須上手實踐過才能掌握的學科,就像游泳,騎自行車。數據渣可能聽過很多機器學習的應用場景,嘗試看過新智元或者機器之心這類公眾號的文章(雖然多半看不懂)
數據渣不是毫無用處的,數據渣的最高水平,是知道什麼情況下可以使用機器學習的方法來改進當前的流程,以及如何和做機器學習的夥伴溝通,將清楚自己的需求。即使做甲方,也需要對行業有一個全局的認識。如果你覺得術業有專攻,不打算成為數據科學的內行人,你同樣有很多功課要做,培養自己和數據科學家溝通這樣的軟技能,同樣是不可缺少的。
Level 2 數據菜鳥,這個階段的人最突出的特點是熟練調用成熟的機器學習演算法包,能看懂R或者Python包的說明文檔。這個階段的童鞋可以跑跑前人留下的流程,然而這類人的弱點在於根本沒有認真思考過每個包中演算法是基於什麼原理的,從來沒有深入研究過這些工具和流程是如何設計與實現的。
數據菜鳥是很容易達到的,哪怕沒有編程基礎,只有願意花時間,有高中的數學基礎,用一個月的全職投入,就可以熟練的學會一門機器學習界主流的語言及其演算法包的介面。要想在這個階段做的更好,可以去學學變數命名的規範。但要跨過這個境界,就需要一點打破砂鍋問到底的好奇心和對數據科學的熱愛了。
Level 3 數據肉鳥 這個階段核心的兩項技能是數據可視化和串流程。數據可視化的目標是對不同方法做比較,在知道了那些指標的意義後,你需要評價不同的方法,你還需要知道每一步的輸入輸出,從最初的清洗數據,到之後的特徵提取,到模型的選擇,直到用圖形來呈現演算法的效果,如果你能將這一套流程串起來,那麼你就初步具有了獨立完成搭建一個機器學習流程的能力。
這個階段,對於過擬合,交叉驗證,這樣的概念應該是很熟悉的,掌握核心概念,不是一件能一蹴而就的事,你不能假設自己的理解是絕對正確的,而要通過持續的學習來一步步逼近正確的理解。這個階段的人需要做的是廣泛的積累,需要能看懂原版論文,而不止是演算法包的manual。所謂看懂論文,是指看完了能講出這篇文章的方法上是否有所創新,講出這篇文章的方法是否適用與這個領域,這篇文章對自己正在做的項目是否有所借鑒。
Level 4 數據科學家 這個階段的核心技能是推公式。要知道機器學習的演算法背後,大多都有著統計學的支撐。SVM都會用,但能推出SVM的優化目標的人不多,LDA知道的人很多,但其背後的Dirichlet分布懂得人卻不多。為什麼要會推公式,不止是為了做演算法在不同語言,不同應用場景間的遷徙,還是為了去有目的的改進方法,不管是隨機化,還是將條件放寬鬆,亦或是增加懲罰項,都需要對演算法背後的數學原理搞清楚。
阻礙很多童鞋成為數據科學家的是數學基礎。概率論,統計,隨機過程,線性代數,數學分析,凸優化,圖論,一個都不能少。這需要補的課就很多了,但一旦你練好了「內力」,那麼你再看之前看不懂的論文,尤其是其方法那一部分,你的閱讀速度和理解的深度就會增加很多。要達到這個境界,需要耐得住寂寞。
Level 5 數據大神 在一個領域內開疆闢土,感受到高處不勝寒的寂寞,靈活的將多種方法和trick融合成一件藝術品,如同alpha go,其所用的方法不是創新,而其將這兩種方法結合的方式卻如神來一筆。又或者使用自己領域內的概念去指點江山,預測未來,例如在 一個來自武林的類比 論文故事-深度學習的幾個猜想,關於文化與認知 這篇文章中表現的那樣。這樣的大神可遇不可求,天賦與努力缺一不可。
如今數據科學正處在快速擴展的時代,其觸角正伸向社會的每一個角落,在這個時代,對數據的理解,將會成為和識字一樣人人都必須的技能,未來,每個人都需要具有數據渣的鳥視搬的數據通識教育,有志於成為精英的人,不管其處在什麼行業,都要學會用數據去說理,用模型來預測未來,用聚類來總結過去。每個人都有自己的位置,莊子中有一句深得我心的話,大鵬鳥不必嘲笑小麻雀,小麻雀不必羨慕大鵬鳥。我們每個人都有自己的比較優勢,認清自己的位置,不妄自尊大,才是最關鍵的。
推薦閱讀:
※linux中設備節點是設備文件嗎?
※淺談Intel Core i5 8400 —— 一顆本不該如此低調的CPU
※寫一個簡陋的程序,直接發布,是怎樣的體驗?