Advertisement

斯坦福大学《Machine Learning》第1周学习笔记

阅读量:

Introduction 简介

What is Machine Learning(什么是机器学习)

具备能力从经验E中去完成任务T并实现性能指标P

在象棋实例中,在线学习系统上万次的反复练习所获得的经验即为经验E;任务T即为象棋本身;而性能度量值P则衡量着该系统在与若干个新挑战者对弈过程中赢得比赛的概率。

Supervised Learning(监督学习)

回归问题

现有数据集包含一系列房价数据,在其中x代表房屋面积的同时y代表房价值。假设有一套新的待测房屋其面积为a则我们可以利用该模型预测其价格是多少从而达到监督学习的目的

监督学习指的是提供一个算法,并对这些数据集中存在已标注的正确答案的情况进行训练与优化。例如,在房价数据集中,“对于其中的每一个样本(即这些房子),该算法能够识别出每个样本的真实房价(即这些房子的实际售价)。其结果则能够预测更多未知样本的真实房价(如面积为a的新房子)。

从理论上讲,在理论框架下,监督学习被称为回归问题。值得注意的是,在监督学习中,回归任务属于其核心范畴。其目标是预测一个连续数值型目标变量。在技术实现层面,房价通常以美分为最小单位进行记录。然而,在实际应用中这一特性往往被忽视;尽管如此,在实践中这一特性常被简化处理,并具体表现为一个单一的数值输出。

分类问题

用这个特征指标来进行预测的话,则认为肿瘤属于恶性或者良性两种情况。在一般的分析方法中存在多种指标数值用于判断结果的可能性有多重性,例如患者的年龄以及肿瘤的厚度等等,而预测结果也可能呈现多个层次,例如无癌、A级癌症、B级癌症以及C级癌症等

回归任务:即通过回归方法预测连续数值分类任务:其目标是预测属于离散类别的结果。

在监督学习中,其基本思想是每个样本都对应一个明确的目标(训练集)。算法就是基于这些已知目标构建模型。从我的理解来看,在实际应用中需要先提供经过标注的训练数据使模型学习(模型拟合),随后才能对新的未见样本进行准确的预测。

Unsupervised Learning(无监督学习)

回想起来,在监督学习中,每个样本都已被明确标注为正类或负类(如良性或恶性肿瘤)。因此,在监督学习中,对于每一个样本来说,我们已知其所属的类别(即所谓的正确答案)。其中,数据已经过分类处理,即它们属于良性还是恶性类别

无监督学习中不涉及属性或标签的概念;即所有的数据都是相同的、没有区别的。因此,在无监督学习中我们只知道存在一个单一的数据集,并不知道如何处理这些数据;也不知道每个数据点的具体含义。相反地,它仅仅告知我们:现在有一个单一的数据集,请问你是否能够在其中发现某种结构?

聚类算法:给定的数据集可能被无监督学习算法判断为包含两个不同的类别。首先会形成第一个类别,接着形成第二个类别。无监督学习算法会将这些数据划分为两个不同的类别。这正是我们所讨论的聚类方法的基础。

谷歌新闻每天收集来自网络成千上万条新闻的信息,并通过聚类算法将其按照主题分类整理。例如,在BP油井事故专题下,系统会自动识别出与该事件相关的不同报道类型,并将它们归入相应的类别中。这种做法属于无监督学习的范畴,在此过程中我们并未预先指定具体的分类标准或类型名称(如“石油泄漏”、“环境影响”等),而是让算法自行分析数据特征并建立分类模型。通过这种方式,系统能够自动识别出数据中的潜在主题,并将相似的内容归类在一起。

无监督学习是机器学习领域中的一个重要分支。该机制旨在通过提供大量样本数据,使它能够识别并建立这些潜在类别之间的关系。

Linear Regression with One Variable单变量线性回归

Model Representation模型表示

例子:预测住房价格

在图中展示的是一个已知的数据集。假设你有一个朋友想要出售他的住宅。如果他家的房子面积为1250平方英尺大小,则你需要向他们解释这栋房子大概能卖多少钱。那么你需要做的一件事就是构建一个预测模型——也许是一个线性模型——通过分析这个数据模型可以看出,在这种情况下你可以建议你的朋友这栋住宅的大致售价约为22万美元左右。

