誌謝

在進入研究所就讀前,我其實就有了相當的覺悟,然而我卻沒有料想到,僅僅只是為了不要否定自己,我得要付出如此巨大的代價。在這些晦暗前行的日子裡,我總是受到無法計量的幫助,就連苦難都因此,變成一次次我還可以謙卑地去學習的機會,而我總是覺得我得到的,遠不及我所能給予的。於是此刻,這些感謝對我而言幾乎就成了最重要的事。

謝謝指導老師 李家岩老師,我從不認為這一路上的指導是理所當然,所以我好重視每一個會議,珍惜每一次老師還願意跟我討論、願意給我意見的機會,我總能感受到其中不可思議的善意,何其有幸能夠一起學習。謝謝口試委員 孔令傑老師、盧信銘老師、張升懋老師、藍俊宏老師,口試當下有因為轉瞬的暈眩,而奇異地覺得我與我的作品受到了眷顧,謝謝老師們給予我的寶貴意見與建議。

謝謝碩二的亭遠、智鈞、宏穎、張鎧、延東與佑鑫,你們是我見過最願意面對生命中所有磨難的人,希望這一份坦然可以一直保佑你們的人生。謝謝同屆的奕滔、彬祺、瑞昕、芯瑜、采嬪,苦盡不一定甘來,慶幸我們一起留下了努力過後的痕跡。謝謝對面實驗室的大家,和你們的相處總是歡樂,我內心其實覺得默默被你們照顧了。謝謝大學同學繹翔、琦艾、俊逸,願意給我無盡的關懷與祝福。謝謝我這一輩子心甘情願的朋友,易展與瑜娟,你們是我世界上最愛的人,我最好的時光。

謝謝 C,你曾讓我看見世上的狂喜與狂悲,並且教會我生活裡的過分激動,其實都源自於時日堆疊出來的眷戀,而我仍在學習如何凝視緣分看我們的每種眼神,我會永遠想念你。謝謝 L,謝謝你總是在乎我的感受,並且試圖了解我的所思所想,那些相視而笑對我來說都如同奇蹟一般,我有多珍惜就有多感激。謝謝音樂,無數次地拯救了我的人生,我知道你永遠會在那裡。謝謝夜如海洋,而我仍在這裡等,等溼透的心聽雨聲,等身體回溫。

謝謝我的家人,謝謝你們願意相信我,而從不為了成全自己,這些年來互相信任的默契,是我打從心底覺得最珍貴的一件事,我會繼續努力去照顧你們。

謝謝我的那份心意,帶我去了好遠好遠的地方,而只是為了再看這世界一眼,看那些荒謬怪誕會不會開花,看過去種下的因會不會結果,看我們如何面對自己的人生,並且想而不問,你在煩惱什麼?

謝謝曾經經過我的所有人,我會用我的一生去祝福你們的人生,富足而自由,自由而富足。

Master Thesis
July, 2023

如果你在前方抬頭,而我亦抬頭

在 1968 年的某個冬日下午,一條繁忙的紐約街道上,一群人正抬頭望向身旁的建築物,這群莫名其妙的人吸引了路人的目光,有些人因此佇足,也有些人也跟著抬起了頭,望向遠方。 而他們的一舉一動正默默地被記錄下來⋯⋯

今年的搞笑諾貝爾獎(Ig Nobel Prize)於心理學領域,頒給了這篇 1969 年發表的研究, 他們試圖找出不同群眾大小所發揮的影響力是否相異,於是如同前段所述,研究者找了一個會有行人經過的場域,並且派出數量不等的群眾(1 ~ 15 人),站在街上仰望天空 60 秒,研究者並接著統計在這 60 秒期間,有多少路人會停下來,甚至是加入這個群體一起抬頭。

結果如圖一所示,當群眾從一人上升至十五人時,停止移動的行人比例從 4% 上升至 40%,而跟著一起抬頭的行人比例也從 42% 上升至 86%。研究者也做了 ANOVA,指出不同群體大小所導致的平均行為比例的確是有顯著差異的,而上升的趨勢也都至少有線性程度的顯著。

圖一 行人抬頭與停止移動的平均比例

