# 李宏毅機器學習 第一講 ## 相關筆記 - [shaoeChen - 李宏毅_ML_Lecture_1](https://hackmd.io/@shaoeChen/B1CoXxvmm/https%3A%2F%2Fhackmd.io%2Fs%2FHJU9aUY7Q) ## 2024-09-14 讀書會 ![messageImage_1726319083286](https://hackmd.io/_uploads/rkEB0zXTA.jpg) ![messageImage_1726320877262](https://hackmd.io/_uploads/HkVHAfXpC.jpg) ![messageImage_1726320938033](https://hackmd.io/_uploads/SJ4H0zQaR.jpg) Q: >關於線性回歸的loss function 我可以 先針對 L1=(y-w1x1-b)^2 再針對L2=(y-w2x2-b)^2 最後 (L1+L2)/2當作會後的loss function嗎? A: 你提到的方式實際上是將兩個特徵 $x_1$ 和 $x_2$ 分開來計算各自的損失 $L_1$ 和 $L_2$,然後將這兩個損失相加後平均來作為最終的損失函數。但==這種方式並不是標準的線性回歸損失函數的做法==。 ### 標準的線性回歸損失函數 對於多個特徵的線性回歸問題,我們通常會將所有特徵的線性組合一起考慮,並針對整個模型的輸出計算損失,而不是分別計算每個特徵對應的損失。標準的線性回歸模型是: $$ y = w_1 x_1 + w_2 x_2 + b $$ 對應的損失函數(如均方誤差,MSE)是針對整個模型輸出和目標值之間的誤差進行計算: $$ L = \frac{1}{N} \sum_{i=1}^{N} (y_i - (w_1 x_{i1} + w_2 x_{i2} + b))^2 $$ 這樣可以更好地考慮所有特徵的共同影響。 ### 你的方式 如果你分開計算 $L_1 = (y - (w_1 x_1 + b))^2$ 和 $L_2 = (y - (w_2 x_2 + b))^2$,這實際上是把兩個特徵單獨看作兩個回歸模型,而這樣處理有以下幾個問題: 1. **不考慮特徵的聯合作用**:將兩個特徵分開處理,無法考慮它們的聯合作用。線性回歸的目的就是利用所有特徵來預測結果,而不是單獨看每個特徵的影響。 2. **無法正確最小化總體誤差**:最小化 \(L_1\) 和 \(L_2\) 的平均值不一定會最小化整個模型的誤差。因為在單獨計算的過程中,每個損失函數都會針對不同的部分進行優化,這樣可能會導致整體損失增加。 ### 建議 如果你想考慮多個特徵的影響,建議使用標準的線性回歸損失函數,這樣可以在同一個模型中同時考慮多個特徵的貢獻,並且能更有效地最小化整體誤差。 你這樣的方式更像是把問題拆解成兩個不同的線性回歸問題,如果這是你的目標,可能需要重新考慮模型設計。 Q: >那 實際上有把兩個特徵單獨看作兩個回歸模型的例子嗎? A: 是的,實際上有一些模型會將特徵單獨看作兩個或多個回歸模型來處理,這種方法通常應用於以下兩種情況: ### 1. **獨立模型 (Independent Models)** 在一些情況下,模型會分別為不同的特徵構建獨立的回歸模型。例如,在多任務學習(Multi-task Learning)中,當我們有多個輸出目標,並且每個目標與不同的特徵集相關聯時,可以針對每個目標建立單獨的模型。 #### 例子:多輸出回歸 (Multi-output Regression) 在多輸出回歸中,我們可以針對每個輸出建立一個單獨的回歸模型。如果有兩個輸出 \(y_1\) 和 \(y_2\),並且分別與特徵 \(x_1\) 和 \(x_2\) 相關聯,那麼可以構建兩個單獨的回歸模型: \[ y_1 = w_1 x_1 + b_1 \] \[ y_2 = w_2 x_2 + b_2 \] 每個模型都有自己的一組權重和偏置,然後針對不同的輸出進行預測。這種方式可以有效應用於某些輸出之間相互獨立或弱相關的情況。 ### 2. **集成學習 (Ensemble Learning)** 在集成學習中,我們經常會使用多個模型分別進行訓練,並且最終的預測是通過將多個模型的預測結果進行合併來得到的。這種方法可以視為對特徵分開進行建模的延伸。 #### 例子:隨機森林 (Random Forest) 隨機森林是一種集成學習方法,它通過生成多個決策樹並將每棵樹的結果進行平均或投票來獲得最終預測。每棵樹可以被看作是針對特徵子集進行回歸或分類的一個獨立模型。每個模型單獨進行回歸,但最終的預測是所有樹的平均值或加權結果。 #### 例子:Boosting 方法 在 Boosting 方法中,如梯度提升決策樹(GBDT),每個模型都是基於前一個模型的殘差進行學習的。這種方式雖然不像你提到的直接分開處理每個特徵,但也是將不同的模型組合起來進行預測。 ### 3. **主成分回歸 (Principal Component Regression)** 在主成分回歸中,模型會將原始特徵轉換成一組主成分(通常是各自獨立的線性組合),然後針對每個主成分進行單獨的回歸分析。這相當於將特徵轉換到一個新的空間,然後針對每個新空間的特徵進行單獨建模。 ### 總結 雖然標準的線性回歸模型通常是將所有特徵一起建模,但在某些情況下,可以將特徵單獨建模。集成學習、多輸出回歸和主成分回歸是一些這類方法的例子。在這些情況下,分開建模有助於處理特徵之間的獨立性或捕捉每個特徵對不同目標的影響。