選單

人工智慧應用技術之機器學習(通識篇)

機器學習定義

機器學習(Machine Learning)本質上就是讓計算機自己在資料中學習規律,並根據所得到的規律對未來資料進行預測。

機器學習包括如聚類、分類、決策樹、貝葉斯、神經網路、深度學習(Deep Learning)等演算法。

機器學習的基本思路是

模仿人類學習行為的過程

,如我們在現實中的新問題一般是透過經驗歸納,總結規律,從而預測未來的過程。機器學習的基本過程如下:

人工智慧應用技術之機器學習(通識篇)

機器學習基本過程

機器學習發展歷程

從機器學習發展的過程上來說,其發展的時間軸如下所示:

人工智慧應用技術之機器學習(通識篇)

機器學習發展歷程

從上世紀50年代的圖靈測試提出、塞繆爾開發的西洋跳棋程式,標誌著機器學習正式進入發展期。

60年代中到70年代末的發展幾乎停滯。

80年代使用神經網路反向傳播(BP)演算法訓練的多引數線性規劃(MLP)理念的提出將機器學習帶入復興時期。

90年代提出的“決策樹”(ID3演算法),再到後來的支援向量機(SVM)演算法,將機器學習從知識驅動轉變為資料驅動的思路。

21世紀初Hinton提出深度學習(Deep Learning),使得機器學習研究又從低迷進入蓬勃發展期。

從2012年開始,隨著算力提升和海量訓練樣本的支援,深度學習(Deep Learning)成為機器學習研究熱點,並帶動了產業界的廣泛應用。

機器學習分類

機器學習經過幾十年的發展,衍生出了很多種分類方法,這裡按學習模式的不同,可分為

監督學習

半監督學習

無監督學習

強化學習

監督學習

監督學習(Supervised Learning)是從有標籤的訓練資料中學習模型,然後對某個給定的新資料利用模型預測它的標籤。如果分類標籤精確度越高,則學習模型準確度越高,預測結果越精確。

監督學習主要用於

迴歸

分類。

人工智慧應用技術之機器學習(通識篇)

常見的監督學習的迴歸演算法有線性迴歸、迴歸樹、K鄰近、Adaboost、神經網路等。

常見的監督學習的分類演算法有樸素貝葉斯、決策樹、SVM、邏輯迴歸、K鄰近、Adaboost、神經網路等。

半監督學習

半監督學習(Semi-Supervised Learning)是利用少量標註資料和大量無標註資料進行學習的模式。

半監督學習側重於在有監督的分類演算法中加入無標記樣本來實現

半監督分類

常見的半監督學習演算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等。

無監督學習

無監督學習(Unsupervised Learning)是從未標註資料中尋找隱含結構的過程。

無監督學習主要用於

關聯分析、聚類和降維

