线性模型(1)线性回归
一、线性回归
线性回归假设特征和结果满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。
\[ y=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n} \]
如果令 \(x 0=1, y=h \theta(x)\), 可以将上述模型写成向量形式, 即: \[ h_\theta(x)=\sum_{i=0}^n \theta_i x_i=\theta^T x \] 在上述公式中, 假设特征空间与输入空间x相同。准确地讲, 模型表达式要建立的是特征空间与结果之间的关系。 在一些应用场合中, 需要将输入空间映射到特征空间中, 然后建模, 定义映射函数为 \(\Phi(x)\), 因此我们可以把公式写 成更通用的表达公式: \[ h_\theta(x)=\theta^T \Phi(x) \] 特征映射相关技术,包括特征哈希、特征学习、Kernel等。
1.1 目标函数 【损失函数】
损失函数用的是 \(x(i)\) 的预测值 \(h \theta(x(i))\) 与真实值 \(y(i)\) 之差的平方和, 这时我们需要映入一个函数来衡量 \(h \theta(x)\) 表示 真实值y好坏的程度,该函数称为损失函数(loss function,也称为错误函数)。数学表示如下: \[ \begin{gathered} J(\theta)=\frac{1}{2} \sum_{i=1}^n\left(\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)\right)^2 \\ \min _\theta J(\theta) \end{gathered} \] 一般地,机器学习中不同的模型会有相应的目标函数。而回归模型(尤其是线性回归类)的目标函数通常用平方损失函数来作为优化的目标函数(即真实值与预测值之差的平方和)。为什么要选用误差平方和作为目标函数呢?答案可以从概率论中的中心极限定理、高斯分布、最大似然估计等知识中找到。
回归模型(尤其是线性回归类)的目标函数通常用平方损失函数来作为优化的目标函数(即真实值与预测值之差的平方和)。为什么要选用误差平方和作为目标函数呢?
1.2 误差平方和【平方损失函数】
中心极限定理: 研究【独立随机变量和】的极限分布为【高斯分布】的问题。
高斯分布:假设给定一个输入样例 \(x(i)\) 根据公式得到预测值 \(\theta T x(i)\) 与真实值 \(y(i)\) 之间存在误差, 即为 \(\varepsilon(i)\) 。那么, 它们之间的关系表示如下: \[ y^{(i)}=\theta^T x^{(i)}+\varepsilon^{(i)} \] AndrewNg 的课程中第一节线性回归的例子中, 根据训练数据建立房屋的面积 \(x\) 与房屋的售价 \(y\) 之间的函数表达。 它的数据集把房屋面积作为最为主要的变量。除此之外我们还知道房屋所在的地段(地铁、学区、城区、郊区), 周边交通状况,当地房价、楼层、采光、绿化面积等等诸多因素会影响房价。
实际上, 因数据收集问题可能拿不到所有影响房屋售价的变量, 可以假设多个因素变量相互独立, 根据中心极限定 理, 认为变量之和服从高斯分布。那么 \(x\) 和 \(\mathrm{y}\) 的条件概率可表示为: \[ p\left(y^{(i)} \mid x^{(i)} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) \] 极大似然估计与损失函数极小化等价:根据上述公式估计得到一条样本的结果概率,模型的最终目标是希望在全部 样本上预测最准, 也就是概率积最大, 这个概率积就是似然函数。优化的目标函数即为似然函数, 表示如下: \[ \max _\theta L(\theta)=\prod_{i=1}^m \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^T x^{(i)}\right)^2}{2 \sigma^2}\right) \] 对 \(L(x)\) 取对数, 可得对数似然函数: \[ \max _\theta l(\theta)=-m \log \sqrt{2 \pi} \sigma-\frac{1}{2 \sigma^2} \sum_{i=1}^m\left(y^{(i)}-\theta^T x^{(i)}\right)^2 \] 由于 \(n, \sigma\) 都为常数,因此上式等价于: \[ \min _\theta \frac{1}{2} \sum_{i=1}^m\left(y^{(i)}-\theta^T x^{(i)}\right)^2 \]
我们可以发现,经过: 中心极限定理 + 高斯分布 + 最大似然估计 推导出来的待优化的目标函数与平方损失函数是等价的。因此可以得出结论:线性回归误差平方损失极小化与极大似然估计等价。其实在概率模型中,目标函数的原函数(或对偶函数)极小化(或极大化)与极大似然估计等价,这是一个带有普遍性的结论。比如在最大熵模型中,有对偶函数极大化与极大似然估计等价的结论。
1.3 参数估计
1.3.1 最小二乘法
损失函数定义为 \(J(\theta)=\frac{1}{2}(\mathbf{X} \theta-\mathbf{Y})^T(\mathbf{X} \theta-\mathbf{Y})\), 其中 \(\mathbf{Y}\) 是样本的输出向量, 维度为 \(m \times 1 。 \frac{1}{2}\) 在这主要是 为了求导后系数为 1 , 方便计算。
根据最小二乘法的原理, 我们要对这个损失函数对 \(\theta\) 向量求导取0。结果如下式: \[ \frac{\partial}{\partial \theta} J(\theta)=\mathbf{X}^T(\mathbf{X} \theta-\mathbf{Y})=0 \] 对上述求导等式整理后可得: \[ \theta=\left(\mathbf{X}^T \mathbf{X}\right)^{-1} \mathbf{X}^T \mathbf{Y} \] 最小二乘法的几何意义是高维空间中的一个向量在低维子空间的投影。
1.3.2 梯度下降法
看来我们这个算法会在很大程度上被初始点的选择影响而陷入局部最小点。将梯度下降法应用到线性回归有三种方式:批处理梯度下降法、随机梯度下降法。 \[ \begin{gathered}\frac{\partial}{\partial \theta_j} J(\theta)=\frac{\partial}{\partial \theta_j} \frac{1}{2}\left(h_\theta(x)-y\right)^2 \\ =2 \cdot \frac{1}{2}\left(h_\theta(x)-y\right) \frac{\partial}{\partial \theta_j}\left(h_\theta(x)-y\right) \\ =\left(h_\theta(x)-y\right) x_j\end{gathered} \]
- 批量梯度下降法(BGD)
参数θ的值每更新一次都要遍历样本集中的所有的样本,得到新的θj,看是否满足阈值要求,若满足,则迭代结束,根据此值就可以得到;否则继续迭代。【易受极小值影响】
随机梯度下降算法(SGD)【单样本增量梯度下降】
每次更新只用到一个训练样本,若根据当前严格不能进行迭代得到一个,此时会得到一个,有新样本进来之后,在此基础上继续迭代,又得到一组新的和,以此类推。
算法 | 线性回归 | 逻辑回归 |
---|---|---|
思想 | 线性回归假设特征和结果满足线性关系;每个特征的强弱可以由参数体现。高斯分布 | 逻辑回归是一个假设样本服从伯努利分布,利用极大似然估计和梯度下降求解的二分类模型,在分类、CTR预估领域有着广泛的应用。 |
应用场景 | 回归问题 | 分类问题,【非线性问题】 |
目标函数【原因】 | \(J(\theta)=\frac{1}{2} \sum_{i=1}^n\left(\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)\right)^2\) 【平方损失函数】 | \(J(\theta)=-\frac{1}{m} \sum_{i=1}^n\left(y^{(i)} \log h_\theta\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_\theta\left(x^{(i)}\right)\right)\right)\)【交叉熵损失函数】 |
参数估计 | 最小二乘法、梯度下降 | 梯度下降、牛顿法 |
并行化 | 无 | 对把目标函数梯度计算的并行 |
样本分布 | 高斯分布 | 伯努利分布 |
优势 | 对数几率回归:无假设分布?得到概率、易求解;线上算法 |