當然這個研究也是有一些可以討論的地方,比如說當路人因為群眾的關係,跟著停下來向上看的時候,他不也就加入這個群眾了嗎?那麼原先設定的群眾人數其實是會增加的(圖一的 X 軸),這可能會導致圖一中的斜率被高估,這是研究者在內文有指出的一點,而他們也沒有對於圖中的斜率作出特別的解釋。我想這邊的群眾人數如果沒有被完全控制住的話(比如説當有一個路人加入,就有一個原先設定的群眾要退出),那這個問題可能就更像一個 Dynamic Treatment 的設定。

其次,我認為這個研究不太像一個「實驗」,因為有許多因素都沒有被控制住,然而,要去做一個這個研究的實驗其實也不太容易,畢竟要事先要找出一些受試者,請他們加入實驗,再來觀察他們的行為,光出發點就不太對勁了。因此我覺得這更像一個「觀察性研究(Observational Study)」,研究者透過觀察到的資料去分析出最終的結論。然而,這樣的研究其實不能輕易地給出因果上面的推論,比如根據這個研究,我們不太能說「前方的人抬頭導致了後面的人跟著抬頭」,而僅能斷言這兩者之間有相關性(Association),卻不一定有因果關係(Causation)。

那有什麼可能的因素會導致無法從觀察性研究推論因果效應呢?比如說有一對父子經過這群在路上奇異地抬起頭的群眾,爸爸先是抬起了頭,兒子則是因為看到爸爸抬起了頭,也跟著抬頭,那麼兒子就不是受到那些群眾的影響而抬頭,樣本之間也就互相影響到了。又或者如果有一個路人在進入街道之後,看到遠方有一些怪人,他為了降低自己被惡作劇的風險(?),便轉頭離開了這個街道,那麼此時這個路人應該要被計算在實驗的樣本之中嗎?這就多少有一點 Seleciton Bias 的味道。

當我們試圖去找出因果效應的時候,Randomized Controlled Trial (RCT) 似乎是一種最理想的實驗,但當這種實驗難以執行的時候,便如同這個研究所呈現的,我們或許可以仰賴 Observational Study 的幫助,而這其中的 gap 往往需要仰賴研究者去進一步校正,去盡可能地讓觀察性的資料逼近 RCT,那也就有從 Association 推論 Causation 的可能性。

又突然想到一事。

當你在某處抬頭,而我亦抬頭,我們便會望向同一片天空。


Reference

Milgram, S., Bickman, L., & Berkowitz, L. (1969). Note on the drawing power of crowds of different size. Journal of Personality and Social Psychology, 13(2), 79.

Fall-ing

2022/12/16

當我發現我比那些政治人物還要重視自己的論文時,我突然覺得我可能比任何人都還要在乎他,所以如果連我都放棄的話,我不知道我放棄的是自己的人生還是被我寫下的那些字。

這兩天在校園裡面看到了兩三次 Free Hug 的牌子,Free Hug 的背面恐怕就是那些想說但來不及說出的善意與無論如何都無法阻擋的惡意,而我們總是先有惡才有善,不禁想知道他們是否同我一樣,也聽到了那一串「啊啊啊啊啊啊啊 碰」的聲音呢,那是 9.8 m/s^2 的聲音。

前一陣子的某天亟欲想看一本書,上網查了之後發現還有一本可借閱,便記下索書號去圖書館找他,可我卻遍尋不著,後來詢問館員才發現網頁其實還寫了「尋書中」三個字,他跟我解釋道書目前可能還在館內,可是也有其他讀者來回報找不到這本書,在他看了尋書紀錄之後只跟我說了句「恐怕是凶多吉少」,在那個當下我無比錯愕,我一定是那個當下最需要那本書的人,而他卻不知道「我需要你」,並且在某個角落覺得我是不是不被這個世界所需要呢,而我們恐怕再也找不到那本書了。

衛福部建議每日咖啡因的攝取量應不超過 300 mg,而我今日的攝取量是 602 mg。此時,白馬正悄悄走過天亮。

不可兼得的稀疏性與穩定性 (Sparsity and Stability)

針對一個機器學習的演算法,一般來說我們會希望他的泛化能力(generalization ability)是好的,也就是說倘若模型在訓練資料集的 loss 很低,則在測試資料集的 loss 應該也要很低才對,這樣的想法並不侷限於訓練與測試,offline 與 online、development 與 production、A 資料集與 B 資料集等應用場域都是互相呼應的,而穩定性(Stability)稀疏性(Sparsity)正是兩個用以描述演算法泛化能力的性質。這篇文章主要想透過 介紹這兩個性質並進一步探討兩者之間的關係。

