吴恩达机器学习系列教程笔记(一)

215 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

一、什么是机器学习?

  • 通俗来说,机器学习就是将无序的数据转化为有用的信息

  • Tom Mitchell:计算机程序从经验E中学习解决某一任务T进行某一性能度量P,通过P测定在T上的表现因经验E而提高

监督学习(Supervised Learning)

监督学习是一种目的明确的训练方式,你知道得到的是什么,并做出预测。监督学习需要给数据打标签。

回归问题

对数据集进行训练,输入新数据,目标是连续值输出

分类问题

对数据集进行训练,输入新数据,目标是离散值输出

无监督学习(Unsupervised Learning)

无监督学习则是没有明确目的的训练方式,你无法提前知道预期结果是什么。无监督学习不需要给数据打标签。

用于训练的数据集无标签,没有预期输出值

聚类算法

把输入的一批数据划分成不同的类别

监督学习和无监督学习

有无预期输出是**监督学习(supervised learning)非监督学习(unsupervised learning)**的区别。

泛化能力

学得模型适应于新样本的能力,称为泛化能力

会议

二、监督学习(Supervised Learning)

监督学习是一种目的明确的训练方式,你知道得到的是什么,并做出预测。监督学习需要给数据打标签。

两个问题

  • 回归问题

对数据集进行训练,输入新数据,目标是连续值输出

  • 分类问题

对数据集进行训练,输入新数据,目标是离散值输出

流程

训练集 --> 学习算法 --> 得到一个函数h --> x输入h --> 得到预测值y

代价函数(cost function)

定义

  • 是定义在整个训练集上的,是所有样本误差的平均,例如J(Θ0 , Θ1)=(1/m)∑(hΘ)x(i) - y(i))2

线性回归中的最小化问题,寻找使代价函数误差最小的函数参数(例如线性回归中hΘ(x) = Θ0 + Θ1*x的 Θ0, Θ1)

例子

房价预测例子中的线性函数:hΘ(x) = Θ0 + Θ1*x

为什么是线性?我们还会有很多复杂的函数,由于线性方程是最简单的,所以先从线性方程入手。

影响改函数样子的决定因素只有Θ0 和 Θ1, Θ0是一个常数

让我们给出标准的定义,在线性回归中,我们要解决的是一个最小化问题,我们要写出Θ1, Θ0的最小化,我希望h(x) 和 y之间的差距极其小,接近0,尽量减少假设的输出和实际房屋价格之间差的平方。如下式子最小

(hΘ)x - y)2

最小二乘法(英语:least squares method),又称最小平方法,是一种数学優化建模方法。它通过最小化误差的平方和寻找数据的最佳函数匹配

用(x(i),y(i))表示训练集中第i个训练样本,对所有训练样本进行差平方求和

∑(hΘ)x(i) - y(i))2

实际上考虑的事这个差平方的平均数,更改表达式如下

(1/m)∑(hΘ)x(i) - y(i))2

要尽量减小平方误差,更改表达式如下(除以m是使得误差平均到每个样本,除以2是一个微积分技巧,用于消除计算偏导数时出现的2)

(1/2m)∑(hΘ)x(i) - y(i))2

因此我们的目标是找出能使训练集中预测值和真实值差的平方的和的1/2m最小的Θ0和Θ1,因此这就是我们线性回归的整体目标函数(这里J(Θ0 , Θ1)就是代价函数,这里是一个二元函数)

J(Θ0 , Θ1)=(1/2m)∑(Θ0 + Θ1*x(i) - y(i))2 (这里2是上角标,平方的意思)

我们要做的就是关于Θ0 和 Θ1 ,对函数J(Θ0 , Θ1) 的求最小值,这就是我的代价函数,代价函数也被称为平方误差函数,有时也被称为平方误差代价函数

方法

这里将Θ0置为0,简化计算。

计算代价函数时,Θ1在一个范围内取不同的值(这里比如取1,0.5,0.3等),然后将计算得到J(Θ1)曲线,选取曲线的最低点,对应的Θ1即为所求

梯度下降

思路

  • 给定初始值θ0和θ1,通常初始值设为0

  • 不断地改变θ0和θ1,来使J(θ0,θ1)变小,直到找到最小值或局部最小值

示例

我在试图让这个函数值最小,注意坐标轴Θ0和Θ1在水平轴上,而函数J在垂直坐标轴上,图形表面高度则是J的值。从Θ0,Θ1的某个值出发,所以想象一个对Θ0,Θ1赋予某个初值,从该点下山,一直到山脚,下山的每一步朝什么方向。你站在山上某个点,你看一下周围,你会发现最佳的下山方向,然后继续看周围,找出最佳下一步应该朝那个方向走,一直到山脚。

梯度下降算法定义

  • α 是一个数字,被称为学习速率,在梯度下降中,它控制下降的步子的大小

  • α后面的部分是一个导数项,对于一维图像来说,这个就是J(θ1)图像在某一点的斜率

  • α乘斜率是变化的量,然后减去这个变化的量

  • θ0和θ1是同步更新的

学习率α过小,则可能导致需要过多的步数才能找到局部最优

学习率α过大,则可能反复横跳,甚至反复跳过局部最优点,无法找到局部最优

如果θ1的初始值就取在局部最优点,导数项为0,那么θ1的值将不会再改变

即使学习率不变也是有可能可以得到局部最优点的,因为导数项在变,如图所示,导数项不断变小,逐渐得到局部最优点

导数项推导