由於學業需要, 我不得不開始學習機器學習. 和 C++ 類似, 我將以筆記的形式展現我的學習成果. 這是因為我認為這門學科不像數學或者資料結構, 能夠有一本書可以完全對這個學科分支進行描述. 考慮數學分析和機率論, 這是目前 Jonny'Blog 已經存在文章的兩個數學分支. 要學好它們只需要一本書和習題, 反覆研究它們, 然後就可以更深入地學習建立在它們之上的例如復分析、調和分析和微分方程等學科

對於機器學習, 它通常和人工智慧和巨量資料等詞彙一起出現, 這也非常可能是我研究生階段不可逃離的一個電腦科學分支. 相比於計算理論和純數學, 它也許更有意思 (儘管我不這麼認為), 因為它存在實際的工程背景. 至於這個分支的評價, 我認為首先它是數學的應用, 另外也是電腦發展歷程中,  必定會出現的. 大家知道, 數學研究的深度是遠遠超過目前人類發展的. 目前機器學習的理論, 都是上個世紀已經有的. 但是上個世紀, 電腦剛剛開始發展, 直到今天, 價格低廉的儲存裝置和網路上巨量的資料已經讓上個世紀的理論有了實際應用的地方. 但是也存在著這樣的說法 : 機器學習的那些先驅者之所以將機器學習形容的如此複雜 (在之後你會看到大量的數學公式), 只是因為他們希望機器學習的門檻足夠高, 避免了他人容易地搶走了他們的飯碗... 這種說法, 本人不作過多的評價. 考慮現在的程式設計師, Apple 致力於讓每個人都掌握簡單程式設計的技能, 這無非是因為簡單的程式設計無須任何門檻. 然而, 雖然你可能看到非常複雜的數學公式和眼花撩亂的符號, 但是解釋和理解起來, 它們卻又十分簡單. 不過在此之前, 你需要有足夠的數學分析、線性代數和機率論的知識為基礎. 這就是為什麼我沒有把機器學習的文章寫成教學的原因, 我沒有辦法在很短的時間內補齊關於這三門基礎知識的文章. 除此之外, 還可能用到一些逼近理論中的知識

一、導論

這是一個巨量資料的時代, 靠著人工去對資料進行處理已經不太現實. 我們每個人都是資料的生產者, 也是資料的消費者. 為了使用電腦解決問題, 我們通常會使用演算法, 但是演算法並不能解決全部需求, 也不是任何問題都有標準演算法存在的. 考慮人臉識別. 人類可以很輕鬆地在一瞬間識別這張人臉是誰的, 但是這是無意識的, 我們沒有辦法使用演算法來表達這一過程. 這個時候, 在巨量資料下, 我們希望電腦也可以擁有這樣的能力, 以輔助人類的工作. 儘管電腦可能不能像人類一樣去完全識別, 但是卻可以建構一個有用的近似方案, 去解決資料中的部分

機器學習筆記-Jonny'Blog

機器學習運用的是統計學的理論, 核心人物是樣本推理. 例如大部分顧客在購買商品 A 的時候同時又會購買商品 B, 但是某個顧客在購買的過程中, 只購買了商品 A. 那麼這名顧客很可能成為商品 B 的消費者, 也就是說, 我們會對 P(B | A) 這樣的條件機率產生興趣, 這是為了發現關聯規則

機器學習筆記-Jonny'Blog

對於若干個屬性輸入 : x_{1}, x_{2}, ..., x_{n}, 我們希望針對不同的輸入得到對應的值

y = g(x_{1}, x_{2}, ..., x_{n} | \theta)

其中, g 就是模型或者稱其為回歸函數, \theta 稱為 g 的參數, x_{i}\ (i = 1, 2, ..., n) 為輸入, y 就是模型根據輸出給定的結果. 如果 y 是數值, 那麼稱這樣的問題為回歸. 如果存在一個有限集合 \mathscr {Y} = \{ y_{1}, y_{2}, ..., y_{n} \} 使得 y \in \mathscr {Y}, 那麼稱這樣的問題為分類. 分類和回歸都是監督學習的方法. 所謂監督學習, 就是巨量資料中的輸入和輸出都由指導者給出. 與監督學習對應的就是非監督學習, 其資料中只給定了輸出, 要求電腦從中找到一種規律或者結構, 使得特定模式比其它模式更常出現. 這種在統計學中被稱為密度估計, 一個典型的例子就是聚類. 大家可能會奇怪, 為什麼在 iOS 中將應用程式放入檔案夾中, 檔案夾就會自動生成名字, 而且是比較符合應用程式分類的. 這就是聚類比較簡單的解釋, 不過 iOS 的分類可能並非使用了機器學習, 因為每個應用程式都會存在標籤

對於 y = g(\mathscr {X} | \theta), 機器學習的目標是找到最佳的參數 \theta 使得輸出 y 和實際值的差值最小

除了監督學習和非監督學習之外, 還有一種半監督學習, 介於這兩者中間, 所以大家通常不將半監督學習作為機器學習的大類. 機器學習還有一個大類是增強學習. 增強學習的輸出不是一個值或者元素, 而是一系列步驟, 或者叫它策略或者動作序列. 在增強學習中, 不存在一個中間狀態的最好策略, 我們只考察策略整體

二、監督學習

假設現在我們要通過機器學習分類若干個物體, 這些物體在分類之後有且唯有兩個結果 : 正類和反類. 要判定這些物體歸屬於哪一個類別, 有 n 個輔助的屬性 x_{1}, x_{2}, ..., x_{n}. 顯然, 模型就是數學中的集合的特徵函數. 因為給定了一些變數, 然後將變數輸入函數, 得到最終的函數值 (正類還是反類). 從數學的角度來看, 一定會存在某個函數 \mathcal {C}(X), 使得對於任意的物體 X = \{ x_{1}, x_{2}, ..., x_{n} \}, 將這個物體分類到正類或者反類中, 且這個分類是正確的. 從導論中, 我們也知道, 機器學習的任務就是去尋找這個函數 \mathcal {C}(X). 但是一般來說, 即使對於人類, 這個函數 \mathcal {C}(X) 也難以找到, 於是我們轉而去找一個近似的函數 h(X), 使得 h(X) 的結果和 \mathcal {C}(X) 的結果盡可能接近, 或者說分類錯誤率盡可能低

對於機器學習來說, 電腦要從一系列可能的候選函數集合 H = \{h_{1}, h_{2}, ..., h_{n} \} 中找到可以解決問題的 h(X). 其中, h \in H. 若分類的結果有且唯有兩個結果, 那麼最終 h(X) 的取值如下 :

h(X) = \begin {cases} 1 &{X\ 為正類} \\ 0 &{X\ 為反類} \end {cases}

在導論中, 我們已經介紹過, 監督學習需要指導者給出實例的輸入和輸出值. 結合上面的論述, 即要求指導者提供 X 和對應的函數值 h(X), 然後去尋找最合適的函數 (模型) h

例 1. 令 n = 2, x_{1}x_{2} 都是布林變數, 求模型 h 的候選集合 H

:

我們列表 (向右滑動查看所有)

x_{1} x_{2} h_{1} h_{2} h_{3} h_{4} h_{5} h_{6} h_{7} h_{8} h_{9} h_{10} h_{11} h_{12} h_{13} h_{14} h_{15} h_{16}
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

\blacksquare

例 1 中, 若我們要求當 x_{1} = 0, x_{2} = 1 時, h(x_{1}, x_{2}) = 0, 那麼我們就去掉了 h_{5}, h_{6}, h_{7}, h_{8}, h_{13}, h_{14}, h_{15}h_{16}. 另外, 對於正類和反類的機器學習樣本, 實際上是 n 個變數從 \{ 0, 1 \} 中取值, 是放回有序抽樣, 因此共有 2^{n} 種變數的取法, 而對應的函數也是放回有序抽樣, 那麼就有 2^{2^{n}} 個候選函數

但是實際上, 由於現實中, 變數數量可能是多個的, 而且指導者幾乎不可能針對每一種情況都給出輸入和輸出, 所以針對 N 個樣本, 至少還有 2^{2^{n} - N} 個候選的函數. 首先, 我們要分析機器學習得到的函數, 其值和真正的值相差多少. 我們引入經驗誤差 :

E(h | \mathscr {X}) = \sum I(h(X) \neq \mathcal {C}(X))

其中, E(h | \mathscr {X}) 表示學習得到的函數 h 在指導者給定的樣本空間 \mathscr {X} 下的誤差, I(\cdot) 是布林函數, 若 h(X) 的值與 \mathcal {C}(X) 不相等, 那麼 I(\cdot) = 1, 否則 I(\cdot) = 0. 實際上, 我們就是希望通過機器學習得到一個函數 h, 可以使得 E(h | \mathscr {X}) 盡可能小

對於函數 h 的可選集合, 一般存在兩個極端 :

  • 最特殊的假設 : 對於指導者給定的樣本, 函數 h_{\min} 涵蓋了所有正類且不包含反類, 但是能夠使得函數 h_{\min} 輸出正類的元素數量 D_{h_{\min}} 是所有可選集合中最少的
  • 最一般的假設 : 對於指導者給定的樣本, 函數 h_{\max} 涵蓋了所有正類且不包含反類, 但是能夠使得函數 h_{\max} 輸出正類的元素數量 D_{h_{\max}} 是所有可選集合中最多的

直觀地, 我們可能會選區介於 h_{\min}h_{\max}. 這時候, 僅僅依靠現有的樣本資料, 不足以找到最佳函數. 一般來說, 我們會引入某種偏向. 這種偏向是根據問題的實際而制定的, 也可能是機率選取的. 對於落在 D_{h_{\min}}D_{h_{\max}} 的元素, 其最終得到的函數值是模稜兩可的. 這時候, 我們可以選擇拒絕讓 h 輸出值, 讓人工進行判定

通常情況下, 我們肯定希望可以學習到一個 E(h | \mathscr {X}) = 0 的函數 h. 但是有些情況下, 這種 h 很難找到甚至不存在, 因此需要一定的柔性

至於 VC維度, 書上是這樣定義的 : 假設有一個包含 n 個點的原始資料集合. 其中, 我們將每一個資料表示為一個點 (X, \mathscr {C}(X)). 這 n 個點可以用 2^{n} 種方法將其標記為正類和反類. 因此, n 個點就可以定義 2^{n} 種不同的機器學習問題. 如果對於這些問題種的任意一個, 都可以找到一個函數 h \in H 將正類和反類區分開來, 那麼就稱 H 擊倒 n 個點. 也就是說, 由 n 個點定義的任何學習問題都能用一個從 H 中抽取的假設無誤差地進行學習. 可以被 H 擊倒的點的最大數量稱為 H 的 VC 維度, 記為 VC(H). 它用於評價 H 的學習能力

至少我是沒看懂上面這段的, 希望高人可以指點一下

現在來考慮一個二變數的實例. 假設 \mathcal {h} = \{ \theta_{1} \leq x_{1} \leq \theta_{2}\ 且\ \theta_{3} \leq x_{2} \leq \theta_{4} \} , 記集合 \mathcal {h} 的特徵函數為 \mu = \mu_{\mathcal {h}}(x_{1}, x_{2}). 那麼, 集合 \mathcal {h} 可以在笛卡兒座標系上表示為一個矩形, 其面積記為 s(h). 若學習所得的函數 h_{\min} 是最特殊的假設, 其面積記為 s(h_{\min}) :

機器學習筆記-Jonny'Blog

其中, D_{h_{\min}} \subseteq D_{h} \subseteq D_{h_{\max}}. 現在令 \mathcal {C} = h 並從某一固定的機率分布 p(x) 中抽取樣本, 我們希望找出樣本數 n, 使得對於任意給定的 \delta \leq \frac {1}{2}\varepsilon > 0, 假設 h_{\min} 的誤差最多為 \varepsilon 的機率至少為 1 - \delta, 即

P \{ s(h) - s(h_{\min}) \leq \varepsilon \} \geq 1 - \delta

簡單地說, 我們希望樣本落在圖中黃色區域的機率至多是 \varepsilon. 此時, 對於 h_{\min} 的任意一邊的條帶, 不妨記這個區域為 h', 如果我們可以保證

