iT邦幫忙

1

模型、算法、模型結構、數據模型、訓練到底是不是一回事?看這裏就對了!

  • 分享至 

  • xImage
  •  

我們在看一些機器學習、人工智能、數據倉庫方面的資料時,經常會出現「神經網絡」、「深度學習算法」、「非監督學習」、「大模型」、「邏輯模型」等高頻詞彙。這些詞語有時會在同一篇文章中交叉出現,看似描述的是同一件事情,但所要表達的意思似乎又不盡相同,初學者很容易就被搞混了。

如果僅僅作爲宣傳報道或日常交流,並沒有太大問題,但若作爲專業人士,則要把概念的內涵和上下文搞搞清楚,否則很容易鬧出笑話。

我這裏先給出「模型 、算法、模型結構、數據模型、訓練」5個概念的精簡定義:

  • 模型:現實世界的數學表示或模擬,它是指一種結果。
  • 算法:執行特定任務的明確步驟序列。
  • 模型結構:模型的特定框架或架構。
  • 數據模型:描述數據對象、其關係及與其相關的操作的抽象結構。
  • 訓練:使用數據調整模型參數以改進模型性能的過程。

但即使你看懂了這五個概念的簡明定義,也不代表真正的理解其中的內涵,這裡我先問你一個問題:「支持向量機到底是指什麼?模型、算法亦或其它?」
接下來,就讓我詳細展開講講,答案會在最後揭曉~


一、算法

1.算法定義

算法的定義有許多版本,但其核心思想是一致的。算法可以被定義爲:一個明確的、有序的、有限的步驟集合,用於解決一個特定的問題或執行一個特定的任務。這個定義是非常通用的,適用於從最簡單的日常生活任務(例如烹飪食譜)到複雜的計算機科學問題的算法。

讓我們詳細分析這個定義:

  • 明確 (Clear) :算法的每一步都應該是清晰、無歧義的,這樣任何人都可以理解並按照算法的指示進行。
  • 有序 (Ordered) :步驟的順序是固定的,這確保了每次運行算法時,它都會產生相同的結果(如果輸入和初始條件保持不變)。
  • 有限 (Finite) :算法的執行不能無限期地進行,經過一定數量的步驟後,它應該結束。
  • 解決問題或執行任務 :算法的目的是解決某個特定的問題或執行某個特定的任務,無論是計算數字、排序列表,還是其他更復雜的任務。

事實上,我們可以把任何使計算機能夠按照我們預定目標運行的方法稱爲「算法」,不僅僅包括上面的舉例,在計算機領域常見的「冒泡排序」等基礎算法都可以算作「算法」的範疇,以下是冒泡算法的步驟流程:
https://ithelp.ithome.com.tw/upload/images/20251203/20106765Rll13MBFP9.jpg

2.機器學習算法定義

在機器學習和人工智能領域,「算法」這一詞語通常具有特定的含義和上下文。在這些領域,算法通常指的是:一種通過數據或經驗自動改進性能或逐漸適應某一任務的方法。

這個算法定義相對於傳統算法的特殊之處在於”學習”和”適應”。讓我們詳細分析這個定義:

  • 通過數據或經驗 :機器學習算法通常需要數據集來進行訓練。這些數據允許算法識別模式、做出預測或完成其他任務。
  • 自動改進性能 :隨着時間的推移和更多的數據輸入,機器學習算法旨在提高其任務的完成質量,無論是分類準確率、預測精度還是其他度量標準。
  • 逐漸適應某一任務 :這一點突出了機器學習算法的”學習”能力,即它們隨着時間的推移會變得更加擅長於特定的任務。

在機器學習和AI的上下文中,算法可能包括決策樹算法、神經網絡算法、遺傳算法等。每種算法都有其特定的學習方法和適用的任務類型。下面示例了決策樹ID3算法的實現步驟:
https://ithelp.ithome.com.tw/upload/images/20251203/20106765UsoCBohFkY.jpg

爲了更快更好地實現自己的算法,很多時候,人們喜歡把已經實現的、效果良好的算法做一些封裝,這樣,下次編寫算法的時候就可以直接拿來用了。我們常用的TensorFlow、PyTorch、MindSpore都是。

