# 5.4 Multivariate Normal Distribution - 課本中的向量皆用粗體,以往我都是省略直接用 $x$ 表示,看得懂就好,但現在符號比較多,為避免混淆,還是決定將向量都標上向量符號。 本節內容為以前我們學過的 univariate normal distribution 推廣到 multivariate 的情形。 --- 首先,recall 我們在 univariate case 裡如何去定義一個 random variable $X$ 具 normal distribution,我們當時說,只要 $X$ 的 pdf 滿足: \begin{equation} p(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} \end{equation} 那 $X$ 就具 noraml distribution。 > 關於 normal distribution 的相關內容可參考筆記「[A.3.5 Normal(Gaussian) Distribution](https://hackmd.io/@pipibear/rkq0ZkoEC)」。 >> 當時有些內容還是用手寫拍照上傳,不像用平板那麼清晰,但應該不至於無法閱讀。如果有看不清楚的地方可留言告訴我! 可是我們要怎麼說一個含 $d$ 個 variable 的 random vector 具有 normal distribution?首先有兩個問題: > <font color = "snake">random vector / multivariate random variable</font>:由多個 random variables 所組成的行向量 $\vec{X} = [X_1 \ X_2 \ ...\ X_d]^T$ :::danger - Q1:它定義的意義是什麼?是裡面的每個 variable 都具 normal distribution 嗎?還是怎麼樣呢? - Q2:在只有一個 random variable 時,我們可以將 $x$ 代入 $p()$ 來得到 random variable $X$ 的 outcome 為 $x$ 的機率,可是當 input 從一個值 $x$ 變成一個 $d$ 維向量 $\vec{x}$ 時,我們要怎麼代入 $p()$? $p()$ 的定義要怎麼改變? ::: 下面我們先來回答第一個問題。 ## 定義 ### 定義一 一個 normal distributed 的 random vector,裡面每個 dimension 的 variable $X_i$ 都具 normal distribution,除此之外,他們++任意的線性組合都具 normal distribution++。 詳細定義如下: ![image](https://hackmd.io/_uploads/r1rfQy6dR.png) > 課本並沒有在這裡給定義,我的寫法也只是常用的寫法的其中一種而已,其它所有等價的定義可查看參考資料的 "Multivariate normal distribution" wiki 連結。 ### 定義二 看完第一種簡單的定義方式,我們再看另一種和它等價的定義: ![image](https://hackmd.io/_uploads/ry3sdl6_A.png) 根據一些 normal distribution 的特性,觀察 $X_i$ 是怎麼構成的,我們也能驗證 random vector 裡面的每個 variable 都具 normal distribution 這件事: ![image](https://hackmd.io/_uploads/B1dxYe6uA.png) > 兩個特性的證明可參考筆記「[A.3.5 Normal(Gaussian) Distribution](https://hackmd.io/@pipibear/rkq0ZkoEC)」中的「特性」小節。 Note:我們知道一個 normal random vector 中的每個 random variable 必為 normal,但反之不成立,也就是: :::warning 即使每個 $X_i$ 都是 univariate normal,但 $\vec{X}$ 仍可能非 multivariate normal。 ::: ## joint mgf of normal random variables 根據前面的內容,我們發現 random vector 中,每個 $X_i$ 都具 noraml distribution,且它們的 mean 和 variance 為: \begin{equation} \begin{split} E[X_i] &= \mu_i \\ Var(X_i) &= \sum_{j=1}^n a_{ij}^2 \end{split} \end{equation} 那我們現在來算算看 $X_1,...,X_m$ 的 joint mgf: > 關於 joint mgf 的內容可參考筆記「[補充:joint moment generating functions](https://hackmd.io/@pipibear/Hk7Uz2VF0)」。 ![image](https://hackmd.io/_uploads/BkvIYRNt0.png) > 圖中一些關於 covariance 的性質可參考筆記「[A.2.6 Variance](https://hackmd.io/@pipibear/HyvHi9rEA)」。 經過一些推導之後,我們得到 $X_1,...,X_m$ 的 joint mgf 為: :::success \begin{equation} M(t_1,...,t_m) = \exp\{\sum_{i=1}^m t_i\mu_i + \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m t_it_j Cov(X_i,X_j)\} \end{equation} ::: $\rightarrow$ 這個式子告訴我們,$X_1,...,X_m$ 的 joint distribution 只由 $E[X_i]$ 和 $Cov(X_i,X_j)$ 決定。 ## pdf 接著,我們再來回答第二個問題。 在 multivariate case(有多個 variable 的情形)裡,假設我們的 input $\vec{x}$ 是一個 $d$-dimensional 的 vector,且 $\vec{x}$ 是 normal distributed,那麼: \begin{equation} \vec{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_d \end{bmatrix} \end{equation} 的 pdf 為: :::success \begin{equation} p(\vec{x}) = \frac{1}{(2\pi)^{\frac{d}{2}}|\Sigma|^{\frac{1}{2}}}e^{-\frac{1}{2}(\vec{x} - \vec{\mu})^T\Sigma^{-1}(\vec{x} - \vec{\mu})} \end{equation} ::: > 證明可參考筆記「[補充:Basic Multivariate Normal Theory](https://hackmd.io/@pipibear/HJlnB8wt0)」中,第二小節的 multivariate normal pdf 部分。 且由上面在 mgf 中得到的結論,$\vec{x}$ 的 distribution 只由 mean vector $\mu$ 和 covariance matrix $\Sigma$ 決定,因此我們將: :::info $\vec{x}$ is $d$-dimensional and normal distributed 以 \begin{equation} \vec{x} \sim N_d(\vec{\mu}, \Sigma) \end{equation} 表示,其中 $\mu$: mean vector, $\Sigma$: covariance matrix ::: ### 特例:independent 如果我們的 random vector 中的 $d$ 個 random variables 為independent,代表兩兩間的 covariance 為零,進而使得 $\Sigma$ 變成對角矩陣。 除此之外,根據我們以前在討論 joint distribution 時有講過的特性,如果 variables 之間 indepemdent,那麼它們的 joint pdf 就是各自的 pdf 的乘積。 詳細如下: ![image](https://hackmd.io/_uploads/SkvQLjdY0.png) ## Mahalanobis distance 就像我們在做 z-normalization 時,會計算: \begin{equation} \frac{X-\mu}{\sigma} \end{equation} 也就是以 $\sigma$ 為單位,$X$ 和 $\mu$ 之間的距離。 > 關於 z-normalization 可參考筆記「[A.3.5 Normal(Gaussian) Distribution](https://hackmd.io/@pipibear/rkq0ZkoEC)」。 如果我們要計算 $x$ 和 $\mu$ 之間,以 standard deviation $\sigma$ 為單位的 squared distance(距離取平方),那麼就是去計算: \begin{equation} \frac{(x-\mu)^2}{\sigma^2} \end{equation} 我們可以把這個式子拆開寫成: \begin{equation} \frac{(x-\mu)^2}{\sigma^2} = (x-\mu)(\sigma^2)^{-1}(x-\mu) \end{equation} 因此,在 multivariate case 裡,我們就把 <font color = "snake">Mahalanobis distance (MD)</font> 定義為: :::info \begin{equation} \sqrt{(\vec{x}-\vec{\mu})^T\Sigma^{-1}(\vec{x}-\vec{\mu})} \end{equation} ::: $(\vec{x}-\vec{\mu})\Sigma^{-1}(\vec{x}-\vec{\mu}) = c^2$ 為一個 $d$-dimensional 的 hyperellipsoid,以 $\mu$ 為中心,形狀、方向由 $\Sigma$ 定義。 > <font color = "snake">hyperellipsoid</font>:在 $n$ 維的歐式空間中,具 $n-1$ 維的 ellipsoid。 > > - 「以 $\mu$ 為中心,形狀、方向由 $\Sigma$ 定義」實際到底是什麼意思,如果有興趣看例子可參考筆記「[補充:multivariate outliers](https://hackmd.io/@pipibear/rkalaWUtR)」。 ### inverse covariance matrix 的意義 因為我們用了 $\Sigma^{-1}$,所以會使得: :::warning 1. 如果一個 variable 有比另一個更大的 variance,那它就會在 MD 中得到比較小的 weight。 2. 兩個 highly correlated variables 比起兩個 less correlated variables contribute 得要少。 ::: > 1. 意思是在計算 MD 時,$\Sigma^{-1}$ 會賦予 variance 大的 variable 一個比較小的 weight。 > 2. highly correlated variables "contribute less" 的意思是當這樣的 variables 有所變動,對 MD 的影響較小。 這樣講有點抽象,我們將兩點分別用實際的例子說明如下: #### variance 大則 weight 小 ![image](https://hackmd.io/_uploads/Hk0BLSPYC.png) 如果一個 variable $X$ 的 variance 很大,代表它的 data points 會分散在一個比較大的範圍內。 如果有看過筆記「[補充:multivariate outliers](https://hackmd.io/@pipibear/rkalaWUtR)」,裡面我們說 MD 是一種適合拿來判斷 multivariate data 的 outliers 的 distance metric,因為我們利用 covariance matrix $\Sigma$ 把整個 distribution——variables 之間的關係、每個 variable 自己的分散程度都考慮進去。 我們找出 outliers 的目的,是為了找出那些偏離主要的 data 所呈現的 model 的點,因此,透過 $\Sigma^{-1}$ 我們想去修正的是: ++儘管某個 variable 它本身的 data 就是很分散的,因此可能離中心很遠,但不代表那些離很遠的點是不符合整體 model 的 outliers。++ $\rightarrow$ 上圖中,variance 很大的 variable(例子中的 $X$),在 $\Sigma$ 中的對應項 $Var(X)$ 很大(例子中的 $100$),而在我們取了 $\Sigma^{-1}$ 以後,同個位置的值就很小(例子中的 $0.01$)原本是 $100$,$\Sigma^{-1}$ 就乘 $0.01$ 回來。 我們發現,這樣一來: :::warning $\Sigma^{-1}$ 使得所有的 variables 被 standardize 成 unit variance。 ::: #### 高度相關的 variables contribute less ![image](https://hackmd.io/_uploads/r1BioSDtC.png) 直觀的想法是,如果我們的兩個(以這個例子來說)variables 高度相關,代表我們如果知道 $X$ 變大的幅度,那我們也大概能知道 $Y$ 變大的幅度,因此如果我們把這兩個增加的情況都考慮進去,實際上反而讓我們在衡量 distance 時對變動過度 sensitive。 ## 例子:bivariate normal ### correlation coefficient bivariate 的情況下,不同的 correlation coefficient 值會呈現的樣子: ![image](https://hackmd.io/_uploads/ryANx8DYC.png) > $c$: correlation coefficient $c=0$ 時為 independent,越呈現圓形;$c$ 越接近 $1$,越為 highly correlated,density 的形狀越接近 ellipse。 如果 $c$ 為負數時一切相同,只是形狀為反向(major axis 的斜率為負),如下圖: ![image](https://hackmd.io/_uploads/SJwfGIwt0.png) ### Var, Cov 對形狀的影響 bivariate normal distribution 在不同情況下的形狀: ![image](https://hackmd.io/_uploads/ByIf7UPYR.png) ### joint pdf bivariate normal 的 joint pdf 為: :::success \begin{equation} p(x_1,x_2) = \frac{1}{2\pi \sigma_1 \sigma_2 \sqrt{1-\rho^2}}\exp[\,-\frac{1}{2(1-\rho^2)}(z_1^2 - 2\rho z_1z_2 + z_2^2)]\, \end{equation} ::: 其中: \begin{equation} z_i = \frac{x_i - \mu_i}{\sigma_i} \qquad i = 1,2 \end{equation} 為 standardized variables。 > 意思是指 $z_i$ 為經過 z-normalization 得到的結果。 $\rho$ 為 correlation $Cor(X_1,X_2)$ > 因此如同上面的圖我們看到的,不同的 $\rho$ 值會使 $p(x_1,x_2)$ 有不同的形狀。 此外,式子中最後的 $z_1^2 - 2\rho z_1z_2 + z_2^2$ 為常數。 證明如下: ![image](https://hackmd.io/_uploads/Sk8bpOdtC.png) > 其實就是令一些變數,將 $d=2$ 代入而已。 - 就像上面我們在討論 $\Sigma^{-1}$ 的意義時有提到,在兩個 variables 為 correlated 時,我們就是透過 $\Sigma^{-1}$ 來修正把同樣的資訊考慮進去太多次這件事。當時的例子裡,我們扣掉了 $9.48c_1c_2$;而現在在 $p(x_1,x_2)$,我們也有一個 cross-term $2\rho z_1z_2$ 在做一樣的事。 - 同樣在上面我們也有提到,$\Sigma^{-1}$ 會把 variance 修正成 unit variance。在這裡,我們一樣可以看到 $\sigma_1^2, \sigma_2^2$ 也變成了 normalized 的 $z_1^2, z_2^2$。 從這個 pdf 以及上面推導的過程裡,我們可以看到 density 總共 depends on 五個 parameters: 1. $\mu_1$:$X_1$ 的 mean 2. $\mu_2$:$X_2$ 的 mean 3. $\sigma_1^2$:$X_1$ 的 variance 4. $\sigma_2^2$:$X_2$ 的 variance 5. $\rho$:$X_1, X_2$ 間的 correlation 這些值裡面,某些特定的 variance, correlation 值,會產生不同的特性: ![image](https://hackmd.io/_uploads/HyybIKuYR.png) > - 關於 $\Sigma$ 為什麼為正半定,可參考筆記「[補充:Basic Multivariate Normal Theory](https://hackmd.io/@pipibear/HJlnB8wt0)」中的證明。 > - 最後當 $\rho=0$ 時我沒證代入後 joint pdf 為個別 pdf 的乘積,但是過去我們也曾經提過,當 random variables 之間 independent,它們的 joint pdf 就是個別的 pdf 相乘。 ## covariance matrix 的意義 在 multivariate case 裡: :::warning $|\Sigma|$ 的值很小 $\Rightarrow$ 代表 samples 很接近 $\vec{\mu}$ ::: 就如同我們在 univariate case 中,當 $\sigma^2$ 很小時,代表 samples 很接近 $\mu$。 > variance 小,代表 data 分散的範圍小,也就是 data 大部分都很接近平均值。 除此之外: :::warning $|\Sigma|$ 的值很小 $\Rightarrow$ 代表 variables 之間的 correlation 很高。 ::: > 可以用 bivariate case 來想,當 $|\Sigma|$ 小,代表: > > $\sigma_1^2\sigma_2^2 - \rho \sigma_1^2\sigma_2^2 = (1-\rho)\sigma_1^2\sigma_2^2$ > > 小。 > > 因為 $\sigma_1^2\sigma_2^2$ 必為正,代表如果這個值要小,一定是因為 $\rho$ 值很大。 :::warning 「基本上」,$\Sigma$ 是對稱的正定矩陣 ::: 我們說「基本上」是因為根據 $\Sigma$ 的定義,我們只能保證它是正半定矩陣。 透過一些線性代數的知識,我們知道如果有一個矩陣是正半定且可逆,那麼他就會是正定矩陣;因此,當 $\Sigma$ 不是正定時,必定是因為 $\Sigma$ 不可逆,也就是 $det(\Sigma) = 0$。 :::danger Q:什麼時候 $det(\Sigma)$ 會為零呢? ::: 這會發生在兩種情況: 1. 在 dimensions 之間存在 lineaer dependence 2. 其中一個 dimension 的 variance 為零 > $\rightarrow$ 這裡我們說的一個 dimension 其實指的就是一個 random variable。 > > Recall: multivariate 的情況下,一個 random vector 為多個 random variable 組成的向量,即每個 dimension 為一個 random varible。 在這樣的情況下,我們應該要++減少 dimension 來得到正定矩陣++。至於這件事要怎麼做到,第六章會再說明。 ## Projection 最後,我們要來介紹一個後面幾章會用到的性質,這個性質其實和我們剛剛說的降低維度有關。 雖然這裡我們還沒要講下圖中寫的 dimensionality reduction,但是我們可以先稍微看一下圖,幫助理解等等要講的性質要拿來做什麼: ![image](https://hackmd.io/_uploads/rkdBz3_YR.png) 圖中可以看到,每個紅色 data point 的位置,呈現的是兩個 variables 各自的值。我們發現大部分紅點的分佈都很接近 $PC1$ 這條線,在 $PC2$ 方向的變動卻不大,這代表了在 $PC1$ 的方向上,data 的 variance 比較大,$PC2$ 則較小。 因此當我們想要減少 dimension 時,我們只想留 $PC1, PC2$ 中其中一個方向的資訊,那我們會優先留下 $PC1$,因為這個方向上變化大、複雜度高,相對的 $PC2$ variance 小,代表它其實不太能提供太多有用的資訊。 > 舉一個誇張一點的例子來說,假設我們在做一項和「女性專用車廂使用者」有關的調查。 > > 當在挑選 input feature 時,我們不小心把「性別」也考慮進去了,這使得每個 observation 在這個 variable 的 value 都是女性,variance 幾乎是零。偶爾可能會有一些 data 是男性,但這可能只是記錄錯誤而已。 > > 從這個例子我們發現,選擇捨棄 variance 小的資訊是因為當大家都一樣時,得到這樣的內容就沒有什麼意義,甚至有變化的 data 還有可能只是 noise。 挑好 $PC1$ 這個方向以後,我們就把 data points 投影到這條線上,進而使得我們的 data 從二維變成一維的。 接下來我們想證明的性質是: :::success 當我們的 input 為 multivariate normal 時,在將 data points 投影、降低維度以後,得到的分佈仍為 normal。 ::: 我們先講投影到一個 vector 的情形,再 generalize 到投影到一個 space。 ### project to a vector 假設我們要把紅色的點(observations)投影到 $\vec{u_1}$: ![image](https://hackmd.io/_uploads/BkaXVTtKA.png) 在知道 $\vec{w}^T\vec{u}$ 這樣的式子代表將 $\vec{u}$ 投影到一個向量 $\vec{w}$ 上,並產生一個 scalar value 以後,接下來我們要回來證明: 如果我們把一個具 normal distribution 的 multivariate sample 投影到向量上,那麼每筆 observation 投影出來的值(都是一維的某個實數)全部所形成的 distribution 仍然會是 normal 的: ![image](https://hackmd.io/_uploads/r1qP36_t0.png) ![image](https://hackmd.io/_uploads/Hyyc3a_tR.png) ![image](https://hackmd.io/_uploads/SJLs2pOKA.png) ### project to a space ![image](https://hackmd.io/_uploads/rJeLTT_FR.png) > 證明方式其實和上面完全一樣,我就不再寫一次了 XD --- # 參考資料 - wiki: - [Multivariate random variable](https://en.wikipedia.org/wiki/Multivariate_random_variable) - [Multivariate normal distribution](https://en.wikipedia.org/wiki/Multivariate_normal_distribution) - Sheldon Ross, A first course in Probability, 9th ed, p.368- - Introduction to Probability, Statistics and Random Processses: [6.2.4 Cauchy-Schwarz Inequality](https://www.probabilitycourse.com/chapter6/6_2_4_cauchy_schwarz.php) - Christopher Bishop, Pattern Recognition and Machine Learning, p.561-562