1 回归问题回归在数学上来说是给定一个点集,能够找一条曲线去拟合。 一方面,算法没有那么神奇,不能够告诉我们用什么类型的曲线拟合最好;另一方面,如果最初的假定就错了(用直线拟合最好,但是认为选择了二次曲线), 所以回归问题,人的经验是是很重要的。要通过人分析数据,总结曲线的形式。 2 线性回归就是通过学习一条直线来拟合样本点。在二维平面上,直线的形式为 y = ax + b,就是学习参数a和b。在N维平面上,形式为 y = a1x1 + a2x2 + ...... + b,学习a1...an-1和b 数值大的输入在实际计算中往往就使得输入范围小的输入的作用可以忽略不计了。而且,这还是拟合问题,在实际中分类问题更有价值。这就产生了3,逻辑回归模型。 3 逻辑回归学习y = a1x1 + a2x2 + ...... + b,做如下变换:令 y = log( p / (1-p) ) 这就是最后逻辑回归模型的函数形式,也叫做sigmoid函数。 可以看到,p在[0, 1]之间,输入是整个实数域,曲线连续、可导。 在解决二分类问题的时候,可以设定一个阈值,当 p > 阈值 的时候,分为类别A;否则,分为类别B(阈值可设为0.5)。 4 cost function模型有了,怎么学习其中的参数?无论是应用在曲线拟合上面还是用在分类上面,给一堆样本,怎么学呢? 首先会面临个问题,就是什么模型才算做一个好模型?这个就是cost function的任务了。常用的cost function有如下几种:
斯坦福公开课是这样理解 直观来看, 如果y = 1, 但是,当 如果 因此对于这个学习算法给予一个很大的Cost的惩罚。 同理对于y=0的情况也适用: 逻辑回归用的是对数损失函数,为什么不用平方损失函数?因为逻辑回归应用到分类问题上面,输出值y是离散的,而且是二值的,只有0或者1。这个可以对应到二项分布上,而二项分布用对数损失函数更直观。 5 训练方法可用梯度下降,此外还有共轭梯度、拟牛顿法、BFGS、L-BFGS等。 批量学习就是一次处理所有的样本——计算模型输出与样本之间的差别、计算梯度、用步长alpha来更新参数......这种方法有个缺点,就是当模型接近最优的时候,更新幅度会显得很大(实际使用中alpha的值会随着迭代次数衰减),导致模型性能会在最优点发生震荡;还有就是容易陷入局部最优解。 在线学习就是随机梯度下降法,更新权重的公式与上面一样,只不过每次针对一个样本来更新所有权重。 |
|
来自: shiyiyuting > 《公共》