人工智能&機器學習&深度學習

機器學習:一切通過優(yōu)化方法挖掘數(shù)據(jù)中規(guī)律的學科。

?深度學習:一切運用了神經(jīng)網(wǎng)絡(luò)作為參數(shù)結(jié)構(gòu)進行優(yōu)化的機器學習算法。?

?強化學習:不僅能利用現(xiàn)有數(shù)據(jù),還可以通過對環(huán)境的探索獲得新數(shù)據(jù),并利用新數(shù)據(jù)循環(huán)往復地更新迭代現(xiàn)有模型的機器學習算法。學習是為了更好地對環(huán)境進行探索,而探索是為了獲取數(shù)據(jù)進行更好的學習。?

?深度強化學習:一切運用了神經(jīng)網(wǎng)絡(luò)作為參數(shù)結(jié)構(gòu)進行優(yōu)化的強化學習算法。

人工智能定義與分類

人工智能(Artificial Intelligence, AI)是機器,特別是計算機系統(tǒng)對人類智能過程的模擬。人工智能是一個愿景,目標就是讓機器像我們?nèi)祟愐粯铀伎寂c行動,能夠代替我們?nèi)祟惾プ龈鞣N各樣的工作人工智能研究的范圍非常廣,包括演繹、推理和解決問題、知識表示、學習、運動和控制、數(shù)據(jù)挖掘等眾多領(lǐng)域。

人工智能應(yīng)用場景分類

人工智能、機器學習與深度學習關(guān)系?

人工智能是一個宏大的愿景,目標是讓機器像我們?nèi)祟愐粯铀伎己托袆?,既包括增強我們?nèi)祟惸X力也包括增強我們體力的研究領(lǐng)域。而學習只是實現(xiàn)人工智能的手段之一,并且,只是增強我們?nèi)祟惸X力的方法之一。所以,人工智能包含機器學習。機器學習又包含了深度學習。

機器學習的算法流程

1)數(shù)據(jù)集準備、2)探索性的對數(shù)據(jù)進行分析、3)數(shù)據(jù)預處理、4)數(shù)據(jù)分割、5)機器學習算法建模、6)選擇機器學習任務(wù),到最后就是評價機器學習算法對實際數(shù)據(jù)的應(yīng)用情況如何。


機器學習算法流程

1 數(shù)據(jù)集

首先我們要研究的是數(shù)據(jù)的問題,數(shù)據(jù)集是構(gòu)建機器學習模型流程的起點。簡單來說,數(shù)據(jù)集本質(zhì)上是一個M×N矩陣,其中M代表列(特征),N代表行(樣本)。列可以分解為X和Y,X是可以指特征、獨立變量或者是輸入變量。Y也是可以指類別標簽、因變量和輸出變量。

數(shù)據(jù)集

2 數(shù)據(jù)分析

進行探索性數(shù)據(jù)分析(Exploratory data analysis, EDA)是為了獲得對數(shù)據(jù)的初步了解。EDA主要的工作是:對數(shù)據(jù)進行清洗,對數(shù)據(jù)進行描述(描述統(tǒng)計量,圖表),查看數(shù)據(jù)的分布,比較數(shù)據(jù)之間的關(guān)系,培養(yǎng)對數(shù)據(jù)的直覺,對數(shù)據(jù)進行總結(jié)等。

描述性統(tǒng)計:平均數(shù)、中位數(shù)、模式、標準差。

數(shù)據(jù)可視化:熱力圖(辨別特征內(nèi)部相關(guān)性)、箱形圖(可視化群體差異)、散點圖(可視化特征之間的相關(guān)性)、主成分分析(可視化數(shù)據(jù)集中呈現(xiàn)的聚類分布)等。

數(shù)據(jù)整形:對數(shù)據(jù)進行透視、分組、過濾等。

3 數(shù)據(jù)預處理

數(shù)據(jù)預處理,其實就是對數(shù)據(jù)進行清理、數(shù)據(jù)整理或普通數(shù)據(jù)處理。指對數(shù)據(jù)進行各種檢查和校正過程,以糾正缺失值、拼寫錯誤、使數(shù)值正?;?標準化以使其具有可比性、轉(zhuǎn)換數(shù)據(jù)(如對數(shù)轉(zhuǎn)換)等問題。一般來說,數(shù)據(jù)預處理可以輕松地占到機器學習項目流程中80%的時間,而實際的模型建立階段和后續(xù)的模型分析大概僅占到剩余的20%。

4 數(shù)據(jù)分割

訓練集 & 測試集

在機器學習模型的開發(fā)流程中,希望訓練好的模型能在新的、未見過的數(shù)據(jù)上表現(xiàn)良好。為了模擬新的、未見過的數(shù)據(jù),對可用數(shù)據(jù)進行數(shù)據(jù)分割,從而將已經(jīng)處理好的數(shù)據(jù)集分割成2部分:訓練集合測試集。

第一部分是較大的數(shù)據(jù)子集,用作訓練集(如占原始數(shù)據(jù)的80%);第二部分通常是較小的子集,用作測試集(其余20%的數(shù)據(jù))。

接下來,利用訓練集建立預測模型,然后將這種訓練好的模型應(yīng)用于測試集(即作為新的、未見過的數(shù)據(jù))上進行預測。根據(jù)模型在測試集上的表現(xiàn)來選擇最佳模型,為了獲得最佳模型,還可以進行超參數(shù)優(yōu)化。

訓練集 & 驗證集 & 測試集

另一種常見的數(shù)據(jù)分割方法是將數(shù)據(jù)分割成3部分:1)訓練集,2)驗證集和3)測試集。

訓練集用于建立預測模型,同時對驗證集進行評估,據(jù)此進行預測,可以進行模型調(diào)優(yōu)(如超參數(shù)優(yōu)化),并根據(jù)驗證集的結(jié)果選擇性能最好的模型。

驗證集的操作方式跟訓練集類似。不過值得注意的是,測試集不參與機器學習模型的建立和準備,是機器學習模型訓練過程中單獨留出的樣本集,用于調(diào)整模型的超參數(shù)和對模型的能力進行初步評估。通常邊訓練邊驗證,這里的驗證就是用驗證集來檢驗模型的初步效果。

交叉驗證

實際上數(shù)據(jù)是機器學習流程中最寶貴的,為了更加經(jīng)濟地利用現(xiàn)有數(shù)據(jù),通常使用N倍交叉驗證,將數(shù)據(jù)集分割成N個。在這樣的N倍數(shù)據(jù)集中,其中一個被留作測試數(shù)據(jù),而其余的則被用作建立模型的訓練數(shù)據(jù)。通過反復交叉迭代的方式來對機器學習流程進行驗證。

這種交叉驗證的方法在機器學習流程中被廣泛的使用,但是深度學習中使用得比較少哈。


交叉驗證

5 機器學習算法建模

根據(jù)taget變量(通常稱為Y變量)的數(shù)據(jù)類型,可以建立一個分類或回歸模型。

機器學習算法可以大致分為以下三種類型之一:

監(jiān)督學習:是一種機器學習任務(wù),建立輸入X和輸出Y變量之間的數(shù)學(映射)關(guān)系。這樣的(X、Y)對構(gòu)成了用于建立模型的標簽數(shù)據(jù),以便學習如何從輸入中預測輸出。即從給定的訓練數(shù)據(jù)集中學習出一個函數(shù),當新的數(shù)據(jù)到來時,可以根據(jù)這個函數(shù)預測結(jié)果。監(jiān)督學習的訓練集要求是包括輸入和輸出,也可以說是特征和目標。訓練數(shù)據(jù)中的目標是由人標注的。常見的監(jiān)督學習算法包括回歸分析和統(tǒng)計分類。

無監(jiān)督學習:是一種只利用輸入X變量的機器學習任務(wù)。X變量是未標記的數(shù)據(jù),學習算法在建模時使用的是數(shù)據(jù)的固有結(jié)構(gòu)。常見的無監(jiān)督學習算法有聚類。

半監(jiān)督學習:介于監(jiān)督學習與無監(jiān)督學習之間。它主要考慮如何利用少量的標注樣本和大量的未標注樣本進行訓練和分類的問題。

強化學習:是一種決定下一步行動方案的機器學習任務(wù),它通過試錯學習(trial and error learning)來實現(xiàn)這一目標,努力使reward回報最大化,達到目標會有正向反饋。

機器學習(ML)技術(shù)在預測中發(fā)揮了重要的作用,ML經(jīng)歷了多代的發(fā)展,形成了具有豐富的模型結(jié)構(gòu),例如:1.線性回歸。2.邏輯回歸。3.決策樹。4.支持向量機。5.貝葉斯模型。6.正則化模型。7.模型集成(ensemble)。8.神經(jīng)網(wǎng)絡(luò)。

特征選擇

特征選擇從字面上看就是從最初的大量特征中選擇一個特征子集的過程。除了實現(xiàn)高精度的模型外,機器學習模型構(gòu)建最重要的一個方面是獲得可操作的見解,為了實現(xiàn)這一目標,能夠從大量的特征中選擇出重要的特征子集非常重要。

特征選擇的任務(wù)本身就可以構(gòu)成一個全新的研究領(lǐng)域,在這個領(lǐng)域中,大量的努力都是為了設(shè)計新穎的算法和方法。從眾多可用的特征選擇算法中,一些經(jīng)典的方法是基于模擬退火和遺傳算法。除此之外,還有大量基于進化算法(如粒子群優(yōu)化、蟻群優(yōu)化等)和隨機方法(如蒙特卡洛)的方法

6 機器學習任務(wù)

Classification 分類,如垃圾郵件識別(detection, ranking)

一個訓練好的分類模型將一組變量作為輸入,并預測輸出的類標簽。下圖是由不同顏色和標簽表示的三個類。每一個小的彩色球體代表一個數(shù)據(jù)樣本。三類數(shù)據(jù)樣本在二維中的顯示,這種可視化圖可以通過執(zhí)行PCA分析并顯示前兩個主成分(PC)來創(chuàng)建;或者也可以選擇兩個變量的簡單散點圖可視化。

性能指標

如何知道訓練出來的機器學習模型表現(xiàn)好或壞?就是使用性能評價指標(metrics),一些常見的評估分類性能的指標包括準確率(AC)、靈敏度(SN)、特異性(SP)和馬太相關(guān)系數(shù)(MCC)。

Regression 回歸,例如股市預測

最簡單的回歸模式,可以通過以下簡單等式很好地總結(jié):Y = f(X)。其中,Y對應(yīng)量化輸出變量,X指輸入變量,f指計算輸出值作為輸入特征的映射函數(shù)(從機器學習模型中得到)。上面的回歸例子公式的實質(zhì)是,如果X已知,就可以推導出Y。一旦Y被計算(預測)出來,一個流行的可視化方式是將實際值與預測值做一個簡單的散點圖,如下圖所示。

對回歸模型的性能進行評估,以評估擬合模型可以準確預測輸入數(shù)據(jù)值的程度。評估回歸模型性能的常用指標是確定系數(shù)(R2)。此外,均方誤差(MSE)以及均方根誤差(RMSE)也是衡量殘差或預測誤差的常用指標。

Clustering 聚類,如 iPhoto 按人分組

Rule Extraction 規(guī)則提取,如數(shù)據(jù)挖掘

深度學習算法流程

深度學習實際上是機器學習中的一種范式,所以他們的主要流程是差不多的。深度學習則是優(yōu)化了數(shù)據(jù)分析,建模過程的流程也是縮短了,由神經(jīng)網(wǎng)絡(luò)統(tǒng)一了原來機器學習中百花齊放的算法。在深度學習正式大規(guī)模使用之前呢,機器學習算法流程中要花費很多時間去收集數(shù)據(jù),然后對數(shù)據(jù)進行篩選,嘗試各種不同的特征提取機器學習算法,或者結(jié)合多種不同的特征對數(shù)據(jù)進行分類和回歸。主要特點是使用多層非線性處理單元進行特征提取和轉(zhuǎn)換。每個連續(xù)的圖層使用前一層的輸出作為輸入。

主要流程:1)數(shù)據(jù)集準備、2)數(shù)據(jù)預處理、3)數(shù)據(jù)分割、4)定義神經(jīng)網(wǎng)絡(luò)模型,5)訓練網(wǎng)絡(luò)。

深度學習不需要我們自己去提取特征,而是通過神經(jīng)網(wǎng)絡(luò)自動對數(shù)據(jù)進行高維抽象學習,減少了特征工程的構(gòu)成,在這方面節(jié)約了很多時間。但是同時因為引入了更加深、更復雜的網(wǎng)絡(luò)模型結(jié)構(gòu),所以調(diào)參工作變得更加繁重啦。例如:定義神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)、確認損失函數(shù)、確定優(yōu)化器,最后就是反復調(diào)整模型參數(shù)的過程。

深度學習強調(diào)以下幾點:

(1)強調(diào)了模型結(jié)構(gòu)的重要性:深度學習所使用的深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)算法中,隱藏層往往會有多層,是具有多個隱藏層的深層神經(jīng)網(wǎng)絡(luò),而不是傳統(tǒng)“淺層神經(jīng)網(wǎng)絡(luò)”,這也正是“深度學習”的名稱由來。

(2)強調(diào)非線性處理:線性函數(shù)的特點是具備齊次性和可加性,因此線性函數(shù)的疊加仍然是線性函數(shù),如果不采用非線性轉(zhuǎn)換,多層的線性神經(jīng)網(wǎng)絡(luò)就會退化成單層的神經(jīng)網(wǎng)絡(luò),最終導致學習能力低下。深度學習引入激活函數(shù),實現(xiàn)對計算結(jié)果的非線性轉(zhuǎn)換,避免多層神經(jīng)網(wǎng)絡(luò)退化成單層神經(jīng)網(wǎng)絡(luò),極大地提高了學習能力。

(3)特征提取和特征轉(zhuǎn)換:深層神經(jīng)網(wǎng)絡(luò)可以自動提取特征,將簡單的特征組合成復雜的特征,也就是說,通過逐層特征轉(zhuǎn)換,將樣本在原空間的特征轉(zhuǎn)換為更高維度空間的特征,從而使分類或預測更加容易。與人工提取復雜特征的方法相比,利用大數(shù)據(jù)來學習特征,能夠更快速、方便地刻畫數(shù)據(jù)豐富的內(nèi)在信息。

在傳統(tǒng)的機器學習領(lǐng)域,監(jiān)督學習最大的問題是訓練數(shù)據(jù)標注成本比較高,而無監(jiān)督學習應(yīng)用范圍有限。利用少量的訓練樣本和大量無標注數(shù)據(jù)的半監(jiān)督學習一直是機器學習的研究重點。當前非常流行的深度學習GAN模型和半監(jiān)督學習的思路有相通之處,GAN是“生成對抗絡(luò)”(Generative Adversarial Networks)的簡稱,包括了一個生成模型G和一個判別模型D,GAN的目標函數(shù)是關(guān)于D與G的一個零和游戲,也是一個最小-最大化問題。GAN實際上就是生成模型和判別模型之間的一個模仿游戲。生成模型的目的,就是要盡量去模仿、建模和學習真實數(shù)據(jù)的分布規(guī)律;而判別模型則是要判別自己所得到的一個輸入數(shù)據(jù),究竟是來自于真實的數(shù)據(jù)分布還是來自于一個生成模型。通過這兩個內(nèi)部模型之間不斷的競爭,從而提高兩個模型的生成能力和判別能力。

DNN也演變成許多不同的網(wǎng)絡(luò)拓撲結(jié)構(gòu),所以有CNN(卷積神經(jīng)網(wǎng)絡(luò)),RNN(遞歸神經(jīng)網(wǎng)絡(luò)),LSTM(長期短期記憶),GAN(生成敵對網(wǎng)絡(luò)),轉(zhuǎn)移學習,注意模型(attention model)所有的這些被統(tǒng)稱為深度學習(Deep Learning)。

目前主流的深度學習框架:

Caffe 由Berkeley提出

TensorFlow 由Google提出 (Apache 2.0)

Torch (BSD License), facebook是主要使用者

MXNet 一個相對中立的機器學習框架(Apache 2.0), 被Amazon AWS使用

CNTK2 由Microsoft提出 (MIT License)


參考:https://zhuanlan.zhihu.com/p/455602945

? ? ? ? ? ?https://zhuanlan.zhihu.com/p/103373260

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容