現在大模型中很熱的Transformer 可以被認爲是一種算法,因爲Transformer 描述瞭如何執行自注意力計算、如何結合輸入數據、如何通過神經網絡層傳遞數據等等,這個意義上的 “算法” 是描述模型在前向傳播和反向傳播期間所採取的計算步驟。


二、模型

1.模型定義

在更廣泛、跨學科的背景下,模型可以被定義爲:對現實世界某一部分的簡化和抽象表示,用於模擬、描述、預測或理解該部分的行爲或現象。這個定義的關鍵點包括:

  • 簡化和抽象 :由於完全模擬現實是不可能的或不切實際的,模型是對現實的簡化。它只包括對特定目的有關的部分,並忽略了不相關或次要的細節。
  • 表示現實世界的某一部分 :這可以是物理系統、經濟過程、生物實體、或任何其他可以觀察和描述的事物。
  • 模擬、描述、預測或理解 :模型的目的可以多種多樣。一些模型用於模擬真實世界的行爲(如飛行模擬器),其他模型可能用於預測(如氣象模型),還有一些模型用於理論研究和理解基本原理。
    下面是蘇27飛機模型:
    https://ithelp.ithome.com.tw/upload/images/20251203/20106765yrDDv32kdi.jpg

2、數據模型定義

數據模型和一般意義上的模型都是對現實世界事物的簡化和抽象表示,但數據模型體現的是現實世界或業務邏輯在數據層面的投影,是將數據元素以標準化的模式組織起來,用來模擬現實世界的信息框架和藍圖。比如通過抽象,數據模型可以爲世界的系統交互提供一個更易於理解和操作的視圖,可以專注於對特定任務或目標至關重要的實體和關係,從而忽略不相關或不重要的細節。
https://ithelp.ithome.com.tw/upload/images/20251203/201067651eHdd5eSOm.jpg

更具體的說,數據模型是對數據、數據關係、數據語義和數據約束的抽象描述和組織。它爲數據的結構化提供了一個框架,並確定了數據如何存儲、組織和處理。數據模型可以幫助確保數據的完整性、準確性和可用性。數據模型可以分爲不同的級別或類型,包括概念數據模型、概念邏輯模型及物理數據模型。下面是反映運營商業務的概念模型。
https://ithelp.ithome.com.tw/upload/images/20251203/201067659fOn2SMXoC.jpg

3、機器學習模型定義

機器學習模型也是對某種現象或數據的描述和抽象,與一般的基於某種理論、原則或經驗建立的模型不同,機器學習模型通過利用數據進行訓練得到某種數學結構,它旨在捕捉和代表數據間的模式或關係,以便對新的、未見過的數據進行預測或決策,它的關鍵點在於:

  • 通過數據訓練得到 :在機器學習中,模型通常不是手工創建或編程完成特定任務的,而是使用數據和特定的學習算法自動”學習”或調整其參數。
  • 數學結構 :模型在其核心是數學的,無論是線性迴歸中的線性方程,神經網絡中的權重和偏差,還是決策樹中的節點決策。
  • 捕捉和代表數據間的模式或關係 :模型的主要任務是理解數據中的潛在模式,並能夠基於這些模式做出決策或預測。
  • 對新的、未見過的數據進行預測或決策 :一個好的機器學習模型不僅可以很好地處理其在訓練期間看到的數據,而且可以推廣到其在訓練期間未見過的新數據。

邏輯迴歸模型的一個示例:
邏輯迴歸模型通常是通過一組特徵權重來定義的。它在某些軟件或庫中可能會保存爲特定格式的文件,例如在Python的scikit-learn中,可以使用joblib庫來保存模型。在更廣泛的範圍內,邏輯迴歸模型可以簡單地表示爲一個權重向量。假設我們有一個模型,用於根據兩個特徵(例如年齡和薪水)來預測一個人是否會購買某產品。我們的模型文件內容可能有以下結構:
Model: Logistic Regression
w1: 0.05
w2: -0.03
b: 2

w1對應年齡的權重,w2對應薪水的權重,b代表偏置,通過這些參數就可以基於輸入的數據進行預測了。但在真實環境中,這個文件會包含更多的元數據和附加信息,並且通常會以二進制或特定格式保存,以方便快速加載和使用。

決策樹模型的一個範例:
下面示例了一個鳶尾花數據集上訓練的決策樹模型,這個模型以二進制文件的形式存儲,我將它轉化成了文本描述,如下:
https://ithelp.ithome.com.tw/upload/images/20251203/20106765RaSU1zYnek.jpg
可以看到,決策樹首先查看”petal width (cm)”特徵。如果其值小於或等於0.80,則該樣本屬於類0。如果大於0.80,它將進一步檢查該特徵與其他特徵的值來決定樣本的類別。


三、模型結構

模型結構,通常在機器學習和深度學習的上下文中提及,指的是模型的設計或框架,它定義了模型的核心組件以及它們是如何相互連接的。模型結構包括模型的各個層、節點、權重、連接等元素,以及它們的佈局和組織。

以下是對模型結構的一些進一步解釋:

  • 層的定義 :例如,在神經網絡中,模型結構將定義有多少層、每層有多少節點。對於卷積神經網絡,模型結構還會定義卷積層、池化層、全連接層等的數量和順序。
  • 連接方式 :模型結構定義瞭如何連接各個節點或層。例如,全連接、局部連接、跳躍連接等。
  • 參數 :模型結構還定義了模型的參數。例如,在神經網絡中,這包括每個連接的權重和每個節點的偏差。
  • 激活函數 :模型結構中,每個節點或某些層可能會有激活函數,如ReLU、sigmoid或tanh。
  • 其他組件對於複雜的模型 :例如長短時記憶網絡(LSTM),模型結構會涉及更多的組件,如門控單元。

模型結構提供了模型的概覽,併爲模型的訓練和應用提供了框架。一旦定義了模型結構,您可以使用數據和算法來“訓練”模型,即找到模型參數的最優值。以下是一些常用的模型結構:

1、線性模型

線性迴歸(Linear Regression)
邏輯迴歸(Logistic Regression)

2、基於實例的模型

K最近鄰(K-Nearest Neighbors, K-NN)

3、決策樹模型

決策樹(Decision Trees)
隨機森林(Random Forests)
梯度提升樹(Gradient Boosting Trees)

4、支持向量機

線性支持向量機(Linear Support Vector Machines, SVM)
非線性支持向量機(Non-linear SVM)

5、集成方法

Bagging
Boosting(例如:AdaBoost,GBM,XGBoost, LightGBM)

6、神經網絡及其變種

多層感知機(Multilayer Perceptrons, MLP)
卷積神經網絡(Convolutional Neural Networks, CNN)
循環神經網絡(Recurrent Neural Networks, RNN)
長短時記憶網絡(Long Short-Term Memory, LSTM)
Transformer Networks
GANs(生成對抗網絡, Generative Adversarial Networks)

7、貝葉斯模型

樸素貝葉斯(Naive Bayes)
高斯過程(Gaussian Processes)

8、聚類模型

K-means
高斯混合模型(Gaussian Mixture Model, GMM)
DBSCAN

9、降維方法

主成分分析(Principal Component Analysis, PCA)
t-SNE (t-distributed Stochastic Neighbor Embedding)

10、其他

強化學習模型(Reinforcement Learning Models)
時間序列模型(例如:ARIMA,Prophet)
關聯規則學習模型(例如:Apriori,FP-Growth)

這些模型結構具有不同的應用領域和優勢。例如,CNN通常用於圖像處理任務,RNN和LSTM常用於序列數據如時間序列和自然語言處理任務,決策樹和其集成版本(如隨機森林)則在許多分類和迴歸任務中表現良好。

選擇哪種模型結構通常取決於問題的性質(例如,是分類、迴歸、聚類還是其他類型的問題),數據的類型(例如,是表格數據、圖像、文本還是序列數據)以及項目的需求(例如,解釋性、實時性、準確性等)。


四、訓練(學習)

在機器學習中,訓練是一個核心概念,指的是利用數據來“教”機器學習模型,從而使模型能夠爲特定的任務做出預測或決策的過程。

以下是訓練的詳細解釋:

  • 目標 :訓練的主要目標是調整模型的參數,使其能夠儘可能準確地表示或擬合訓練數據,並在新的、未見過的數據上做出有效的預測。
  • 過程 :開始時,模型通常是未經訓練的,具有隨機或預設的參數值。
    在訓練過程中,模型會反覆查看訓練數據,並嘗試調整其參數,以減少其預測與實際標籤之間的誤差。
    使用一個優化算法(如梯度下降)來指導如何更新參數。
  • 誤差/損失 :爲了量化模型的預測與實際值之間的差異,通常會使用一個損失函數。訓練的目標是最小化這個損失函數。
  • 迭代 :訓練通常涉及多次迭代,每次迭代都會對模型的參數進行微調,以減少誤差。
  • 過擬合與正則化 :雖然模型可能在訓練數據上表現得很好,但有時它可能過於複雜,導致在新數據上表現不佳。這種現象稱爲過擬合。爲了避免過擬合,可以使用各種正則化技巧。

簡而言之,訓練就是使用數據來“教”模型,使其能夠根據輸入做出有意義的預測。這通常通過調整模型的參數來實現,直到模型在訓練數據上的性能達到滿意的水平。


五、算法和模型的區別

從前面的定義可知,在機器學習中,算法是一種過程或方法,用於從數據中學習模式,而模型是這種學習的結果,它封裝了從數據中學到的知識,也是後期用於推理預測的基礎,是一套推理“規則”,它們的主要區別可以總結如下:

1.本質

  • 算法 :算法是一種解決問題的方法或過程。在機器學習中,算法通常描述如何從數據中學習,並如何調整模型的參數以優化其性能。
  • 模型 :模型是某種現象的簡化表示或描述。在機器學習中,模型是算法在特定數據集上訓練後的輸出,它能夠對新的輸入進行預測或分類。

2.形態

  • 算法 :是一組明確的步驟或規則,通常可以用數學公式、僞代碼或實際編程代碼來描述。
  • 模型 :可能是一組參數(例如線性迴歸中的權重和偏差)、一個決策樹結構、神經網絡的權重和偏置等。

3.持久性

  • 算法 :算法是靜態的,它不會因爲訓練數據的變化而變化。
  • 模型 :模型是動態的,它基於訓練數據和算法生成。不同的訓練數據或算法變化可能會產生不同的模型。

4.應用場景

  • 算法 :通常是通用的,可以應用於多個數據集和問題。
  • 模型 :是特定於某一任務或數據集的。例如,一個用於識別貓的模型可能不適用於預測房價。

因此,在我們說決策樹這個概念的時候,到底是指算法和模型,其實取決於上下文和你想表達的重點:

1.決策樹作爲模型 (Model)

當我們談論到一個特定的決策樹(例如,一個經過訓練的決策樹,用於分類某種數據),我們通常是在將其視爲一個模型。這個模型可以對新的數據進行預測或分類。
這種意義下的決策樹是一個表示決策規則和路徑的結構。

2.決策樹作爲算法 (Algorithm)

當我們談論如何從數據中構建決策樹時,我們是在描述一個算法過程。例如,ID3、C4.5和CART等都是決策樹學習的算法。
這些算法爲如何根據數據集選擇合適的特徵、如何進行分裂、以及如何構造樹提供了明確的步驟。

因此,決策樹既可以被認爲是一種模型(當描述其代表的決策規則時)也可以被認爲是算法(當描述如何從數據中構建決策樹時),一般來講,我們說決策樹模型的時候,如果沒有特別指定,應該指的是決策樹模型結構,如果有實例,那一般指用決策樹算法實現的某個具體的業務模型,比如鳶尾花決策樹模型。而當我們在說決策樹算法的時候,除非特別指明,往往是指決策樹的算法集,包括ID3、C4.5、CART等等。


六、算法、模型和訓練的關係

