Least Mean Squares Regression(一)
1. Examples
假设我们想从一辆汽车的重量和年龄来预测它的里程数:
我们想要的是:一个可以使用\(x_1\)和\(x_2\)来预测里程的function。
线性回归:利用线性模型预测连续值的策略
假设:输出是输入的线性函数
\[Mileage = w_0 + w_1 \cdot x_1 + w_2 \cdot x_2\]
- 学习:利用训练数据找到\(w\)的最佳可能值
预测:给定新车的\(x1,x2\)的值,使用学习到的\(w\)来预测新车的里程
1.2 数学表达
输入向量:\(x \in R^{d}\)
输出为实正数值:\(y \in R\)
我们的训练集:
\[D=\{(x_1,y_1),(x_2,y_2),...\}\]
我们想要一个线性预测:
\[ y=w_1+w_2 \cdot x_2+...+w_d \cdot x_d \\ y=w^{T}x \]
\(w\)是训练的道德可学习的权重向量
2. The LMS objective
对于训练集中的输入\((\pmb{x_i}、y_i)\),定义特定权重向量w的成本(或损失):
\[J(\pmb{w})=\frac{1}{2}\sum \limits_{i=1}^{m}(y_i-\pmb{w}^{T}\pmb{x_i})\]
一个学习策略是:在这个数据上找到成本最低的\(w\)
3. Gradient descent
目标函数:
\[\min \limits_{\boldsymbol w}\frac{1}{2}\sum \limits_{i=1}^{m}(y_i-\pmb{w}^{T}\pmb{x_i})\]
最小化一个函数J(w)的一般策略:
- 初始化一个\(w\),比如w0
- 迭代直到收敛:
- 计算\(J\)在\(w^t\)处的梯度的梯度
通过采取一个相反方向的梯度从\(w^t\)得到\(w^{t+1}\)
3.2 Gradient descent for LMS
- 初始化\(\pmb{w_0}\)
- 对于t=0,1,2,...
- 计算\(J(\pmb w)\)在\(\pmb w^{t}\)的梯度:\(rJ(\pmb{w^{t}})\)
- 更新权重:
\[\pmb{w^{t+1}}=\pmb{w^{t}}-rJ(\pmb{w^{t}})\]
r为learning rate
其中导数为:
\[\nabla J(\pmb{w^{T}})=[\frac{\partial J}{\partial w_1},\frac{\partial J}{\partial w_2},...,\frac{\partial J}{\partial w_d}]\]
此时我们将梯度具体化:
\[
\begin{aligned}
\frac{\partial J}{\partial w_j}&=\frac{\partial}{\partial w_j}\frac{1}{2}\sum \limits_{i=1}^{m}(y_i-\pmb w^{T}\pmb{x_i})^2 \\
&=\frac{1}{2}\sum \limits_{i=1}^{m}\frac{\partial}{\partial w_j} (y_i-\pmb w^{T}\pmb{x_i})^2 \\
&=\frac{1}{2}\sum \limits_{i=1}^{m}2(y_i-\pmb w^{T}\pmb{x_i})\frac{\partial}{\partial w_j}(y_i-w_1x_{i1}-...-w_jx_{ij}-...) \\
&=\frac{1}{2}\sum \limits_{i=1}^{m}2(y_i-\pmb w^{T}\pmb{x_i})(-x_{ij}) \\
&=-\sum \limits_{i=1}^{m}(y_i-\pmb w^{T}\pmb{x_i})x_{ij}
\end{aligned}
\]
3.3 Incremental/Stochastic gradient descent
- 对每个例子重复\((\pmb{x_i},y_i)\)
- 假设整个训练集都由这个单一的示例来表示
- 使用此示例来计算梯度并更新模型
与批处理梯度下降相比,它会对每次传递数据的权重向量进行一次更新
当训练集非常大时,在线/增量算法通常是首选,可能比批处理版本更快地接近最佳4. Summary
- 我们想要的是:使用输入的特征表示来预测实际值输出
- 假设:输出是输入的一个线性函数
- 通过最小化总成本来学习
- 梯度下降和随机梯度下降找到最佳权重向量
- 这种特殊的优化可以通过将问题框架为一个矩阵问题来直接计算
后面将会继续介绍:Sparse LMS