1. 程式人生 > >機器學習(01)——機器學習簡介

機器學習(01)——機器學習簡介

最近在研究機器學習,隨手將學習的過程記錄下來,方面自己的學習與回顧

1. 機器學習是什麼?

機器學習(Machine Learning,ML)是專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能的一門科學技術。

它使用計算機技術,應用微積分、概率論、統計學、逼近論、凸分析、演算法等多種不同的理論與學科,針對分析目標建立有針對性的資料模型,通過對過往歷史資料的學習(分類、迴歸、聚類等),完成基本演算法模型,並能通過後續持續的學習(資料輸入),在將雜亂的資料轉換(輸出)成有用資訊的同時,還能不斷優化改造自身。

2. 機器學習能解決什麼問題?

對於學習,人的學習過程,是通過觀察(輸入),根據過往經驗對觀察到的內容進行思考(處理),最後得出結論(輸出)的過程。

而機器學習是計算機利用已有的資料(一般是海量資料),得出了某種模型(演算法模型),並利用此模型預測未來的一種方法。

機器學習主要解決的問題可以歸納為:優化,預測,相關性。可以說,只要是涉及到優化,預測,個性化相關的問題,機器學習和深度學習都可以處理。

比如說,我們去買百香果吃,我們沒有買百香果的經驗,不知道那些是甜的那些是酸的,然後我們買了一大堆回來,有大的、小的、輕的、重的、紅的、紫的、白的、黃的、果皮光滑的、幹皺的...然後每一個都嘗一便,最後發現,百香果原來有兩大類,紫紅和黃白兩類,紫紅類的,果皮越深(越紫越黑)的越甜,黃白類的越黃越甜,跟大小無關,跟果皮的光滑度無關,而同樣大小,越重的果汁越多。黃白類的比紫紅類的果子甜度更高一些。那麼下次去買的時候,自然就懂得如何挑選了。

而機器學習跟買水果的過程類似,通過建模(對水果甜度的判斷)、設計策略(針對百香果不同的形狀特性)和演算法(品嚐百香果,得出酸甜結論),然後輸入大量資料(一大堆不同種類與特徵的百香果)進行訓練,最後學會判斷的過程(知道什麼型別的百香果比較甜)。模型建好後,就可以針對更多的資料進行測試並輸出結果(下次去買水果直接挑選學習後的水果型別,可以直接根據特徵判斷酸甜度),而這些結果也將不斷的修正模型(買回來後繼續品嚐,觀察酸甜度,繼續總結經驗,調整判斷方法),提升模型的準確率,更好的幫我們預測資料。

當前,機器學習廣泛應用於搜尋引擎、垃圾郵件處理、廣告推薦、資料探勘、影象識別、自然語言處理、生物特徵識別、醫學診斷、證券投資分析、DNA序列測序、語音和手寫識別、機器人運用等諸多領域,且應用的領域越來越廣泛。

3. 學習機器學習,需要具備什麼能力?

入門學習機器學習,只需要掌握下面這些能力:

  • 瞭解一些數學基礎常識
  • 掌握一門程式語言(最好是python)

對於入門來說,不一定要具備了所有的數學理論基礎才能開始,不具備這些知識並不代表不能靈活操作各個機器學習庫,只是有些演算法的理解會更困難。這些基礎理論在後續需要慢慢補上,它們關係到你在AI領域天花板的高度。而直接從實踐入手,會更容易理解演算法,對後續演算法的深入學習也有很大的幫助。

而想進階成為專家,除了需要加強數學基礎理論(高數、線性代數、統計學、概率論、資訊理論等數學基礎)的學習外,還需要學習大資料相關的知識與技能(如:Hadoop、HBase、Spark、kafka、Flume、Sqoop、Storm等)。然後根據發展方向,有針對性的學習NLP、神經網路等內容,往更多更專業的領域深入學習。

4. 怎麼學?

學習機器學習,需要分階段循序漸進學習,儘量不要一下子就深入演算法的推導中(除非你的數學理論非常紮實),不要試圖掌握所有的相關數學知識再開始學習,否則很容易從入門到崩潰,從崩潰到放棄。

對於初學者,建議從這幾方面來學習:

  1. 首先了解什麼是機器學習,以及機器學習的相關理論常識,對機器學習有個總體的瞭解與認識。
  2. 知道有哪些學習資源,瞭解這些資源哪些適合初學者。
  3. 大體瞭解機器學習的技術棧,瞭解涉及哪些知識體系,然後與自己的技術體系進行比較,瞭解學習方向,並做好長期學習的計劃與心態。
  4. 然後花些時間,瞭解機器學習的常用專業術語,大概瞭解這些專業名詞的意思,方便後續學習時更容易理解學習內容(不需要全部瞭解,只需要大體知道是什麼就行了,在學習機器學習的過程中會不斷的加深學習與理解)。
  5. 接著直接進入學習,可以學習《機器學習實戰》這本書,也可以學習ApacheCN分享出來的文字或視訊教程,學習各種機器學習演算法,先實踐再到理論。
  6. 入門後再根據所要用到的基礎理論或機器學習相關演算法和知識點,再針對性的學習,逐步提高。

 

參考資料:

https://www.cnblogs.com/subconscious/p/4107357.html

https://github.com/apachecn/AiLearning/blob/master/docs/ml/1.%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%8