那么这就是监督学习算法的一个具体体现。它之所以被称为监督学习,是因为对于每一个数据点来说,我们提供了正确的标签或值——即告诉我们根据这些数据点的信息,房子的实际价格是多少。

更具体地说 这是一个回归问题 回归一词意为基于先前的数据预测准确的输出值 对于这一案例而言 输出值即为价格

除了上述之外,还有一种最常用的监督学习方法被称为分类问题.当我们在预测离散型输出值时,例如,在寻找癌症肿瘤的情况下,确定肿瘤是良性的还是恶性的,则属于0/1离散输出的问题.

更进一步而言,在监督学习框架下,我们定义了一个训练数据集D。具体而言,在房价预测问题中,在监督学习中定义了一个训练数据集D。该集合包含了多个样本实例及其对应的房屋价格信息。我们的目标是从该训练集中提取足够的统计信息,以便准确预测未知实例的房价。

m # 样本数量,在此数据集内 若数据表共有 m 行 则我们便获得 m 组训练样本 该值等于 m
x # 输入变量 通常也被称作特征量
y # 输出结果或目标变量 即使得预测值 这就是第二列

(x, y) #一个训练样本,在这个表格中的单独的一行对应于一个训​​练样本

为了表明某个训练样本的例子, 我将采用x superscript (i) 和 y superscript (i) 来进行描述, 其中每个实例都对应于第i个训练样本。

我们将训练集中的房屋价格数据输入到学习算法中进行学习。该算法将生成一个预测函数 h ,其中 h 代表假设函数(Hypothesis)。基于输入特征 x(如房屋尺寸)推导出目标变量 y(如房价)。这意味着 h 是从输入空间 X 到输出空间 Y 的映射关系。

在制定学习算法的过程中 我们首先要探讨的是如何获得该假设h。我们通常会这样表示 hθ(x)=θ0+θ1x 其中这表明我们需要预测一个关于x值所对应的变量y是否正确?换句话说 这就是数据集和模型的作用:用于预测 这里所指的是y值与x值之间的关系式即为一个线性函数 hθ(x)=θ0+θ1x 那么选择线性模型的原因是什么呢?有时候我们可能会考虑使用更为复杂的非线性模型 但基于线性方程的形式更为简单直观 因此我们将从简单的线性方程实例入手进行分析

该模型通常被命名为线性回归(linear regression)模型****。此外,这种分析方法专注于单一输入变量x,并通过其变化来推导出价格函数的变化趋势.同时,该方法也被称为单变量线性回归(simple linear regression).值得注意的是,"单变量"特指仅涉及一个输入参数的情况.

Cost Function代价函数

这些θi我把它们称为模型参数 ,接下来介绍如何选择模型参数

在进行线性回归时, 我们有一个训练数据集, 可能像我在图上所画出的一样。我们的目标是 得出θ₀、θ₁这两个参数的值 来使假设函数表示的一条直线 尽可能地贴近这些数据点。也许就像这里的这条线一样

那么我们确定θ₀和θ₁的具体数值来实现模型对数据的良好拟合呢?显然地,在线性回归中我们需要找到一组参数θ₀和θ₁使得当给定输入x时预测结果能够尽可能接近实际输出y值。为此我们需要构建并最小化一个称为损失函数(或成本函数)的目标函数这样就能得到最佳拟合参数了

我们通常将之称为均方误差损失函数(MSE),它也是一种广泛使用的损失度量标准。实际上,在大多数情况下尤其是回归任务中最小化预测值与真实值之间差值的平方和能够有效地提升模型性能。尽管如此其他类型的损失函数在特定场景下仍然表现出色然而在回归分析中最小化预测值与实际值之间差值的平方和仍然是最常用且最有效的策略。

这里是线性回归的代价函数,后面还会介绍逻辑回归 问题的代价函数,

思考:这些代价函数的工作原理,它们在计算什么,它们的目的是什么。

Cost Function - Intuition I

可跳过

Cost Function - Intuition II

下面继续介绍代价函数在做什么,以下列出的假设函数和代价函数

通过简单的计算即可获得自变量θ₀和θ₁变化时的成本函数三维分布图。如图所示,该成本曲面呈现出类似抛物线型的空间曲线,需要注意的是,线性回归的成本函数是一个凸函数,在整个定义域内只有一个全局最小值点。后续将简要介绍几种非凸形式的成本函数及其特性

