網上關於機器學習的文章,視頻不可勝數,原本寫這麼一篇東西,我本身也以爲有點多餘,可是我還真沒找到一個能幫助像我這樣零基礎的人,快速接觸和上手機器學習的文章。這篇文章不能讓你深刻學習和掌握機器學習的相關知識,可是必定能讓你快速瞭解什麼是機器學習,以及你到底要不要深刻學習,你須要提早學哪些東西來makes you ready。html
其實這個恐怕任何一個從業人員都已經瞭解了,我也不過多介紹了,用我本身的話來講就是:讓機器學會用接近人類思考的方式來學習新的技能,從而幫助人類從一些簡單的智能工做上解脫出來。好比車牌號識別、手寫識別、語音識別、圖片OCR等等。python
機器學習的流程能夠歸納爲幾大部分,分別是:設置數據集、劃分訓練集和測試集、構建計算網絡、訓練模型、測試模型以及其餘一些環節。設置數據集就是獲取測試數據,你不能用爬蟲隨便爬幾千個圖片來訓練,必須將圖片先轉化爲規範的數據集合,好比大小相同等。其餘的語音識別等,也須要先作相似的工做。幸運的是,你能夠註冊一個kaggle的帳號,來獲取一些已經採集好的標準數據集。第二步是劃分集合,一多半用來訓練,一小半用來測試,具體的比例你能夠自行測試調優。訓練集用來訓練模型,測試集用來評估訓練結果。爲了防止模型過於匹配某些訓練數據(術語叫作過擬合),訓練時每每是不停的隨機抽取樣本創建批次來進行訓練的,而不是分批次逐個批次訓練作到全覆蓋。後面的幾個環節,我就不細說了,網上最多的就是這個。在keras框架中,這三個環節也就是幾行代碼的事。c++
這個是我初學的時候最困擾個人問題之一。Matlab是一種開發工具,相似於python語言,通訊專業的孩子都懂的,常常用來繪製數學圖像。tensorflow是一套機器學習框架,你能夠詳細的設計和定製你的學習模型和流程,固然你須要大量的專業知識和技能才能作到。keras是最適合我這種入門小白學習的,可是抽象的級別太高,你仍是先了解下tensorflow再用比較好。它把不少tensorflow的功能(也可使用theano和其餘計算框架)都進行了更高層面的組合,讓你用不多的代碼就能實現不少功能。神經網絡CNN是主要用於圖像領域的計算框架,是一種計算模型,相似於基於Java或者PHP語言所使用的後端架構。實現的方式多種多樣,這種架構比較適合圖像識別(也能夠用於語音識別等)。後端
matplotlib庫是你必備的,這個是數學工具庫,主要用來繪製數學函數和圖像,很是的強大,很接近於Matlab的功能。這個網上也有專門的教程,建議先簡單學習一下。
而後是numpy庫,這個庫是科學計算領域經常使用的庫,專門用來作數字方面的工做,也是建議先學習一下。機器學習在某些時候,很接近於線性迴歸,而這個庫很適合用來建立大量的數字集合。
再以後是OpenCV庫,這個是專門用來作圖像處理的庫(我學的是python版本,原版貌似是c++開發的),包括攝像頭採集,圖像變換,圖像分析分類等等,功能很是的強悍,能夠說是計算機視覺領域必備的庫。網上也有專門的大量教程,也建議先學習一下,瞭解基礎用法。其中攝像頭人臉檢測(就是在圖像中識別出有沒有人臉),甚至已經內置了處理模型,能直接調用api檢測出來。api
想要開發出一個識別人臉或者動物的模型其實很簡單,可是可是可是!想要知道這個模型是如何設計的,以及設計一個屬於本身的模型去解決特定問題,這個是很難的。也就是說,寫代碼很簡單,關鍵是熟練使用各類數學模型組成計算框架。斯坦福大學在網易雲課堂上面有一個公開課,裏面全都是各類數學模型和公式,目前我還沒法駕馭,數學學渣感受壓力很大。若是你想深刻研究並解決你本身遇到的特定問題,那麼你須要熟練使用各類數學模型,還要知道如何評估本身的模型的準確率。星辰大海等着你去征服,少年。網絡
最後的最後,我學這個時間確實很短,必定會有不少遺漏和錯誤之處,若是你們發現了,請必定指出並最好附上文檔連接,你們共同窗習。架構
最後補充一些特別好的文章資料,供你們進一步閱讀:
https://zhuanlan.zhihu.com/p/... 專欄裏的文章都不錯,比較容易理解
http://www.cnblogs.com/neo-T/... 這是我看過的最簡單的入門文章
https://www.bilibili.com/vide... 這個up的視頻講的也不錯,真·手把手教框架