本文主要參考scikit-learn機器學習 常用演算法原理及程式設計實踐
原始碼連線
本文包括 介紹機器學習應用,機器學習的分類,機器學習開發的典型步驟
得益於摩爾定律,計算機硬體(cpu、gpu)為很多通過大量資料學習的演算法提供很好的條件,這類演算法稱為機器學習演算法。
傳統演算法:資料 + 人工設計的演算法 = 輸出結果
機器學習:首先,資料 + 機器學習演算法 + 結果 = 演算法模型
然後,資料 + 演算法模型 = 輸出結果
或者,資料 + 機器學習模型 = 輸出結果 (無監督)
所謂的人工智慧,最火熱的三個大方向:影象處理,自然語言處理(nlp),語音處理 。基於語音序列資料、影象畫素資料和文字序列化資料,使用較為複雜的學習演算法與所需求的輸出,求的一些靠人為很難設計的演算法 來得到一些不可思議的效果。在機器學習中,有一類基於神經網路的演算法集合,稱為深度學習演算法,是目前應用最火的演算法,當然還有強化學習,對抗神經網路等,但這系列文章不做過多介紹。
影象處理:影象分類、影象檢測、影象分割、影象搜尋、影象恢復、影象生成(gan)、影象翻譯(cnn+rnn)、風格遷移等。具體應用在工業零件目標檢測(可能傳統方法多一些),無人駕駛中獲取道路資訊(往往配合著物理感測器),人臉識別等等。
自然語言處理、語音識別暫不多做介紹。
主要分為兩大類:有監督學習和無監督學習
有監督學習可以根據資料的型別(連續型資料、離散性資料)分為回歸學習或分類學習。
無監督學習主要有聚類演算法等
1)資料採集和標記
資料驅動的科學當然最關鍵的是資料了,目前演算法大多都開源,但資料不是每個人都有。很多公司真的是積累了很多很多的資料了。可能自從網上有會員機制開始的吧。
根據你的專案需求,採集相關的資料(人臉、車牌等),並做標記(很多為人工標記,也有一些自動標記的演算法)。
2)資料清洗(預處理)
資料清洗主要包括去掉重複的資料及雜訊資料,讓資料具備結構化特徵,以方便作為機器學習演算法的輸入。
3)特徵選擇
我們資料處理好了,但是不能直接的扔進演算法中。要選擇幾類特徵做為輸入,比如說房價**選擇地域、交通、學校、**等,影象選擇haar、hog、lbp等。
或者可以通過模型自動選則特徵,比如pca演算法。(影象可以通過卷積神經網路自動提取特徵,文字也可以通過迴圈神經網路自動提取特徵。。。不過是屬於深度學習範疇了)
4)模型選擇
接下裡選擇一下把資料扔進哪乙個模型中呢?當然這個需要考慮很多了,比如資料的規模,訓練的時間,模型準確率,模型檢測速度等。模型學習多了,最後也就有個對比知道怎麼選了,主要是經驗和總結的問題。
5)模型訓練和測試
模型訓練前,很多很多的引數、超引數需要自己定義,也有很多加速訓練的機制等。定義好了不僅可以加快網路的訓練,還能提高準確率。引數超引數主要包括:
使用交叉驗證的方法,選擇更好的模型。
6)模型效能評估和優化
評估標準:訓練時長,模型擬合,準確率(p、r)
7)模型使用
訓練好的模型可以把引數儲存起來,使用時直接載入。
機器學習(介紹)
a computer program is said to learn from experienceewith respect to some class of taskstand performance measurep,if its performance at tasks int,as me...
機器學習介紹
機器學習是一種能夠賦予機器學習的能力以此讓它完成直接程式設計無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用資料,訓練出模型,然後使用模型 的一種方法。機器學習界的乙個特色就是演算法眾多,發展百花齊放。以下六個演算法是使用最多,影響最廣 按照訓練的資料有無標籤,可以將上面演算法分為...
機器學習介紹
機器學習面對的是高度不確定的世界中的問題e.g.傳統垃圾郵件分類問題 傳統解決思路 設定規則,定義 垃圾郵件 讓計算機去執行規則。問題 對很多問題規則難以定義,比如識別乙隻貓或人臉識別。且規則總在不斷變化。新思路 借鑑人類學習的過程,資料 學習歸納總結 知識經驗積累 對類似問題做出正確反應 機器學習...