Machine Learning(第一周)

什么是机器学习

什么是机器学习?

本文给出了机器学习的两个定义。亚瑟·塞缪尔(Arthur Samuel)将其描述为:“这是一个研究领域,使计算机能够在没有明确编程的情况下进行学习。”这是一个更古老的非正式定义。

汤姆·米切尔(Tom Mitchell)给出了一个更现代的定义:“如果一个计算器程序用P度量的在T中的任务性能,随着经验E的提高而提高,那么它可以被称作是从经验E中学习关于某类任务T和性能度量P的知识。”

例如:跳棋。

E=玩许多跳棋游戏的经验

T=跳棋的任务。

P=该程序赢得下一场比赛的概率。

一般来说,任何机器学习问题都可以分为两大类:

监督学习和非监督学习。

Supervised Learning(有监督学习)

监督学习

在监督学习中,我们得到了一个数据集,并且已经知道我们正确的输出应该是什么样的,并且认为输入和输出之间存在关系。

监督学习问题分为“回归”问题和“分类”问题。在回归问题中,我们试图在连续输出中预测结果,这意味着我们试图将输入变量映射到某个连续函数。在分类问题中,我们试图在离散输出中预测结果。换句话说,我们试图将输入变量映射到离散的类别中。

例1:

给出房地产市场上房屋规模的数据,尝试预测其价格。价格作为规模的函数是一个连续输出,所以这是一个回归问题。

我们可以把这个例子变成一个分类问题,而不是让我们的输出关于房子是否“以高于或低于要价的价格出售”在这里,我们根据价格将房屋分为两类。

例2:

(a) 回归-给定一个人的图片,我们必须根据给定的图片预测他们的年龄

(b) 分类——对于患有肿瘤的患者,我们必须预测肿瘤是恶性还是良性。

Unsupervised Learning(无监督学习)

无监督学习

无监督学习允许我们在几乎不知道或根本不知道结果应该是什么的情况下处理问题。我们可以从不一定知道变量影响的数据中得出结构。

我们可以根据数据中变量之间的关系对数据进行聚类,从而得出这种结构。

在无监督学习中,没有基于预测结果的反馈。

例如:

聚类:收集1000000个不同的基因,并找到一种方法来自动将这些基因分组,这些基因在某种程度上是相似的,或者由不同的变量(如寿命、位置、角色等)相关。

