機器學習之一些基本概念及符號系統


1. 一些基本概念



圖1. 機器學習的基本過程

 

  • 訓練集(Training Set):為了研究一個變量(x)與另一個變量(y)的關系,而通過觀察、測量等方式獲得的一組數據。這組數據中收集了x和與之對應的y——一個數據對(x, y)。例如我們要研究房屋面積(x)和售價(y)之間的關系,每觀察一套已出售的房屋,就得到一個數據對(x, y)。觀察10套已出售的房屋,就可以得到10個這樣的數據對,這時就得到了一個用來研究房屋面積和售價之間的關系的訓練集了(雖然樣本量比較小)。這些數據集一般采集自現實環境中,屬於現象(我們的目的是透過現象看本質)。
  • 樣本(Sample):訓練集中采集數據的對象就是一個樣本,例如一套已出售的房屋。
  • 模型(Model)由於某些歷史原因,機器學習中的模型也被叫做假設(hypothesis, h),這個h就是我們透過現象想要尋找的"本質"。建立模型的過程通常就是確定一個函數表達式的過程(是否還記得寒假作業中的這類題目:觀察一組數,寫出下一個數是什么?)。最常見的模型是回歸模型(線性回歸或邏輯回歸等),例如我們假設房屋面積與售價之間的關系是一個線性回歸模型,則可以寫成:
    h(θ)=θ0+θ1x(1)h(θ)=θ0+θ1x…(1)
    其中h是函數(可能更習慣叫做y,但在機器學習中y一般表示已知的函數值,即后面的因變量;這里的h相當於預測得到的y),θ是函數的參數(也可以看做是每個自變量的權重,權重越大,對y的影響也越大),x是自變量。
  • 訓練模型(Training Model):選定模型(選擇合適的模型需要豐富的經驗)后,函數的一般形式就確定了。通常所說的訓練模型是指利用訓練集求解函數的待定參數的過程。上面的(1)式與直線方程的一般形式y = ax + b是相同的,這里不過換了一種寫法。此時我們知道模型是一條直線,為了確定這條直線的確定方程,我們需要求出兩個未知的參數——θ0(截距)和θ1(斜率),如果訓練集中只有兩個樣本,那就只是求一個二元二次方程組就解決問題了。
  • 特征(Feature):特征就是在一個模型中,所有想研究的自變量(x)的集合。例如我們在研究房屋售價的模型中,所有可能影響售價的因素都可以看成是一個特征,房屋面積、所在城市、房間個數等。在建立模型的過程中,特征的選擇是一個大學問,甚至有專門的分支來研究特征選擇或特征表示。

 

2. 訓練集的表示


上面提到過,訓練集就是許多的(x, y)數據對的集合。其中x是因變量,y是自變量。通常認為x的變化引起了y的改變,即x的值決定了y的值。在預測房屋價格的模型中,假如我們能找到所有影響房屋價格的因素(所有的x),並且確定各個因素准確的參數(θ),那么理論上可以准確的預測出任何房屋的價格(y)。

2.1 單因素訓練集中自變量的表示方法

  • 單因素相當於方程中只有一個自變量,這個自變量可以用一個小寫字母x來表示;
  • 如果收集了多個樣本,則通過在右上角添加帶括號的角標的方式區分,表示為x(1), x(2), ..., x(m),其中m表示樣本的個數;
  • 矩陣的表示:向量一般用小寫字母表示,矩陣用大寫字母表示。所有單因素樣本中的x可以用一個m x 1(m行1列)的列向量x(小寫字母)(只有一列的矩陣就是一個列向量)來表示:
    x=⎛⎝⎜⎜⎜⎜⎜x(1)x(2)x(m)⎞⎠⎟⎟⎟⎟⎟x=(x(1)x(2)⋮x(m))

 