穩定性本身描繪了在兩個極為相似的資料集中,演算法所給出的預測應該也要非常相近才對,具體地來說假設有兩個資料集只有一個資料點的差異,則一個機器學習演算法應該要給出相近的輸出,這篇論文沿用 所定義的 Uniform stability 作為論證基礎:

An algorithm $\mathbb{L}$ has uniform stability $\beta_n$ with respect to the loss function $l$ if the following holds:
\begin{align*}
\forall (\mathbf{b}, A) \in \mathcal{Z}^n, \forall i \in \left\{1, \ldots, n \right \}: \\
\max_{\mathbf{z}’ \in \mathcal{Z}} \mid l(\mathbb{L}_{(\mathbf{b}, A)}, \mathbf{z}’) – l(\mathbb{L}_{(\mathbf{b}, A)^{\backslash i}}, \mathbf{z}’) \mid \leq \beta_n
\end{align*}
簡單來說如果一個演算法 $\mathbb{L}$ 有 $\beta_n$ 的 stability 的話,則對所有的資料點 $i$,用所有資料來學習的 $\mathbb{L}$ 與用少了第 $i$ 筆資料所習得的 $\mathbb{L}$ 之間的最大誤差應該要不大於 $\beta_n$,概念上其實就是 leave-one-out error。

稀疏性則是一個演算法所給出的解會有較高的解釋性,在計算上也會比較快速、有效率,想像一個 $n \times p$ 的資料矩陣 $A$ 與一個 $p \times 1$ 的解 $w$,若 $w$ 有很多元素為 0,則在計算 $Aw$ 的時候只要考慮 $w$ 非零的元素就好了。實務上也有許多主打稀疏性的演算法如 Lasso、1-norm SVM、Deep Belief Network 與 Sparse PCA。這篇論文則進一步將可以去找到冗餘的特徵(identify redundant features)的性質作為稀疏性演算法的必要條件:

A weight vector $\mathbf{w}^*$ identifies redundant features of $A$ if $$ \forall i \neq j, \quad \mathbf{a}_{(i)} = \mathbf{a}_{(j)} \Rightarrow w_i^* w_j^* = 0$$
也就是說資料裡面若有兩個特徵是一模一樣的話,其所對應的權重應該至少要有一個是零。一個演算法 $\mathbb{L}$ 若基於冗餘的特徵提供很多 0 的解,則說他可以 identify redundant features,且是一個 sparse algorithm。

最後想從特徵挑選 feature selection 的角度來看一下這件事情,實務上常透過特徵挑選來減少訓練時的特徵數量,避免維度的詛咒(curse of dimensionality),進而降低 overfitting 的風險,而一個穩定的特徵挑選演算法在不盡相同但高度相似的資料集中,應該要挑出類似的特徵們。另外一方面,Lasso 時常被拿來當作特徵挑選的演算法,他的特點是因為 L1 regularization,所以很常給出稀疏的解,而那些擁有非零權重的特徵便是最後挑選出來的結果,然而若這些解是不穩定的,那麼即使在資料上有很小的擾動,也有可能在輸出上有很大的差異,這顯然不是一件好事。以上則是從特徵挑選的視角來看待泛化能力,並且可以發現在特徵挑選中稀疏性與穩定性都是最好可以被滿足的性質。

稀疏性與穩定性的取捨

這篇研究主要就是透過上面的定義,去證明擁有稀疏性的演算法是不穩定的,並且也給出以下主要的 Theorem:

Let $\mathcal{Z} = \mathcal{Y} \times \mathcal{X}$ be the sample space with $m$ features, where $\mathcal{Y} \subseteq \mathbb{R}, \mathcal{X} \subseteq \mathbb{R}^m, 0 \in \mathcal{Y}$ and $\mathbf{0} \in \mathcal{X}$. Let $\hat{\mathcal{Z}} = \mathcal{Y} \times \mathcal{X} \times \mathcal{X}$ be the sample place with $2m$ features. If a learing algorithm identifies redundant features, its uniform stability bound $\beta$ is lower bounded and in particualr does not go to zero with $n$.

