无监督学习:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E,经过P的评判,程序在处理T时性能有所提升。
A computer program is said to learn from experience E with respect to some task T and some performance measure P , if its performance on T , as measured by P , improved with experience E. —— Tom Mitchell
无监督学习:给出数据并且已知正确的输出,找到输入和输出之间的关系。可以分为回归问题和分类问题,在回归问题中,我们试图在连续输出中预测结果,这意味着我们正在尝试将输入变量映射到某个连续函数。在分类问题中,试图在离散输出中预测结果,换句话说,我们试图将输入变量映射到离散类别。
无监督学习:在无监督学习中,数据没有属性和标签这一概念,所有的数据没有区别;无监督学习允许我们能够在很少或者根本不知道我们的结果的情况下学习,我们可以通过基于数据中变量之间的关系来推导数据的结构。
Model Representation
房价预测:根据房子的面积预测房子的价格
符号规范:
,表示输入样本
,表示试图预测的输出或目标变量
m,表示数据集
为了更精确地描述监督学习问题,我们的目标是,给定一个训练集,学习函数h:x~y,使得H(x)是y的对应值的“好”预测器。由于历史原因,这个函数H被称为hypothesis。从图画上看,这个过程是这样的:
当我们试图预测的目标变量是连续的,例如在我们的住房例子中,我们把学习问题称为回归问题。当y可以只接受少量离散值(例如,如果给定居住区,我们想预测住宅是房子还是公寓,比如说),我们称之为分类问题。
Cost Function
假设函数为
,现在选择合适的参数
和
,使得模型可以准确的预测y的值
我们可以通过使用代价函数来测量假设函数的精度,在这里是计算的是hypothesis函数的输出和真实输出之间的平均差值,公式如下:
假设
=0则:
样本有三个(1,1),(2,2),(3,3),当
=1时J的值为0,改变
得值求的J,就可以绘制出J(
)的图,我们的优化目标是,通过选择
的值,尽可能的减小J(
)。
当保留两个参数的时候:
为了分析方便,使用等高线图,每个椭圆对应的就是一组(
,
),同心圆的中心就是J(
,
)的最小值
Gradient Descent
对于代价函数J,可能有很多参数,为了简单起见,这里只讨论两个参数的情况:
在梯度下降算法中要做的是,不停地一点点改变θ0 和θ1 ,通过这种改变使J变小。直到我们找到了J的最小值,或许是局部最小值。
我们通过下面的图片,说明梯度下降算法是如何工作的。
当我们的代价函数在我们的图中的凹坑的底部时,即当它的值是最小值时,我们就知道我们已经成功了。红色箭头显示图表中的最小点。
我们这样做的方法是取我们的代价函数的导数。切线的斜率是这一点上的导数,它将给我们一个移动的方向。我们沿着代价函数最陡的方向向下移动。每一步的大小由参数α决定,这被称为学习速率。
例如,上面图表中的每个“星星”之间的距离代表了我们的参数α所决定的一个步骤。较小的α会导致较小的步长,较大的α会导致较大的步长。步步进的方向是由J的偏导数决定的。取决于在图上的起点,可以在不同的点结束。上面的图像显示了两个不同的起点,它们在两个不同的地方结束。
数学上的定义:
需要注意的是两个参数需要同时进行更新,在这里是使用temp临时变量保存然后头同时更新
当只有一个参数
重复以下参数直到收敛,当斜率为正的时候
回减小,当斜率为负的时候
会增大
另一方面,我们应该调整参数α,以保证梯度下降算法在合理的时间内收敛。未能收敛或过多的时间来获得最小值意味着我们的步长是错误的。
当斜率趋近于0的时候,
得变化就会减小,直到斜率为0,
就不会改变
左边为梯度下降算法,右边为线性回归模型
求偏导数结果如下
批量梯度下降:每一次梯度下降,都会使用全部的数据集