最近在研究機器學習,隨手將學習的過程記錄下來,方面自己的學習與回顧
1. 機器學習是什么?
機器學習(Machine Learning,ML)是專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的一門科學技術。
它使用計算機技術,應用微積分、概率論、統計學、信息論、逼近論、凸分析、算法等多種不同的理論與學科,針對分析目標建立有針對性的數據模型,通過對過往歷史數據的學習(分類、回歸、聚類等),完成基本算法模型,並能通過后續持續的學習(數據輸入),在將雜亂的數據轉換(輸出)成有用信息的同時,還能不斷優化改造自身。
2. 機器學習能解決什么問題?
對於學習,人的學習過程,是通過觀察(輸入),根據過往經驗對觀察到的內容進行思考(處理),最后得出結論(輸出)的過程。
而機器學習是計算機利用已有的數據(一般是海量數據),得出了某種模型(算法模型),並利用此模型預測未來的一種方法。
機器學習主要解決的問題可以歸納為:優化,預測,相關性。可以說,只要是涉及到優化,預測,個性化相關的問題,機器學習和深度學習都可以處理。
比如說,我們去買百香果吃,我們沒有買百香果的經驗,不知道那些是甜的那些是酸的,然后我們買了一大堆回來,有大的、小的、輕的、重的、紅的、紫的、白的、黃的、果皮光滑的、干皺的...然后每一個都嘗一便,最后發現,百香果原來有兩大類,紫紅和黃白兩類,紫紅類的,果皮越深(越紫越黑)的越甜,黃白類的越黃越甜,跟大小無關,跟果皮的光滑度無關,而同樣大小,越重的果汁越多。黃白類的比紫紅類的果子甜度更高一些。那么下次去買的時候,自然就懂得如何挑選了。
而機器學習跟買水果的過程類似,通過建模(對水果甜度的判斷)、設計策略(針對百香果不同的形狀特性)和算法(品嘗百香果,得出酸甜結論),然后輸入大量數據(一大堆不同種類與特征的百香果)進行訓練,最后學會判斷的過程(知道什么類型的百香果比較甜)。模型建好后,就可以針對更多的數據進行測試並輸出結果(下次去買水果直接挑選學習后的水果類型,可以直接根據特征判斷酸甜度),而這些結果也將不斷的修正模型(買回來后繼續品嘗,觀察酸甜度,繼續總結經驗,調整判斷方法),提升模型的准確率,更好的幫我們預測數據。
當前,機器學習廣泛應用於搜索引擎、垃圾郵件處理、廣告推薦、數據挖掘、圖像識別、自然語言處理、生物特征識別、醫學診斷、證券投資分析、DNA序列測序、語音和手寫識別、機器人運用等諸多領域,且應用的領域越來越廣泛。
3. 學習機器學習,需要具備什么能力?
入門學習機器學習,只需要掌握下面這些能力:
- 了解一些數學基礎常識
- 掌握一門編程語言(最好是python)
對於入門來說,不一定要具備了所有的數學理論基礎才能開始,不具備這些知識並不代表不能靈活操作各個機器學習庫,只是有些算法的理解會更困難。這些基礎理論在后續需要慢慢補上,它們關系到你在AI領域天花板的高度。而直接從實踐入手,會更容易理解算法,對后續算法的深入學習也有很大的幫助。
而想進階成為專家,除了需要加強數學基礎理論(高數、線性代數、統計學、概率論、信息論等數學基礎)的學習外,還需要學習大數據相關的知識與技能(如:Hadoop、HBase、Spark、kafka、Flume、Sqoop、Storm等)。然后根據發展方向,有針對性的學習NLP、神經網絡等內容,往更多更專業的領域深入學習。
4. 怎么學?
學習機器學習,需要分階段循序漸進學習,盡量不要一下子就深入算法的推導中(除非你的數學理論非常扎實),不要試圖掌握所有的相關數學知識再開始學習,否則很容易從入門到崩潰,從崩潰到放棄。
對於初學者,建議從這幾方面來學習:
- 首先了解什么是機器學習,以及機器學習的相關理論常識,對機器學習有個總體的了解與認識。
- 知道有哪些學習資源,了解這些資源哪些適合初學者。
- 大體了解機器學習的技術棧,了解涉及哪些知識體系,然后與自己的技術體系進行比較,了解學習方向,並做好長期學習的計划與心態。
- 然后花些時間,了解機器學習的常用專業術語,大概了解這些專業名詞的意思,方便后續學習時更容易理解學習內容(不需要全部了解,只需要大體知道是什么就行了,在學習機器學習的過程中會不斷的加深學習與理解)。
- 接着直接進入學習,可以學習《機器學習實戰》這本書,也可以學習ApacheCN分享出來的文本或視頻教程,學習各種機器學習算法,先實踐再到理論。
- 入門后再根據所要用到的基礎理論或機器學習相關算法和知識點,再針對性的學習,逐步提高。
參考資料: