數值預測,映射,矩陣乘法

數值預測,映射,矩陣乘法

來自專欄 機器學習與數學

預測數值的問題

機器學習當中有很多要解決的問題的類型,簡單地可以分成預測類別,和預測數值。

  • 判斷一張圖片是貓還是狗,還是什麼其它別的動物,這是預測類別
  • 預測房子的價格,溫度這類可以用數值表示的就是預測數值

這裡以預測數值的問題為例子

預測數值的問題的數學表示

我們知道,如果一個預測數值類型機器學習問題已經定義好了,那他將會包含幾個元素,

  1. 需要預測的目標,
  2. 為了預測,可以提供的一些數據,可以用矩陣以及矩陣各個維度的含意

用數學的語言,例如我們已經提前收集到有 m 條房子價格和房子信息的記錄,我們想找到如何通過新的房子信息來給新的房子進行定價,或者說一個初步的參考價格制定。每一個房子可以用 k 個數字對其進行表示,那麼可以用m 	imes k 的矩陣,另外指定 k維當中每一維的含意,就可以表達出這 m 條房子的信息,另外 m 條房子的價格,可以用 m 	imes 1 的矩陣,以及價格的單位來表示。

表示此問題的數學符號包括:

  1. m 	imes k 的矩陣 X ,另外指定 k 維當中每一維的含意
  2. m 	imes 1 的矩陣 Y ,價格的單位

找到一個從房子信息到房子價格的映射

現在的目標是想找到一個映射可以將 k 維,映射到 1 維的價格當中,使映射的結果儘可能接近目標價格。從 k 維到 1 維,可以制定非常複雜的結構,記 k 個數字為 [x_1, x_2, x_3, ... x_k] ,目標是 y

  1. 如果亂猜就可以把這個映射關係找對的話,可以猜是 y = 2	imes x_1 	imes x_2 + x_3 	imes x_3 + 5 	imes x_4 + (x_5)^4 + ... 8.9 	imes x_k ,非常複雜的組合
  2. 也可以往非常簡單的 x_1x_k 之間的線性組合上面猜 y = 5.4 	imes x_1 + 3.8 	imes x_2 + 2.2 	imes x_3 ... 5.5 	imes x_k ,等等

如果是線性組合,線性組合可以用矩陣的乘法表示,如上有係數 [5.4, 3.8, 2.2 ... 5.5] ,可以直接用 [x_1, x_2, x_3, ... x_k]1 	imes k 的矩陣,乘以 k 	imes 1 的係數矩陣,可以得到一個價格數字。y = [x_1, x_2, x_3, ... x_k] 	imes [5.4,\ 3.8, \2.2\ ... \5.5]

如何表達或者說衡量 k 	imes 1 的係數矩陣是最接近我們想要的,可以用一個式子來表示係數矩陣離我們的預期有多遠,或者係數矩陣在映射到價格上面有多麼準確。記 k 	imes 1 的係數矩陣是 m{w} =[w_1,\ w_2, \w_3,\ ... \w_k]

那麼通過這個係數矩陣可以將 m 個房子的信息,通過如下的計算得到他們的價格,一個 m	imes1 維的矩陣

Y = X 	imes w ,其中 Xm 	imes k 的矩陣, wk 	imes 1 的矩陣,很容易知道 Ym 	imes 1 維的價格。

那麼,可以通過預測出來的價格,與真實的價格進行比對,就可以衡量當前的係數矩陣有多好。如果記

Y = [y_1, y_2, y_3, ...y_m]\ Y = [y_1, y_2, y_3, ...y_m]

那麼:係數矩陣有多好可以用符號 cost 如下表示, cost 越小,係數矩陣越好

cost = sum_{i=1}^{m}{|y_i-y_i|}

總結

如果用矩陣來表示cost的計算過程的話,可以如下表示

cost = m{I} 	imes | X 	imes w - Y | ,其中 m{I}1 	imes m 單位矩陣,也就是矩陣的所有位置上的數值都是1。

上面的式子, m{I}, X, Y 都是已知數,簡單暴力的方法是嘗試所有可能的矩陣 m{w} ,這樣你很容易地找到你想要的可以使 cost 最小的,可以將 k 維房子的信息映射到 1 維房子價格的m{w}

當然你也可以用 costm{w} 求導,可以找到如何變化 m{w}會使 cost 變小,這樣隨機選一個 m{w} 然後可以一步一步對 m{w} 進行變化,使 cost 變小,有時候你可能通過這種方法找到能使 cost 最小的 m{w} ,有時候不行,這是最優化理論研究的內容,這裡無法展示細講。


推薦閱讀:

筆記:簡單理解線性回歸
初探機器學習之線性回歸
機器學習入門(1):線性回歸
機器學習入門之旅(三)線性模型之線性回歸與最小二乘法
線性回歸

TAG:線性回歸 | 機器學習 |