常見的無監督學習演算法有稀疏自編碼(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means演算法(K均值演算法)、DBSCAN演算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望演算法(Expectation-Maximization algorithm, EM)等。

強化學習

強化學習(Reinforcement Learning)類似於監督學習,但未使用樣本資料進行訓練,是是透過不斷試錯進行學習的模式。

在強化學習中,有兩個可以進行互動的物件:

智慧體(Agnet)

環境(Environment)

,還有四個核心要素:

策略(Policy)

回報函式

(收益訊號,Reward Function)、

價值函式

(Value Function)和

環境模型(

Environment Model),其中環境模型是可選的。

強化學習常用於機器人避障、棋牌類遊戲、廣告和推薦等應用場景中。

為了便於讀者理解,用灰色圓點代表沒有標籤的資料,其他顏色的圓點代表不同的類別有標籤資料。監督學習、半監督學習、無監督學習、強化學習的示意圖如下所示:

機器學習應用之道

機器學習是將現實中的問題抽象為數學模型,利用歷史資料對資料模型進行訓練,然後基於資料模型對新資料進行求解,並將結果再轉為現實問題的答案的過程。機器學習一般的應用實現步驟如下:

將現實問題抽象為數學問題;

資料準備;

選擇或建立模型;

模型訓練及評估;

預測結果;

人工智慧應用技術之機器學習(通識篇)

這裡我們以Kaggle上的一個競賽Cats vs。 Dogs(貓狗大戰)為例來進行簡單介紹,感興趣的可親自實驗。

現實問題抽象為數學問題

現實問題:給定一張圖片,讓計算機判斷是貓還是狗?

數學問題:二分類問題,1表示分類結果是狗,0表示分類結果是貓。

2.資料準備

資料下載地址:

https://www。kaggle。com/c/dogs-vs-cats。下載 kaggle 貓狗資料集解壓後分為 3 個檔案 train。zip、 test。zip 和 sample_submission。csv。

train 訓練集包含了 25000 張貓狗的圖片,貓狗各一半,每張圖片包含圖片本身和圖片名。命名規則根據 “type。num。jpg” 方式命名。

人工智慧應用技術之機器學習(通識篇)

訓練集示例

test 測試集包含了 12500 張貓狗的圖片,沒有標定是貓還是狗,每張圖片命名規則根據“num。jpg”命名。

人工智慧應用技術之機器學習(通識篇)

測試集示例

sample_submission。csv 需要將最終測試集的測試結果寫入。csv 檔案中。

人工智慧應用技術之機器學習(通識篇)

sample_submission示例

我們將資料分成3個部分:訓練集(60%)、驗證集(20%)、測試集(20%),用於後面的驗證和評估工作。

3.選擇模型

機器學習有很多模型,需要選擇哪種模型,需要根據資料型別,樣本數量,問題本身綜合考慮

如本問題主要是處理影象資料,可以考慮使用卷積神經網路(Convolutional Neural Network, CNN)模型來實現二分類,因為選擇CNN的優點之一在於避免了對影象前期預處理過程(提取特徵等)。貓狗識別的卷積神經網路結構如下面所示:00:06

最下層是網路的輸入層(Input Layer),用於讀入影象作為網路的資料輸入;最上層是網路的輸出層(Output Layer),其作用是預測並輸出讀入影象的類別,由於只需要區分貓和狗,因此輸出層只有2個神經計算單元;位於輸入和輸出層之間的,都稱之為隱含層(Hidden Layer),也叫卷積層(Convolutional Layer),這裡設定3個隱含層。

4.模型訓練及評估

我們預先設定損失函式Loss計算得到的損失值,透過準確率Accuracy來評估訓練模型。損失函式LogLoss作為模型評價指標:

人工智慧應用技術之機器學習(通識篇)

準確率(accuracy)來衡量演算法預測結果的準確程度:

TP(True Positive)是將正類預測為正類的結果數目。

FP(False Positive)是將負類預測為正類的結果數目。

TN(True Negative)是將負類預測為負類的結果數目。

FN(False Negative)是將正類預測為負類的結果數目。

人工智慧應用技術之機器學習(通識篇)

訓練過中的 loss 和 accuracy

5.預測結果

訓練好的模型,我們載入一張圖片,進行識別,看看識別效果:

人工智慧應用技術之機器學習(通識篇)

機器學習趨勢分析

機器學習正真開始研究和發展應該從80年代開始,我們藉助AMiner平臺,將近些年機器學習論文進行統計分析所生成的發展趨勢圖如下所示:

人工智慧應用技術之機器學習(通識篇)

可以看出,深度神經網路(Deep Neural Network)、強化學習(Reinforcement Learning)、卷積神經網路(Convolutional Neural Network)、迴圈神經網路(Recurrent Neural Network)、生成模型(Generative Model)、影象分類(Image Classification)、支援向量機(Support Vector Machine)、遷移學習(Transfer Learning)、主動學習(Active Learning)、特徵提取(Feature Extraction)是機器學習的熱點研究。

以深度神經網路、強化學習為代表的深度學習相關的技術研究熱度上升很快,近幾年任是研究熱點。

最後,引用韓愈《進學解》中的一句話:“業精於勤,荒於嬉;行成於思,毀於隨。”。

版權歸原作者所有,如有侵權,請聯絡刪除。