今天开启一个新的小计划,把我之前学习过的零碎知识整合一遍~
三个月之内搞定吧,先从机器学习开始,线性回归,就由你来打头阵吧~
目录:
机器学习常见面试问题汇总
问题汇总(1):逻辑回归
问题汇总(2):支持向量机
问题汇总(3):树模型
问题汇总(4):聚类
问题汇总(5):神经网络
问题汇总(6):EM算法
问题汇总(7):朴素贝叶斯
其他人的总结:
大家稍等,等SVM部分写完,我就回头写这篇,,,
基础概念
回归:
高尔顿的一篇谈论人的身高的文章,首次提出了“回归”这个名词:“那些高个子的后代的身高,有种回归到大众身高的趋势。” 回归即从一组数据出发,确定某些变量之间的定量关系式,也就是建立数学模型并估计未知参数。我们这里的线性回归即表示使用最佳拟合直线建立因变量(Y)和一个或多个独立变量(X)之间的关系(也成为回归线)。
最小二乘法:
通过最小化误差的平方和,使得拟合对象无限接近目标对象(核心思想)。首先要求误差,也就是真实值减去预测值,预测值即为拟合函数中,参数和特征之间进行计算得到。然后最小化该误差即可。
通过最小化误差平方和,直观上便是最小化两者的距离。最小二乘法的解 正符合投影矩阵的公式:将Y向量投影到X构成的平面上。
- 局限性:
首先,最小二乘法需要计算 的逆矩阵,有可能逆矩阵不存在,这样就没有办法直接用最小二乘法。
第二,当样本特征n非常的大的时候,计算逆矩阵是一个非常耗时的工作,甚至不可行。建议不超过10000个特征。
第三,如果拟合函数不是线性的,这时无法使用最小二乘法,需要通过一些技巧转化为线性才能使用。
当 的逆无法求得时,也就无法用矩阵形式得到最小二乘的解。此时可以利用梯度下降的方法逐步的逼近出最优解。梯度下降可以算作解最小二乘的方法,跟矩阵解法、方程解法并列。具体区别可以参考知乎上对该问题的解释(见“最小二乘、极大似然、梯度下降有何区别?”)。
除此之外,可以考虑在原先的A的最小二乘估计中加一个小扰动λI,使原先无法求广义逆的情况变成可以求出其广义逆,使得问题稳定并得以求解。有:
,而此时对应的损失函数为:
即为岭回归(ridge regression),或L2正则(还有一个L1正则,即LASSO回归,将换为即可)。
交叉熵:
交叉熵用来评估label和predicts之间的差距,可作为损失函数。基本形式如下:
逻辑回归:
逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。
最大似然估计:
最大似然估计可以拆成三个词,分别是“最大”、“似然”、“估计”,分别的意思如下:
最大:最大的概率
似然:看起来是这个样子的
估计:就是这个样子的
连起来就是,最大的概率看起来是这个样子的那就是这个样子的。
问题
逻辑回归为什么用sigmoid函数?
- 假设预测值符合服从伯努利分布
- E(y|x;θ) 利用广义线性模型的假设, 符合逻辑回归模型思想。
- 也可以从sigmoid函数良好特性分析,如输出在(0,1)区间,函数单调可导,导数计算方便等等。
逻辑回归为什么用极大似然估计:
1.最终损失函数为凸函数,有全局最优,如果像线性回归一样利用误差平方和来当代价函数,则得到非凸函数,有许多局部最优。
2.没有sigmoid函数,使得收敛更快。
最小二乘和梯度下降的异同:
最小二乘和极大似然是目标函数,梯度下降是优化算法。机器学习的核心是一个model,一个loss fuction,再加上一个优化的算法。一个目标函数可以用不同的优化算法,不同的目标函数也可以用相同的优化算法。所以最小二乘和极大似然根本不是算法,和梯度下降毫无可比性。
PS:最小二乘和极大似然也不是对立的。最小二乘是从函数形式上来看的,极大似然是从概率意义上来看的。事实上,最小二乘可以由高斯噪声假设+极大似然估计推导出来。当然极大似然估计还可以推导出其他的loss function,比如logistic回归中,loss function是交叉熵.
- 相同
1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。
2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小。 - 不同:
实现方法和结果不同:最小二乘法是直接对求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。