如何進入機器學習領域沒有定式。我們的學習方式都有些許不同,學習的目標也因人而異。
但乙個共同的目標就是要能盡快上手。假設這也是你的目標。那麼這篇文章為你列舉了程式猿們在通往機器學習高手道路上常見的五種錯誤。
1.將機器學習看得高不可攀
機器學習只是是還有一堆技術的集合,你能夠用它來解決複雜問題。這是乙個飛速發展的領域,因此,機器學習的學術交流一般出如今學術期刊及研究生的課本裡,讓它看起來高不可攀又難於理解。
要想高效掌握機器學習,我們須要轉變觀念,從技術轉到方法,由精確變為「足夠好」,這也相同適用於程式猿感興趣的其他複雜技術。
2.編寫機器學習程式**
由編碼開始入門機器學習會非常困難,由於你須要解決的問題從乙個變成兩個:了解一項技術以便你實現它以及對於給定問題怎樣應用該項技術。一次解決乙個問題,並利用機器學習、統計分析環境以及演算法庫來學習怎樣將一項技術應用於某一問題,這樣就會easy非常多。
這能讓你對於若干演算法進行相對高速的抽查和調整,而無需花上大量時間閱讀研究**中含糊的演算法描寫敘述再將其編碼。
實現乙個演算法能夠作為乙個單獨的專案晚些再完畢,比方作為乙個練習或是等到原型系統須要投入執行時。一時僅僅學一事,我建議從有gui的機器學習框架開始入門,不論你是不是程式猿。
3.手動搞定工作
有用機器學習包含問題定義、資料準備、結果表達等步驟。它們與演算法的測試和調整都可以並應該實現自己主動化。
在現代軟體開發的編譯、測試和部署中,自己主動化操作占有重要地位。對資料準備、演算法測試除錯、結果的表達編寫自己主動指令碼能夠在準確性和改進速度方面獲得巨大的優勢。在專業軟體開發課程中學習的知識要牢記於心並不斷應用。
可能非常多學習機器學習的程式猿看的書、上的課對於這一領域的應用本質關注不多,導致非常多人入門階段沒有使用自己主動化手段。實際上。將自己主動化技術應用到有用機器學習的方方面面會是程式猿的巨大機遇。
4.對常見問題反覆求解
你正要實現的演算法,或是與你正在求解的問題相似的問題,可能早有千百人攻克了,就利用他們的經驗吧。
解決機器學習問題的知識許多,當然它們可能都在書本或學術出版物中。但你能夠訪問它們。
做好你的功課。在谷歌谷歌圖書谷歌學術上搜尋。還能夠去機器學習的網路社群。
假設你正要實現乙個演算法:
必須實現它嗎?可不能夠在某個庫或工具中找到開源的實現復用呢?
你的實現必須從頭做起嗎?可不能夠對現有的開源實現進行**審查。從中學習或是移植呢?
你必須對標準演算法描寫敘述編碼嗎?在其他書**或是帖子中沒有別的演算法描寫敘述可供**審查及借鑑呢?
假設你正要求解某個問題:
你必須測試針對這個問題的全部演算法嗎?這一問題或是同一大類相似問題有沒有研究成果顯示一些演算法或演算法類表現良好可供利用?
你必須自己蒐集資料嗎?有沒有公開的資料集或是api你能夠直接使用或是作為你問題的替代,以高速弄清哪種方法能夠有良好表現?
你必須優化演算法的引數嗎?在對演算法的研究和**中有沒有可用的啟示式方法來配置演算法呢?
假設你在程式設計函式庫或是特定某一資料結構方面遇到問題。你會選擇什麼策略,在機器學習領域就用同樣的策略吧。參與網路社群並尋求可供利用的資源。能夠加速你的學習和專案開發程序。入門階段能夠考慮論壇和問答站點,之後能夠與學者和專家聯絡。
5.忽視數學
起步階段你並不須要數學理論,可是數學在機器學習中地位重要。
由於它能提供最有效、最清晰的方法描寫敘述問題及系統的行為。
忽略演算法中的數學方法會導致諸多問題。如對某一方法理解有限或是對演算法編碼時受到限制。舉個樣例,非常多機器學習演算法的核心優化是增量式的演進。
假設你能明確優化的本質(凸函式),你就能利用這些知識來使用高效的優化演算法。
將演算法的數學方法內化於心過程緩慢。但你的功力卻也隨之提公升。特別是假設你要從零開始實現高階演算法,包含演算法的內部優化,多多花時間從數學角度來理解演算法吧。
總結你從本帖學到了程式猿在機器學習的入門階段easy犯的5個錯誤。
5個教訓是:
1 別把機器學習看得高不可攀
2 別寫機器學習的**
3 別手動搞定一切
4 別對常見問題反覆求解
5 別忽視數學
MySQL入門階段總結
show character set 檢視當前mysql服務例項支援字符集等 show variables like character 檢視當前mysql服務例項使用的字符集。create database name 資料庫名 建立資料庫 show databases 檢視所有資料庫 show d...
機器學習入門階段程式設計師易犯的5個錯誤
怎樣進入機器學習領域沒有定式。我們的學習方式都有些許不同,學習的目標也因人而異。但乙個共同的目標就是要能盡快上手。如果這也是你的目標,那麼這篇文章為你列舉了程式設計師們在通往機器學習高手道路上常見的五種錯誤。機器學習不過是另一堆技術的集合,你可以用它來解決複雜問題。這是乙個飛速發展的領域,因此,機器...
機器學習專案階段
2.資料預處理。資料處理大概會佔到整個50 70 的工作量,通過資料洗清 分詞 詞性標註 去停用詞四個大的方面來完成語料的預處理工作。3.特徵工程。做完語料預處理之後,接下來需要考慮如何把分詞之後的字和詞語表示成計算機能夠計算的型別。把中文分詞的字串轉換成數字,有兩種常用的表示模型分別是詞袋模型和詞...