花了一个月的时间把Andrew Wu (Ng)的机器学习(Stanford University)课程学完了,算是对机器学习某种意义上有了一个大体理解。读了这么多年书,学习的精髓就在于review,而且马上新生要来啦,估计接下来TA的任务会忙起来,不如利用零散的时间一边写博客一边对之前的内容进行一个review。贴上这一个月的成果~~
另外,打个广告,博主现在在大不列颠的Cranfield University做博士,也许这个学校不像牛剑一样如雷贯耳,但是用大英帝国的中科院来形容毫不为过,专攻于工程、生物和管理三个学院,稍微了解一下本校的MBA、物流、航空、工业制造以及水处理等专业在欧洲乃至全球都是跺跺脚抖三抖的存在。咳咳,吹完言归正传,鉴于博主的研究方向,推荐以下两个专业:
1)MSc in Computer and Machine Vision,链接https://www.cranfield.ac.uk/courses/taught/computer-and-machine-vision
2)Robotics MSc,链接https://www.cranfield.ac.uk/courses/taught/robotics
前言结束,开始正文。在关于机器学习的这一个系列的更新中,也会将相应机器学习中一些英文专有名词列出来,个人观点,虽然国人在人工智能中有了很多成就了,但是有一个较强的英文阅读能力还是有必要的。希望我的文章能帮到你在阅读一些英文文献时会更“舒服”~,当然如果有什么具体问题也欢迎私信我。
1. 什么是机器学习:当谈起机器学习时,这是大多数人问的第一个问题。事实上,这是一个很有趣的问题,即使在机器学习的专业人员中亦不存在一个广泛被认可的定义,这样的话不如先了解几个大佬对机器学习的定义:
1.1 Arthur Samuel说,机器学习就是“在特定编程情况下,给予计算机学习能力的领域”。这个定义相对来说较老,源于50年代。
1.2 Tom Michell(卡内基梅隆大学)说道,所谓机器学习就是“一个程序被认为能从经验E中学习,解决任务T,达到性能指标P,当且仅当有了经验E之后,经过P评判,程序在处理T时性能有所提升”。
1.3 机器学习中最常见的两类是所谓的“Supervised Learning [监督学习]”和“Unsupervised Learning [无监督学习]”,前者可理解为教会计算机什么是对的,而后者则是让计算机自己学会什么是对的。除此之外会有诸如“Reinforcement Learning [强化学习]”和“Recommender Systems [推荐系统]”等概念,这些都会在后面一一介绍。
1.4 相比于给你提供一套工具,更重要的是教会你如何使用这一套工具。
2. Supervised Learning [监督学习]:
2.1 定义:给出一个算法,需要部分数据集(Training Set [训练集])已有正确答案(对于其中的每一个数据都要有对应标注表明该数据是否为一个好的数据),而这个算法目的是创造更多所谓“好”的答案。
2.2 训练集:在监督学习中,我们得到一个数据集,并且已经知道我们的正确输出应该是什么样的,因为我们知道是如何输出之间有联系。
2.3 监督学习又可被分为“Regression [回归]”和“Classification [分类]”问题:
2.3.1 “Regression Problem [回归问题]”:试图在连续结果中预测结果,这意味着我们试图将输入变量映射到某个连续函数中。
2.3.2 “Classification Problem [分类问题]”:试图在一个离散的输出中预测结果,换言之,我们试图将输入映射到离散的输出结果中。
3. Unsupervised Learning [无监督学习]:
无人监督的学习使我们能够以很少或根本不知道我们的结果应该是什么样子来解决问题。我们可以从数据中推导出结构,我们不一定知道变量的影响。我们可以根据数据中变量之间的关系对数据进行聚类来获得这种结构。在无监督学习的情况下,没有基于预测结果的反馈。
4. Model Representation [模型表示]:
4.1 对于本专题中将使用的符号进行以下说明:
4.1.1 x(i)用来表示“输入”,也可以被称为输入特征;
4.1.2 y(i)用来表示“输出”,或理解为那些我们期望预测出的数据;
4.1.3 一对(x(i), y(i))被称作一个训练样本,i = 1, 2, 3 ……(注意这里是上标);
4.1.4 m是一个我们将用来进行学习的训练集;
4.1.5 注意,其中的(i)只是一个训练集的索引标记,并且与求幂没有任何关系;
4.1.6 此外,我们将使用X和Y分别表示输入和输出值的空间。
4.2 为了更正式的描述监督学习问题,我们的目标是给定一个训练集,对函数h:X->Y进行学习,于是h(x)对于相应的y会是一个“好的”预测器。因为机器学习研究的历史原因,h函数被称为“Hypothesis [假设]”。如果将上述过程用图表表述,具体形式如下:
4.2.1 当我们试图预测的目标变量是连续的,我们把学习问题称为回归问题。
4.2.2 当y只能取少量的离散值,我们称之为分类问题。
4.3 Linear Regression Model [线性回归模型]:是指关于单个变量的线性回归,这个变量在这里就是x。该模型亦可被称作Univariate Linear Regression [单变量线性回归]。(注意,线性回归模型只是各种回归模型中的一种,对于一元一阶的情况非常适用,属于最常用的模型之一,所以在这对这种模型展开讨论,但是其实有很多不同的模型。)
5. 代价函数(Cost Function):
5.1 在各种模型中代价函数都是一个非常重要的概念,而在线性回归模型中的代价函数也可以被称作平方误差函数(Square Error Function),有时也被称为平方代价误差函数(Square Cost Error Function)。
5.2 我们可以用一个成本函数来测量我们的假设函数的准确性。这需要来自从输入x到实际输出y的假设的所有平均的差异值(这实际上是一个升级版的“平均值”),用数学表达式如下:
将其拆开来看,实际其是一个x/2,其中x是h下标θ那一项平方的均值,或被描述成预测值和真实值之间的差值。
5.3 对于线性回归模型的成本函数,通过视觉感官进行想象会更直观一些。假设在平面坐标系中有一系列散落在第一象限的点,现在的目标是找到一条通过原点的线,使相应的线性回归模型的训练数据跟该点的对应差值的平方和最小。(这个问题在诸如高数里涉及的太多了,这里就不赘述了。)所以最后得到一个J(θ0)的函数,对于不同θ0找到相应J的最小值。
5.4 这里要提及另一个概念,Contour Plot和Contour Figure,这两者其实代表一个意思,叫做“轮廓图”。一个轮廓图是一个包含了很多(等值)轮廓线的一张图,两个变量函数的等值线在同一条轮廓线上的所有点都有一个恒定值,如上图所示。