目录
1.2.2 分类算法(Classification Algorithm)
1.3 无监督学习(Unsupervised Learning)
2 单变量线性回归(Linear Regression with One Variable)
2.1 线性回归模型(Linear Regression Model)
摘要
本周开始学习了吴恩达的机器学习课程,了解了什么是机器学习,机器学习主要分为监督学习和无监督学习,并简单了解其含义。其次了解了什么是单变量线性回归,了解了线性回归模型、代价函数、梯度下降等知识,并简单推导、计算和改写批量梯度下降算法。
Abstract
This week, I started learning Andrew Ng's machine learning course. I learned what machine learning is and that it is mainly divided into supervised learning and unsupervised learning, along with a basic understanding of their meanings. Additionally, I learned about univariate linear regression, including linear regression models, cost functions, gradient descent, and also performed simple derivations, calculations, and modifications of the batch gradient descent algorithm.
1 引言
1.1 机器学习是什么
从课程中,了解到第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域。
另一个年代近一点的定义,由来自卡内基梅隆大学的Tom Mitchell提出。Tom定义的机器学习是,一个好的学习问题定义如下,他说,一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
机器学习主要分为监督学习(Supervised learning)和无监督学习(Unsupervised learning)。简单来说,监督学习这个想法是指,人们将教计算机如何去完成任务,而在无监督学习中,人们打算让它自己进行学习。
1.2 监督学习(Supervised Learning)
监督学习指的就是我们给学习算法一个数据集,这个数据集由“正确答案”组成,包含输入(input)和输出(output),再由这个数据集推断一个功能(application)的机器学习任务。
常见的监督学习有:回归算法(Regression algorithm)和分类算法(Classification algorithm)。
1.2.1 回归算法(Regress Algorithm)
举个例子,如果想要预测房价,先收集一些房价的数据,将这些数据画出来。如下图,横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。
再通过应用学习算法,在这组数据中拟合一条直线(linear)或曲线(curve),由此可以推断出一套750平方英尺的房子预计可能卖到150000美元或者200000美元。如何决定用直线还是二次方程来拟合,这将是学习算法选择的问题。
通过给了一系列房子的数据,并给定数据集中每个样本的正确价格,即它们实际的售价然后运用学习算法,算出更多的正确答案。这就叫回归问题,即试着推测出这一系列连续值属性。
1.2.2 分类算法(Classification Algorithm)
假设说人们想通过查看病历来推测乳腺癌良性与否,假如有人检测出乳腺肿瘤,恶性肿瘤有害并且十分危险,而良性的肿瘤危害就没那么大,所以人们显然会很在意这个问题。
下面这组数据:这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出1和0表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为1,不是恶性,或者说良性记为0。
机器学习的问题就在于,能否估算出肿瘤是恶性的或是良性的概率。这就是一个分类问题。
分类指的是,我们试着推测出离散的输出值:0或1良性或恶性,而事实上在分类问题中,输出可能不止两个值。比如说可能有三种乳腺癌,所以你希望预测离散输出0、1、2、3。0 代表良性,1 表示第1类乳腺癌,2表示第2类癌症,3表示第3类,但这也是分类问题。
在其它一些机器学习问题中,可能会遇到不止一种特征。举个例子,不仅知道肿瘤的尺寸,还知道对应患者的年龄。
甚至通常有更多的特征,比如肿块密度,肿瘤细胞尺寸的一致性和形状的一致性等等,还有一些其他的特征。
那种算法不仅能处理2种3种或5种特征,即使有无限多种特征都可以处理。
1.3 无监督学习(Unsupervised Learning)
在无监督学习中,已知的数据。看上去有点不一样,不同于监督学习的数据的样子,即无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以已知数据集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。所以又叫做聚类算法(Clustering algorithm)。
举个基因学中DNA微观数据的例子。基本思想是输入一组不同个体,对其中的每个个体,要分析出它们是否有一个特定的基因。技术上,要分析多少特定基因已经表达。所以这些颜色,红,绿,灰等等颜色,这些颜色展示了相应的程度,即不同的个体是否有着一个特定的基因。能做的就是运行一个聚类算法,把个体聚类到不同的类或不同类型的组(人)。
所以这个就是无监督学习,因为没有提前告知算法一些信息,比如,这是第一类的人,那些是第二类的人,还有第三类,等等。只是说这是有一堆数据。不知道数据里面有什么,也不知道谁是什么类型,甚至不知道人们有哪些不同的类型,这些类型又是什么。就是说要自动地聚类那些个体到各个类,没法提前知道哪些是哪些。因为没有给算法正确答案来回应数据集中的数据,所以这就是无监督学习。
无监督学习除聚类外,还有其他两种类型:异常检测(Anomaly detection)和降维(Dimensionality reduction)。
异常检测:用于检测异常事件。
降维:可以将一个大数据集压缩成一个小很多的数据集,同时丢失尽可能少的信息。
2 单变量线性回归(Linear Regression with One Variable)
2.1 线性回归模型(Linear Regression Model)
在监督学习中,有一个数据集,这个数据集被称为训练集(Training set)。
以之前的房屋交易问题为例,假使我们回归问题的训练集如下表所示:
将要用来描述这个回归问题的标记如下:
代表训练集中实例的数量
代表特征/输入变量
代表目标变量/输出变量
代表训练集中的实例
代表第 个观察实例
代表学习算法的解决方案或函数(function),曾经也被称为假设(hypothesis)。
这就是一个监督学习算法的工作方式,可以看到这里有训练集里房屋价格,把它喂给学习算法,学习算法就工作了,然后输出一个函数,通常表示为小写 表示。 表示一个函数,输入是房屋尺寸大小, 根据输入的 值来得出 值, 值对应房子的价格。因此, 是一个从 到 的函数映射。
由此可以表示 或者 ,这样具有一个输入变量的线性模型又称为单变量线性回归(Linear regression with one variable)。
2.2 代价函数(Cost Function)
在线性回归中,我们通过训练集得出输入 以及其输出的 ,同时函数f也为输出值做了一个预测值即 ,选择的模型为:
为了使预测值 更接近真实的目标 ,由此引出代价函数(Cost function),也被称为平方误差代价函数(Squared error cost function):
或由 可重写 为:
从而能更好的了解在计算什么。
通过下图能更直观的理解代价函数以及 与的关系:
当同时改变 和 时, 损失函数如下图,类似等高线图:
通过这些图形,我希望你能更好地理解这些代价函数 所表达的值是什么样的,它们对应的假设是什么样的,以及什么样的假设对应的点,更接近于代价函数 的最小值。
2.3 梯度下降(Gradient Descent )
梯度下降(Gradient descent )是一个用来求函数最小值的算法,使用梯度下降算法来求出代价函数 的最小值。
开始时随机选择一个参数的组合,计算代价函数,然后寻找下一个能让代价函数值下降最多的参数组合。持续这么做直到找到一个局部最小值(local minima),因为并没有尝试完所有的参数组合,所以不能确定得到的局部最小值是否便是全局最小值(global minima),选择不同的初始参数组合,可能会找到不同的局部最小值。
批量梯度下降(Batch gradient descent)算法公式为:
为学习率(Learning rate),它决定了沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
对之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
则算法改写成:
通过采用梯度下降来进行线性回归,即运行梯度下降(Running gradient descent),最终达到全局最小值,全局最小值对应的这条直线与数据最相对吻合,如下图:
总结
通过这周对吴恩达的机器学习课程的学习,我由此正式学习到了机器学习,简单了解了什么是机器学习,机器学习是对一个程序能通过学习经验后提高任务的处理能力,以此优化其性能的过程。
机器学习又可以简单分为监督学习和无监督学习。监督学习即将教计算机如何去完成任务,无监督学习则是打算让计算机自己进行学习。
在监督学习里主要有回归和分类两类,通过给定的数据集推测出一系列连续值则叫回归。基于一个或多个自变量确定因变量所属类别的技术叫分类。
无监督学习的目标不是告诉计算机怎么做,而是让它(计算机)自己去学习怎样做事情。主要有聚类算法还有异常检测、降维等。
然后学习到第一个算法是单变量线性回归算法,了解了监督学习的整个流程,并通过函数 、代价函数 以及批量梯度下降算法,尝试计算微分求导项,改写求导算法为求和式。