非集群:“鸡尾酒会算法”允许你在混乱的环境中找到结构。(即,从[鸡尾酒会]上的声音网格中识别个人声音和音乐)(https://en.wikipedia.org/wiki/Cocktail_party_effect)).

线性回归模型展示

为了建立未来使用的符号,我们将使用x(i)来表示“输入”变量(本例中为居住区),也称为输入特征,而y(i)来表示我们试图预测的“输出”或目标变量(价格)。一对(x(i),y(i))被称为一个训练示例,我们将使用的数据集是m个训练示例的列表(x(i),y(i)),i=1…m被称为训练集。请注意,符号中的上标“(i)”只是训练集的索引,与求幂无关。我们还将使用X表示输入值的空间,Y表示输出值的空间。在本例中,X=Y=ℝ.

为了更正式地描述监督学习问题,我们的目标是,给定一个训练集,学习函数h:X→Y, 因此h(x)对于Y的相应值是一个“好的”预测值。由于历史原因,这个函数h被称为一个假设。因此,从图像上看,过程如下:

在这里插入图片描述
当我们试图预测的目标变量是连续的时,比如在我们的住房示例中,我们称学习问题为回归问题。当y只能取一小部分离散值时(比如,如果给定居住面积,我们想预测一个住宅是房子还是公寓),我们称之为分类问题。

代价函数(Cost Function)

我们可以通过使用代价函数来衡量假设函数的准确性。这需要假设的所有结果的平均差(实际上是平均值的更复杂、精致的版本),以及x的输入和实际输出y。

将其拆分的话,就是1/2x的平均值,x的意思是hθ(xi)-yi(预测值与实际值之间的差异)的平方。

该函数也称为“平方误差函数”,或“均方误差”。平均即一半(1/2) 是为了便于计算梯度下降,将平均值减半,因为平方函数的导数项将抵消梯度下降项

下图总结了代价函数的作用:

在这里插入图片描述

如果我们试着从视觉角度来考虑,我们的训练数据集分散在x-y平面上。我们正试图画一条直线(定义为hθ(x))穿过这些分散的数据点。

我们的目标是得到最好的线路。最佳可能的直线应确保分散点与直线的平均垂直距离平方最小。理想情况下,这条线应该穿过我们训练数据集的所有点。在这种情况下,J(θ0,θ1)的值将为0。下面的示例显示了成本函数为0的理想情况。

在这里插入图片描述

当θ1=1的时候, 我们得到的斜率为1,它穿过模型中的每个数据点,相反,当θ1=0.5, 我们看到从拟合到数据点的垂直距离增加。

在这里插入图片描述

这将我们的成本函数增加到0.58。绘制其他几个点可以得到下图:

在这里插入图片描述
因此,作为一个目标,我们应该尽量减少成本函数。在这种情况下θ1=1是我们的整体最低要求。

等高线图(轮廓图)是包含许多等高线的图形。二元函数的轮廓线在同一条线的所有点上都有一个常数值。下面右边的图就是这样一个例子。

在这里插入图片描述

采用任何颜色,沿着“圆圈”走,都可以得到相同的成本函数值。例如,上面绿线上的三个绿点具有相同的J值(θ0,θ1),因此,它们位于同一条线上。当θ0=800,θ1=-0.15时,带圆圈的x显示左侧图表的成本函数值。取另一个h(x)并绘制其等高线图,得到以下图表:

在这里插入图片描述

当θ0=360,θ1=0时,等高线图中J*(θ0,*θ1)的值更接近中心,从而减少成本函数误差。现在,给我们的假设函数一个稍微正的斜率,结果会更好地拟合数据。

在这里插入图片描述

上图尽可能地最小化了成本函数,因此,θ1和θ0的结果分别趋于0.12和250左右。将这些值绘制在图形的右侧,似乎会将我们的点置于最内侧“圆”的中心。

Gradient Descent(梯度下降)

所以我们有我们的假设函数,我们有一种方法来测量它与数据的吻合程度。现在我们需要估计假设函数中的参数。这就是梯度下降的目标。

假设我们根据假设函数的域θ0和θ1绘制假设函数图(实际上,我们将成本函数绘制为参数估计的函数)。我们画的不是x和y本身,而是假设函数的参数范围,以及选择一组特定参数所产生的成本。

我们把θ0放在x轴上,把θ1放在y轴上,代价函数放在垂直的z轴上。图中的点是成本函数的结果,使用我们的假设和那些特定的θ参数。下图描述了这种设置。

在这里插入图片描述

我们将知道,当我们的成本函数位于图中凹坑的最底部时,即当其值为最小值时,我们已经成功了。红色箭头表示图表中的最小点。

我们做这件事的方法是,取成本函数的导数(函数的切线)。切线的斜率是这一点的导数,它会给我们一个前进的方向。我们沿着最陡下降的方向逐步降低成本函数。每个步骤的大小由参数α决定,该参数称为学习速率。

例如,上图中每个“星”之间的距离表示一个由参数α确定的步长。α越小,步长越小;α越大,步长越大。步进方向由J(θ0,θ1)的偏导数确定。根据一个人在图表上的起始位置,他可能会在不同的点结束。上图向我们展示了两个不同的起点,最终在两个不同的地方。

梯度下降算法是:

重复以下步骤,直到收敛:

在这里插入图片描述

j=0,1表示特征索引号。

在每次迭代j中,应同时更新参数θ1,θ2……θn,在j^{(th)}迭代中计算另一个参数之前,先更新特定参数将导致错误的迭代。

在这里插入图片描述

在本视频中,我们探讨了使用一个参数θ1并绘制其成本函数以实现梯度下降的场景。我们对单个参数的公式是:

重复以下步骤,直到收敛:

在这里插入图片描述

不管斜率的标志在这里插入图片描述
,θ1最终收敛到其最小值。下图显示,当斜率为负时,θ1的值增大,当斜率为正时,θ1的值减小。

在这里插入图片描述

另一方面,我们应该调整参数α,以确保梯度下降算法在合理的时间内收敛。未能收敛或获得最小值的时间过长,意味着我们的步长是错误的。

在这里插入图片描述

梯度下降如何以固定的步长α收敛?

收敛的直观理解是当我们接近凸函数底部时在这里插入图片描述
接近0。最小情况下,导数总是0,因此我们得到θ*1:=*θ1−α∗0

在这里插入图片描述

Gradient Descent For Linear Regression 线性回归的梯度下降法 批量梯度下降

当特别应用于线性回归的情况时,可以导出一种新形式的梯度下降方程。我们可以替换实际成本函数和实际假设函数,并将方程修改为:

在这里插入图片描述

其中M是训练集的大小,θ0和θ1将同时变化,还有xi、yi是给定训练集(数据)的值。

注意,我们已经将θj的两种情况分离为θ0和θ1的单独方程;而对于θ1,我们由于导数而在尾端乘xi。下面是举一个推导例子:

在这里插入图片描述

所有这些的要点是,如果我们从猜测我们的假设开始,然后反复应用这些梯度下降方程,我们的假设将变得越来越准确。

所以,这就是原始代价函数J上的梯度下降。这种方法在每一步上都会查看整个训练集中的每个例子,称为批量梯度下降。请注意,虽然梯度下降通常容易受到局部极小值的影响,但我们在这里提出的线性回归优化问题只有一个全局最优值,没有其他局部最优值;因此,梯度下降总是收敛到全局最小值(假设学习速率α不太大)。实际上,J是一个凸二次函数。这里是一个梯度下降的例子,它是为了最小化一个二次函数而运行的。

在这里插入图片描述

上面显示的椭圆是二次函数的轮廓。图中还显示了梯度下降的轨迹,其初始值为(48,30)。图中的x(由直线连接)标记了梯度下降在收敛到其最小值时所经历的θ的连续值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值