基本上作者主要想去證明「有稀疏性的演算法就不會有穩定性」,而整個證明的過程透過建構一個極端的例子(直接複製原本的特徵,使得有一半的特徵都是冗餘的),推導出 uniform stability $\beta_n$ 會大於等於某個數字,而這個數字並不會因為樣本數量增加而減少至 0。

我一方面覺得把整段定理打上來不太明智,一方面又覺得如果大家仔細看作者的敘述的話,可以發現這個 setting 著實有點極端,且整個定理只有一個方向,作者沒有證明「如果有穩定性就不是稀疏的」這一個方向,所以似乎有點不足以去說這是一個取捨(trade-off,作者在原文中有明示暗示這件事情),不過我覺得直覺上應該是通的,除了理論證明之外,我也認為也可能可以透過大量的 numerical experiments 去描繪出這一個取捨關係。

穩定與稀疏的演算法們

這邊最想提及的還是 $L_p$ regularization,如果 $p \leq 1$ 的話,則這樣的正則化會使得解變的稀疏或近乎稀疏;若 $p > 1$的話,則是一種相對穩定的演算法。

Stable Algorithms
  • Bounded SVM regression
  • Soft-margin SVM classification
  • RKHS regularized least square regression
  • Relative entropy regularization
  • Maximum entropy discrimination
  • Subbagging
  • $L_p$ regularization ($p > 1$)
  • Elastic net regularization
Sparse Algorithms
  • $L_1$ regularization
  • $L_0$ regularization

結論

這篇論文定義了機器學習演算法中可以用來表示泛化能力的稀疏性與穩定性,並透過證明「擁有稀疏性的演算法是不穩定的」,暗示這兩種性質之間不可兼得的關係,實務上我認為還是需要考慮應用場景來選擇演算法,畢竟若兩個性質之間真的是一種權衡,那就沒有絕對的好演算法與壞演算法。

對我來說這篇還是蠻有趣的,可以從不同視角看待市面上的那些演算法們,也希望讀者會覺得這些事情很有趣。撰文經驗匱乏,有任何建議或意見都可以進一步討論。

References

Xu, H., Caramanis, C., & Mannor, S. (2011). Sparse algorithms are not stable: A no-free-lunch theorem. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(1), 187–193.
Bousquet, O., & Elisseeff, A. (2002). Stability and generalization. The Journal of Machine Learning Research, 2, 499–526.

關於主成份分析 PCA 的一個小秘密

主成份分析 (Principal Component Analysis, PCA)常用於在低維空間空間表示高維資料,以達到維度縮減的功用,在資料科學實務上或能降低維度詛咒(the curse of dimensionality)所帶來的風險。想必大部分人在學習資料科學都會學到 PCA (而不是在多變量分析 🙁 ),而在某天我偶然得知關於 PCA 第一個 Principal Component (PC)的小秘密……但在那之前我們可能要一起複習一下背景知識。

PC 是從哪裡來的?

給定一 $p$ 維的隨機向量 $x$,且令其平均 $E[x] = 0$ 並有共變異數矩陣 $\text{COV}(x) = \Sigma$,根據特徵分解 (i.e., Eigendecomposition, Spectral decomposition) 可得
$$\begin{aligned}
\Sigma &= \Gamma \Lambda \Gamma^\intercal \\
&= \begin{bmatrix} \gamma_{(1)} & \cdots & \gamma_{(p)} \end{bmatrix}
\begin{bmatrix}
\lambda_1 & 0 & \dots & 0 \\
0 & \lambda_2 & \dots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \dots & \lambda_p
\end{bmatrix}
\begin{bmatrix} \gamma_{(1)}^\intercal \\ \vdots \\ \gamma_{(p)}^\intercal \end{bmatrix} \\
&= \sum_{i=1}^p \lambda_i \gamma_{(i)} \gamma^\intercal_{(p)}
\end{aligned}$$
其中$\Lambda = \text{diag}(\lambda_1, \cdots, \lambda_p)$ 由 $\Sigma$ 的特徵值所組成,不失一般性令 $\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_p \ge 0$;$\Gamma = \begin{bmatrix} \gamma_{(1)} & \cdots & \gamma_{(p)} \end{bmatrix}$ 由 $\Sigma$ 的特徵向量所組成,又因 $\Sigma$ 為實對稱矩陣,故特徵向量之間彼此正交,我們也可以進一步單位化其長度,也就是說 $\gamma_{(i)}^\intercal \gamma_{(i)} = 1; \gamma_{(i)}^\intercal \gamma_{(j)} = 0$, if $i \neq j$; $\Gamma \Gamma^\intercal = I_p$。