\sup \{ s(h') \} \leq \frac {\varepsilon}{4}

那麼總誤差不超過 4\frac {\varepsilon}{4} = \varepsilon. 因為黃色部分的四個角落的面積我們計算了兩次, 因此實際的誤差是小於 4\frac {\varepsilon}{4} = \varepsilon 的. 隨機抽取的樣本不在區域 h' 中的機率為 1 - \frac {\varepsilon}{4}. 所有 n 個樣本不在區域 h' 中的機率為 (1 - \frac {\varepsilon}{4})^{n}, 所有 n 個樣本不在黃色區域的機率不超過 4(1 - \frac {\varepsilon}{4})^{n}. 根據之前的描述, 我們希望

4(1 - \frac {\varepsilon}{4})^{n} \leq \delta

根據數學分析中的不等式 1 - x \leq e^{-x}, 因此如果選定的 n\delta 滿足

4e^{-\frac {\varepsilon n}{4}} \leq \delta

那麼就有 4(1 - \frac {\varepsilon}{4})^{n} \leq \delta. 等式兩側同時乘以 \frac {1}{4} 且等式兩側同時取自然對數, 變換後有

n \geq \frac {4}{\varepsilon} \ln {\frac {4}{\delta}}

我們把滿足上述條件的機器學習稱為機率近似正確學習

指導者給定的輸入和輸出並不總是正確的, 那些不太正常的資料我們稱為噪音, 由以下幾個組成 :

  • 指導者提供的輸入輸出資料不正確
  • 沒有考慮到附加屬性, 這些附加屬性是不明顯的

考慮某人購買 iPhone 12 Pro Max 但是沒有同時選購 AirPods, 很多人在購買 iPhone 之後都會購買 AirPods. 那麼 Apple 推斷這個人一個月內會購買 AirPods 的機率為 50%, 這個數值是由機器學習得到的函數計算出來的函數值. 但是如果這個人在購買 iPhone 12 Pro Max 之後, 剩下的錢只夠勉強生活, 很顯然他幾乎不會購買 AirPods 為附屬品. 這個人在購買 iPhone 12 Pro Max 的經濟條件就是附加屬性, 這些附加屬性 Apple 不可能知道, 我想也沒有人會主動告訴別人. 正是這個附加屬性導致了 Apple 的模型得到了錯誤的推導

一般而言, 上面的矩形是簡單的模型, 而精確模型很可能是非線性的, 考慮這樣的隱函數 :

機器學習筆記-Jonny'Blog

我想, 即使是那些非常專業的軟體, 例如 Matlab 或者 Wolfram Mathematic 都沒有辦法很好地找出灰色部分對應的隱函數是什麼. 我們學習得到的這個矩形模型雖然和真正的函數相差比較多, 但是我們是容許模型出錯的, 只要這個出錯的機率我們可以接受就可以了 (比如 1000 個推導只錯了幾個)

對於 k 個分類的監督學習, 我們通常可以將其看為 k 個正類和反類的監督學習. 此時,

h_{i}(X) = \begin {cases} 1 &{X \in \mathcal {C_{i}}} \\ 0 &{X \notin \mathcal {C_{i}}} \end {cases}

對於上式, 經驗誤差可以定義為 E(\{ h_{i} \}_{i = 1}^{k} | \mathscr {X}) = \sum \sum \limits_{i}I(h_{i}(X) \neq \mathcal {C}_{i}(X))

上面我們分析的都是分類問題, 現在我們考慮回歸問題. 對於回歸來說, 我們實際上要找到一個函數 f 滿足

\mathcal {C}(X) = f(X) + \varepsilon

其中, \varepsilon 是無法觀察到的隨機噪音. 對於機器學習得到的函數 g(x), 其相對於 \mathscr {X} 的學習誤差為

E(g | \mathscr {X}) = \frac {1}{n} \sum \limits_{i = 1}^{n}(\mathcal {C}(X) - g(X))^{2}

對於線型函數 g(x) = w_{1}x_{1} + w_{2}x_{2} + ... + w_{n}x_{n} + w_{0}, 我們的目標是可以得到 E(g | \mathscr {X}) 取得最小值的函數 g. 此時, 其最小值可以通過分別對 w_{i} 求偏導數 \frac {\partial E}{\partial w_{i}}, 並令 \frac {\partial E}{\partial w_{i}} = 0 求得. 其中, i = 1, 2, ..., n :

\begin {cases} \frac {\partial E}{\partial w_{1}} = 0 \\ \frac {\partial E}{\partial w_{2}} = 0 \\ \vdots \\ \frac {\partial E}{\partial w_{n}} = 0 \\ \frac {\partial E}{\partial w_{0}} = 0 \end {cases} \Rightarrow \begin {cases} w_{1} \\ w_{2} \\ \vdots \\ w_{n} \\ w_{0} \end {cases}

看上去是不是十分複雜? 熟悉數學分析的人一下就明白了, 這實際上就是利用了多元函數求極值...

在最後, 我們再介紹兩個概念. 其中, 損失函數 L(\cdot) 我們在前面已經遇到過了. 對於模型 g(X) 和正確值 \mathcal {C}(X) 之間的誤差, 我們使用損失函數來描述 :

E(\theta | \mathscr {X}) = \sum L(\mathcal {C}(X), g(X | \theta))

在正類和反類的論述中, L(\cdot) 用於檢測相等或者不相等; 在回歸分析中, L(\cdot) 被定義為距離的平方

最佳化過程用於求解使得總誤差最小的 \theta^{*} :

\theta^{*} = \argmin \limits_{\theta}E(\theta | \mathscr {X})

其中, \argmin 回傳使得 E 最小化的參數. 在線型函數中, 我們採用了多元函數求極值的方式求得參數

三、Bayes 決策理論

對於某些過程, 我們沒有辦法對其進行建模, 因為缺乏一些知識. 儘管有時候, 這些過程是確定性的, 但是目前我們還沒有能力或者方法去完全認知它們. 例如投擲硬幣, 唯一可觀測的就是投擲的結果. 而很多資料就是來源於這些無法觀測的過程, 因此我們需要使用機率論的知識對它們進行表述

z 為不可觀測變數, x 表示可觀測變數. 那麼事實上, 我們有

x = f(z)

其中, f 是確定性函數, 它定義了知識的不可觀測部分的輸出. 因為無法使用這種確定性的方式對無法觀測的過程進行建模, 因此我們定義隨機變數 \xi 來說明這個結果是由機率分布 P \{ \xi = x \} 中抽取的

這裡用 \xi 是為了和《機率論》系列的文章統一, 一般的書上都用 X

F_{\xi}(x) 是機率分布函數, 要從樣本空間 \mathscr {X} 中學習到它, 最簡單的方法就是使用古典的方法. 對於分類問題, 就是把樣本中所有分類的機率根據樣本的分布計算出來, 然後以此作為 \hat {F}_{\xi}(x). 但是顯然, 這是不準確的. 儘管根據大數法則, 當 \text {card} \mathscr {X} \to \infty 時, |\hat {F}_{\xi}(x) - F_{\xi}(x)| \to 0, 但是機器學習中不可能出現這種情況. 而且, 我們還需要考慮樣本是不是完全隨機的, 如果不是, 這樣得到的 \hat {F} 更加不準確

對於正類反類問題, 一般會有若干個條件隨機變數 : \zeta_{1}, \zeta_{2}, ..., \zeta_{n}, 若我們可以知道 P \{ \xi = 1 | \zeta_{1} = x_{1}, \zeta_{2} = x_{2}, ..., \zeta_{n} = x_{n} \}, 那麼我們可以

選擇 \begin {cases} \xi = 1 & {P \{ \xi = 1 | \zeta_{i} = x_{i} \} > P \{ \xi = 0 | \zeta_{i} = x_{i} \}} \\ \xi = 0 & {P \{ \xi = 1 | \zeta_{i} = x_{i} \} \leq P \{ \xi = 0 | \zeta_{i} = x_{i} \}} \end {cases}

其中, i = 1, 2, ..., n

此時, 錯誤的機率為 1 - \max \{ P \{ \xi = 1 | \zeta_{1} = x_{1}, \zeta_{2} = x_{2}, ..., \zeta_{n} = x_{n} \}, P \{ \xi = 0 | \zeta_{1} = x_{1}, \zeta_{2} = x_{2}, ..., \zeta_{n} = x_{n} \} \}. 記 \zeta = (\zeta_{1}, \zeta_{2}, ..., \zeta_{n}), 根據 Bayes 公式, 我們有

P(\xi | \zeta) = \frac {P(\xi)P(\zeta | \xi)}{P(\zeta)}

而根據 Bayes 定理, 我們有

P(\xi = i | \zeta) = \frac {P(\zeta | \xi = i)P(\zeta)}{\sum \limits_{\xi}P(\zeta | \xi)P(\xi)}

那麼對於正類和反類問題, 我們只需要選擇具有最大機率值的那個就可以了, 即 \max \{ P(\xi = 0 | \zeta), P(\xi = 1 | \zeta) \}. 而 Bayes 定理不僅僅針對 Bernoulli 隨機變數成立, 對於具有 k 個分類結果的事件同樣成立, 適用方法是相同的. 我們把這樣的分類器稱為 Bayes 分類器

當分類器作出選擇之後, 會帶來一定的風險. 若某個人沒得病, 但是卻被分類器判定為得病, 那麼醫院可能就會為此面臨一場訴訟. 因此, 在分類之後, 我們需要考慮其錯誤分類的風險. 若記 \lambda_{ik} 為資料本屬於第 k 類但是卻被分類器分類到第 i 的損失, 動作 \alpha_{i} 為分類器將資料分類到第 i 類的動作, 我們定義採取這樣的動作的風險為

E(\alpha_{i} | \zeta) = \sum \limits_{k = 1}^{n}\lambda_{ik}P(\xi = k | \zeta)

其中, n 為類別數量. 我們發現, 這實際上是期望的變種, \lambda_{ik} 可能需要我們自己給出. 一般來說, 我們會選取動作最小的風險, 即 \min \limits_{i} \{ R(\alpha_{i} | \zeta) \}

0/1 損失是一種比較特殊的損失, 此時有

\lambda_{ik} = \begin {cases} 0 & {i = k} \\ 1 & {i \neq k} \end {cases}

若所有正確決策都沒有損失, 並且所有錯誤的決策都有相同的損失, 那麼採取動作 \alpha_{i} 的風險是

\begin {aligned} R(\alpha_{i} | \zeta) &= \sum \limits_{k = 1}^{n}\lambda_{ik}P(\xi = k | \zeta) \\ &= \sum \limits_{k \neq i}P(\xi = k | \zeta) \\ &= 1 - P(\xi = i | \zeta) \end {aligned}

其中, n 為類別數量

某些情況下, 錯誤的決策具有很高的風險, 同時也可能會為此付出很高的代價, 例如錯誤地診斷病人就是一個實例. 在這種情況下, 我們增加一個疑惑或者拒絕的動作 \alpha_{i + 1}. 這並不是表示將資料分類進第 i + 1 類的動作, 而是疑惑或者拒絕的動作. 一個可能的損失函數是

\lambda_{ik} = \begin {cases} 0 & {i = k} \\ \lambda & {i = n + 1} \\ 1 & {\text {else}} \end {cases}

其中, 0 < \lambda < 1. 當 \lambda = 0 時, 我們總是拒絕 (拒絕和正確決策一樣好); 當 \lambda = 1 時我們從不拒絕 (拒絕所付出的代價至少和錯誤決策相同, 甚至超過錯誤決策). 由於至多有 n 個類, 因此被分類到 n + 1 類就說明分類器拒絕或者疑惑的動作. 根據我們之前定義的風險, 那麼拒絕動作的風險是

R(\alpha_{i} | \zeta) = \sum \limits_{k = 1}^{n}\lambda P(\xi = k | \zeta) = \lambda

此時, 若對於任意 k \neq i, 有 R(\alpha_{i} | \zeta) < R(\alpha_{k} | \zeta)R(\alpha_{i} | \zeta) < R(\alpha_{n + 1} | \zeta) 時, 我們將資料分類到第 i 類; 否則, 若對於任意的 i, 有 R(\alpha_{n + 1} | \zeta) < R(\alpha_{i} | \zeta), 此時我們拒絕分類. 由於我們限制了 \lambda 的範圍, 因此我們又有另一種表述. 若對於任意 k \neq i, 有 P(\xi = i | \zeta) > P(\xi = k | \zeta)P(\xi = n + 1 | \zeta) > 1- \lambda, 那麼我們將資料分類到第 i 類; 否則, 我們拒絕分類

為分類問題建立機率分布函數的過程也可以看作是將某個機率空間分成多個決策區域, 機率分布函數又被稱為判別函數

在一些商業場所, 他們通常需要針對銷售資料進行學習, 那麼此時需要用到關聯規則 X \Rightarrow Y. 想像 iPhone 12 Pro Max 和它的 mon 貼 (手機保護膜), 如果手持 iPhone 12 Mini 的用戶會購買 iPhone 12 Pro Max 的 mon 貼嗎? 顯然幾乎不會. 因此, 我們需要幾個度量 :

  • X \rightarrow Y 的支援度 : \text {Support} (X, Y) = \frac {\text {card} \{ X + Y \}}{\text {card} \Omega}
  • X \rightarrow Y 的可信度 : \text {Condidence}(X \Rightarrow y) = P(X | Y)
  • X \rightarrow Y 的作用度 : \text {lift}(X \Rightarrow Y) = \frac {P(Y | X)}{P(Y)}

可信度度量了一個規則的可相信程度. 例如購買 iPhone 12 Pro Max 的用戶大概率會購買 iPhone 12 Pro Max 的 mon 貼, 因此 P(\text {購買 mon 貼}  | \text {購買 iPhone 12 Pro Max}) \to 1, 且遠遠大於 P(\text {僅僅購買 mon 貼}). 支援度是為了說明規則的價值, 如果很多人購買 iPhone 12, 但是幾乎沒有人購買 iPhone 12 Pro Max, 那麼即使支援度再高, 但是大量生產 iPhone 12 Pro Max 的 mon 貼意義也不大. 作用度實際上反映了事件之間的相關程度, 比如購買 iPhone 12 Pro Max 和購買香蕉幾乎是沒有關聯的, 因此 \text {lift}(X \Rightarrow Y) \to 1. 當作用度大於 1, 表示兩個事件正相關; 當作用度小於 1, 表示兩個事件負相關

但是一般來說, 一個銷售系統的資料庫中存在著大量資料, 而且要分析的類別多於兩類, 那麼此時我們可以這樣去做 :

  1. 找到具有足夠支援度的所有類別集合
  2. 把找到類別集合中的類別劃分為若干個子集, 這些子集中有且唯有兩個元素. 然後把這些子集轉換成具有足夠可信度的關聯規則即可

四、參數方法

前面我們所討論的是如何在不確定性的情況下適用機率論的知識對問題建模, 然後作出最佳決策. 現在, 我們需要討論在驕傲那麼的過程中, 如何估計參數 \theta. 其中, \theta 來源於 g(\mathscr {X} | \theta). 我們暫時假定 g 是一元的, 即 \text {card}\mathscr {X} = 1

假設有樣本 X 是獨立同分佈的, 且 X 服從某一機率分布 p(x | \theta), 那麼任取 x \in X, 都有

x \sim p(x | \theta)

在機器學習中, 我們希望找到這樣的 \theta, 使得對於任意 x, 盡可能像是從 p(x | \theta) 上抽取的. 由於 x 是獨立的, 因此給定參數 \theta, 樣本 X 的概似可以表示為單個點概似的乘積 :

l(\theta | X) = p(X | \theta) = \prod \limits_{\mathrm {t} = 1}^{\text {card}X}\ln {p(x^{\mathrm {t}} | \theta)}

極大概似估計就是找到這樣的 \theta 的方法. 因此, 首先對上式取自然對數 :

\ln {l(\theta | X) = \sum \limits_{\mathrm {t} = 1}^{\text {card}X}\ln {p(x^{\mathrm {t}} | \theta)}}

其中, t 不僅僅表示計數, 還表示樣本 x^{\mathrm {t}} 是屬於樣本空間 X 的. 我們記 \ell (\theta | X) = \sum \limits_{\mathrm {t} = 1}^{\text {card}X}\ln {p(x^{\mathrm {t}} | \theta)}

一般來說, 常見的分布有 :

  • Bernoulli 分布 : 它在機器學習中代表了正類和反類的學習
  • 多項分布 : 它在機器學習中代表了多個類的學習
  • 常態分佈 : 它在機器學習中代表了數值輸入的學習

這些分布分別具有自己的參數, 接下來我們用極大概似估計來估計這些分布的參數. 我們用 \hat {\theta} 來表示參數的極大概似估計

例 2. 估計 Bernoulli 分布的參數

:

Bernoulli 分布可以表示為

P_{\xi}(x) = p^{x}(1 - p)^{1 - x}

其中, x = 0, 1. 其期望為

E(\xi) = \sum \limits_{\xi}\xi P_{\xi}(x) = 1 \cdot p + 0 \cdot (1 - p) = p

其方差為

Var(X) = \sum \limits_{\xi} (\xi - E(\xi))^{2}P_{\xi}(x) = p(1 - p)

因此, p 是 Bernoulli 分布中的唯一參數. 那麼, 給定樣本 X, 若對於任意 x \in X 都有 x = 0, 1, 於是參數 p 的自然對數概似為

\ell (p | X) = \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}p^{x^{\mathrm {t}}}(1 - p)^{1 - x^{\mathrm {t}}}} = \sum \limits_{\mathrm {t}}x^{\mathrm {t}} \ln {p} + (\text {card}X - \sum \limits_{\mathrm {t}}x^{\mathrm {t}})\ln {1 - p}

