---
# System prepended metadata

title: 線性/非線性回歸模型-Regression
tags: [李宏毅, 監督式學習（Supervised learning）, 機器學習]

---

## 介紹回歸 Regression
迴歸分析是一種統計與機器學習技術，用於描述和分析因變數與自變數之間的關係，它的目標在於建構數學模型來進行預測或解釋，例如，迴歸模型可用於預測股票市場走勢、控制自駕車方向盤角度，或分析商品在推薦系統中的購買可能性等。
### 建立回歸模型的三步驟
1. 定義帶有未知參數的函式：描述自變數（輸入特徵）與因變數（預測目標）的關係。
2. 定義誤差函式：量化模型預測結果與真實值之間的差距。
3. 優化 (Optimization)：調整模型參數，使誤差函式的值最小化。

## 線性回歸模型（Regression model）
線性模型假設因變數可以表示為自變數的線性組合，其數學形式為 $ŷ = w_1 x_1 + w_2 x_2 + \cdots + w_n x_n + b$ ，其中 $ŷ$ 代表預測目標， $𝑥_1 , 𝑥_2 , … , 𝑥_𝑛$ 代表輸入特徵， $𝑤_1 , 𝑤_2 , … , 𝑤_𝑛$ 是權重，$b$ 則是偏值，然而模型的預測結果 $ŷ$ 會與實際值 $y$ 之間產生誤差，因此需要使用誤差函式（Loss funciton）進行衡量。

在迴歸模型中，常用的誤差函式為均方誤差（MSE），其數學表示如下：$\text{MSE} = \frac{1}{m} \sum_{i=1}^{m} \left( y_i - \hat{y}_i \right)^2$ ，其中， $m$ 是樣本數量，$ŷ_i$ 為模型對第 i 個樣本的預測值， $y_i$ ​ 為第 i 個樣本的真實值，當 MSE 越小時，表示模型的預測結果越接近真實值，模型的準確度也越高。

為了使誤差函式的值最小化，迴歸模型通常採用梯度下降法（Gradient Descent）進行優化，梯度下降法是一種迭代式的優化算法，其原理是計算損失函式對於模型參數的偏導數，並沿著負梯度方向更新參數，以逐步逼近 loss 最小值。

![image](https://hackmd.io/_uploads/ByAuRYmtkl.png)

其中，η 代表學習率 (Learning rate)，可以作為控制每次更新的步伐大小。

:::info
MSE 是一個凸函數（Convex Function），這表示它的損失函數圖形呈現單一最小值（Global Minimum），因此不會陷入局部極小值（Local Minima），這使得線性迴歸的最佳解可以透過梯度下降法（Gradient Descent）來有效找到，不用擔心優化過程中的困難。
:::

### 線性迴歸需滿足的基本假設
1. 線性關係（Linearity）：線性迴歸模型假設應變數 ŷ 與自變數 x 之間具有線性關係。
2. 無異常值（No Outliers）：指明顯偏離數據分布的點，導致回歸係數被極端值拉動。
3. 殘差常態性（Normality of Residuals）：若殘差不符合常態分佈，則可能影響估計結果的可信度。
4. 自變數獨立性（No Multicollinearity）：當自變數 x 彼此高度相關時，會導致迴歸係數不穩定，影響模型解釋力。
 
## 非線性回歸模型
然而，現實世界中的許多現象並不遵循線性規律，因此，在處理這些複雜數據時，有時非線性回歸模型更為適合，如 $ŷ = b + w_1 \cdot x_{1} + w_2 \cdot (x_{2})^2 + ...$ 或者非線型激活函式例如 Hard sigmoid、ReLU（Rectified Linear Unit）和 Sigmoid 函數。

### Hard sigmoid
在數學與工程應用中，分段線性曲線（Piecewise Linear Curve）是一種重要的函數表示方式，它透過將整體函數拆分為若干線性區段，來簡化非線性問題的處理。

$$
\text{HardSigmoid}(x) = 
\begin{cases}
0 & \text{if } x \leq -2.5 \\
0.2x + 0.5 & \text{if } -2.5 < x < 2.5 \\
1 & \text{if } x \geq 2.5
\end{cases}
$$

Hard Sigmoid 使用一個分段線性函數來近似 sigmoid 的形狀，它不需要計算指數函數，僅透過加法與乘法便可實作，非常適合在計算效率或能源消耗受限的場景中使用。

![image](https://hackmd.io/_uploads/By_79wzrll.png =45%x)![image](https://hackmd.io/_uploads/ry-B5wMrxl.png =53%x)

### ReLU
ReLU 函數的數學定義為 $ReLU ( z ) = max ⁡ ( 0 , z )$，它的特點在於對於輸入值為正數時，輸出與輸入相同；而對於負數輸入，輸出則為 0。這種設計簡單高效，計算成本低，並且能有效減輕深層神經網路中的梯度消失問題。然而，ReLU 也有其不足之處，當某些神經元的輸出長期為 0 時，這些神經元可能會喪失學習能力，導致所謂的 "死亡 ReLU" 問題。 

### Sigmoid
相較之下，Sigmoid 函數的數學形式為 $\text{Sigmoid}(z) = \frac{1}{1 + e^{-z}}$ ​ 。該函數將輸入值壓縮到 (0,1) 的範圍內，適合於概率預測問題。由於其輸出範圍有限，Sigmoid 能夠平滑地表示數據的非線性變化，但在輸入值過大或過小時，函數的導數接近 0，容易導致梯度消失現象。因此，在處理深層網絡時，Sigmoid 函數逐漸被 ReLU 所取代。

![image](https://hackmd.io/_uploads/HyBQzqmK1g.png)

:::info
以上就是這篇文章「線性/非線性回歸模型-Regression」的所有內容，第一次看的人會花比較多時間消化吸收，這是很正常的事情，若有任何問題，歡迎在下方與我聯繫、討論，接下來也會繼續分享相關文章，敬請期待。
:::