传统机器学习-线性回归(吴恩达机器学习笔记)

目录

模型的定义

损失函数

参数的求解

梯度法

最小二乘法


模型的定义

将m个样本,n个特征的训练集表示为:(x_{1}^{(1)},x_{2}^{(1)},\cdots,x_{n}^{(1)},y{_{1}}), (x_{1}^{(2)},x_{2}^{(2)},\cdots,x_{n}^{(2)},y{_{2}}),\cdots ,(x_{1}^{(m)},x_{2}^{(m)},\cdots,x_{n}^{(m)},y{_{m}})

对于线性回归,我们假设(为了方便起见,我们令x_{0}=1

h_{\theta }(x) = \theta _{0} x_{0}+ \theta _{1}x_{1} + \theta _{2}x _{2} + \cdots + \theta _{n}x_{n} = \theta^{T}x

试图学习一个通过属性的线性组合来进行预测的函数,其中\theta_{i}(i=0,1,\cdots,n)是待学习的参数,直观表达了各属性在预测中的重要性,x_{I}(i=1,2,\cdot\cdot\cdot,n)即是我们取的n个特征,其中第一项x_{0}=1,即是\theta_{0}表示截距。

损失函数

J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2}=\frac{1}{2m}(X\theta - y)^{T}(X\theta - y)

其中

X = \begin{bmatrix} 1 & x_{1}^{(1)} &x_{2}^{(1)} &\cdots &x_{n}^{(1)} \\ 1 & x_{1}^{(2)} & x_{2}^{(2)} &\cdots\ &x_{n}^{(2)} \\ \vdots & \vdots& \vdots &\ddots &\vdots \\ 1 & x_{1}^{(m)} & x_{2}^{(m)} &\cdots& x_{n}^{(m)} \end{bmatrix}y=\begin{bmatrix} y^{(1)}\\ y^{(2)}\\ \vdots\\ y^{(m)} \end{bmatrix}h_{\theta}(X) = X\theta = \begin{bmatrix} 1 & x_{1}^{(1)} &x_{2}^{(1)} &\cdots &x_{n}^{(1)} \\ 1 & x_{1}^{(2)} & x_{2}^{(2)} &\cdots\ &x_{n}^{(2)} \\ \vdots & \vdots& \vdots &\ddots &\vdots \\ 1 & x_{1}^{(m)} & x_{2}^{(m)} &\cdots& x_{n}^{(m)} \end{bmatrix} \begin{bmatrix} \theta _{0}\\\theta _{1}\\ \vdots\\ \theta _{n} \end{bmatrix}

目标是找到一组参数,使得预测值和真实值之间的差距最小,即要求一组参数使得损失函数最小。

\min_{\theta_{0},\theta_{1},\dots,\theta_{n}}(J(\theta))

参数的求解

梯度法

偏导数

\frac{\partial J(\theta)}{\theta_{0}} = \frac{1}{m}\sum_{i=0}^{n}(h_{\theta}(x^{(i)})-y^{(i)}))\cdot1,  \frac{\partial J(\theta)}{\theta_{j}} = \frac{1}{m}\sum_{i=0}^{n}(h_{\theta}(x^{(i)})-y^{(i)}))\cdot x_{j}^{(i)}

参数的更新

\theta_{j} = \theta_{j} - \alpha \frac{\partial }{\partial \theta_{j}}(J(\theta_{0},\theta_{1},\cdots,\theta_{n}))

梯度下降法的执行过程

Gradient descent

   Repeat{

   \theta_{j} = \theta_{j} - \alpha\frac{1}{m}\sum_{i=0}^{m}(h_{\theta}(x^{(i)})-y^{(i)}))\cdot x_{j}^{(i)}

   }(同时更新j = 0, 1, \cdots, n )

用矩阵形式表示为

J(\theta)=\frac{1}{2m}(X\theta - y)^{T}(X\theta - y) \\ = \frac{1}{2m}(\theta^{T}X^{T}X\theta -y^{T}X\theta - \theta^{T}X^{T}y - y^{T}y) \\ = \frac{1}{2m}(\theta^{T}X^{T}X\theta -2y^{T}X\theta - y^{T}y)