用轮廓图表示如下:

左图展示了当θ₀取a、θ₁取b时的假设函数图形;右图中的红色标记点代表了当θ₀=a和θ₁=b时对应的J值;显然,在这种情况下拟合效果不佳,并且计算出的J值相对较大;显然,在这种情况下最佳拟合点位于椭圆环中心位置;我们的核心目标就是如何找到这些参数使得代价函数达到最小值;因此我们需要开发一个算法来自动计算这些使代价函数最小化的参数θ₀和θ₁

Parameter Learning参数学习

Gradient Descent梯度下降法

如何编写程序以确定这些参数θ0和θ1以最小化相应的代价函数?梯度下降法是一种有效的解决方案,并且适用于多种优化问题。它可以被用来解决线性回归中的成本计算问题以及许多其他类型的优化任务。例如,在公式_J(θ_中_J(\theta_0, \theta_1, \theta_2, ..., \theta_n )_的情况下,默认情况下我们会假设只有两个变量即_J(\theta_0, \theta_1)_以便于后续讨论

显然,在此位置上,并不属于线性回归的代价函数。这是因为通过图形可以看出它不是一个凸函数。

我们从θ₀和θ₁的初始值出发,并赋予它们特定数值。我们可以将这一过程想象为从函数表面某一点开始,在脑海中构建立体图像——一座座高耸入云的山脉。公园内有两座山,在这种情况下,请想象 yourself standing at that point on the surface of a mountain. 我们要做的就是环顾四周查看情况:如果我要下山,并希望尽快到达山谷底部,则这些小碎步应该朝向哪个方向?对于山坡上的任何一点来说,请仔细观察周围的地形——最佳下山方向大致指向哪个方位?找到这个方向后,请迈出一小步继续前进。重复这一过程:每次观察四周并确定下一步的最佳路径后就向前移动一小步……如此反复迭代直至达到局部最低点。

通过观察图形可以看出, 当初始点的位置稍有变化时, 你将获得不同的局部最优解, 这意味着会出现不同的局部最优解, 这反映了该算法的一个显著特征

我们可以将梯度下降算法视为一种迭代优化方法。通过不断重复特定的操作步骤直至达到收敛条件,我们能够逐步更新模型参数θj。具体来说,参数更新的方式是:将当前参数值θj减去学习率α与目标函数对θj求偏导的部分相乘的结果。

在本情境中,α 被视为一个数值。它被定义为学习率。它决定了我们在下降过程中每一步的大小。

注意:更新这个等式 你需要同时更新 θ0和θ1

Gradient Descent Intuition

从这个迭代公式可以看出学习速率α是一个正数。通过绘制图形我们可以直观地观察到无论学习速率α取何正值时新参数θ₁都会朝着使目标函数J减小的方向变化。这体现了该公式的本质。

深入探究以获取更多信息关于参数α的影响。当α取较大值时,在某些情况下可能导致算法跳出局部最优并尝试寻找全局最优。但也有可能导致迭代过程发散或震荡而不收敛

当α很小的时候,它会需要 很多步才能到达全局最低点

假设你的参数已位于局部最低点位置,并且在该最低点处的导数值为零,则不论进行多少次迭代过程 梯度下降法的操作都不会导致任何变化 这意味着 参数值保持不变 其位置始终保持在该局部最低点

在梯度下降过程中,当接近局部极小时,算法会自然地调整步长为更小值.这是因为当靠近局部极小时,导数会在该点趋于零.因此,在靠近这些区域的过程中,导数值逐渐减小;同时,在此阶段梯度下降算法也会相应地降低步长.因此,无需额外调整学习率α;这正是梯度下降算法的核心机制.通过它我们可以最小化任何目标函数J(例如,在线性回归中使用的损失函数).

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

以上的公式贴出来后面课程会用到,其实自己可以推。

在进行线性回归任务时所使用的 代价函数 呈现这样的U型形状,并被专业术语称为该凸目标函数。由于其性质特征,在优化过程中该凸函数仅具备单一全局最小值点而无局部极小值。因此该凸函数仅具备单一全局最小值点而无局部极小值,并且无论何时,在应用线性回归模型配合梯度下降算法处理该代价函数时,最终所得的结果必然是这个全局最小值点。

参考资料:

https://www.coursera.org/learn/machine-learning/

全部评论 (0)

还没有任何评论哟~