f(p) = \sum \limits_{\mathrm {t}}x^{\mathrm {t}} \ln {p} + (\text {card}X - \sum \limits_{\mathrm {t}}x^{\mathrm {t}})\ln {(1 - p)}, 令 f'(p) = 0 求得

\hat {p} = \frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X}

\blacksquare

例 3. 估計多項分布的參數

:

我們可以將多項分布視為 n 個二項分布對應的試驗, 那麼對於第 i 次試驗, 有

\hat {p_{i}} = \frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X}

其中, i = 1, 2, ..., n

\blacksquare

例 4. 估計常態分佈的參數

:

常態分佈可以表示為

P_{\xi}(x) = \frac {1}{\sqrt {2\pi}\sigma} \exp \Big \{ -\frac {(x - \mu)^{2}}{2\sigma^{2}} \Big \}

其中, E(X) = \mu, Var(X) = \sigma^{2}

給定樣本 X, 那麼樣本 X 的自然對數概似為

\ell (\mu, \sigma | X) = -\frac {\text {card}X}{2}\ln {2\pi} - \text {card}X\ln {\sigma} - \frac {\sum \limits_{\mathrm {t}} (x^{\mathrm {t}} - \mu)^{2}}{2\sigma^{2}}

\frac {\partial \ell}{\partial \mu} = 0\frac {\partial \ell}{\partial \sigma^{2}} = 0 可求得

\hat {\mu} = \frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X}, \hat {\sigma} = \sqrt {\frac {\sum \limits_{\mathrm {t}}(x^{\mathrm {t}} - \mu)^{2}}{\text {card}X}}

\blacksquare

事實上, 我們發現, 求得極大概似估計的過程就是函數求極值的過程

我們得到估計之後, 自然就想知道估計和質量如何? 令 X 是取自參數為 \theta 指定的總體上的樣本, 並令 d = d(X)\theta 上的一個估計. 為了評價這個估計的質量, 我們可以度量它和 \theta 之間距離的平方, 即 (d(X) - \theta)^{2}. 但是, 由於這個估計取決於樣本, 因此並不能直接使用 (d(X) - \theta)^{2} 進行估計, 而是要取平均值, 即 E((d(X) - \theta)^{2}). 我們定義

r(d, \theta) = E((d(X) - \theta)^{2})

為估計 d 的均方誤差, 定義

b_{\theta}(d) = E(d(X)) - \theta

為估計量的偏誤. 如果對於所有的 \theta, 都有 b_{\theta(d)} = 0, 則稱 d\theta 的無偏誤估計

例 5.X = \{ x^{\mathrm {t}} \}_{t = 1}^{\text {card}X} 是從均值為 \mu 的樣本空間中抽取的, 若 d(X) = m, 證明 b_{\theta}(d) = 0

:

由於

E(d) = E(m) = E(\frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X}) = \frac {1}{\text {card}X}\sum \limits_{\mathrm {t}}E(x^{\mathrm {t}}) = \frac {\text {card}X \cdot \mu}{\text {card}X} = \mu

因此 b_{\theta}(d) = 0

\blacksquare

例 5 意味著雖然在某個特定的樣本上, 其均值和樣本空間的均值不相同, 但是如果取許多這樣的樣本 X_{i}, 且估計許多 d_{i} = d(X_{i}), 那麼隨著樣本的增加, 其平均值接近於 \mu. 我們稱 m 是一個一致估計量, 即當 \text {card}X \to \infty 時, 有

\text {Var}(m) = \text {Var}(\frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X}) = \frac {1}{\text {card}^{2}X}\sum \limits_{\mathrm {t}}\text {Var}(x^{\mathrm {t}}) = \frac {\text {card}X \cdot \sigma^{2}}{\text {card}^{2}X} = \frac {\sigma^{2}}{\text {card}X} \to 0

亦即隨著樣本的增加, m\mu 的偏離值逐漸變小. 現在重新考慮針對常態分佈的參數估計 \hat {\sigma}, 兩側平方可得 :

\hat{\sigma}^{2} = \frac {\sum \limits_{\mathrm {t}}(x^{\mathrm {t}} - \hat {\mu})^{2}}{\text {card}X} = \frac {\sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2} - \text {card}X\hat {\mu}^{2}}{\text {card}X}

根據方差的定義, 有 E(X^{2}) = \text {Var}(X) + E^{2}(X), 且

E((x^{\mathrm {t}})^{2}) = \sigma^{2} + \mu^{2}, E(\mu^{2}) = \frac {\sigma^{2}}{\text {card}X} + \mu^{2}

於是, 我們有

E(\hat {\sigma}^{2}) = \frac {\text {card}X(\mu^{2} + \sigma^{2}) - \text {card}X(\frac {\sigma^{2}}{\text {card}X} + \mu^{2})}{\text {card}X} = \frac {\text {card}X - 1}{\text {card}X}\sigma^{2} \neq \sigma^{2}

這說明 \hat {\sigma}^{2} 並非是 \sigma^{2} 的無偏誤估計, 而 \frac {\text {card}X}{\text {card}X - 1}\hat {\sigma}^{2} 才是無偏誤估計. 然而, 當 \text {card}X 充分大的時候, 其差別可以忽略. 因此, 這是一個漸進的無偏誤估計, 其估計量的偏誤隨著 \text {card}X \to \infty 而接近於 0

現在, 我們改寫 r(d, \theta) :

\begin {aligned} r(d, \theta) &= E((d - \theta)^{2}) \\ &= E((d - E(d) + E(d) - \theta)^{2}) \\ &= E((d - E(d)^{2}) + (E(d) - \theta)^{2} + 2(E(d) - \theta)(d - E(d))) \\ &= E((d - E(d))^{2}) + E((E(d) - \theta)^{2} + 2E((E(d) - \theta)(d - E(d)))) \\ &= E((d - E(d))^{2}) + (E(d) - \theta)^{2} + 2(E(d) - \theta)E(d - E(d)) \\ &= \underbrace {E((d - E(d))^{2})}_{\text {方差}} + \underbrace {(E(d) - \theta)^{2}}_{偏誤的平方} \\ &= \text {Var}(d) + b_{\theta}^{2}(d) \end {aligned}

有時候, 樣本的數量是比較少的, 因此可能需要我們提前對參數 \theta 的值進行估計, 確定一個適用於樣本的參數範圍. 這個範圍並不會告訴我們參數的確切值. 對於這個範圍, 我們也是靠著估計來得到. 在本節剛開始的時候, 我將機率分布函數寫成了

p(x | \theta)

這不僅僅是機率函數的表示方法, 也是條件機率. 因此, 如果你足夠敏感, 當你看到這個表示你就會提出疑問, 為什麼不是以 F_{\xi}(x) 這種方式來表示分布函數?

要得到樣本下參數的可能取值, 實際上就是要求

p(\theta | X)

如果我們提前知道了 p(\theta) 的可能取值, 結合 Bayes 定理和樣本, 就可以得到

