一元線性回歸只有乙個特徵$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個例項從不正確到正確。這就是為什麼對大多數分類器任務,人們...