机器学习总结(一)

快找工作了,之前学的知识感觉太零碎,自问面试的时候能不能对答如流,觉得没什么底气。所以准备将之前所学做一个系统的总结,既是对所学知识的升华,也可以帮助初学者理清一个思路。那就从最简单的线性模型开始吧。

线性模型

线性回归

首先解释一下什么叫回归,给定一个点集,能够用一条曲线,平面,或者超平面去拟合。这个过程就叫回归,如果是用来拟合的是直线,就叫线性回归,如果是一条二次曲线就叫二次回归。机器学习可以通过这些点,学习出一条曲线或平面,超平面,来预测未知数。而直线又可以用方程表示,所以这个过程就变为了求参数的过程。我们就需要一个函数来评估预测结果的好坏,从而学习参数,这个函数就是损失函数。在线性回归里,我们采用欧氏距离作为损失函数。公式如下:

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

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

下面我们来解释下这两个公式其中公式(2)表示的是一个线性函数模型,它输入是n个特征,从而预测出一个值。y是这些特征x对应的真实输出。然后公式(1)里面的\mathbf{x^{i}}是一个包含了公式(1)里面所有x的一个向量。i是第i个样本的意思,总共有m个样本,一个样本它包括了n个特征。为了让预测值尽可能的接近实际值。所有我们要做的就是最小化公式(1)。有两种方法:

1.最小二乘法。

2.梯度下降法。

这一理解的集几何解释,如图,图中输入是一个特征即房子的尺寸。直线就是要拟合出来的直线。

机器学习总结(一)_第1张图片

下面我们来求解,先用最小二乘法的方法:

机器学习总结(一)_第2张图片

我们知道求一个凸函数的极值的方法是,对x求导另其等于0。我们这里是要求θ的值,所以就对θ求偏导数。我们首先从简单的例子入手,假设只有一个特征,总共有m个样本。

但是一般情况下都不止一个特征x,有多个特征,这称为多元线性回归。所以我们也要知道向量表示时的推导公式,如下:

机器学习总结(一)_第3张图片

上面的推导用到了一些矩阵论里的公式,这里列出来:

机器学习总结(一)_第4张图片

这样我们的最小二乘法完成了。我们观察上面的结果,就会发现这个算法的两个缺点:

首先它要求X^{T}X的逆矩阵,要求逆,矩阵必须满秩,因为求逆矩阵就要求行列式,不满秩的矩阵行列式为零,没办法做分母。而X^{T}X显然不一定满秩,为了解决这个问题,统计学家引入里岭回归的概念。即在X^{T}X上加一个\lambdaI从而使得矩阵非奇异,其中矩阵I是一个n*n的单位矩阵,对角线上全为1,其他元素为0. 而\lambda是用户自己定义的。公式就变为:

\theta =(X^{T}X+\lambda I)^{^{-1}}X^{T}y

岭回归最先用来处理特征数多于样本数的情况,现在用于在估计中加入偏差,从而得到更好的估计。这里通过引入\lambda来限制所有θ的和,通过引入该惩罚,能够减少不重要的参数,相当于引入正则化项。在统计学里这个技术叫缩减(shrinkage)。

缩减可以去掉不重要的参数。

第二个缺点就是计算量太大,求逆本来就是一个计算量特别大的事情,如果数据集X很大,那么计算量就会很大很大。

参考

https://blog.csdn.net/xierhacker/article/details/53257748

既然最小二乘法存在这些缺点,我们在适当的时候就可以用梯度下降法代替。梯度下降法,是用一种迭代的方法来不断趋近最优解,为了高效,所以我们就选择函数值变化最快的方向,那就是梯度方向。α为步长,就决定了朝着这个方向每次迈的步子有多大。怎么求梯度呢,我们就要对θ向量里面的每个分量求偏导,然后更新对应的θ值。那么梯度下降法呢通常会有两种方法。一种是批量梯度下降法,这个方法计算量比较大,因为它每次都遍历了所有的数据集。比较适合较小的数据集。还有一种是随机梯度下降法。它每次只用一个样本的梯度来更新参数,计算速度快,在深度学习里面随机梯度下降法用的较多。

你可能感兴趣的:(机器学习)