機器學習整理(線性迴歸)

北極烏布發表於2022-03-12

單元線性迴歸

1、定義假設函式 \(h(x) = \theta_1x + \theta_0\)

2、嘗試用樣本擬合假設函式,所有樣本點到假設函式的距離,其中\(m\)為樣本數量:

\[sum = \dfrac{1}{2m} \sum_{1}^{m} (h(x_i) - y_i)^2 \]

3、當 sum 的值越小,假設函式的偏差就預測樣本更加精確。這個表示式就是代價函式 \(j(\theta)\) ,目標就是最小化代價函式的值。

4、假設 \(h(x)\) 沒有常數項 \(\theta_0\)\(h(x)\) 將會會是一個從原點出發的直線,不斷變動 \(\theta_1\) 的值(斜率),帶入樣本 \((1, 1), (2, 2) , (3, 3)\) 可以發現代價函式 \(j(\theta)\)是一個二次函式,並且在值為 1 的時候,代價函式 \(h(x)\) 的值最小。

梯度下降

問題:為了將代價函式最小化,但是代價函式\(J(\theta)\)在多維後不能視覺化,所以需要一種方法來求得最小值。

梯度下降演算法描述:

對於每一個 \(\theta_i\) 引數,不斷減去代價函式\(j(\theta_0 \cdots \theta_n)\)\(\theta_i\) 的偏導和學習率 \(a\) ,直到收斂,收斂的意思是導數項為0,\(\theta_i\) 的值不再發生變化。

線性迴歸的梯度下降的代價函式總是一個凸函式,沒有區域性最優解,只有全域性最優解。

學習率的取值

1、學習率太大收斂不了,梯度下降的過程中,不斷跳過最低點,需要適當調小學習率;

2、太小的話學習速度太慢

3、學習率總能到達區域性最低點,即使學習率是固定的,因為接近最低解的時候,導數會自動變化。

4、除錯梯度下降,保證梯度下降是在正確執行要求是每次迭代都需要降低 \(J(\theta)\) 的值,設定收斂閾值 \(\sigma\)

多元線性迴歸

當處理的問題的特徵輸入變成多個時,假設函式將會變成:

\[h(x) = \theta_0x_0 + \theta_1x_1 + \cdots + \theta_nx_n \]

其中 \(x_0\) = 1。

如果假設兩個矩陣:

\[X = \begin{bmatrix} x_0 \\ x_1 \\ \cdots \\ x_n \end{bmatrix}, \Theta= \begin{bmatrix} \theta_0 \\ \theta_1 \\ \cdots \\ \theta_n \end{bmatrix} \]

那麼假設函式就能表示為:

\[h(x) = \Theta^TX \]

特徵縮放


將特徵的值放到相同的規模上,如果不在同一規模,有可能要梯度下降很久。

面對這種問題,經驗是將特徵縮放到 -1 ~ 1 之間。

縮放的方法:均值歸一化,特徵值減去平均值除以特徵的範圍。

正規方程求解

除了梯度下降的方法找到最優點,還可以直接通過求導數值為0的點計算出結果。當

\[J(\theta_0, \theta_1, \cdots, \theta_m) = \dfrac{1}{2m} \sum_{1}^{m} (h(x_i) - y_i)^2 \]

只要代價函式求得對每個 \(\theta\) 的偏導的值為 0 的點即可。

\[\dfrac{\partial}{\partial\theta_j} J(\theta_0, \theta_1, \cdots, \theta_m) = \cdots = 0 \]

正規方程在求解大特徵的時候需要求轉置和矩陣的逆,但是在n小的時候求得比較快。(特徵少的時候選擇)。

相關文章