機器學習公開課筆記 2 多元線性回歸

2022-07-05 15:36:11 字數 1921 閱讀 5351

一元線性回歸只有乙個特徵$x$,而多元線性回歸可以有多個特徵$x_1, x_2, \ldots, x_n$

假設 (hypothesis):$h_\theta(x)=\theta^tx=\theta_0x_0+\theta_1x_1+\ldots+\theta_nx_n$

引數 (parameters):$\theta_0, \theta_1, \ldots, \theta_n$

代價函式 (cost function):$j(\theta_0, \theta_1, \ldots, \theta_n)=\frac\sum\limits_^(h_\theta(x^) - y^)^2$

目標 (goal):$\min_\theta j(\theta)$

迭代更新引數$\theta$: $\theta_j = \theta_j - \alpha \frac\sum\limits_^(h_\theta(x^)-y^)x_j^$   for $j = 0, 1, 2, \ldots, n$

向量化實現 (vectorized implementation):$\theta = \theta - \alpha \frac(x^t(x\theta-y))$

動機:如果不同特徵之間的數值量級差別太大,那麼梯度下降的速度非常慢,為了加快演算法的收斂速度,將各個特徵劃歸到統一數量級,一般是[0, 1]或者[-1, 1]之間

trick1: $x_j = \frac$, 其中 $\mu_j$表示第j個特徵的均值, $s_j$表示第j個特徵的範圍(max - min)或者標準差(standard deviation)

trick2: 學習速率的選擇

解析推導過程:

$$j(\theta)=\frac\sum\limits_^\left(h_\theta(x^)-y^\right)$$

可以簡化寫成向量的形式:

$$j(\theta)=\frac||x\theta-y||^2=\frac(x\theta-y)^t(x\theta-y)$$

展開可得:

$$j(\theta)=\frac[\theta^tx^tx\theta-y^tx\theta-\theta^tx^ty+y^ty]$$ 注意到$y^tx\theta$是乙個標量,因此它與其轉置$\theta^tx^ty$是相等的,即中間兩項是相等的,從而$j(\theta)$可以進一步化簡為:

$$j(\theta) = \frac[x^tx\theta-2\theta^tx^ty+y^ty]$$

對向量的求導與單變數的求導法則有諸多不同,這裡不加證明給出如下兩個重要的向量求導結論(具體可參照向量矩陣求導)

\begind(x^tax)/dx = (dx^t/dx)ax + (d(ax)^t/dx)x = ax + a^tx \end

\begind(x^ta)/dx = (dx^t/dx)a + (da/dx)x^t = ia + 0x^t = a\end

根據結論(1), 第一項的求導結果為$x^tx\theta+x^tx\theta=2x^tx\theta$; 根據結論(2),第二項的求導結果為$-2x^ty$;第三項不含$\theta$,求導結果當然為0,整合三項我們可以得到$j(\theta)$的導數$\frac$,

$$\frac=\frac(2x^tx\theta-2x^ty)$$

令該導數等於0,我們很容易得到

$$\theta=(x^x)^x^ty$$

這就是使得代價函式$j(\theta)$取得最小值對應的$\theta$。

gradient descent

normal equation

需要選擇合適的$\alpha$

不需要選擇$\alpha$

需要不斷的迭代

不需要迭代

當特徵非常多時(n非常大),演算法依然表現良好

當n非常大時,計算速度非常慢,因為需要計算$(x^tx)^$複雜度為$o(n^3)$

[1] andrew ng coursera 公開課第二週

機器學習公開課筆記第二週,線性回歸的梯度下降法

當我們以線性回歸的模型來擬合我們的資料集時,我們如何來確定假設函式的引數值呢?首先我們以兩個引數為例,即h x 0 1x,也就是乙個一次函式,而代價函式 我們為了盡量擬合資料集,也就是選擇合適的 0 截距 1 斜率 使代價函式j 0,1 最小,假設 0 0,代價函式j就轉變為關於 1的二次函式,因為...

谷歌深度學習公開課學習筆記 0

課程 谷歌官方的倉庫 課程難度不大,課後的學習任務我也在其他部落格網上找到了解答,他的全部 託管在 學習任務解答列表 1.谷歌深度學習公開課任務 1 notmnist 2.谷歌深度學習公開課任務 2 sgd 3.谷歌深度學習公開課任務 3 正則化 4.谷歌深度學習公開課任務 4 卷積模型 5.谷歌深...

谷歌深度學習公開課學習筆記 1

模型改進後,在你的驗證集上影響了30個例項的改變,通常是有統計學意義的,通常是可以信任的。想象你的驗證集裡有3000個例項,假定你信任30的規則,你可以相信哪個水平的準確性的提公升?當你得到從80 到81 這1 的提公升更有說服力,因為有30個例項從不正確到正確。這就是為什麼對大多數分類器任務,人們...