而原本 $p$ 維的隨機向量 $x$ 可以表示成 $$x = \Gamma \Gamma^\intercal x$$
是的,目前為止看似在做白工,不過若我們只考慮 $q$ 個特徵向量呢?($q < p, \Gamma_q = \begin{bmatrix} \gamma_{(1)} & \cdots & \gamma_{(q)} \end{bmatrix}$)
$$
\begin{aligned}
y &= \Gamma_q \Gamma_q^\intercal x \\
&= \Gamma_q \begin{bmatrix} \gamma_{(1)}^\intercal x \\ \gamma_{(2)}^\intercal x \\ \vdots \\ \gamma_{(q)}^\intercal x \end{bmatrix}
\end{aligned}
$$
則 $y$ 是一個 $x$ 在較低維度空間的投影,其大小 $\Gamma_q^\intercal x$ 作用在 $ \Gamma_q$ 的方向上(正交基底),可以稱 $y$ 為 $q$ 維的 principal component approximation,而 $x$ 的第 $i$ 個 principal component 定義為 $\gamma _{(i)}^\intercal x$ 。

以上的說明其實比較像從結果來解釋,一般來說 PCA 即是想要將 $x$ 正交投影到另一個較低維度的空間上,並且試圖讓投影之後的誤差最小。給定 $p$ 維的隨機向量 $x$,且其 $E[x] = \mu, \text{COV}(x) = \Sigma$,並令其投影到 $q$ 維空間之後的結果為 $y$,則 $y$ 可以寫成: $$y = x_0 + BB^\intercal(x-x_0),$$
$x_0 \in \mathbb{R}^p$,$B$ 是一個 $p \times q$ 的矩陣,且 $B^\intercal B = I_q$。可以證明當 $y$ 與 $x$ 的 Mean Squared Error (MSE) 最小時,$x_0 = \mu, B = \Gamma_q$(也就是我們上面反過來敘述的 $y = \mu + \Gamma_q \Gamma_q^\intercal (x-\mu)$)。
而證明的前幾行是這樣寫的… $$\begin{aligned}
\text{MSE}(x;y) &= E[(y-x)^\intercal (y-x)] \\
&= E[(x-x_0)^\intercal (I-BB^\intercal) (x-x_0)] \\
&\geq \cdots
\end{aligned}$$

關於第一個 PC

在實務上我們需要決定要選幾個 PC($q$ 值)來表示原資料,常見的手法如對 PC 可解釋的變異百分比(如下圖)或累積解釋的變異百分比做圖,而往往第一個 PC 會有最大的可解釋變異,當然這不會是巧合,我們可以再從式子上重新驗證:

$$
\begin{aligned}
\text{Var}(\gamma_{(1)}^\intercal x) &= \gamma_{(1)}^\intercal \text{Var}(x) \gamma_{(1)} \\
&= \gamma_{(1)}^\intercal \Sigma \gamma_{(1)} \\
&= \lambda_{1} \gamma_{(1)}^\intercal \gamma_{(1)} && (\Sigma \gamma_{(1)} = \lambda_1 \gamma_{(1)}) \\
&= \lambda_1, \text{ 最大的 eigenvalue}
\end{aligned}
$$

因為我們事先將共變異數矩陣的特徵值由大到小排列,所以每個 PC 的可解釋變異(也就是特徵值拉!)也會由大到小遞減,然而對第一個 PC 來說竟是有一個神秘的性質:

若共變異數矩陣的元素皆為正的話,則 $\gamma_{(1)}$ 裡的每一個元素都會同號

前面胡謅了那麼多,其實就是想跟大家介紹這個我視之為秘密的事實,當然我們還是得從證明的角度來看這件事情:

