一文讀懂|什么是機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)(Machine Learning)本質(zhì)上就是讓計(jì)算機(jī)自己在數(shù)據(jù)中學(xué)習(xí)規(guī)律,并根據(jù)所得到的規(guī)律對(duì)未來(lái)數(shù)據(jù)進(jìn)行預(yù)測(cè)。機(jī)器學(xué)習(xí)包括如聚類、分類、決策樹(shù)、貝葉斯、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)(Deep Learning)等算法。
機(jī)器學(xué)習(xí)的基本思路是模仿人類學(xué)習(xí)行為的過(guò)程,如我們?cè)诂F(xiàn)實(shí)中的新問(wèn)題一般是通過(guò)經(jīng)驗(yàn)歸納,總結(jié)規(guī)律,從而預(yù)測(cè)未來(lái)的過(guò)程。機(jī)器學(xué)習(xí)的基本過(guò)程如下:
機(jī)器學(xué)習(xí)基本過(guò)程
機(jī)器學(xué)習(xí)發(fā)展簡(jiǎn)史
從機(jī)器學(xué)習(xí)發(fā)展的過(guò)程上來(lái)說(shuō),其發(fā)展的時(shí)間軸如下所示:
機(jī)器學(xué)習(xí)發(fā)展歷程
從上世紀(jì)50年代的圖靈測(cè)試提出、塞繆爾開(kāi)發(fā)的西洋跳棋程序,標(biāo)志著機(jī)器學(xué)習(xí)正式進(jìn)入發(fā)展期。
· 60年代中到70年代末的發(fā)展幾乎停滯。
· 80年代使用神經(jīng)網(wǎng)絡(luò)反向傳播(BP)算法訓(xùn)練的多參數(shù)線性規(guī)劃(MLP)理念的提出將機(jī)器學(xué)習(xí)帶入復(fù)興時(shí)期。
· 90年代提出的“決策樹(shù)”(ID3算法),再到后來(lái)的支持向量機(jī)(SVM)算法,將機(jī)器學(xué)習(xí)從知識(shí)驅(qū)動(dòng)轉(zhuǎn)變?yōu)閿?shù)據(jù)驅(qū)動(dòng)的思路。
· 21世紀(jì)初Hinton提出深度學(xué)習(xí)(Deep Learning),使得機(jī)器學(xué)習(xí)研究又從低迷進(jìn)入蓬勃發(fā)展期。
從2012年開(kāi)始,隨著算力提升和海量訓(xùn)練樣本的支持,深度學(xué)習(xí)(Deep Learning)成為機(jī)器學(xué)習(xí)研究熱點(diǎn),并帶動(dòng)了產(chǎn)業(yè)界的廣泛應(yīng)用。
機(jī)器學(xué)習(xí)分類
機(jī)器學(xué)習(xí)經(jīng)過(guò)幾十年的發(fā)展,衍生出了很多種分類方法,這里按學(xué)習(xí)模式的不同,可分為監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。
監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)(Supervised Learning)是從有標(biāo)簽的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)模型,然后對(duì)某個(gè)給定的新數(shù)據(jù)利用模型預(yù)測(cè)它的標(biāo)簽。如果分類標(biāo)簽精確度越高,則學(xué)習(xí)模型準(zhǔn)確度越高,預(yù)測(cè)結(jié)果越精確。
監(jiān)督學(xué)習(xí)主要用于回歸和分類。
常見(jiàn)的監(jiān)督學(xué)習(xí)的回歸算法有線性回歸、回歸樹(shù)、K鄰近、Adaboost、神經(jīng)網(wǎng)絡(luò)等;常見(jiàn)的監(jiān)督學(xué)習(xí)的分類算法有樸素貝葉斯、決策樹(shù)、SVM、邏輯回歸、K鄰近、Adaboost、神經(jīng)網(wǎng)絡(luò)等。
半監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)(Semi-Supervised Learning)是利用少量標(biāo)注數(shù)據(jù)和大量無(wú)標(biāo)注數(shù)據(jù)進(jìn)行學(xué)習(xí)的模式,側(cè)重于在有監(jiān)督的分類算法中加入無(wú)標(biāo)記樣本來(lái)實(shí)現(xiàn)半監(jiān)督分類。
常見(jiàn)的半監(jiān)督學(xué)習(xí)算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等。
無(wú)監(jiān)督學(xué)習(xí)
無(wú)監(jiān)督學(xué)習(xí)(Unsupervised Learning)是從未標(biāo)注數(shù)據(jù)中尋找隱含結(jié)構(gòu)的過(guò)程,主要用于關(guān)聯(lián)分析、聚類和降維。
常見(jiàn)的無(wú)監(jiān)督學(xué)習(xí)算法有稀疏自編碼(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)等。
強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)(Reinforcement Learning)類似于監(jiān)督學(xué)習(xí),但未使用樣本數(shù)據(jù)進(jìn)行訓(xùn)練,是通過(guò)不斷試錯(cuò)進(jìn)行學(xué)習(xí)的模式,常用于機(jī)器人避障、棋牌類游戲、廣告和推薦等應(yīng)用場(chǎng)景中。
在強(qiáng)化學(xué)習(xí)中,有兩個(gè)可以進(jìn)行交互的對(duì)象:智能體(Agnet)和環(huán)境(Environment),還有四個(gè)核心要素:策略(Policy)、回報(bào)函數(shù)(收益信號(hào),Reward Function)、價(jià)值函數(shù)(Value Function)和環(huán)境模型(Environment Model),其中環(huán)境模型是可選的。
為了便于讀者理解,用灰色圓點(diǎn)代表沒(méi)有標(biāo)簽的數(shù)據(jù),其他顏色的圓點(diǎn)代表不同的類別有標(biāo)簽數(shù)據(jù)。監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)的示意圖如下所示:
機(jī)器學(xué)習(xí)應(yīng)用之道
機(jī)器學(xué)習(xí)是將現(xiàn)實(shí)中的問(wèn)題抽象為數(shù)學(xué)模型,利用歷史數(shù)據(jù)對(duì)數(shù)據(jù)模型進(jìn)行訓(xùn)練,然后基于數(shù)據(jù)模型對(duì)新數(shù)據(jù)進(jìn)行求解,并將結(jié)果再轉(zhuǎn)為現(xiàn)實(shí)問(wèn)題的答案的過(guò)程。機(jī)器學(xué)習(xí)一般的應(yīng)用實(shí)現(xiàn)步驟如下:
· 將現(xiàn)實(shí)問(wèn)題抽象為數(shù)學(xué)問(wèn)題
· 數(shù)據(jù)準(zhǔn)備
· 選擇或創(chuàng)建模型
· 模型訓(xùn)練及評(píng)估
· 預(yù)測(cè)結(jié)果
這里我們以Kaggle上的一個(gè)競(jìng)賽Cats vs. Dogs(貓狗大戰(zhàn))為例來(lái)進(jìn)行簡(jiǎn)單介紹,感興趣的可親自實(shí)驗(yàn)。
1. 現(xiàn)實(shí)問(wèn)題抽象為數(shù)學(xué)問(wèn)題
現(xiàn)實(shí)問(wèn)題:給定一張圖片,讓計(jì)算機(jī)判斷是貓還是狗?
數(shù)學(xué)問(wèn)題:二分類問(wèn)題,1表示分類結(jié)果是狗,0表示分類結(jié)果是貓。
2. 數(shù)據(jù)準(zhǔn)備
下載kaggle貓狗數(shù)據(jù)集解壓后分為3個(gè)文件train.zip、test.zip和sample_submission.csv。
數(shù)據(jù)下載地址:https://www.kaggle.com/c/dogs-vs-cats
train訓(xùn)練集包含了25000張貓狗的圖片,貓狗各一半,每張圖片包含圖片本身和圖片名。命名規(guī)則根據(jù)“type.num.jpg”方式命名。
訓(xùn)練集示例
test測(cè)試集包含了12500張貓狗的圖片,沒(méi)有標(biāo)定是貓還是狗,每張圖片命名規(guī)則根據(jù)“num.jpg”命名。
測(cè)試集示例
sample_submission.csv需要將最終測(cè)試集的測(cè)試結(jié)果寫(xiě)入.csv文件中。
sample_submission示例
我們將數(shù)據(jù)分成3個(gè)部分:訓(xùn)練集(60%)、驗(yàn)證集(20%)、測(cè)試集(20%),用于后面的驗(yàn)證和評(píng)估工作。
3. 選擇模型
機(jī)器學(xué)習(xí)有很多模型,需要選擇哪種模型,需要根據(jù)數(shù)據(jù)類型,樣本數(shù)量,問(wèn)題本身綜合考慮。
如本問(wèn)題主要是處理圖像數(shù)據(jù),可以考慮使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)模型來(lái)實(shí)現(xiàn)二分類,因?yàn)檫x擇CNN的優(yōu)點(diǎn)之一在于避免了對(duì)圖像前期預(yù)處理過(guò)程(提取特征等)。
4. 模型訓(xùn)練及評(píng)估
我們預(yù)先設(shè)定損失函數(shù)Loss計(jì)算得到的損失值,通過(guò)準(zhǔn)確率Accuracy來(lái)評(píng)估訓(xùn)練模型。損失函數(shù)LogLoss作為模型評(píng)價(jià)指標(biāo):
準(zhǔn)確率(accuracy)來(lái)衡量算法預(yù)測(cè)結(jié)果的準(zhǔn)確程度:
TP(True Positive)是將正類預(yù)測(cè)為正類的結(jié)果數(shù)目
FP(False Positive)是將負(fù)類預(yù)測(cè)為正類的結(jié)果數(shù)目
TN(True Negative)是將負(fù)類預(yù)測(cè)為負(fù)類的結(jié)果數(shù)目
FN(False Negative)是將正類預(yù)測(cè)為負(fù)類的結(jié)果數(shù)目
訓(xùn)練過(guò)中的 loss 和 accuracy
5. 預(yù)測(cè)結(jié)果
訓(xùn)練好的模型,我們載入一張圖片,進(jìn)行識(shí)別,看看識(shí)別效果:
機(jī)器學(xué)習(xí)趨勢(shì)分析
機(jī)器學(xué)習(xí)正真開(kāi)始研究和發(fā)展應(yīng)該從80年代開(kāi)始,我們借助AMiner平臺(tái),將近些年機(jī)器學(xué)習(xí)論文進(jìn)行統(tǒng)計(jì)分析所生成的發(fā)展趨勢(shì)圖如下所示:
可以看出,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network)、強(qiáng)化學(xué)習(xí)(Reinforcement Learning)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)、生成模型(Generative Model)、圖像分類(Image Classification)、支持向量機(jī)(Support Vector Machine)、遷移學(xué)習(xí)(Transfer Learning)、主動(dòng)學(xué)習(xí)(Active Learning)、特征提取(Feature Extraction)是機(jī)器學(xué)習(xí)的熱點(diǎn)研究。
以深度神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)為代表的深度學(xué)習(xí)相關(guān)的技術(shù)研究熱度上升很快,近幾年仍然是研究熱點(diǎn)。
評(píng)論