'4 種你在書裡也學不到的機器學習技能,精髓值得分享'

"

在過去幾年,機器學習非常火熱。你可能要問為什麼?其實很簡單,因為它確實對我們的生活很有用。最新的機器學習研究取得了很多突破,在某些任務上的表現甚至已經超越了人類。而且,這個領域也受到了大量資本的青睞,越來越多的從業者積極地投身於這個行業。毋庸置疑,這是一個非常有發展空間的領域。

如果你想要學習到系統的機器學習知識,一般有兩種途徑可以選擇:上大學或看MOOC。攻讀一個碩士或博士可以讓你擁有深厚的技術和理論知識,但是可能需要集中投入大量的時間。MOOC學習相對比較自由,但如果能夠堅持學下來,你也可以從中獲得非常實用的機器學習算法知識。

但是......還有一些東西是以上兩種學習形式都缺少的。直至今天,機器學習已經有了很多商業應用,在這些應用中,機器學習是作為一種為客戶創造價值的工具而存在的。與之不同,課堂上做的機器學習的目標只是讓模型的準確率更高,魯棒性更好。這就導致了課堂學習和商業應用的脫節,在真正的應用中,我們不僅要讓提高模型的泛化能力,還要兼顧模型的可解釋性、運行速度、內存消耗以及模型應該如何與產品相融合產生真正的價值。

今天,我將給大家分享四種大家在學校或MOOC中學不到的機器學習技巧。它們都是我利用機器學習解決現實商業問題的經驗積累。希望這些技巧可以幫助大家更好地利用機器學習解決現實中的問題,成為一名機器學習專家。

將機器學習與商業目標相結合

當你的工作涉及到應用設計(包括機器學習),你一般需要從兩個角度考慮問題:技術視角和商業視角。掌握這兩方面的知識是你成為一名專家的關鍵。

你在課堂上已經學到了不少的技術知識,比如如何使用Python編程、機器學習和數據科學算法、技術報告的撰寫等。在課堂上,這些內容和商業的關係不大。

但是當你開始真正的進入機器學習的領域,你會發現,工作中每一個單獨的技術視角都有相應的商業目標。為什麼boss讓你去提高系統的準確性?可能因為更高的準確性能夠帶來更多的價值,更多的價值意味這是一個更好的產品,更好的產品意味著更多的用戶和利潤。

因此,你首先要能把所有的技術知識點融會貫通,以便於你能夠聚焦於最重要的問題,找到最佳的解決方法。當你在這個領域有足夠的資歷,你可能需要能夠將商業目標轉化為技術目標,找到達成商業目標的最好的方式。技術是無法脫離現實業務的。你需要經常考慮應該如何將技術與商業目標相結合,創造出真正的價值。

模型選擇

在課堂上,你可以學習到各種不同的機器學習模型,線性迴歸模型,SVM,決策樹,神經網絡等等。但是,當你面對一個問題時,你想使用哪個模型呢?這些機器模型你可能都通過Scikit Learn 和 TensorFlow 實現過,但你是否對他們的特性是否足夠了解呢?在特定的問題面前,一個模型為什麼比另外一個表現得更好?如今,越來越多的人上來就是一把梭子,用深度學習去解決各種問題,我們要不要隨大流呢?

"

在過去幾年,機器學習非常火熱。你可能要問為什麼?其實很簡單,因為它確實對我們的生活很有用。最新的機器學習研究取得了很多突破,在某些任務上的表現甚至已經超越了人類。而且,這個領域也受到了大量資本的青睞,越來越多的從業者積極地投身於這個行業。毋庸置疑,這是一個非常有發展空間的領域。

如果你想要學習到系統的機器學習知識,一般有兩種途徑可以選擇:上大學或看MOOC。攻讀一個碩士或博士可以讓你擁有深厚的技術和理論知識,但是可能需要集中投入大量的時間。MOOC學習相對比較自由,但如果能夠堅持學下來,你也可以從中獲得非常實用的機器學習算法知識。

但是......還有一些東西是以上兩種學習形式都缺少的。直至今天,機器學習已經有了很多商業應用,在這些應用中,機器學習是作為一種為客戶創造價值的工具而存在的。與之不同,課堂上做的機器學習的目標只是讓模型的準確率更高,魯棒性更好。這就導致了課堂學習和商業應用的脫節,在真正的應用中,我們不僅要讓提高模型的泛化能力,還要兼顧模型的可解釋性、運行速度、內存消耗以及模型應該如何與產品相融合產生真正的價值。

今天,我將給大家分享四種大家在學校或MOOC中學不到的機器學習技巧。它們都是我利用機器學習解決現實商業問題的經驗積累。希望這些技巧可以幫助大家更好地利用機器學習解決現實中的問題,成為一名機器學習專家。

將機器學習與商業目標相結合

當你的工作涉及到應用設計(包括機器學習),你一般需要從兩個角度考慮問題:技術視角和商業視角。掌握這兩方面的知識是你成為一名專家的關鍵。

