進入機器學習世界沒有正確的方法。 我們都以略有不同的方式學習,我們對機器學習有不同的用途或目標。 但乙個共同的目標是通過機器學習快速提高生產力。 如果這是你的目標,那麼這篇文章將重點介紹程式設計師在快速成為有效的機器學習從業者的過程中常犯的五個錯誤。
機器學習只是另一種可用於為複雜問題建立解決方案的技術。 機器學習(主要是深度學習)和相關技術近年來變化迅速,因此它們經常出現在學術出版物和研究生教科書中,這使得它似乎遙不可及,但事實並非如此。
為了在機器學習中發揮作用,從技術到過程,從精度到“足夠好”,思維方式的轉變是必要的,但對於程式設計師感興趣的其他複雜方法也是如此。
一次解決乙個問題,並利用機器學習和統計環境以及演算法庫來學習如何將一種技術應用於解決問題要容易得多。 這使您可以相對快速地抽查和調整各種演算法,並調整一兩個看起來很有前途的演算法,而不是花費大量時間解釋包含演算法描述的模糊研究**。
實現演算法可以被認為是乙個單獨的專案,稍後要完成,例如,對於學習練習或需要投入執行的原型系統。 一次學習一件事,無論你是否是程式設計師,我都建議從基於 GUI 的機器學習框架開始。
應用機器學習的過程包括問題定義、資料準備和結果呈現等任務。 這些過程,以及演算法的測試和調整,可以而且應該自動化。
自動化是構建、測試和部署現代軟體開發的重要組成部分。 在編寫資料準備、演算法測試和調優以及結果準備方面有很大的優勢,可以獲得嚴謹性和改進速度的好處。 記住並重用在專業軟體開發中學到的經驗教訓。
自動化的失敗可能是由於許多程式設計師從書籍和課程中學習機器學習,而這些書籍和課程不太關注該領域應用程式的性質。 事實上,將自動化引入應用機器學習對程式設計師來說是乙個巨大的機會。
如果你不認為自己是天才,那麼有無數人可能已經在你之前實現了你正在編寫的演算法,或者已經解決了與你正在解決的問題類似的問題,充分利用了從以前的問題中吸取的經驗教訓。
解決和應用機器學習問題需要豐富的知識。 如果要實現演算法:
有必要重寫嗎?你能在重用現有開源演算法的庫或工具中找到它嗎?
你必須解釋演算法的規範描述嗎?在其他書籍或部落格文章中是否有任何關於該演算法的描述,您可以檢視和學習?
你不需要數學來開始,但數學是機器學習的重要組成部分。 原因是它提供了描述問題和系統行為的最有效和最明確的方式。
忽略演算法的數學處理可能會導致問題,例如對方法的理解有限或對演算法的解釋有限。 例如,許多機器學習演算法的核心是增量更新的優化。 了解正在求解的優化(凸函式)的性質,使您能夠使用利用這些知識的高效優化演算法。
演算法數學處理的內化速度很慢,需要掌握。 特別是如果您從頭開始實現高階演算法(包括內部優化演算法),請花時間從數學角度學習演算法,但數學方法不適合初學者。
優質作者名單