p(\theta | X) = \frac {p(X | \theta)p(\theta)}{p(X)} = \frac {p(X | \theta)p(\theta)}{\displaystyle \int p(X | \theta')p(\theta')d\theta'}

由於我們知道了 \theta, 就可以了解分布的一切, 因此有

p(\theta | x, X) = p(x | \theta)

於是,

p(x | X) = \displaystyle \int p(x, \theta | X)d\theta = \displaystyle \int p(x | \theta, X)p(\theta | X)d\theta = \displaystyle \int p(x | \theta)p(\theta | X)d\theta

這樣, 我們使用所有 \theta 值對預測取平均值, 用它們的機率加權. 如果我們與在回歸中一樣, 以 y = g(x | \theta) 的形式作出預測, 則有

y = \displaystyle \int g(x | \theta)p(\theta | X)d\theta

對於這樣的積分, 實際上是比較難求結果的, 特別是某一些積分並不存在初等表達. 當求整個積分的方法不可行的時候, 我們可以將其縮小至單個點. 如果 p(\theta | X) 存在極值, 那麼我們可以通過最大事後機率估計 (Maximum a Posteriori Estimation) :

\theta^{\ast} = \argmax \limits_{\theta} \{ p(\theta | X) \}

這樣, 我們有

 p(x | X) = p(x | \theta^{\ast}), y^{\ast} = g(x | \theta^{\ast})

如果對 \theta 值沒有某些偏好設定, 那麼一般來說, 其和極大概似估計的值是相同的. 除了這種方法之外, 我們還可以使用 Bayes 估計

\theta^{\star} = E(\theta | X) = \displaystyle \int \theta p(\theta | X)d\theta

取期望值的原因是隨機變數的最佳估計是它的平均值. 假設 \theta 是變數, 我們想用 E(\theta) = \mu 進行預測. 如果常數 c\theta 的估計, 那麼有

E((\theta - c)^{2}) = E((\theta - \mu + \mu - c)^{2}) = E((\theta - \mu)^{2}) + (\mu - c)^{2}

如果 c = \mu, 那麼它的值最小. 在常態分佈的情況下, \theta^{\ast} = \theta^{\star}

接下來, 我需要引入一個實例來介紹參數分類方法. 假設有一個汽車公司銷售 n 個不同品種的汽車, 我們希望通過機器學習來得到一個可以用於估計不同年收入的顧客會購買哪種類型的汽車. 為了簡單起見, 我們假定唯一變數是顧客的年收入, 用 x 表示. 那麼 P(C_{i}) 表示購買第 i 種類型汽車的顧客所佔有的比例. 其中, C_{i} 表示顧客會購買第 i 類型的汽車. 如果顧客的年收入分布和常態分佈類似, 記 \mu_{i} 為購買第 i 種類型汽車的顧客的年收入均值, \sigma_{i}^{2} 是他們的年收入的方差

根據 Bayes 定理, 有

P(C_{i} | x) = \frac {p(x | C_{i})P(C_{i})}{\sum \limits_{k = 1}^{\text {card}X}p(x | C_{k})P(C_{k})}

顯然, 對於任意 P(C_{i} | x), \sum \limits_{k = 1}^{\text {card}X}p(x | C_{k})P(C_{k}) 都是他們的公共部分, 因此我們首先忽略掉這一項, 得到判別式函數 :

g_{i}^{\ast}(x) = p(x | C_{i}) + P(C_{i})

使用相同的思想, 針對判別式函數部分取自然對數, 得到我們想要的判別式函數 :

g_{i}(x) = \ln {p(x | C_{i})} + \ln {P(C_{i})}

我們要做的是從給定樣本 X = \{ x^{\mathrm {t}}, r^{\mathrm {t}} \}_{t = 1}^{\text {card}X} 中估計 p(x | C_{i})P(C_{i}). 其中,

r_{i}^{\mathrm {t}} = \begin {cases} 1 && {x^{\mathrm {t}} \in C_{i}} \\ 0 & {x^{\mathrm {t}} \in C_{k}, k \neq i} \end {cases}

根據我們之前討論過的, 針對 Bernoulli 分布和常態分佈的參數估計, 我們有

\hat {\mu_{i}} = \frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}r_{i}^{\mathrm {t}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}, \hat {\sigma_{i}^{2}} = \frac {\sum \limits_{\mathrm {t}}(x^{\mathrm {t}} - \mu_{i})^{2}r_{i}^{\mathrm {t}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}, \hat {P}(C_{i}) = \frac {\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}{\text {card}X}

將上面這些估計的參數置換掉判別式函數中對應的項, 可得

g_{i}^{\ast}(x) = -\frac {1}{2}\ln {2\pi} - \ln {\hat {\sigma_{i}}} - \frac {(x - \hat {\mu_{i}})^{2}}{2\hat {\sigma_{i}^{2}}} + \ln {\hat {P}(C_{i})}

對應地, 我們忽略掉場數部分和公共部分, 並且假設方差相等, 那麼得到

g_{i}(x) = -(x - \hat {\mu_{i}})^{2}

為了最大化 g_{i}(x), 即對於顧客 x 最可能選擇購買第 i 種類型的汽車的判定, 只要有

|x - \hat {\mu_{i}}| = \min \limits_{k}|x - \hat {\mu_{k}}|

那麼就說明顧客 x 最可能購買的是第 i 種類型的汽車

在上面, 我們假定了方差相同從而忽略了判定式函數種的 \ln {\hat {\sigma_{i}}} 部分. 當方差不同的時候, 總體方法也是類似的. 必須注意的是, 如果 x 是連續變數時, 在假設樣本為常態分佈之前, 首先要進行檢驗, 否則可能會出錯

從本節開始到現在, 我們幾乎都在討論分類問題, 接下來我們要針對回歸問題進行討論. 對於函數

r = f(x) + \varepsilon

其中, f 是未知函數, 我們要用定義在參數 \theta 的集合上的估計 g(x | \theta) 來近似它. 假設 \varepsilon 服從期望為 0 和方差為 \sigma^{2} 的常態分佈, 此時, p(r | x) 服從期望為 g(x | \theta) 和方差為 \sigma^{2} 的常態分佈. 記 p(x, r) 是資料服從的某一機率分布, 那麼有

p(x, r) = p(r | x)p(x)

我們使用極大概似估計, 有

\ell^{\ast} (\theta | X) = \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}p(r^{\mathrm {t}} | x^{\mathrm {t}})} + \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}p(x^{\mathrm {t}})}

由於 \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}p(x^{\mathrm {t}})} 不受參數估計的影響, 因此此項我們忽略, 於是

\begin {aligned} \ell (\theta | X) &= \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}p(r^{\mathrm {t}} | x^{\mathrm {t}})} \\ &= \ln {\prod \limits_{\mathrm {t} = 1}^{\text {card}X}\frac {1}{\sqrt {2\pi}\sigma}\exp \Bigg \{ -\frac {(r^{\mathrm {t}} - g(x^{\mathrm {t}} | \theta))^{2}}{2\sigma^{2}}}\Bigg \} \\ &= \ln {(\frac {1}{\sqrt {2\pi}\sigma})^{\text {card}X}\exp \Bigg \{ -\frac {1}{2\sigma^{2}\sum \limits_{\mathrm {t} = 1}^{\text {card}X}(r^{\mathrm {t}} - g(x^{\mathrm {t}} | \theta))^{2}}} \Bigg \} \\ &= -\text {card}X\ln {\sqrt {2\pi}\sigma} - \frac {1}{2\sigma^{2}}\sum \limits_{\mathrm {t} = 1}^{\text {card}X}(r^{\mathrm {t}} - g(x^{\mathrm {t}} | \theta))^{2} \end {aligned}

在最終結果中, 第一項獨立於我們想要估計的參數 \theta, 另外第二項中的 \frac {1}{\sigma^{2}} 也和參數無關, 這些我們可以直接忽略. 不忽略 \frac {1}{2} 的原因是方便後面求導數的運算. 最大化 \ell (\theta | X) 相當於最小化

E(\theta | X) = \frac {1}{2}\sum \limits_{\mathrm {t} = 1}^{\text {card}X}(r^{\mathrm {t}} - g(x^{\mathrm {t}} | \theta))^{2}

其中, E(\theta | X) 是最常用的誤差函數, 最小化 E(\theta | X) 中的 \theta 被稱為最小平方估計

在線型回歸中, 假設有線型函數 :

g(x^{\mathrm {t}} | w_{0}, w_{1}) = w_{1}x^{\mathrm {t}} + w_{0}

將其置換掉 \ell (\theta | X) 中的 g, 並分別令 \frac {\partial \ell}{\partial w_{1}} = 0 且 \frac {\partial \ell}{\partial w_{0}} = 0 可得

\sum \limits_{\mathrm {t}}r^{\mathrm {t}} = \text {card}Xw_{0} + w_{1}\sum \limits_{\mathrm {t}}x^{\mathrm {t}}\sum \limits_{\mathrm {t}}r^{\mathrm {t}}x^{\mathrm {t}} = w_{0}\sum \limits_{\mathrm {t}}x^{\mathrm {t}} + w_{1}\sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2}

它們可以寫成向量矩陣的形式 A\boldsymbol {w} = \boldsymbol {y}. 其中,

A = \begin {pmatrix} \text {card}X & \sum \limits_{\mathrm {t}}x^{\mathrm {t}} \\ \sum \limits_{\mathrm {t}}x^{\mathrm {t}} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2} \end {pmatrix}, \boldsymbol {w} = \begin {pmatrix} w_{0} \\ w_{1} \end {pmatrix}, \boldsymbol {y} = \begin {pmatrix} \sum \limits_{\mathrm {t}}r^{\mathrm {t}} \\ \sum \limits_{\mathrm {t}}r^{\mathrm {t}}x^{\mathrm {t}} \end {pmatrix}

於是, \boldsymbol {w} = A^{-1}\boldsymbol {y}

在多項式回歸中, 假設有多項式

g(x^{\mathrm {t}} | w_{0}, w_{1}, w_{2}, ..., w_{k}) = w_{k}(x^{\mathrm {t}})^{k} + w_{k - 1}(x^{\mathrm {t}})^{k - 1} + ... + w_{2}(x^{\mathrm {t}})^{2} + w_{1}x^{\mathrm {t}} + w_{0}

這個函數雖然不是線型的, 但是其參數是線型的, 因此我們也可以通過求偏導數的方式來得到 k + 1 個參數. 將多項式寫為 A\boldsymbol {w} = \boldsymbol {y}. 其中,

A = \begin {pmatrix} \text {card}X & \sum \limits_{\mathrm {t}}x^{\mathrm {t}} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2} & ... & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{k} \\ \sum \limits_{\mathrm {t}}x^{\mathrm {t}} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{3} & ... & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{k + 1} \\ \vdots & \vdots & \vdots & & \vdots \\ \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{k} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{k + 1} & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{k + 2} & ... & \sum \limits_{\mathrm {t}}(x^{\mathrm {t}})^{2k} \end {pmatrix}

\boldsymbol {w} = \begin {pmatrix} w_{0} \\ w_{1} \\ w_{2} \\ \vdots \\ w_{k} \end {pmatrix}, \boldsymbol {y} = \begin {pmatrix} \sum \limits_{\mathrm {t}}r^{\mathrm {t}} \\ \sum \limits_{\mathrm {t}}r^{\mathrm {t}}x^{\mathrm {t}} \\ \sum \limits_{\mathrm {t}}r^{\mathrm {t}}(x^{\mathrm {t}})^{2} \\ \vdots \\ \sum \limits_{\mathrm {t}}r^{\mathrm {t}}(x^{\mathrm {t}})^{k} \end {pmatrix}

A = D^{\mathrm {T}}D, \boldsymbol {y} = D^{\mathrm {T}}\boldsymbol {r}. 其中,

D = \begin {pmatrix} 1 & x^{1} & (x_{1})^{2} & ... & (x^{1})^{k} \\ 1 & x^{2} & (x_{2})^{2} & ... & (x^{2})^{k} \\ \vdots & \vdots & \vdots & & \vdots \\ 1 & x^{1} & (x^{\text {card}X})^{2} & ... & (x^{\text {card}X})^{k} \end {pmatrix}, \boldsymbol {r} = \begin {pmatrix} r^{1} \\ r^{2} \\ \vdots \\ r^{\text {card}X} \end {pmatrix}

於是, 我們有 \boldsymbol {w} = (D^{\mathrm {T}}D)^{-1}D^{\mathrm {T}}\boldsymbol {r}

度量參數估計的誤差的另一種方法是求相對平方誤差 :

E = \frac {\sum \limits_{\mathrm {t}}(r^{\mathrm {t}} - g(x^{\mathrm {t}} | \theta))^{2}}{\sum \limits_{\mathrm {t}}(r^{\mathrm {t}} - \bar {r})^{2}}

E \to 1 時, 我們的預測和用平均值的預測一樣好, 基於輸入 X 的估計有較大差距; 當 E \to 0 時, 我們得到了更好的擬合, 基於輸入 X 的估計是有用的

在得到基本的模型和參數之後, 我們就要評估模型的質量如何. 一個模型, 如果將無關的信息都學習進來了, 那麼我們稱這個模型過適; 如果學習得不夠好, 那麼我們稱這個模型乏適. 現在, 我們要針對模型的過適合乏適分析其理論