其中,括号中的三项均为标量,求\theta的导数,按\theta的形状来求解比较容易。

梯度

Grad_{\theta}J = \frac{2}{m}(2X^{T}X\theta - 2X^{T}y) = \frac{1}{m}(X^{T}X\theta - X^{T}y)=\frac{1}{m}X^{T}(X\theta-y)

\triangledown J(\theta)=\begin{bmatrix} \partial J / \partial \theta_1 \\ \partial J / \partial \theta_2 \\ \partial J / \partial \theta_3 \\ \vdots \\ \partial J / \partial \theta_n \end{bmatrix} =\frac{1}{m}\begin{bmatrix} \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_1 \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_2 \\ \vdots \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_n \\ \end{bmatrix}

批量梯度下降

\frac{1}{m}\left.\begin{matrix} \begin{bmatrix} \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_0 \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_1 \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_2 \\ \vdots \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_n \\ \end{bmatrix} \end{matrix}\right| \\ \frac{1}{m} \cdot (X^{(1)}\theta - y^{(1)},X^{(2)}\theta - y^{(2)},X^{(3)}\theta - y^{(3)}, \cdots, X^{(m)}\theta - y^{(m)}) \cdot \\ \begin{bmatrix} X^{(1)}_0 & X^{(1)}_1 & X^{(1)}_2 & \cdots &X^{(1)}_n \\ X^{(2)}_0 & X^{(2)}_1 & X^{(2)}_2 & \cdots & X^{(2)}_n\\ X^{(3)}_0 & X^{(3)}_1& X^{(3)}_2& \cdots & X^{(3)}_n\\ \cdots&\cdots & \cdots &\cdots &\cdots\\ X^{(m)}_0& X^{(m)}_1& X^{(m)}_2&\cdots & X^{(4)}_n \end{bmatrix} =\frac{1}{m}\cdot(X\theta - y)^T\cdot X

随机梯度下降

\left.\begin{matrix} \frac{1}{m}\begin{bmatrix} \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_1 \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_2 \\ \vdots \\ \sum_{i=1}^m(X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_n \\ \end{bmatrix} \end{matrix}\right| \\ \begin{bmatrix} (X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_0\\ (X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_1 \\ (X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_2 \\ \vdots \\ (X^{(i)}\theta - y^{(i)}) \cdot X^{(i)}_n \\ \end{bmatrix} = ( X^{(i)})^T(X^{(i)}\theta - y^{(i)})

更新

\theta = \theta - \frac{\alpha}{m}X^{T}(X\theta-y)

小trick

1、当所有的特征取值范围相近时,梯度下降法更容易收敛,可以通过特征缩放做到,例如归一化处理。

2、绘制J(theta)随步数变化的曲线,或许有助于帮助学习率的调试,有助于发现损失函数是否真的在变小,通常这样取学习率,(0.001,0.01,...,1,10,...)。

最小二乘法

Grad_{\theta}J =2X^T(X\hat{\theta}-y) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)

X^TX为满秩矩阵或正定矩阵,令(1)式为0,可得

                            \hat{\theta} = (X^TX)^{-1}X^Ty

然而,限时任务中X^TX往往不是满秩矩阵,例如特征树木超过样本数,可以求出多个能使均方误差最小化的\theta,选择哪一个解作为输出,有学习算法的归纳偏好决定,常见做方法是引入正则化。

X^{T}X不可逆,可能的原因:

1.列向量线性相关,即训练集中存在冗余特征,此时应该剔除掉多余特征;

2.特征过多(例如:当样本总数 m 小于等于特征数 n 时,  则一定不可逆),此时应该去掉影响较小的特征,或使用“正则化”。

变形

预测值可以逼近实值y,也可以逼近y的衍生物。例如下面的输出标记是在指数尺度上变化,可将输出标记的对数作为线性模型逼近的目标。

ln(y) = w^Tx + b

这就是对数线性回归,实际上是试图让e^{(w^Tx +b)}逼近y。

 

参考:吴恩达的机器学习课程

           周志华:机器学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值