2.2 多因素訓練集中自變量的表示方法

  • 多因素相當於方程中有多個自變量(多個feature),不同的自變量之間使用右下角添加不帶括號的角標來區分,表示為x1, x2, ..., xn,其中n表示feature的個數;
  • 當存在多個樣本時,可以用一個m x n(m行n列)的矩陣X(大寫字母)來表示:
    X=⎡⎣⎢⎢⎢⎢⎢⎢⎢x(1)1x(2)1x(m)1x(1)2x(2)2x(m)2x(1)nx(2)nx(m)n⎤⎦⎥⎥⎥⎥⎥⎥⎥X=[x1(1)x2(1)…xn(1)x1(2)x2(2)…xn(2)⋮⋮⋱⋮x1(m)x2(m)…xn(m)]

 

2.3 訓練集中因變量的表示方法

無論是單因素還是多因素,每一個樣本中都只包含一個因變量(y),因此只需要區分不同樣本間的y,y(1), y(2), ..., y(m),其中m表示樣本的個數;

用列向量y表示為:

y=⎛⎝⎜⎜⎜⎜⎜y(1)y(2)y(m)⎞⎠⎟⎟⎟⎟⎟y=(y(1)y(2)⋮y(m))

 

 

3. 參數的表示


也許是某種約定,在機器學習中,一般都是用θ來表示參數,參數是自變量X的參數(也可以看做是每個自變量的權重,權重越大的自變量對y的影響也越大),理論上,有多少個自變量就有多少個參數,但就像在直線方程y = ax + b中表現出來的那樣,除了x的參數a,還有一個常數項b。因此參數一般比自變量的個數多一個,當有n個自變量的時候,會有n+1個參數。

最終的模型是由一個特定的方程來表示的,在訓練模型的過程中,確定了這個方程中的未知參數。這些參數對於所有的樣本都是相同的,例如第一個樣本x(1)中的第一個自變量x1的參數與任意其他樣本x(i)中第一個自變量x1的參數是相同的。因此不用區分樣本間的參數,只用區分不同自變量之間的參數,可以使用一個n+1維的列向量θ來表示所有的參數:

 

θ=⎛⎝⎜⎜⎜⎜θ0θ1θn⎞⎠⎟⎟⎟⎟θ=(θ0θ1⋮θn)

 

 

4. 模型的表示


這里說的模型就是一個特定的函數,上面已經提過,模型一般使用h來表示。下面用線性回歸模型來舉例說明模型的符號表示。

 

4.1 直接表示

直接表示方法是我們在沒有學習線性代數之前的代數表示方式。

  • 單變量線性回歸方程:
    hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x
  • 多變量線性回歸方程:
    hθ(x)=θ0+θ1x1+θ2x2+θ3x3++θnxnhθ(x)=θ0+θ1x1+θ2x2+θ3x3+…+θnxn

 

4.2 矩陣表示

學習了線性代數后,可以使用矩陣來表示上面的方程,不僅表示起來方便,直接進行矩陣運算效率也更高效。在這里需要特別說明的一點是,為了配合矩陣的表示,在上面的方程中添加了x0,並且x0=1,且將θ0作為x0的參數。

  • 單變量/多變量線性回歸方程:
    hθ(x)=Xθ=⎡⎣⎢⎢⎢⎢⎢⎢⎢x(1)0x(2)0x(m)0x(1)1x(2)1x(m)1x(1)nx(2)nx(m)n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢θ0θ1θn⎤⎦⎥⎥⎥⎥hθ(x)=Xθ=[x0(1)x1(1)…xn(1)x0(2)x1(2)…xn(2)⋮⋮⋱⋮x0(m)x1(m)…xn(m)][θ0θ1⋮θn]
    ,此時X是一個m x (n+1)的矩陣,每一行表示一個樣本,每一列表示一個特征,結果是一個m x 1的列向量,其中m表示樣本的個數,n表示變量的個數(X中的每一列具有同樣的參數,一列表示在不同的樣本中同一個特征的取值);
  • 當只有一個樣本多個變量時,還可以表示為:
    hθ(x)=θTx=[θ0θ1θn]⎡⎣⎢⎢⎢⎢x0x1xn⎤⎦⎥⎥⎥⎥hθ(x)=θTx=[θ0θ1…θn][x0x1⋮xn]
    ,此時x是一個(n+1)維的列向量,每一行表示一個變量的值。

 

 

 

參考:https://www.coursera.org/learn/machine-learning


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM