單元線性迴歸
1、定義假設函式 \(h(x) = \theta_1x + \theta_0\)
2、嘗試用樣本擬合假設函式,所有樣本點到假設函式的距離,其中\(m\)為樣本數量:
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\) 。
多元線性迴歸
當處理的問題的特徵輸入變成多個時,假設函式將會變成:
其中 \(x_0\) = 1。
如果假設兩個矩陣:
那麼假設函式就能表示為:
特徵縮放
將特徵的值放到相同的規模上,如果不在同一規模,有可能要梯度下降很久。
面對這種問題,經驗是將特徵縮放到 -1 ~ 1 之間。
縮放的方法:均值歸一化,特徵值減去平均值除以特徵的範圍。
正規方程求解
除了梯度下降的方法找到最優點,還可以直接通過求導數值為0的點計算出結果。當
只要代價函式求得對每個 \(\theta\) 的偏導的值為 0 的點即可。
正規方程在求解大特徵的時候需要求轉置和矩陣的逆,但是在n小的時候求得比較快。(特徵少的時候選擇)。