--- tags: norm, l1, l2, L1, L2, length, Norm, NORM, distance, similarity, cauchy inequality, triangle inequality, arg, argmin, argmax, minimization, FL --- # L1, L2 norm in definition, loss function and regularization 本文乃下方來源之個人心得整理: * Ref1: 黃子嘉,線性代數及其應用 (下) 第五版 * [Ref2: Stanford University 電機系上課簡報,Supervised Learning via Empirical Risk Minimization](https://web.archive.org/web/20181024045752/http://ee104.stanford.edu/lectures/supervised.pdf) * [Ref3: 台部落 理解L1,L2 範數在機器學習中應用 阪本龍一 2019-03-07 13:04](https://www.twblogs.net/a/5c80a66abd9eee35cd693c3e) * [Ref4: Hung-yi Lee,Tips for Deep Learning](https://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2017/Lecture/DNN%20tip.pdf) ## Definition ==Norm 的定義就是向量的長度 (length)== 1. 由內積定義: * 前言--內積的定義: * 內積 (inner product) 是一個將有序對對應至純量的函數,記作:$<\cdot,\cdot>: V \times V \rightarrow F$ * 定義 norm: $||v|| := \sqrt{<v, v>}$ 2. 由長度線性空間定義 * 假設 $V$ 為佈於 $F$ 的向量空間,定義 $||\cdot||: V \rightarrow F$ 為一個函數滿足 $\forall v,u \in V, \alpha \in F$, 並滿足下列三個性質: 1. $||v|| \geq 0$ and $||v|| = 0 \Leftrightarrow v=0$ (零向量的長度是零) 2. $||\alpha v|| = |\alpha| \; ||v||$ (純量可提出) 4. $||v+u|| \leq ||v||+||u||$ (三角不等式) 則稱 $V$ 是長度線性空間 (normed linear space) 且 $||v||$ 稱為 $v$ 的長度 (norm)。 * 補充--距離: * 所謂的距離 (distance) 就是兩向量相減後,再取 norm。即<br> $d(x,y):=||x-y||$ > 個人理解:「兩個對象之間的長度」才稱為距離;而單獨一個對象的長度通常不會稱為距離,即使依國中數學會解釋為「某一個向量點至零點 (原點) 的距離」。故只有一個向量時,該向量的 Norm (范數) 解釋為向量的長度應該更貼切。 * 補充--==一般化的 $p$-norm 定義==: * $||x||_p := [ \sum_{i=1}^{n} |x_i|^p ]^{1/p} = (|x_1|^p + |x_2|^p + ... +|x_n|^p)^{1/p}$ ## L1-norm $||x||_1 := \sum_{i=1}^{n}|x_i|$ * L1-norm 又稱為 Taxicab-norm (計程車幾何範數) 或 Manhattan-norm (曼哈頓距離範數) ## L2-norm $||x||_2 := [ \sum_{i=1}^{n} |x_i|^2 ]^{1/2} = \sqrt{|x_1|^2 + |x_2|^2 + ... +|x_n|^2}$ ## 機器學習應用 norm 在機器學習領域的兩個地方: 1. Loss Function:描述損失函數本身 2. Regularization:描述損失函數額外增加的「參數的正規化項」 --- ### Loss Function (損失函數) 與 Empirical Risk Function (經驗風險函數) 狹義上,「損失函數 (Loss Function)」又可稱為「風險函數 (Risk Function)」是在描述**單一筆資料**的預測值 (prediction) 與目標值 (target) 之間的誤差。而**多筆資料的平均損失值**稱為「**經驗風險函數 (Empirical Risk Function)**」。 但是廣義上,人們稱呼「損失函數 (Loss Function)」時,經常是代指「經驗風險函數 (Empirical Risk Function)」。這也許是溝通方便或單純一般人對定義不了解所導致。 * 前言--資料、features (特徵資料)、predictor (預測模型): * 定義原始資料 ($u$) 與特徵函數 (feature function) * Use $u$ to denote the **raw input data** * $x$ = $\phi{(u)}$ is the corresponding **feature vector** > **Often $x$ is a ++vector of feature++:** > 我們定義 $x$ 是 predictor 的輸入,而通常 $x$ 並不是++最原始的資料 (定義為 $u$)++,而是經過++特徵工程 (Feature Engineering)++ 萃取出的++特徵向量 (feature vector $x$)++ 再當作預測模型的輸入資料。 * $\phi$ is feature (extractor) function (特徵萃取函數) 或 embedding function > 換句話說,Extractor 的輸出就稱為 embedding (目前中文只翻作「嵌入」,但與此處的意義不太貼近)。 > > 通常 embedding 是指 a laten vector, with not necessarily the different dimension, responding to input data. * 定義模型的 (資料對): * Given data $x_1, x_2, ..., x_n \in R^d$ * ($R^d$ 是實數域,每個 $x_i$ 擁有 d 個 feature 維度) * $x$ is called the **independent variable** or **feature vector** * And $y_1, y_2, ..., y_n \in R$ * $y$ is called the **outcome** or **response** or **target** or **dependent variable** or ++label (視情況而定,若為非監督式學習則無 label)++ * Often $y$ is something we want to predict * We don’t know the ‘true’ relationship between $x$ and $y$ * **Thus $(x_i, y_i)$ is the $i$-th data pair (資料對) or observation (觀察值) or example** * 定義我們的目標: * 我們希望模型輸出與目標 $y$ 越接近越好,稱為 Data Fitting (資料擬合),即 $y \approx f(x)$ * 定義 predictor: * We seek a predictor (or model) $g$: $R^d \rightarrow R$ * for feature vector $x$ and our prediction (of y) is $\hat{y} = g(x)$,即 $\hat{y}$ 是 predictor 的輸出 * 資料擬合中 (也就是機器學習所說的訓練階段),我們希望模型預測值與資料對盡可能相似 $\hat{y_i} \approx y_i$ * 然而,我們真正的目標是希望模型對於「未見資料」亦能達到 $\hat{y} \approx y$ for $(x, y)$ pairs we have not seen. #### 損失函數數學定義: * A **loss** or **risk function** $\mathcal{l} = R \times R \rightarrow R$ <br> quantifies how well (more accurately, how badly) $\hat{y}$ approximates $y$ * Smaller values of $\mathcal{l}(\hat{y},y)$ indicate that $\hat{y}$ is a good approximation of $y$ * Typically (but not always) $\mathcal{l}(\hat{y},y)=0$ and $\mathcal{l}(\hat{y},y) \geq 0$ for all $\hat{y}$, $y$ * ==L1-norm Loss== * 正式名稱應為「==Absolute Loss (絕對損失)==」 * 函數:$\mathcal{l}(\hat{y},y) = |\hat{y} - y|$ * ~~又稱作 Least Absolute Deviation (LAD,最小絕對偏差)~~ * ==L2-norm Loss== * 正式名稱應為「==Quadratic Loss (平方損失)==」,俗稱「==Square Loss==」 * 函數:$\mathcal{l}(\hat{y},y) = (\hat{y} - y)^2$ * ~~又稱作 Least Squares Error (LSE, 最小平方誤差)~~ #### 經驗風險函數數學定義 * Empirical Risk Function 其實就是多筆資料對 (data pairs) 的平均損失值 > **The empirical risk** is **the average loss over the data points**, > $\mathcal{L} = \frac{1}{n} \sum_{i=1}^{n} \mathcal{l}(\hat{y_i},y_i)= \frac{1}{n} \sum_{i=1}^{n} \mathcal{l}(f(x_i),y_i)$ > if $\mathcal{L}$ is small, the predictor predicts the given data well > > When the predictor is parametrized by $\theta$, we write > $\mathcal{L(\theta)} = \frac{1}{n} \sum_{i=1}^{n} \mathcal{l}(g_\theta(x_i),y_i)$ > to show the dependence on the predictor parameter $\theta$ * 經驗風險函數也可以寫成 L1-norm 或 L2-norm 的形式,直接將對應公式帶入即可。 * **L1-norm** lose function 的 **empirical risk function 又稱為「==mean-absolute error (平均絕對誤差)==」**:<br> $\mathcal{L} =$ MAE $=\frac{1}{n} \sum_{i=1}^{n} |g(x_i) - y_i|$ for $i$-th data pair > mean-absolute error has same units/scale as outcomes $y_i$ * **L2-norm** lose function 的 **empirical risk function 又稱為「==mean-square error (平均平方誤差)==」**:<br> $\mathcal{L} =$ MSE $= \frac{1}{n} \sum_{i=1}^{n} (g(x_i) - y_i)^2$ for $i$-th data pair > often we use **root-mean-square error**, $RMSE = \sqrt{MSE}$, which has same units/scale as outcomes $y_i$ #### ==Empirical Risk Minimization (求解經驗風險最小化)== * 補充: Empirical Risk Function 其實就是文獻中常提到的 Objective Function (目標函數),求解 Empirical Risk Minimization 就可以得到使損失函數輸出最小值的參數 $\theta$ > **Empirical Risk Minimization (ERM)** is a general method for choosing the parameter $\theta$ in a parametrized predictor $g_{\theta}(x)$ > * ERM: choose $\theta$ to minimize empirical risk $\mathcal{L(\theta)}$ > * thus, ERM chooses $\theta$ by attempting to match given data > * for the linear predictor $g_{\theta}(x)=\theta^{\intercal} \cdot x$, we have <br> $\mathcal{L(\theta)} = \frac{1}{n} \sum_{i=1}^{n} \mathcal{l}(\theta^{\intercal} \cdot x_i, y_i)$ > Often there is no analytic solution to this minimization problem, so we use numerical optimization to find $\theta$ that minimizes $\mathcal{L(\theta)}$ * 在機器學習中除了數值方法之外,也可以使用梯度下降法求解 empirical risk minimization problem #### (額外討論個人見解) 經驗風險函數與期望值之間的關係 * 經驗風險函數就是多筆資料對 (data pairs) 的平均損失值 * 期望值是隨機樣本的**加權平均值**,並以隨機樣本的**機率值作為權重值**。只有在均勻分佈 (Uniform Sampling) 的情況下,才會假設所有隨機樣本的抽樣機率相同,機率等於 $\frac{1}{n}$。 * **期望值不一定是平均值,會有這個誤會其實是我們計算樣本平均值的無偏估計時,最終得到樣本平均值的期望值會是母體平均值,期望值只是一個估計變量的概念,可以套用在任何變量上,公視也會不一樣。** * 談到期望值的時候有三重點: 1. 這個期望值公式想要估計的對象是誰 2. 方法的重點聚焦在抽樣 (Sampling) 3. 我們真正在意的期望值是不偏估計值 * 所以一般情況,不論是損失函數或經驗風險函數**都不會**用期望值的方式來表達,損失函數本身是強調「誤差」,經驗風險函數本身是要強調「參數與誤差之間的變化,並希望找到最好的餐數使損失函數值達到最小」,而期望值本身是強調「透過某個特殊推導的不偏估計算式,可以達到的目標值」或闡述「本估計的目標是誰」。**以這個想法來說,經驗風險函數的期望值,也就是其最理想目標,就是使損失函數值達到最小化**。<br><br>因此若硬要寫出數學式的話大概可以這樣表示:<br><br> $\mathbb{E}[\mathcal{L(\theta)}] = \min_{\theta}\mathcal{L(\theta)}$ --- ### Regularization (正規化) 在機器學習中,在損失函數中增加正規化項 (Regularization Term) 可以降低模型過擬合 (Overfitting) 的問題,進而提升模型對於未見資料的預測正確率。而增加參數的 L1/L2-norm 可以使模型的參數變得更加稀疏 (sparse),使參數的值平均變小或是有些值變成零,讓模型對輸入資料的敏感度下降,這又稱為平滑化 (Smoothness)。 * 前言: * Loss function 加入 Regularization 之後要重新改寫 Loss Funcion:<br> $\mathcal{L(\theta)'} = \mathcal{L(\theta)} + \lambda \cdot \frac{1}{p} \cdot ||\theta||_p$ <br> 其中 $\lambda$ 是控制正規化項的比重的超參數,而 $\frac{1}{p}$ 只是為了後面偏微分的推導比較方便,實務上可以將其視為 $\lambda$ 的一部分。 * 對於 Regularization Term "$\lambda \cdot \frac{1}{p} \cdot ||\theta||_p$",其中的參數都不會考慮 bias parameter,因為 bias parameter 對於平滑化沒有的關聯。 > Model paremeter 中,weights 值越小則越 smooth,但 bias 只是對 model function 造成位移,並不會改變 error of variance,反而會改變 error of bias。 * 為了方便後推導描述,定義參數為 $\theta$ 是所有模型參數 $w$ 的集合<br> $\theta = \{w_1, w_2, ..., w_m\}$ <br> 假設模型有 m 個參數 $w$。 * 關於參數最佳化的目標式可以如此描述:<br> $\theta^{*} = \arg \min_\theta \mathcal{L(\theta)'}$ >「$\arg min_{\theta} \mathcal{L(\theta)'}$」的意思是「回傳使 lose function's lose value 值達到最小的參數 $\theta$」,若未加上 $\arg$,則 $min_{\theta} \mathcal{L(\theta)'}$ 是回傳最小的 lose value。 > > 在 [StackExchange 的討論](https://math.stackexchange.com/questions/227626/explanation-on-arg-min)提到: > "$\arg \min$ (or $\arg \max$) **return the input** for minimum (or maximum) output." * L1-norm Regularization * ![](https://i.imgur.com/Ok3xnzz.png) * 推導後,L1-regularization 是更新參數 $w_i^{t+1}$ 時,$w_i^{t}$ 會減去一個與自身值 ($w_i^{t}$) 乘上 $\eta \lambda$ 的固定值 * 雖然更新速度較為固定,但是當 $w_i$ 值很小時,$w_i$ 更新較快,而且**容易產生 $w_i = 0$ 的現象,使得 $\theta$ 相較 L2-regularization 能使 model 更加 Sparse。** * L2-norm Regularization * ![](https://i.imgur.com/Vl6yosO.png) * 推導後,L2-regularization 是更新參數 $w_i^{t+1}$ 時,$w_i^{t}$ 會先乘上一個小於且趨近 1 的小數 (通常 $\eta \lambda$ 值都很小),再減去 gredient,即 $w_i^{t}$ 先變小再減去一個很小的梯度 (L2 的函數圖形是拋物線,$w_i$ 趨近零時,斜率變緩,即梯度也逐漸變小)。 * 當 $w_i$ 值離零很遠時 (極大或極小),$w_i$ 向零更新地很快;但是反之,當 $w_i$ 值趨近零則更新得慢。並且 L2-regularization 先變小再減去某值,使 $w_i$ 不容易變成零值,**容易產生所有參數均小的現象。通常效果不如 L1-regularization 好。** * 探討: 1. Regu 是使值不要離零太遠但效果可能不如 early stop 2. L1 sparse 有零有大值、L2 平均都得到小值