你不會在學校或MOOCs學習到的4個機器學習技巧!

機器學習(ML)在過去幾年中變得非常流行。為什麼?因為它在很多的方面已經取得有效的成果,最新的研究也取得了創紀錄的成績,甚至在某些任務上還超越了人類的表現。當然,很多人都急於進入這個領域,資金充足的情況下,對於技術人來說這是一件令人興奮和有趣的事情,說不定還會有很大的發展空間。

你不會在學校或MOOCs學習到的4個機器學習技巧!

在正規教育方面,學習機器學習有兩條主要途徑:學校(大學/學院)或MOOC(海量開放式在線課程)。經過正規的學校教育,如果你獲得碩士或博士學位,那麼學校可以給你非常深入的技術和理論知識,當然這也意味著相當昂貴的費用。 而MOOCs是免費的,您絕對可以學習如何從他們中去實際使用許多ML算法,當然這種方法不會像從大學中走出來的人一樣,可以獲得相應的文憑、學位等官方憑證。當然,這兩種方法都可以有效地用於獲取在機器學習領域工作所需的技術知識。

但是...還是有一些缺失,那就是機器學習算法需要真正應用於現實世界的業務問題。機器學習是用來為客戶創造價值的工具,與課堂上通常單獨完成作業並且幾乎沒有任何商業目標的教室完全不同。不僅ML模型的準確性很重要,而且它的可解釋性、速度、內存消耗以及如何將該模型嵌入產品中以創造真正的價值對於完成商業目標來說,可能更為重要。

在這篇文章中,將與大家分享4種機器學習技巧,這些技巧你不會在學校或MOOCs中學習到。這些技能可以通過現實世界的經驗學習領悟從而使用ML解決現實世界的問題,創造真正的價值。希望這篇文章能讓你深入瞭解機器學習如何被實際使用,成為你所在領域的專家。

一塊兒開始吧!

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

當你在涉及軟件的任何領域(包括機器學習)工作時,理解的部分可能會從兩個主要方面出發:技術角度和業務角度。這兩方面的知識將會成為你所在領域的專家的關鍵。

你不會在學校或MOOCs學習到的4個機器學習技巧!

你在課堂上一定已經學習了很多技術部分。如何在Python中進行編碼、機器學習和數據科學算法、技術報告撰寫等。在課堂上,這些東西通常會與業務隔離。但是當你開始在現場工作時,你就會發現工作中的每一個技術方面都與業務目標相關。你的老闆為了增加當前系統的準確性,很可能是因為更好的準確性意味著更多的價值,更多的價值意味著更好的產品,更好的產品意味著更多的客戶和金錢。

能夠連接這些點很重要,因此你可以找到解決技術問題的最佳方法。你會知道重要的部分是什麼,你應該關注什麼。隨著你在現場工作中獲得經驗和資歷,你可能需要將業務目標轉化為技術目標,以找到完成工作的最佳方式。技術已經並且仍然是一種用於完成更多事情的工具。我們需要始終考慮如何將技術技能與業務目標聯繫起來以創造真正的價值。

模型選擇

在課堂上,你可以瞭解所有不同的ML模型。線性迴歸、支持向量機、決策樹、神經網絡......感覺有一百萬個需要了解!所以最大的問題是......你會使用哪一個?您可能以前使用過所有這些算法,從頭開始編碼或使用TensorFlow和Scikit Learn等庫。很多人現在都在使用深度學習,所以我們應該默認就使用這一種麼?

所有的方法都會有折衷,這就是科學和工程的本質!將這些折衷與您的業務目標聯繫起來以確定模型的最重要屬性是非常重要的。

機器學習中有一個叫做“沒有免費午餐”的理論。定理基本上表明沒有一個ML算法對所有問題都是最好的解決方案。不同ML算法的性能在很大程度上取決於數據的大小和結構。因此,除非我們直接通過簡單的嘗試和錯誤來測試我們的算法,否則正確的算法選擇可能不清楚。

但是,對於我們可以用作指導的每個ML算法都有一些優點和缺點。儘管一種算法並不總是優於另一種算法,但是我們可以使用每種算法的一些屬性作為快速選擇最佳算法並調整超參數的指導。

例如,神經網絡(和深度學習)通常可以達到非常高的精度,但根本不能解釋。當你需要確切知道你的結果來自哪裡時,使用它們可能不是一個好主意;但如果你只關心最終輸出,那麼它們是完美的!另一方面,決策樹非常易於理解,因為它們的設計非常直觀。它們可能達不到深度網絡所能達到的精確度,但當您想要準確理解您的結果來自何處時,它們就非常棒。

模型部署

機器學習教育傾向於深入到ML算法本身,教你如何在技術層面上工作。一旦您的模型得到充分的訓練,通常的做法是在一個不可見的測試數據集上進行測試,以便對模型性能進行基準測試。一旦我們驗證了我們的模型適合我們的任務,它就必須部署到您創建模型的完整軟件產品中。

你不會在學校或MOOCs學習到的4個機器學習技巧!

從高層次來看,部署本質上涉及到將你的算法插入到系統的其他部分。您的模型的作用僅僅是獲取輸入並使用它來進行某種對系統有用的預測。因此,從系統級別的更高級別來了解您的軟件非常重要。

到目前為止,我們已經討論過在學校如何學習非常低層次的技術問題,而業務目標是定義產品價值交付的非常高層次的目標。把你的軟件理解為一個連接組件的系統來部署你的模型就在中間。您必須瞭解系統的架構,連接塊的管道。然後,您可以將您的模型視為另一個組件或模塊以插入系統。

獲得最大的回報

當我們在學校或參加在線課程時,所有人都是處於世界各地去實驗的。我們可以永遠花費在研究上,嘗試使用最新最好的算法,甚至只是試驗所有這些算法以找到最好的算法!在現實世界中,這可能不是最有效的做事方式。

企業擁有有限的時間和資源。他們不可能花一整天的時間嘗試每一種可能的方法,看看哪一種最好。他們需要找到有效的方式做事(閱讀:無需燃燒時間和現金)。

你需要從獲得最佳效果的角度來看待事物。所以也許有一種新的最先進的迴歸算法,但它在技術上頗具挑戰性,並且可能需要耗費時間來實施。

但反過來說,你可能會因為要獲得更多的數據來訓練當前的算法從而把你的準確性提高几個點。你的算法的某些方面可能會增加大量的價值,而其他方面則不會。沒關係,這樣你的算法會比現在更準確,但是如果超快的話,產品會有更多的價值!

在課堂上,我們很容易忽視這樣的事情,並且始終都會瞄準最佳表演模型,忘記我們採取的所有路徑都會有他們的權衡。關鍵是找出哪些權衡是值得的,哪些權衡可以讓你獲得最大的回報。而且,你通常會注意到的是,最重要的事情是需要與業務目標相關。

機器學習和所有軟件通常只是一套工具;在這種情況下獲得最大的回報意味著要知道如何最好地使用這些工具來完成工作。

結論

謝謝閱讀!希望你學到了一些新的和有用的關於你不會在學校或MOOC中學習不到的機器學習技巧!


分享到:


相關文章: