国产午夜精品一区二区,色综合久久精品亚洲国产,国产精品亚洲lv粉色,少妇伦子伦精品无码STYLES

當前位置:首頁 > 最新資訊 > 行業資訊

機器學習和深度學習的區別到底是什么?

機器學習(ML)和深度學習(DL)算法流程

現在搞傳統ML相關的研究論文確實占比不太高,有的人吐槽DL就是個系統工程而已,沒有數學含金量。

但是無可否認的是DL是在太好用啦,極大地簡化了傳統ML的整體算法分析和學習流程,更重要的是在一些通用的領域任務刷新了傳統ML算法達不到的精度和準確率。

DL這幾年特別火,就像5年前的大數據一樣,不過DL其主要還是屬于ML的范疇領域內,所以這篇文章里面我們來嘮一嘮ML和DL的算法流程區別。

1、ML的算法流程

事實上ML研究的就是數據科學(聽上去有點無聊),下面是ML算法的主要流程:

數據集準備

探索性的對數據進行分析

數據預處理

數據分割

ML算法建模

選擇ML任務

最后就是評價ML算法對真實數據的應用情況如何

1.1 數據集

首先我們要研究的是數據的問題,數據集是構建ML模型流程的起點。簡單來說,數據集本質上是一個M×N矩陣,其中M代表列(特征),N代表行(樣本)。

列可以分解為X和Y,X是可以指特征、獨立變量或者是輸入變量。Y也是可以指類別標簽、因變量和輸出變量。

1.2 數據分析

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

探索性數據分析方法簡單來說就是去了解數據,分析數據,搞清楚數據的分布。主要注重數據的真實分布,強調數據的可視化,使分析者能一目了然看出數據中隱含的規律,從而得到啟發,以此幫助分析者找到適合數據的模型。

在一個典型的ML算法流程和數據科學項目里面,我做的第一件事就是通過 "盯住數據",以便更好地了解數據。個人通常使用的三大EDA方法包括:

描述性統計

平均數、中位數、模式、標準差。

數據可視化

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

數據整形

對數據進行透視、分組、過濾等。

1.3 數據預處理

數據預處理,其實就是對數據進行清理、數據整理或普通數據處理。指對數據進行各種檢查和校正過程,以糾正缺失值、拼寫錯誤、使數值正常化/標準化以使其具有可比性、轉換數據(如對數轉換)等問題。

例如對圖像進行resize成統一的大小或者分辨率。

數據的質量將對ML算法模型的質量好壞產生很大的影響。因此,為了達到最好的ML模型質量,傳統的ML算法流程中,其實很大一部分工作就是在對數據進行分析和處理。

一般來說,數據預處理可以輕松地占到ML項目流程中80%的時間,而實際的模型建立階段和后續的模型分析大概僅占到剩余的20%。

1.4 數據分割

訓練集 & 測試集

在ML模型的開發流程中,希望訓練好的模型能在新的、未見過的數據上表現良好。為了模擬新的、未見過的數據,對可用數據進行數據分割,從而將已經處理好的數據集分割成2部分:訓練集合測試集。

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

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

訓練集 & 驗證集 & 測試集

另一種常見的數據分割方法是將數據分割成3部分:

訓練集

驗證集

測試集

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

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

交叉驗證

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

這種交叉驗證的方法在ML流程中被廣泛的使用,但是DL中使用得比較少哈。

1.5 ML算法建模

下面是最有趣的部分啦,數據篩選和處理過程其實都是很枯燥乏味的,現在可以使用精心準備的數據來建模。根據taget變量(通常稱為Y變量)的數據類型,可以建立一個分類或回歸模型。

ML算法

ML算法可以大致分為以下三種類型之一:

監督學習

是一種ML任務,建立輸入X和輸出Y變量之間的數學(映射)關系。這樣的(X、Y)對構成了用于建立模型的標簽數據,以便學習如何從輸入中預測輸出。

無監督學習

是一種只利用輸入X變量的ML任務。X變量是未標記的數據,學習算法在建模時使用的是數據的固有結構。

強化學習

是一種決定下一步行動方案的ML任務,它通過試錯學習(trial and error learning)來實現這一目標,努力使reward回報最大化。

參數調優

傳說中的調參俠主要干的就是這個工作啦。超參數本質上是ML算法的參數,直接影響學習過程和預測性能。由于沒有萬能的超參數設置,可以普遍適用于所有數據集,因此需要進行超參數優化。

以隨機森林為例。在使用randomForest時,通常會對兩個常見的超參數進行優化,其中包括mtry和ntree參數。mtry(maxfeatures)代表在每次分裂時作為候選變量隨機采樣的變量數量,而ntree(nestimators)代表要生長的樹的數量。

另一種在10年前仍然非常主流的ML算法是支持向量機SVM。需要優化的超參數是徑向基函數(RBF)內核的C參數和gamma參數。C參數是一個限制過擬合的懲罰項,而gamma參數則控制RBF核的寬度。

調優通常是為了得出超參數的較佳值集,很多時候不要去追求找到超參一個最優值,其實調參俠只是調侃調侃,真正需要理解掌握算法原理,找到適合數據和模型的參數就可以啦。

特征選擇

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

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

1.6 ML任務

在監督學習中,兩個常見的ML任務包括分類和回歸。

分類

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

性能指標

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

回歸

最簡單的回歸模式,可以通過以下簡單等式很好地總結:Y = f(X)。其中,Y對應量化輸出變量,X指輸入變量,f指計算輸出值作為輸入特征的映射函數(從ML模型中得到)。

上面的回歸例子公式的實質是,如果X已知,就可以推導出Y。一旦Y被計算(預測)出來,一個流行的可視化方式是將真實值與預測值做一個簡單的散點圖,如下圖所示。

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

2、DL算法流程

DL事實上是ML中的一種范式,所以他們的主要流程是差不多的。DL則是優化了數據分析,建模過程的流程也是縮短了,由神經網絡統一了原來ML中百花齊放的算法。

在DL正式大規模使用之前呢,ML算法流程中藥花費很多時間去收集數據,然后對數據進行篩選,嘗試各種不同的特征提取ML算法,或者結合多種不同的特征對數據進行分類和回歸。

下面是ML算法的主要流程:主要從

數據集準備

數據預處理

數據分割

定義神經網絡模型

訓練網絡

DL不需要我們自己去提取特征,而是通過神經網絡自動對數據進行高維抽象學習,減少了特征工程的構成,在這方面節約了很多時間。

但是同時因為引入了更加深、更復雜的網絡模型結構,所以調參工作變得更加繁重啦。例如:定義神經網絡模型結構、確認損失函數、確定優化器,最后就是反復調整模型參數的過程。

猜你喜歡