你在課堂上已經學到了不少的技術知識,比如如何使用Python編程、機器學習和數據科學算法、技術報告的撰寫等。在課堂上,這些內容和商業的關係不大。

但是當你開始真正的進入機器學習的領域,你會發現,工作中每一個單獨的技術視角都有相應的商業目標。為什麼boss讓你去提高系統的準確性?可能因為更高的準確性能夠帶來更多的價值,更多的價值意味這是一個更好的產品,更好的產品意味著更多的用戶和利潤。

因此,你首先要能把所有的技術知識點融會貫通,以便於你能夠聚焦於最重要的問題,找到最佳的解決方法。當你在這個領域有足夠的資歷,你可能需要能夠將商業目標轉化為技術目標,找到達成商業目標的最好的方式。技術是無法脫離現實業務的。你需要經常考慮應該如何將技術與商業目標相結合,創造出真正的價值。

模型選擇

在課堂上,你可以學習到各種不同的機器學習模型,線性迴歸模型,SVM,決策樹,神經網絡等等。但是,當你面對一個問題時,你想使用哪個模型呢?這些機器模型你可能都通過Scikit Learn 和 TensorFlow 實現過,但你是否對他們的特性是否足夠了解呢?在特定的問題面前,一個模型為什麼比另外一個表現得更好?如今,越來越多的人上來就是一把梭子,用深度學習去解決各種問題,我們要不要隨大流呢?

4 種你在書裡也學不到的機器學習技能,精髓值得分享

所有的模型都會有優點和缺陷。所以,將模型的優缺點和商業目標聯繫在一起進行考慮,確定你最關心的是模型哪方面的特性,就顯得非常重要了。

機器學習領域流傳著一句經典的定理,“天下沒有免費的午餐”。意思就是沒有一個機器學習算法可以適合所有的問題。模型的表現取決於數據的大小和結構。因此,我們通常需要對不同的模型進行嘗試,才能夠確定最合適的模型。

但是,模型的優缺點也可以作為我們使用的指導。儘管一種算法並不總是比另一個算法好,但是算法之間的不同特性可以作為我們快速選擇最佳模型和調整超參數的指南,我還基於此為 Towards Data Science 寫過一篇專門研究如何選擇最佳模型的文章。舉個例子,神經網絡(和深度學習)經常達到非常高的準確度,但是可解釋性卻很差。如果你想要很清楚地知道結果是怎麼得出來的,那麼神經網絡不是一個很好的選擇。但如果你只關心最終的結果,那麼就用神經網絡吧!另一方面,決策樹的可解釋性就很強,易於理解,因為它本來的算法設計就很直觀。決策樹得出的結果準確度可能不如深度學習,但是當你比較關心模型是怎麼得出結果的過程時,決策樹會是你很好的選擇。

模型部署

機器學習的教學傾向於深入到機器學習算法本身,教會你算法在技術層面上是如何運作的。一般來說,模型訓練完畢後,通常的做法是使用之前留存的測試集對模型的性能進行測試。一旦我們確認模型表現得不錯,它將被部署到完整的軟件產品中。

從更高的層面上說,部署模型其實就是對整個軟件系統做加法,把算法加進原本的系統中。模型的作用只是接受輸入,然後做出一些對整個系統有用的預測。因此,如果要做好加法,就必須要從更高的層面,即從系統的層面去看待模型部署。部署模型的軟件可以看作是連接各個組件的系統,你需要了解這個系統的結構,各個模塊的連接方式,同時,把自己的模型也當做是其中一個組件。

獲取最大收益

當我們在學校或慕課上學習時,我們有一堆時間可以做算法試驗。我們可以不受時間限制隨心所欲地做研究,使用最新的算法,或者遍歷所有算法去尋找最好的那一個。但是在現實中,這不是解決問題最高效的方式。

企業的時間和資源是有限的。他們不可能花費一整天的時間去嘗試每一種可能。企業關心的是,哪種方式能夠讓他們更高效地解決問題。

你需要從公司利益最大化的角度來看待事情。當你發現有一個非常先進的新算法,但這個算法在技術上很有挑戰性以及可能需要花費很多時間去實現,那麼,與其花費大量時間去嘗試它,倒不如為已有的模型收集更多的數據,以及在特徵工程上多下功夫。總之,你需要在模型的性能和實現時間這兩者之間做權衡。有時候為了更快地實現產品,犧牲一點模型的準確性也是可以容忍的,因為通常來說,如果產品能夠更快地完成,意味著它能夠為公司帶來更多的價值。

在學習機器學習的過程中,我們很容易專注於模型的單方面表現而忽視了前面所提到的這些東西。所有通向問題的解決方法都需要我們去權衡,關鍵是找出哪些權衡是有價值的,哪些可以讓你獲得最大的收益。然後你會發現,模型中和商業目標相關聯的部分才是最重要的。

最後,我想說,機器學習和所有的軟件一樣,都只是工具而已。在真正的商業應用中,你不能過分專注於工具本身的性能,要獲取最大的收益,你只需要知道如何使用這些工具去把工作完成就可以了。

"

相關推薦

推薦中...