將 $\gamma_{(1)}$ 表示成 $\begin{bmatrix} b_1 & b_2 & \cdots & b_p \end{bmatrix}^\intercal$,在不失一般性的情況下證明 $b_i > 0, \forall i \in \{1, \ldots, p\}$

Proof
令 $y_i = \lvert b_i \rvert, \forall i$
$$
\begin{aligned}
0 \leq \lambda_1 &= \gamma_{(1)}^\intercal \Sigma \gamma_{(1)} \\
&= \sum_{i=1}^{p} \sum_{j=1}^p \Sigma_{ij} b_i b_j \\
&= \left\lvert \sum_{i=1}^{p} \sum_{j=1}^p \Sigma_{ij} b_i b_j \right\rvert \\
&\leq \sum_{i=1}^{p} \sum_{j=1}^p \Sigma_{ij} \lvert b_i \rvert \lvert b_j \rvert && (\Sigma_{ij} > 0, \forall i, j)\\
&\leq \sum_{i=1}^{p} \sum_{j=1}^p \Sigma_{ij} y_i y_j \\
&\leq \lambda_1 && (\text{since } \arg\max_d \text{Var}(d^\intercal x) = \gamma_{(1)}) \\
\end{aligned}
$$

– 等號必定成立且成立於 $y$ 是一個特徵值為 $\lambda_1$ 的特徵向量
– 根據 $\lambda_1 y = \Sigma y$,可以得到 $\lambda_1 y_i = \sum_{j=1}^p \Sigma_{ij}y_j, \forall i$
– 倘若存在 $i$,使得 $y_i = 0$,在給定 $\Sigma_{ij} > 0$的情形下,可得所有的 $y_j$ 都為 0,顯然不可能
– 因此我們有所有的 $y_j > 0$
– 總結以上,$\lambda_1 y = \lambda_1 \gamma_{(1)} = \Sigma y = \Sigma \gamma_{(1)}$, where $\gamma_{(1)} = y = \begin{bmatrix} y_1 & y_2 & \cdots & y_p \end{bmatrix}^\intercal$ with $y_j > 0, \forall j$
– 故得證(如果要證每個元素都 $< 0$ 的話,邏輯也是類似的)

這篇文章介紹的這個觀念其實出自於教科書的習題,但光是要把這個特性講清楚竟是要用到許多線代的技巧,並好好地鋪陳 PCA 才行。坦白說這個我視之為秘密的東西在實務上一點用處都沒有,但什麼時候每個東西一定要有用才行?我們又怎麼捨得不多學一點東西呢。

眼鏡的重要性

好像還沒有跟任何人說過這個故事。

這一學期剛開始其實就有很深的感觸,選課變得自由許多,有些課變成線上課程之後,連每天要做什麼事都可以是一種選擇,又更自由。於是,所有的選擇都不再是盲從或是無知,而是大學生涯裡所有努力堆疊起來的視野,不就是想再看看某個領域更近一點、更廣一點,欲望變成對每個明天還能再學些什麼、做些什麼的期待,甚至明白每個今天都比每個昨天都還要學會更多事情,自由而富足。

 其實,當年考指考的時候,資工與資管在我心中大抵無異,都會是我的第一志願,但指考非得要填志願序不可,所以我得在兩者之間做出選擇。結果看來我落榜了,沒有考上當時的第一志願,之間的差距甚至不到 1 分。 考物理的那節課,寫完之後還有一些餘裕可以檢查,檢查到多選題時發現完了,因為我所有的多選題都選了三個選項,這件事情不太合理,當下就覺得自己大概寫錯了。也就在快要交卷時,坐我前面的那個同學把試卷跟答案卡立在桌面敲了幾下試圖對齊。對的,我看到了他某一題的多選只選了兩個選項,我相信他是對的(因為他跟我上同一家補習班)。在知道他對我錯並且快要敲鐘的情況下,我得要馬上在改與不改之間做出選擇,因為我沒有時間再去思考(那一題高一的 V-t 圖)。 最後,我沒有改答案,一個選項 2 分。 每次再重塑一回這樣的過程,都會覺得現在的生活何其幸運、尤其珍貴,也許一直一來都是那時的「誠實」保佑了我吧。 

我想,這個故事教會我們最重要的事情應該是:

考試的時候記得準備度數剛好的眼鏡,這樣才能不小心看到別人的答案呦