1 回归问题
回归在数学上来说是给定一个点集,能够找一条曲线去拟合。
这里面的“找一条”曲线不是漫无边际的找,而是先假定曲线的形式,如:直线、二次曲线等等,然后来学习确定曲线的各项参数。
一方面,算法没有那么神奇,不能够告诉我们用什么类型的曲线拟合最好;另一方面,如果最初的假定就错了(用直线拟合最好,但是认为选择了二次曲线),
最终的效果也是不好的。
所以回归问题,人的经验是是很重要的。要通过人分析数据,总结曲线的形式。
2 线性回归
就是通过学习一条直线来拟合样本点。在二维平面上,直线的形式为 y = ax + b,就是学习参数a和b。在N维平面上,形式为 y = a1x1 + a2x2 + ...... + b,学习a1...an-1和b
(当然,y也可以是x的非线性函数,如:y = a * x^2,非线性回归的处理方式和线性回归类似)
在现实中,这种模型有缺点:
xi是模型输入,在现实中,模型的输入多种多样,连续值、离散值、枚举值;而且输入的范围差别很大。如:室外温度的范围[-50, 50],某概率的范围[0, 1],等等。
数值大的输入在实际计算中往往就使得输入范围小的输入的作用可以忽略不计了。而且,这还是拟合问题,在实际中分类问题更有价值。这就产生了3,逻辑回归模型。
3 逻辑回归
学习y = a1x1 + a2x2 + ...... + b,做如下变换:令 y = log( p / (1-p) )
其中p是[0, 1]之间的数值,可以认为是某件事情发生的可能性——注意,不是概率,p不满足概率归一化条件。换个稍稍正规点儿的说法,就是p的概率密度在[-无穷, +无穷]上面的积分(面积)不等于1,实际上积分值是正无穷。变换后得到:
这就是最后逻辑回归模型的函数形式,也叫做sigmoid函数。
可以看到,p在[0, 1]之间,输入是整个实数域,曲线连续、可导。
在解决二分类问题的时候,可以设定一个阈值,当 p > 阈值 的时候,分为类别A;否则,分为类别B(阈值可设为0.5)。
4 cost function
模型有了,怎么学习其中的参数?无论是应用在曲线拟合上面还是用在分类上面,给一堆样本,怎么学呢?
首先会面临个问题,就是什么模型才算做一个好模型?这个就是cost function的任务了。常用的cost function有如下几种:
(1)0-1损失函数,当 模型输出值=样本值,则为1,否则为0
(2)平方损失函数,(模型输出值 - 样本值)^2
回归问题通常用的是平方损失函数,其背后的物理意义是假设偏离预测曲线的样本点与预测曲线的差别满足正态分布。
(3)绝对值损失函数,|模型输出值 - 样本值|
(4)对数损失函数,log (Y_模型输出)
斯坦福公开课是这样理解Cost Function的,首先看当y=1的情况:
直观来看, 如果y = 1, hθ(x)=1 ,则Cost = 0,也就是预测的值和真实的值完全相等的时候Cost =0;
但是,当 hθ(x)→0 时, Cost→∞ 。直观来看,由于预测的结果南辕北辙:
如果 hθ(x)=0 , 也就是预测 P(y=1|x;θ)=0 , 也就是y=1的概率是0,但是实际上y = 1。
因此对于这个学习算法给予一个很大的Cost的惩罚。
同理对于y=0的情况也适用:
逻辑回归用的是对数损失函数,为什么不用平方损失函数?因为逻辑回归应用到分类问题上面,输出值y是离散的,而且是二值的,只有0或者1。这个可以对应到二项分布上,而二项分布用对数损失函数更直观。
结合逻辑回归,对数损失函数的形式是:
cost = - logY {if y = 1} or - log (1 - y) {if y = 0}
细化到每个输入变量xi,则:
cost = (1/m) * sum_m (样本值 * log (y(xi)) + (1 - 样本值) * log(1-y(xi)))
5 训练方法
可用梯度下降,此外还有共轭梯度、拟牛顿法、BFGS、L-BFGS等。
具体又细分为批量学习(梯度下降)和在线学习(online learning,随机梯度下降)。
批量学习就是一次处理所有的样本——计算模型输出与样本之间的差别、计算梯度、用步长alpha来更新参数......这种方法有个缺点,就是当模型接近最优的时候,更新幅度会显得很大(实际使用中alpha的值会随着迭代次数衰减),导致模型性能会在最优点发生震荡;还有就是容易陷入局部最优解。
在线学习就是随机梯度下降法,更新权重的公式与上面一样,只不过每次针对一个样本来更新所有权重。
需要说的是,虽然线性回归和逻辑回归的目标问题不同、cost function不同、输出不同(线性回归输入连续值、逻辑回归输出离散值),但是最终推到出来的权重更新公式完全一样。
6. 概率解释:线性回归中为什么选用平方和作为误差函数?
假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
数据x与y的条件概率:
若使 模型与测量数据最接近,那么其概率积就最大。概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计。对最大似然函数估计进行推导,就得出了求导后结果: 平方和最小公式