假設樣本 X = \{ x^{\mathrm {t}}, r^{\mathrm {t}} \} 取自服從 p(x, r) 的某一分布, 使用這個樣本估計函數 g, x 的期望平方誤差可以表示為

E((r - g(x))^{2} | X) = \underbrace {E((r - E(r | X))^{2} | X)}_{\text {樣本噪音}} + \underbrace {(E(r | X) - g(x))^{2}}_{\text {平方誤差}}

右側第一項是給定 xr 的誤差, 它並不依賴與 g 或者樣本 X, 但是它是誤差的一部分, 不論使用什麼方法估計都沒有辦法避免. 第二項用於描述函數 g 偏離函數 E(r | X) 的程度, 它依賴於估計的方法和樣本. 對某個樣本來說, 也許 g 是一個很好的模型, 但是對於另一個樣本就不一定. 因此, 為了評估一個估計 g 的好壞程度, 通常都是在可能的樣本上進行平均. 樣本 X 上的平均可以表示為

E_{X}((E(r | X) - g(x))^{2} | X) = \underbrace {E(r | X) - E_{X}(g(x))^{2}}_{\text {偏誤}} + \underbrace {E_{X}((g(x) - E_{X}(g(x)))^{2})}_{\text {方差}}

偏誤並不影響樣本發生變化時, g 的錯誤程度; 而方差描述了當樣本變化時,  gE(g) 附近的波動程度. 這兩者我們都希望它們可以充分小

對於一個噪音已知的 f 產生的一組資料 X_{i} = \{ x_{i}^{\mathrm {t}}, r_{i}^{\mathrm {t}} \}, 利用每個資料集合都形成一個估計 g_{i}, 我們計算它們的偏誤和方差. 但是實際上, 通常我們無法這樣做, 因為我們並不知道 f, 也不知道噪音. 於是, 對於 E(g), 一般用 g_{i} 上的平均來估計 :

\bar {g}(x) = \frac {\sum \limits_{i}g_{i}(x)}{\text {card} \{ X_{i} \}}

偏誤和方差分別是 :

B^{2}(g) = \frac {1}{\text {card}X}\sum \limits_{\mathrm {t}}(\bar {g}(x^{\mathrm {t}}) - f(x^{\mathrm {t}}))^{2}

\text {Var}(g) = \frac {1}{\text {card}X_{i} \text {card} \{ X_{i} \}}\sum \limits_{\mathrm {t}} \sum \limits_{\mathrm {t}}(g_{i}(x^{\mathrm {t}}) - \bar {g}(x^{\mathrm {t}}))^{2}

對於最簡單的常數模型

g_{i}(x) = c

其中, c 為任意常數. 它並沒有方差, 因為我們沒有使用數據, 並且 g_{i} = g_{j}, i \neq j. 除非對於任意的 x, 都有 f(x) \to c, 否則 g_{i} 的偏誤很高. 如果我們取樣本中 r^{\mathrm {t}} 的平均值 :

g_{i}(x) = \sum \limits_{\mathrm {t}}\frac {r_{i}^{\mathrm {t}}}{\text {card}X_{i}}

那麼偏誤會減少. 因為通常情況下, 平均值比某一常數具有更好的估計. 但是, 這也會導致方差增加, 因為不同的樣本具有不同的平均值. 不過一般在這種情況下, 偏誤的減少會比方差的增加更大, 總體誤差會降低

任何機器學習的方法都會面臨這樣的問題, 我們為了減少偏誤, 這可能會讓我們面臨高方差, 反之亦然. 我們重新定義過適和乏適 : 過適即方差較大, 模型學習了噪音; 乏適即偏誤過大, 模型給出的解並不一定具有高正確率. 但是, 對於高方差小偏誤的 g_{i}, \bar {g} 也許是一個比較好的分類器

實際情況下, 我們也許無法計算一個學習而來的模型的方差和偏誤, 但是這並不阻礙我們計算總誤差. 給定資料集合, 我們將資料分為學習資料和驗證資料. 我們使用學習資料學習到不同的候選模型, 然後使用驗證資料來驗證它們的誤差. 令人失望的是, 一般很複雜的模型才具有較小的誤差

對於誤差的估計, 還有一些其它方法 :

  • 正規化 :

    E' = \text {資料上的誤差} + \lambda \cdot \text {模型複雜度}

    它可以從兩個方面入手去理解. 一方面, 它的第二項用了一個大的方差懲罰複雜模型, 其中 \lambda 是懲罰的權. 當我們最小化 E' 且不僅僅是最小化資料上的誤差時, 我們懲罰了複雜模型, 因此降低了方差. 如果 \lambda 太大, 那麼就只允許簡單模型; 另一方面, 可以將 E' 看作新的驗證資料上的誤差, 第一項是學習誤差, 第二項是估計學習誤差和檢驗誤差之間偏差的優化項. 這個優化項隨著輸入數量線型增加, 並且隨著學習資料的增加而減少. 除此之外, 它還隨者噪音的方差的增加而增加

  • 結構風險最小化 : 對於模型候選集合, 按照複雜度進行排序, 複雜度排序一般依據參數的數量. 因此, 它比較適合尋找簡單且在資料上經驗誤差最小的模型. 我們之前所討論過的 VC 維度也是一種模型複雜度度量的方法
  • 最小描述長度 : 對於資料來說, 如果資料非常簡單, 那麼複雜度較小

五、多變數方法

在第四節我們討論了一元函數, 現在我們要將上面所討論的內容推廣到多變數函數中

對學習資料進行觀測, 得到關於資料的 n 個變數, 由此產生了一個觀測向量

\boldsymbol {x_{i}} = \begin {pmatrix} x_{i} \\ x_{i}^{2} \\ ... \\ x_{i}^{n} \end {pmatrix}

組合樣本可到資料矩陣 :

X = \begin {pmatrix} X_{1}^{1} & X_{2}^{1} & ... & X_{d}^{1} \\ X_{1}^{2} & X_{2}^{2} & ... & X_{d}^{2} \\ \vdots & \vdots & & \vdots \\ X_{1}^{d} & X_{2}^{d} & ... & X_{d}^{n} \end {pmatrix}

\boldsymbol {\mu} = \begin {pmatrix} \mu_{1} \\ \mu_{2} \\ ... \\ \mu_{d} \end {pmatrix}

每列的均值, 那麼有

E(\boldsymbol {x_{i}}) = \boldsymbol {\mu}

X_{i} 的方差為 \sigma_{i}^{2}, 則有

\sigma_{ij} = \sigma_{ji} = \text {Cov}(X_{i}, X_{j}) = E(X_{i}X_{j}) - \mu_{i}\mu_{j}

特別地, 當 i = j 時, \sigma_{ij} = \sigma_{i}^{2}. d 個變數就存在 d 個方差和 \frac {d(d - 1)}{2} 個協方差. 我們將這些組成一個協方差矩陣

\Sigma = \begin {pmatrix}\sigma_{1}^{2} & \sigma_{12} & \sigma_{13} & ... & \sigma_{id} \\ \sigma_{21} & \sigma_{2}^{2} & \sigma_{23} & ... & \sigma_{2d} \\ \vdots & \vdots & \vdots & & \vdots \\ \sigma_{d1} & \sigma_{d2} & \sigma_{d3} & ... & \sigma_{d}^{2} \end {pmatrix}

其中, \Sigma 滿足 \Sigma^{\mathrm {T}} = \Sigma, 對角線上的元素為協方差. 那麼,

\Sigma = \text {Cov}(X) = E((X - \boldsymbol {\mu})(X - \boldsymbol {\mu})^{\mathrm {T}}) = E(XX^{\mathrm {T}}) - \boldsymbol {\mu}\boldsymbol {\mu}^{\mathrm {T}}

如果兩個向量是線型相關的, 那麼協方差為正或者負取決於線型相關的斜率. 但是, 相關性的大小比較難解釋, 因為它取決於兩個變數的測量單位. 變數 X_{i}X_{j} 的相關性是一個規範到 [-1, 1] 之間的統計量, 定義為

R(X_{i}, X_{j}) = \rho_{ij} = \frac {\sigma_{ij}}{\sigma_{i}\sigma_{j}}

如果兩個變數是相互獨立的, 那麼必然有協方差等於 0, 因而相關性也為 0. 然而, 如果變數以某種非線型的方式相互依賴, 那麼它們的相關性可能仍然為 0

對於多變數的樣本, 均值的最大概似估計是樣本均值 \hat {\boldsymbol {\mu}}, 它的第 i 維度是 X 的第 i 列的平均值 :

\hat {\boldsymbol {\mu}} = \frac {\sum \limits_{\mathrm {t}}\boldsymbol {x}^{\mathrm {t}}}{\text {card}X_{i}}

其中, \hat {\mu_{i}} = \frac {\sum \limits_{\mathrm {t}}x^{\mathrm {t}}}{\text {card}X_{i}}, i = 1, 2, ..., d. \Sigma 的估計是樣本協方差矩陣 \hat {\Sigma}. 其中,

\hat {\sigma_{i}^{2}} = \frac {\sum \limits_{\mathrm {t}}(x_{i}^{\mathrm {t}} - \hat {\mu_{i}})^{2}}{\text {card}X_{i}}

\hat {\sigma_{ij}} = \frac {\sum \limits_{\mathrm {t}}(x_{i}^{\mathrm {t}} - \hat {\mu_{i}})(x_{j}^{\mathrm {t}} - \mu_{j})}{\text {card}X_{i}}

樣本的相關係數是

R_{ij} = \frac {\hat {\sigma_{ij}}}{\hat {\sigma_{i}}\hat {\sigma_{j}}}

所有的 R_{ij} 可以組成樣本的相關矩陣 R

不過有時候, 樣本並沒有我們想像得那麼好, 總有一些應該輸入的變數是缺失的. 如果樣本足夠多的情況下, 我們會丟棄這些樣本. 但是如果樣本數量本身就不多, 缺失的樣本中本來也包含了一些有用的信息, 我們就不再選擇丟棄樣本, 而是通過估算來填充這些缺失值. 一般來說, 我們可能會用樣本的均值來替代這些缺失值, 或者試圖從已知的其它樣本中獲取一些信息來預測這個缺失值

對於多變數樣本, 其也可能服從常態分佈, 只不過是多變數常態分佈 :

p(\boldsymbol {x}) = \frac {1}{\sqrt {(2\pi)^{d}\det {\Sigma}}}\exp \Big \{ -\frac {1}{2}(\boldsymbol {x} - \boldsymbol {\mu})^{\mathrm {T}}\Sigma^{-1}(\boldsymbol {x} - \boldsymbol {\mu}) \Big \}

其中, \boldsymbol {\mu} 是均值向量, \Sigma 是協方差矩陣. 另外,

(\boldsymbol {x} - \boldsymbol {\mu})^{\mathrm {T}}\Sigma^{-1}(\boldsymbol {x} - \boldsymbol {\mu}) = c^{2}

是在維度為 d 的空間中的一個橢球, 它的形狀和方向由 \Sigma 決定. 而方程式的左側則被稱為馬式距離

例 6. 給定線型函數 f = \boldsymbol {w}^{\mathrm {T}}\boldsymbol {x} = w_{1}x_{1} + w_{2}x_{2} + ... + w_{d}x_{d} + w_{0} 服從均值為 \boldsymbol {w}^{\mathrm {T}}\boldsymbol {\mu} 方差為 \boldsymbol {w}^{\mathrm {T}}\Sigma\boldsymbol {w} 的多變數常態分佈. 計算 f 的期望和方差

:

E(\boldsymbol {w}^{\mathrm {T}}\boldsymbol {x}) = \boldsymbol {w}^{\mathrm {T}}E(\boldsymbol {x}) = \boldsymbol {w}^{\mathrm {T}}\boldsymbol {\mu}

\begin {aligned} \text {Var}(\boldsymbol {w}^{\mathrm {T}}\boldsymbol {x}) &= E((\boldsymbol {w}^{\mathrm {T}}\boldsymbol {x} - \boldsymbol {w}^{\mathrm {T}}\boldsymbol {\mu})^{2}) \\ &= E((\boldsymbol {w}^{\mathrm {T}}\boldsymbol {x} - \boldsymbol {w}^{\mathrm {T}}\boldsymbol {\mu})(\boldsymbol {w}^{\mathrm {T}}\boldsymbol {x} - \boldsymbol {w}^{\mathrm {T}}\boldsymbol {\mu})) \\ &= E(\boldsymbol {w}^{\mathrm {T}}(\boldsymbol {x} - \boldsymbol {\mu})(\boldsymbol {x} - \boldsymbol {\mu})^{\mathrm {T}}\boldsymbol {w}) \\ &= \boldsymbol {w}^{\mathrm {T}}E((\boldsymbol {x} - \boldsymbol {\mu})(\boldsymbol {x} - \boldsymbol {\mu})^{\mathrm {T}})\boldsymbol {w} \\ &= \boldsymbol {w}^{\mathrm {T}}\Sigma\boldsymbol {w} \end {aligned}