從模型視角看,模型是算法的輸出和訓練過程的產物。算法定義瞭如何從數據中更新模型的參數,而訓練則是這一過程的實際執行。從算法視角看,算法是訓練模型的指導策略。通過不斷地調整模型的參數,算法努力使模型更好地擬合訓練數據。從訓練視角看,訓練使用某種算法作爲指導,根據訓練數據調整模型的參數。訓練結束後,我們獲得了一個調整過的、用於預測或分類的模型。

  1. 在機器學習的過程開始時,研究者選擇或設計一個模型結構,這通常是基於問題的性質和可用數據的類型。
  2. 接下來,選擇一個算法來調整模型的參數。算法的選擇通常基於模型的性質和所需的優化策略。
  3. 有了模型結構和算法後,可以開始訓練過程。在訓練過程中,算法反覆調整模型的參數,使其更好地擬合數據,直到達到某種停止標準(例如,誤差下降到某個閾值或達到預定的迭代次數)。

讓我們以一個常見的例子來說明:手寫數字識別(例如,識別0–9的手寫數字)進行說明。

1. 選擇或設計模型結構

  • 問題的性質 :手寫數字識別是一個多分類問題,因爲我們想要從10個類別中(0到9)選擇一個。
  • 可用數據的類型 :我們有手寫數字的圖片,每張圖片是一個二維的像素陣列。
  • 選擇的模型 :考慮到問題的性質和數據類型,我們選擇一個卷積神經網絡(Convolutional Neural Network, CNN)爲模型結構。CNN在圖像分類任務中表現出色,因爲它可以捕捉到圖像的局部模式。

2、選擇一個算法來調整模型的參數

  • 模型的性質 :CNN是一個深度神經網絡,包含多個卷積層、池化層和全連接層。
  • 選擇的算法 :基於模型的性質,我們選擇使用隨機梯度下降(Stochastic Gradient Descent, SGD)及其變種,如Adam或RMSprop,作爲優化算法。這些算法已被證明在深度神經網絡的訓練中效果很好。

3、開始訓練過程
使用MNIST數據集(一個手寫數字的標準數據集),我們將每個手寫數字圖片的像素值輸入到我們的CNN模型中。
在訓練過程中,算法(例如Adam)反覆調整模型的權重和偏置,使其更好地擬合訓練數據。

  • 停止標準 :我們可以設置當驗證集上的分類準確率不再提高或者誤差不再顯著下降時,停止訓練。或者簡單地設置訓練迭代10,000次爲停止標準。

經過這三個步驟後,我們就有了一個訓練好的CNN模型,可以用於識別新的手寫數字圖片。

最後,讓我們回到前面提出的問題,支持向量機到底是是指什麼?

這其實是要看上下文的。當你想表達”試圖找到一個超平面(在高維空間中)來分割數據,使得該超平面到兩個類別的距離(即間隔)最大化“這個意思的時候,它是指SVM模型。當你想表達”爲了找到這個最優的超平面,需要解決一個凸優化問題,通常使用例如序列最小優化(SMO)算法“這個意思的時候,它是指SVM算法。當我們沒有特指,僅僅說“使用SVM”時,通常意味着我們使用了SVM定義的模型(最大間隔超平面)以及與之相關的優化算法(如SMO)來進行訓練。


最後我再做個總結:

  • 模型 :現實世界的數學表示或模擬,它是指一種結果。
  • 算法 :執行特定任務的明確步驟序列。
  • 模型結構 :模型的特定框架或架構。
  • 數據模型 :描述數據對象、其關係及與其相關的操作的抽象結構。
  • 訓練 :使用數據調整模型參數以改進模型性能的過程。

看到這裡,相信你已經對「模型、算法、模型結構、數據模型、訓練」之間的差異有更清晰的概念了。這些基礎名詞不只是用在 AI 技術本身,在企業實務中也與日常資料分析、報表自動化與商業決策密切相關。

如果你想更進一步了解 AI 如何真正落地在企業中的資料分析流程,或想看看目前市場上有哪些工具能把「模型 × 數據 × 實際應用」串起來,推薦你延伸閱讀:
https://ithelp.ithome.com.tw/upload/images/20251203/20106765zZLBqgMoHB.png
ChatBI:讓企業以對話方式完成資料分析的 AI × BI 工具


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言