\blacksquare

如果機率分布 p(\boldsymbol {x} | C_{i}) 服從常態分佈, 那麼有

p(\boldsymbol {x} | C_{i}) = \frac {1}{\sqrt {(2\pi)^{d}\det {\Sigma_{i}}}}\exp \Big \{ -\frac {1}{2}(\boldsymbol {x} - \boldsymbol {\mu_{i}})^{\mathrm {T}}\Sigma_{i}^{-1}(\boldsymbol {x} - \boldsymbol {\mu_{i}}) \Big \}

首先, 常態分佈是符合絕大多數自然界現象的模型. 因為大多數類別的樣本都可以看作簡單原型 \boldsymbol {\mu}_{i} 的輕微改編版本, 並且協方差矩陣 \Sigma_{i} 表示每個變數中的噪音量與產生噪音的源的相關性. 考慮參數估計中汽車購買預測的實例. 若 \boldsymbol {x} 是顧客身上可觀測的資料, \boldsymbol {\mu}_{i} 是購買第 i 類汽車的顧客的資料均值向量, 而 \Sigma_{i} 是協方差矩陣. 若我們定義判別式函數 g_{i}(\boldsymbol {x}) = \ln {p(\boldsymbol {x} | C_{i})} + \ln {P(C_{i})}, 那麼有

g_{i}(\boldsymbol {x}) = -\frac {d}{2}\ln {2\pi} - \frac {1}{2}\ln {\det \Sigma_{i}} - \frac {1}{2}(\boldsymbol {x} - \boldsymbol {\mu_{i}})^{\mathrm {T}}\Sigma_{i}^{-1}(\boldsymbol {x} - \boldsymbol {\mu_{i}}) + \ln {P(C_{i})}

若給定 \dim {\boldsymbol {x}} \geq 2 的學習樣本 X = \{ \boldsymbol {x}^{\mathrm {t}}, \boldsymbol {r}^{\mathrm {t}} \}, 那麼

\hat {P}(C_{i}) = \frac {\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}{\text {card}X}

\hat {\boldsymbol {\mu}_{i}} = \frac {\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}\boldsymbol {x}^{\mathrm {t}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}

\hat {\Sigma_{i}} = \frac {\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}(\boldsymbol {x}^{\mathrm {t}} - \hat {\boldsymbol {\mu}})(\boldsymbol {x}^{\mathrm {t}} - \hat {\boldsymbol {\mu}})^{\mathrm {T}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}

將上述結果置換掉 g_{i} 中的對應項並且忽略掉常數部分, 可得

g_{i}(\boldsymbol {x}) = -\frac {1}{2}\ln {\det {\hat {\Sigma_{i}}}} - \frac {1}{2}(\boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}})^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}(\boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}}) + \ln {\hat {P}(C_{i})}

展開之後有

g_{i}(\boldsymbol {x}) = -\frac {1}{2}\ln {\det {\hat {\Sigma_{i}}}} - \frac {1}{2}(\boldsymbol {x}^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {x} - 2\boldsymbol {x}^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {\mu}_{i} + \boldsymbol {\mu}_{i}^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {\mu}_{i}) + \ln {\hat {P}(C_{i})}

它定義了一個二次判別式 :

g_{i}(\boldsymbol {x}) = \boldsymbol {x}^{\mathrm {T}}W_{i}\boldsymbol {x} + \boldsymbol {w}_{i}^{\mathrm {T}}\boldsymbol {x} + w_{i0}

其中, W_{i} = \frac {1}{2}\hat {\Sigma_{i}}^{-1}, \boldsymbol {w}_{i} = \hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {\mu}_{i}, w_{i0} = -\frac {1}{2}\boldsymbol {\hat {\mu}_{i}}^{\mathrm {T}}\hat {\Sigma_{i}}^{-1}\boldsymbol {\mu}_{i} - \frac {1}{2}\ln {\det {\hat {\Sigma_{i}}}} + \ln {\hat {P}(C_{i})}

對於均值, 需要估計的參數共有 \dim {\boldsymbol {x}}d 個; 對於協方差矩陣, 需要估計的參數共有 \dim {\boldsymbol {x}}\frac {d(d + 1)}{2} 個. 當 d 很大但是樣本比較少的時候, 可能有 \det {\hat {\Sigma_{i}}} = 0, 其逆矩陣不存在; 又或者 \det {\hat {\Sigma_{i}}} \to 0, 這種情況不太穩定, 對於 \hat {\Sigma_{i}} 的小變化都可能引起 \hat {\Sigma_{i}}^{\mathrm {T}} 的巨大變化

除了上面這種方法之外, 另一種作法是匯集所有資料, 並且對所有類別估計公共協方差矩陣 :

\hat {\Sigma} = \sum \limits_{i}\hat {P}(C_{i})\hat {\Sigma_{i}}

在協方差矩陣相同的情況下, 有

g_{i}(\boldsymbol {x}) = -\frac {1}{2}(\boldsymbol {x}^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {x} - 2\boldsymbol {x}^{\mathrm {T}}\hat {\Sigma}^{\mathrm {T}}\boldsymbol {\mu}_{i} + \boldsymbol {\mu}_{i}^{\mathrm {T}}\hat {\Sigma_{i}}^{\mathrm {T}}\boldsymbol {\mu}_{i}) + \ln {\hat {P}(C_{i})}

此時, 對於協方差矩陣, 需要估計的參數降為 \frac {d(d + 1)}{2} 個. 如果事前機率 \ln {\hat {P}(C_{i})} 相等, 那麼最佳決策規則是把輸入指派到與輸入均值的馬式距離最小的那一類中. 如果事前機率不相等, 那麼邊界會發生移動. 在這種情況下, \boldsymbol {x}^{\mathrm {T}}W_{i}\boldsymbol {x} 這一項可以被消除, 因為它出現在所有判別式函數中, 並且決策的邊界是線型的, 那麼有

g_{i}(\boldsymbol {x}) = \boldsymbol {w}_{i}^{\mathrm {T}}\boldsymbol {x} + w_{i0}

其中, W_{i} = \hat {\Sigma}^{-1}\hat {\boldsymbol {\mu_{i}}}, w_{i0} = -\frac {1}{2}\hat {\boldsymbol {\mu}_{i}}^{\mathrm {T}}\hat {\Sigma}^{-1}\hat {\boldsymbol {\mu_{i}}} + \ln {\hat {P}(C_{i})}

這種線型分類器的決策區域是凸的 (參考《凸包》)

進一步地, 我們假定協方差矩陣所有非對角元素都為 0, 從而假定變數相互獨立, 此時問題可以進一步簡化, 有

g_{i}(\boldsymbol {x}) = -\frac {1}{2}\sum \limits_{j}(\frac {x_{j}^{\mathrm {t}} - \hat {\mu}_{ij}}{\hat {\sigma}_{j}})^{2} + \ln {\hat {P}(C_{i})}

其中, \frac {x_{j}^{\mathrm {t}} - \hat {\mu}_{ij}}{\hat {\sigma}_{j}} 有規範化的作用並且以標準差單位度量距離. 此時, 關於方差的參數降為 d

如果我們假設所有變數都相等, 馬式距離化約為歐幾里得距離, 那麼在幾何圖形上, 分布是球形的, 並以 \hat {\boldsymbol {\mu}_{i}} 為中心. 於是 \det {\hat {\Sigma}} = s^{2d}\hat {\Sigma}^{-1} = \frac {1}{\hat {\sigma}^{2}}E, 那麼有

\begin {aligned} g_{i}(\boldsymbol {x}) &= \frac {\| \boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}} \|^{2}}{2\hat {\sigma}^{2}} + \ln {\hat {P}(C_{i})} \\ &= -\frac {1}{2\hat {\sigma}^{2}}\sum \limits_{j}(x_{j}^{\mathrm {t}} - \hat {\mu}_{ij})^{2} + \ln {\hat {P}(C_{i})} \end {aligned}

其中, E 為單位矩陣. 此時, 參數為 \dim {\boldsymbol {x}}d 個均值和一個 \hat {\sigma}^{2}

若所有事前機率 P(C_{i}) 相等, 自然有

g_{i}(\boldsymbol {x}) = -\| \boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}} \|^{2}

這稱為最近均值分類, 因為它把輸入指派到最近均值的類別中. 如果每個均值都看作類別的理想原型或者樣板, 那麼這就是樣板配對的過程. 它可以擴展為

\begin {aligned} g_{i}(\boldsymbol {x}) &= -\| \boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}} \|^{2} \\ &= -(\boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}})^{\mathrm {T}}(\boldsymbol {x} - \hat {\boldsymbol {\mu}_{i}}) \\ &= -(\boldsymbol {x}^{\mathrm {T}}\boldsymbol {x} - 2\hat {\boldsymbol {\mu}_{i}}^{\mathrm {T}}\boldsymbol {x} + \hat {\boldsymbol {\mu}_{i}}^{\mathrm {T}}\hat {\boldsymbol {\mu}_{i}}) \end {aligned}

顯然, \boldsymbol {x}^{\mathrm {T}}\boldsymbol {x} 出現在所有 g_{i} 中, 去掉之後有

g_{i}(\boldsymbol {x}) = \boldsymbol {w}_{i}^{\mathrm {T}}\boldsymbol {x} + w_{i0}

其中, \boldsymbol {w_{i}} = \hat {\boldsymbol {\mu}_{i}}, w_{i0} = -\frac {1}{2} \| \hat {\boldsymbol {\mu}_{i}} \|^{2}. 如果所有的 \hat {\boldsymbol {\mu}_{i}} 擁有相似的範數 (長度), 我們甚至可以忽略 w_{i0} 進一步將 g_{i} 寫為

g_{i}(\boldsymbol {x}) = \boldsymbol {w}_{i}^{\mathrm {T}}\boldsymbol {x}

當 \hat {\boldsymbol {\mu}_{i}} 的范數可比較的時候, 也可以使用點積替代負的歐幾里得距離作為相似性的度量

通過上面的分析, 實際上, 我們發現我們可以將尋找最佳判別式函數的過程看作尋找最佳距離函數的過程. 但是有時候, 某些假設並不成立, 例如針對所有變數都有相同的方差從而所有變數都相互獨立, 這在實際中比較難成立. 為了調整模型的複雜度, 有一種正規化判別式分析

S_{i}' = \alpha\sigma^{2}I + \beta S + (1 - \alpha - \beta)\hat {S}_{i}

\alpha = \beta = 0 時, 這導致二次分類器; 當 \alpha = 0, \beta = 1 時, 共享協方差矩陣從而得到線型分類器; 當 \alpha = 1, \beta = 0 時, 協方差矩陣是對角矩陣, \sigma^{2} 在對角線上, 從而得到最近均值分類

當學習資料中樣本數量比較少的時候, 另一種正規化的方法是通過定義 \boldsymbol {\mu}_{i}S_{i} 上的事前機率, 然後使用貝葉斯估計

上面, 我們討論的隨機變數具有連續性, 如果隨機變數是離散的, 那麼如何取處理呢? 假設 x_{j} 是 Bernoulli 隨機變數, 則有

p(x | C_{i}) = \prod \limits_{j}p_{ij}^{x_{j}}(1 - p_{ij})^{1 - x_{j}}

p(x_{j} | C_{i}) 是常態分佈的, 那麼其判別式函數為

\begin {aligned} g_{i}(\boldsymbol {x}) &= \ln {p(\boldsymbol {x} | C_{i})} + \ln {P(C_{i})} \\ &= \sum \limits_{j}(x_{j}\ln {p_{ij}} + (1 - x_{j})\ln {(1 - p_{ij})}) + \ln {P(C_{i})} \end {aligned}

它是線型函數, 其中 p_{ij} 的估計為

\hat {p_{ij}} = \frac {\sum \limits_{\mathrm {t}}x_{j}^{\mathrm {t}}r_{i}^{\mathrm {t}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}}

在一般情況下, 假定 x_{j} 選自集合 \{ v_{1}, v_{2}, ..., v_{n_{j}} \}, 而不是 Bernoulli 的, 那麼我們重新定義新的 Bernoulli 隨機變數

z_{jk}^{\mathrm {t}} = \begin {cases} 1 & {x_{j}^{\mathrm {t}} = v_{k}} \\ 0 & {\text {else}} \end {cases}

p_{ijk} 表示 x_{j} 所屬的類 C_{i} 且取值為 v_{k} 的機率, 即

p_{ijk} = p(z_{jk} = 1 | C_{i}) = p(x_{j} = v_{k} | C_{i})

如果集合中的屬性相互獨立, 那麼有

p(\boldsymbol {x} | C_{i}) = \prod \limits_{j} \prod \limits_{k}p_{ijk}^{z_{jk}}

於是, 判別式函數為

g_{i}(\boldsymbol {x}) = \sum \limits_{j} \sum \limits_{k}z_{jk}\ln {p_{ijk}} + \ln {P(C_{i})}

\hat {p_{ij}} = \frac {\sum \limits_{\mathrm {t}}x_{j}^{\mathrm {t}}r_{i}^{\mathrm {t}}}{\sum \limits_{\mathrm {t}}r_{i}^{\mathrm {t}}} 置換入 g_{i} 就可以得到判別式函數

上面, 我們討論了分類的情況, 接下來我們討論回歸的情況. 在多變數線型回歸中, 假定數值輸入 r 為線型函數, 那麼有

r^{\mathrm {t}} = g(\boldsymbol {x}^{\mathrm {t}} | w_{1}, w_{2}, ..., w_{d}, w_{0}) + \varepsilon = w_{1}x_{1}^{\mathrm {t}} + w_{2}x_{2}^{\mathrm {t}} + ... + w_{d}x_{d}^{\mathrm {t}} + \varepsilon

與單變數的情況相同, 我們假定 \varepsilon 是常態分佈的, 且均值為 0, 方差為任意常數, 最大化該死等價於最小化誤差的平方和 :

E(w_{1}, w_{2}, ..., w_{d}, w_{0} | X) = \frac {1}{2}\sum \limits_{\mathrm {t}}(r^{\mathrm {t}} - w_{1}x_{1}^{\mathrm {t}} + w_{2}x_{2}^{\mathrm {t}} + ... + w_{d}x_{d}^{\mathrm {t}})^{2}

關於參數 w_{j}\ (j = 0, 1, 2, ..., d) 求其偏導數, 得到正規方程式組

\begin {cases} \sum \limits_{\mathrm {t}}r^{\mathrm {t}} = w_{1}\sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}} + w_{2}\sum \limits_{\mathrm {t}}x_{2}^{\mathrm {t}} + ... + w_{d}\sum \limits_{\mathrm {t}}x_{d}^{\mathrm {t}} + \text {card}X \cdot  w_{0} \\ \sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}}r^{\mathrm {t}} = w_{0}\sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}} + w_{1}\sum \limits_{\mathrm {t}}(x_{1}^{\mathrm {t}})^{2} + w_{2}\sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}}x_{2}^{\mathrm {t}} + ... + w_{d}\sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}}x_{d}^{\mathrm {t}} \\ \sum \limits_{\mathrm {t}}x_{2}^{\mathrm {t}}r^{\mathrm {t}} = w_{0}\sum \limits_{\mathrm {t}}x_{2}^{\mathrm {t}} + w_{1}\sum \limits_{\mathrm {t}}x_{1}^{\mathrm {t}}x_{2}^{\mathrm {t}} + w_{2}\sum \limits_{\mathrm {t}}(x_{2}^{\mathrm {t}})^{2} + ... + w_{d}\sum \limits_{\mathrm {t}}x_{2}^{\mathrm {t}}x_{d}^{\mathrm {t}} \\ \vdots \\ \sum \limits_{\mathrm {t}}x_{d}^{\mathrm {t}}r^{\mathrm {t}} = w_{0}\sum \limits_{\mathrm {t}}x_{d}^{\mathrm {t}} + w_{1}\sum \limits_{\mathrm {t}}x_{d}^{\mathrm {t}}x_{1}^{\mathrm {t}} + w_{2}\sum \limits_{\mathrm {t}}x_{d}^{\mathrm {t}}x_{2}^{\mathrm {t}} + ... + w_{d}\sum \limits_{\mathrm {t}}(x_{d}^{\mathrm {t}})^{2} \end {cases}

X = \begin {pmatrix} 1 & x_{1}^{1} & x_{2}^{1} & ... & x_{d}^{1} \\ 1 & x_{1}^{2} & x_{2}^{2} & ... & x_{d}^{2} \\ \vdots & \vdots & \vdots & & \vdots \\ 1 & x_{1}^{\text {card}X} & x_{2}^{\text {card}X} & ... & x_{d}^{\text {card}X} \end {pmatrix}, \boldsymbol {w} = \begin {pmatrix} w_{0} \\ w_{1} \\ w_{2} \\ \vdots \\ w_{d} \end {pmatrix}, \boldsymbol {r} = \begin {pmatrix} r^{1} \\ r^{2} \\ \vdots \\ r^{\text {card}X} \end {pmatrix}

於是, 正規方程式可以寫為

X^{\mathrm {T}}X\boldsymbol {w} = X^{\mathrm {T}}\boldsymbol {r}

那麼有

\boldsymbol {w} = (X^{\mathrm {T}}X)^{-1}X^{\mathrm {T}}\boldsymbol {r}

總體方法和單變數多項式回歸中使用的方法沒有差別, 因為若取 x_{1} = x, x_{2} = x^{2}, ..., x_{d} = x^{d}, 那麼這兩個是同一個問題

六、維度化約

對於學習資料中的某些特徵, 它們對結果的影響並不是特別大. 比如在購買汽車的案例中, 客戶使用的手機品牌並不會對結果產生大的影響. 因此, 我們要設法捨棄掉這些特徵, 將數據從 d 個維度降至 d - k 個維度. 其中, 0 < k < d

有一種啟發式的方法, 就是從空的維度集合中不斷向其中加入維度, 檢驗維度對正確率的影響. 當某個維度對正確率有顯著的提升效果, 那麼我們可以確定將這個維度加入其中; 另一種方案是從維度集合中刪除部分維度, 檢驗刪除之後的維度對正確率的影響. 如果該維度對正確率沒有顯著影響, 那麼我們可以確定可以將這個維度刪除

但是這種方法有一定的風險, 例如某些維度具有關聯性. 當加入單個維度的時候, 對正確率沒有顯著提升, 但是當兩個或者以上的維度組合一起加入的時候, 對正確率才有顯著影響. 使用上面這種啟發式的方法就無法正確選擇, 而且這種啟發式方法找到的解不一定是最佳解, 甚至還有可能找到一個比較差的解

從線性代數的角度, 某些分散在某個區域的數據可以通過矩陣變換投影到更低一維度上. 主成分分析就是這樣的一種方法, 我們將這個方法用於機器學習. 實際上對於 d 維的數據, 我們希望找到一個 k 維的空間, 將數據投影之後使得損失最小. 使用矩陣來表示, \boldsymbol {x} 在方向 \boldsymbol {w} 上的投影為

z = \boldsymbol {w}^{\mathrm {T}}\boldsymbol {x}

主成分分析是一種非監督的方法, 它僅僅使用輸入資料, 準則是使得資料的方法最大化. 我們將資料投影到方向 \boldsymbol {w} 之後, 我們希望不同樣本之間的距離盡量大. 為了得到唯一解且使得該方向稱為最重要的因素, 我們要求任意 \| \boldsymbol {x}_{i} \| = 1, 且 \boldsymbol {x}_{i}\boldsymbol {x}_{j} 正交, 即 \boldsymbol {x}_{i}\boldsymbol {x}_{j} = 0. 其中, i \neq j. \boldsymbol {x}_{1}, \boldsymbol {x}_{2}, ... 便是學習資料的主成分. 要注意的是, 這並不是維度, 我們要做的是將原來的 d 個維度投影到某個成分 \boldsymbol {x}_{i} 上. 對於 z_{1} = \boldsymbol {w}_{1}^{\mathrm {T}}\boldsymbol {x}, 我們知道, 若 \text {Cov}(\boldsymbol {x}) = \Sigma, 則有

\text {Var}(z_{1}) = \boldsymbol {w}_{1}^{\mathrm {T}}\Sigma \boldsymbol {w}_{1}

為了尋找 \boldsymbol {w}_{1}, 使得 \text {Var}(z_{1}) 在約束 \boldsymbol {w}_{1}^{\mathrm {T}}\boldsymbol {w}_{1} = 1 下最大化. 這實際上是在某些約束下尋找函數極值問題, 我們利用 Lagrange 乘數法, 記 L_{1}(\boldsymbol {w}_{1}) = \boldsymbol {w}_{1}^{\mathrm {T}}\Sigma \boldsymbol {w}_{1} - \alpha(\boldsymbol {w}_{1}^{\mathrm {T}}\boldsymbol {w}_{1} - 1). 對 \boldsymbol {w}_{1} 求導數並令其為 0 可得

\Sigma \boldsymbol {w}_{1} = \alpha \boldsymbol {w}_{1}

為了使得方差最大化, 我們選擇具有最大特徵值的特徵向量. 因此, 主成分是學習樣本的協方差矩陣的具有最大特徵值 \lambda = \alpha 的特徵向量. 對於其它主成分, 我們需要和前面的特徵向量正交. 以 \boldsymbol {w}_{2} 為例, 對於 z_{2} = \boldsymbol {w}_{2}^{\mathrm {T}}\boldsymbol {x}, 除了有條件 \boldsymbol {w}_{1}^{\mathrm {T}}\boldsymbol {w}_{1} = 1 之外, 還需要滿足 \boldsymbol {w}_{2}^{\mathrm {T}}\boldsymbol {w}_{2} = 0. 這樣, Lagrange 函數要假設為

L_{2}(\boldsymbol {w}_{2}) = \boldsymbol {w}_{2}^{\mathrm {T}}\Sigma \boldsymbol {w}_{2} - \alpha(\boldsymbol {w}_{1}^{\mathrm {T}}\boldsymbol {w}_{1} - 1) - \beta\boldsymbol {w}_{2}^{\mathrm {T}}\boldsymbol {w}_{2}

因為 \Sigma 是對稱的, 所以對於對於兩個不同的特徵值, 特徵向量必定是正交的; 如果 \Sigma 是正定的, 那麼它的所有特徵值都為正數; 如果 \det {\Sigma} = 0, 若 R(\Sigma) = k, 且 k < d, 則 \lambda_{i} = 0\ (i = k + 1, k + 2, ..., d), 剩餘 k 個具有非零特徵值的特徵向量是需要化約的維度. 越靠前的特徵向量貢獻了越大的方差

我們定義

\boldsymbol {z} = W^{\mathrm {T}}(\boldsymbol {x} - \boldsymbol {m})

其中, Wk 列是 \hat {\Sigma}k 個主特徵向量, \hat {\Sigma}\Sigma 的一個估計. 在投影前, 從 \boldsymbol {x} 減去樣本均值 \hat {\mu}, 將數據在原點中心化. 經過線型變換之後, 我們得到了一個 k 維空間, 它的維是特徵向量, 在這些新維度上的方差等於特徵值. 為了規範化方差, 可以除以特徵值的平方根

另外一種推導, 是尋找一個矩陣 W, 使得當 \boldsymbol {z} = W^{\mathrm {T}}\boldsymbol {x} 時, 有 \text {Cov}(\boldsymbol {z}) = D, 其中 D 是對角矩陣. 另外, 為了不是一般性, 我們假設 \boldsymbol {x} 已經被中心化. 換句話說, 我們希望得到不相關的 z_{i}

如果形成一個 d \times c 的矩陣 C, 其中第 i 列是 \hat {\Sigma} 的規範化向量 c_{i}, 則 C^{\mathrm {T}}C = E, E 是單位矩陣. 並且,

\begin {aligned} \hat {\Sigma} &= \hat {\Sigma}CC^{\mathrm {T}} \\ &= \hat {\Sigma}(\boldsymbol {c}_{1}, \boldsymbol {c}_{2}, ..., \boldsymbol {c_{d}})C^{\mathrm {T}} \\ &= (\hat {\Sigma}\boldsymbol {c}_{1}, \hat {\Sigma}\boldsymbol {c}_{2}, ..., \hat {\Sigma}\boldsymbol {c_{d}})C^{\mathrm {T}} \\ &= (\lambda_{1}\boldsymbol {c}_{1}, \lambda_{2}\boldsymbol {c}_{2}, ..., \lambda_{d}\boldsymbol {c_{d}})C^{\mathrm {T}} \\ &= \lambda_{1}\boldsymbol {c}_{1}\boldsymbol {c}^{\mathrm {T}} + \lambda_{d}\boldsymbol {c}_{d}\boldsymbol {d}^{\mathrm {T}} \\ &= CDC^{\mathrm {T}} \end {aligned}

其中, 對角矩陣 D 的對角線元素是特徵值 \lambda_{1}, \lambda_{2}, ..., \lambda_{d}. 這稱為 \hat {\Sigma} 的频谱分解. 由於 C 是正交的, 並且 CC^{\mathrm {T}} = C^{\mathrm {T}}C = E, 因此對於 \hat {\Sigma}, 可以在左側乘以 C^{\mathrm {T}}, 在右側乘以 C, 得到

C^{\mathrm {T}}\hat {\Sigma}C = D

如果我們知道 \boldsymbol {z} = W^{\mathrm {T}}\boldsymbol {x}, 則 \text {Cov}(\boldsymbol {z}) = W^{\mathrm {T}}\hat {\Sigma}W, 我們希望它等於一個對角矩陣. 從上述分析中, 我們看到, 可以令 W = C

如果在實際中, 所有特徵值都大於 0\det {\hat {\Sigma}} 很小, 那麼某些特徵值對方差的影響比較小, 可以考慮丟棄. 一般來說, 我們會考慮貢獻了 90% 以上方差的前 k 個主成分. 其中, k < d, 那麼得到方差比例

\frac {\lambda_{1} + \lambda_{2} + ... + \lambda_{k}}{\lambda_{1} + \lambda_{2} + ... + \lambda_{k - 1} + \lambda_{k} + \lambda_{k + 1} + ... + \lambda+{n}}

在維度高度相關的情況下, 一般來說 k 幾乎和 [/latex]d[/latex] 一樣大. 另一種可能的方法是忽略那些特徵值小於平均輸入方差的特徵向量

主成分分析中遠離集中區域的數據對於方差的影響比較大, 在計算時, 我們可以考慮丟棄這些數據

如果學習資料服從均值為 \mu 且方差為 \Sigma 的常態分佈, 投影之後對於 \boldsymbol {z} = W^{\mathrm {T}}\boldsymbol {x} 服從均值為 W^{\mathrm {T}}\mu 且方差為 W^{\mathrm {T}}\Sigma W 的常態分佈. 如果樣本是 d 維的, 那麼投影到 k 維之後, 由於 \boldsymbol {z} 的各個列向量線型不相關, 新的協方差矩陣是一個對角矩陣. 如果它們被規範化且具有單位方差, 那麼可以在新的空間中使用歐式距離導出一個簡單的分類器. 學習資料 \boldsymbol {x}^{\mathrm {t}} 投影到 z 空間中, 有

\boldsymbol {z}^{\mathrm {t}} = W^{\mathrm {T}}(\boldsymbol {x}^{\mathrm {t}} - \mu)

W 是正交矩陣使得 WW^{\mathrm {T}} = E 時, 它可以逆投影到原來的空間 :

\hat {\boldsymbol {x}}^{\mathrm {t}} = W\boldsymbol {z}^{\mathrm {t}} + \mu

其中, \hat {\boldsymbol {x}}^{t}\boldsymbol {x}^{\mathrm {t}}z 空間中表示的重構, E 為單位矩陣. 在所有正交的線型投影中, 主成分分析最小化了重構誤差, 即 \sum \limits_{\mathrm {t}} \| \boldsymbol {x}^{\mathrm {t}} - \hat {\boldsymbol {x}}^{\mathrm {t}} \| ^{2}

在公共主成分分析中, 假設對每一個類別, 其主成分都是相同的; 但是對於不同的類別, 這些成分的方差不同 :

\hat {\Sigma_{i}} = CD_{i}C^{\mathrm {T}}

這種方法允許匯聚學習資料, 並且是一種正則化的方法, 它的複雜度比所有類別都使用公共協方差矩陣要小, 同時仍然允許各個 \hat {\Sigma_{i}} 存在差別

對於比較稀疏的學習資料, 例如我們需要學習幾個人的人臉, 但是臉部圖像只有幾十張. 若每張圖的像素為 256 x 256, 那麼總共有 65535 個維度. 根據矩陣的秩的性質可知, 由於只有幾十個圖像, 因此秩遠遠小於 65535. 於是, 我們需要使用特徵嵌入. 若 Xn \times d 矩陣. 其中, n 是學習資料中的樣本數量, d 是維度. \boldsymbol {x} 的協方差矩陣是 d \times d 的, 不失一般性, 我們假設 X 已經中心化, 且均值為 0. 那麼, 該矩陣等於 X^{\mathrm {T}}X. 主成分分析使用 X^{\mathrm {T}}X 的特徵向量. 頻譜分解為

X^{\mathrm {T}}X = WDW^{\mathrm {T}}

其中, Wd \times d 矩陣, 並且它的各個列包含了 X^{\mathrm {T}}X 的特徵向量, D 為對角矩陣, 對角元素是對應的特徵值. 假設我們想要將維度化約到 k\ (k < d). 在主成分分析中, 我們取 W 的前 k 列, 記作 \boldsymbol {w}_{i}, 其對應的特徵值為 \lambda_{i}. 其中, i = 1, 2, ..., k. 通過取原始輸入與特徵向量的點積, 影射到新的 k 維空間上

z_{i}^{t} = \boldsymbol {w}_{i}^{\mathrm {T}}\boldsymbol {x}^{\mathrm {t}}, i = 1, 2, ..., k; t = 1, 2, ..., n

給定 \lambda_{i}\boldsymbol {w}_{i}X^{\mathrm {T}}X 的特徵值和特徵向量, 對於任意 i \leq k, 有

(X^{\mathrm {T}}X)\boldsymbol {w}_{i} = \lambda_{i}\boldsymbol {w}_{i}

等式兩側左乘 X 可得

(XX^{\mathrm {T}})X\boldsymbol {w}_{i} = \lambda_{i}X\boldsymbol {w}_{i}

因此, X\boldsymbol {w}_{i}XX^{\mathrm {T}} 具有相同特徵值的特徵向量. 而 X^{\mathrm {T}}Xd \times d 矩陣, XX^{\mathrm {T}}n \times n 矩陣. XX^{\mathrm {T}} 的頻譜分解為

XX^{\mathrm {T}} = VAV^{\mathrm {T}}

其中, Vn \times n 矩陣, 其列由 XX^{\mathrm {T}} 的特徵向量組成, A 為對角矩陣, 其對角元素為對應的特徵值. XX^{\mathrm {T}}n 維特徵向量是新的特徵嵌入空間的座標

注意, 特徵向量通常被規範化, 具有單位長度. 因此, 如果 XX^{\mathrm {T}} 的特徵向量是 \boldsymbol {v}_{i}, 由於 X\boldsymbol {w}_{i} 的平方和為 \lambda_{i}, 則有

\boldsymbol {v}_{i} = \frac {X\boldsymbol {w}_{i}}{\lambda_{i}}

其中, i = 1, 2, ..., k. 那麼, 如果我們已經計算了 \boldsymbol {v}_{i}, 即矩陣 V 的第 i 列, 並且想要得到 X\boldsymbol {w}_{i}, 可以直接使用

z_{i}^{t} = V_{ti}\sqrt {{E}_{tt}}

其中, t = 1, 2, ..., n; i = 1, 2, ..., k

d < n 時, 使用 X^{\mathrm {T}}X 進行計算比較簡單; 否則, 使用 XX^{\mathrm {T}} 計算比較簡單. 對於主成分分析, 我嗯學習投影向量, 並且可以通過特徵向量與學習資料的點積將原數據影射到新的維度空間中. 使用特徵嵌入做不到這一點, 因為特徵向量並沒有學習投影模型, 而是直接得到了座標

考慮一個實際問題, 為什麼我會將國語和英語歸於語言類別, 數學物理歸入理科類別, 政治歷史歸入文科類別. 這是憑藉著我們的經驗 : 通過某一類別比較拿手的人, 他的對應科目的成績通常不會太差. 這就為我們的維度化約提供了一個新的角度. 我們說這個人理科好, 就在間接地說他數學和物理成績比較高. 因此, 有了因素分析

在機率論中, 我們知道如果隨機變數 \xi_{1}, \xi_{2}, ..., \xi_{n} 具有高度的相關性, 那麼有 |\rho(\xi_{i}, \xi_{j})| \to 1, 而這些隨機變數和另外一組隨機變數 \eta_{1}, \eta_{2}, ..., \eta_{m} 具有極低的相關性. 因此, 我們可以將隨機變數 \xi_{1}, \xi_{2}, ..., \xi_{n} 分為一組, \eta_{1}, \eta_{2}, ..., \eta_{m} 分為另外一組. 這便是因素分析所要做的內容. 給定學習資料, 我們要將維度分為 k 個組, 然後將維度化約到 k 個組上. 這個過程並不需要輸入資料, 因此這個過程也是非監督的, 目標就是在更小的維度空間上對學習資料建立模型並且不丟失信息

設我們有取自某一分布的學習資料樣本 X = \{ \boldsymbol {x}^{\mathrm {t}} \}. 其中, E(\boldsymbol {x}) = \boldsymbol {\mu}, \text {Cov}(\boldsymbol {x}) = \Sigma. 假定因素都是單位常態分佈的, 並且 E(z_{j}) = 0, \text {Var}(z_{j}) = 1, \text {Cov}(z_{i}, z_{j}) = 0\ (i \neq j). 其中, z_{i} 來自主成分分析中的 \boldsymbol {z} = W^{\mathrm {T}}(\boldsymbol {x} - \boldsymbol {\mu}). 但是某些信息是不能由因素來解釋的, 於是每一個輸入有一個附加的項用於記錄這些信息, 我們記為 \varepsilon_{i}, 並且假定 E(\varepsilon_{i}) = 0, \text {Var}(\varepsilon_{i}) = \psi_{i}, \text {Cov}(\varepsilon_{i}, \varepsilon_{j}) = 0\ (i \neq j). 除此之外, 我們還假定它們和因素之間也不相關, 即 \text {Cov}(\varepsilon_{i}, z_{j}) = 0

因素分析中, 由於那些要化約到某一維度上的隨機變數具有高度的相關性, 我們希望每一個新的維度上的輸入 x_{i} 可以寫成 k 個因素之和加上一些其它信息 :

x_{i} - \mu_{i} = v_{i1}z_{1} + v_{i2}z_{2} + ... + v_{ik}z_{k} + \varepsilon_{i}

其中, k < d, 這 k 個因素 z_{1}, z_{2}, ..., z_{k} 具有一定的相關性. 從這裡, 我們可以看到為什麼我之前提到因素分析可以做到不丟失信息

我們換一種寫法 :

x_{i} - \mu_{i} = \sum \limits_{j = 1}^{k}v_{ij}z_{j} + \varepsilon_{i}

我們可以將其寫為矩陣的形式

\boldsymbol {x} - \boldsymbol {\mu} = V\boldsymbol {z} + \boldsymbol {\varepsilon}

其中, V 是一個 k \times d 的權重矩陣, 稱為因素負荷量. 不失一般性, 不妨假設 \boldsymbol {\mu} = \boldsymbol {0}. 若給定 \text {Var}(z_{j}) = 1\text {Var}(\varepsilon_{i}) = \Psi_{i}, 那麼

\text {Var}(x_{i}) = v_{i1}^{2} + v_{i2}^{2} + ... + v_{ik}^{2} + \psi_{i} = \sum \limits_{j = 1}^{k}v_{ij}^{2}+ \psi_{i}

其中, \sum \limits_{j = 1}^{k}v_{ij}^{2} 是公共因素貢獻的方差, 而 \psi_{i} 是針對 x_{i} 的方差

由於各個因素都是不相關且單位常態分佈, 因此 \text {Cov}(\boldsymbol {z}) = 1. 採用矩陣的形式, 有

\begin {aligned} \Sigma &= \text {Cov}(\boldsymbol {x}) = \text {Cov}(V\boldsymbol {z} + \boldsymbol {\varepsilon}) \\ &= \text {Cov}(V\boldsymbol {z}) + \text {Cov}(\boldsymbol {\varepsilon}) \\ &= V\text {Cov}(\boldsymbol {z})V^{\mathrm {T}} + \Psi \\ &= VV^{\mathrm {T}} + \Psi \end {aligned}

其中, \Psi 是對角矩陣, 其對角線元素為 \psi_{i}