吴恩达机器学习笔记 - 线性回归 & 代价函数 & 梯度下降

一、基本概念

1.1 机器学习的定义

一个年代近一点的定义,由来自卡内基梅隆大学的 Tom Mitchell 提出,一个好的学习问题定义如下:

一个程序被认为能从经验 E 中学习,解决任务 T,达到性能度量值 P,当且仅当,有了经验 E 后,经过 P 评判,程序在处理 T 时的性能有所提升。

比如以下棋的机器学习算法为例:经验 E 就是程序上万次的自我练习的经验,任务 T 是下棋,性能度量值 P 是它在与一些新的对手比赛时,赢得比赛的概率。

1.2 分类问题和回归问题

**分类问题:预测离散的数据点。**比如下面的二分类问题:

红×和蓝圈代表两种不同类型,中间的直线是我们算法预测的分类边界函数,当函数参数确定好了,我们给定一个输入,那么输出就是在直线上部或者下部的一个离散的点,表示该输入数据是最可能是哪一种类型,对于多个特征的分类问题,原理是一样的。

回归问题:预测连续的输出(拟合函数曲线),比如用最小二乘回归一个连续的输出曲线:

拟合的曲线可能有多条,通过不断的优化函数模型和参数,可以看出蓝色的曲线比紫色的直线拟合(回归)效果好。

再来练习下:

  • 你有一大批同样的货物,想象一下,你有上千件一模一样的货物等待出售,这时你想预测接下来的三个月能卖多少件? - 回归问题

  • 你有许多客户,这时你想写一个软件来检验每一个用户的账户。对于每一个账户,你要判断它们是否曾经被盗过? - 分类问题

1.3 监督学习

监督学习可以理解为:算法使用的数据集中已经人为设置了正确的属性。

比如用监督学习来根据房屋面积预测房价,那么在训练数据集中每个房屋面积都对应一个确定的价格(750, 200),这个确定的价格 200 就是我们人为给定的,用来训练算法模型(预测函数参数)。

1.3 无监督学习

无监督学习:算法使用的数据集不做任何人为处理,即没有加上任何属性。

上面是监督学习,已经人为设置了属性(红叉,蓝圈)

这是无监督学习,所有的数据没有进行处理,表面上看起来都差不多。

在无监督学习中,常用的是聚类算法,即把距离相近的数据点划分为同一个簇,比如 Google 新闻从互联网上收集很多条新闻,然后将类型相近的文章划分为同一个类别:科技,情感,政治等等。

二、单变量线性回归算法

这个线性回归算法就是高中学的最小二乘拟合曲线数据点,通过下面这个例子来复习下机器学习算法工作流程,根据房屋面积预测出售价格(监督学习):

训练数据集如下(训练就是用给定的数据来计算最优的函数曲线参数,使得拟合效果最好):

  • m 代表训练集中实例的数量
  • x 代表输入变量(特征 Feature)
  • y 代表输出变量(目标变量)
  • (x, y) 代表训练集中的实例
  • (Xi, Yi) 代表第 i 个观察实例
  • h 代表学习算法的解决方案或函数,也称为假设函数(hypothesis

一个经典监督学习算法工作流程如下图:

使用训练数据集和选择的训练算法,来计算假设函数 h h h 的参数,使得给定一个输入,假设函数给出一个预测的输出。比如预测房屋价格:

  • 训练集:人为标记的房屋面积和对应房价的一组数据点
  • 学习算法:比如梯度下降法
  • 假设函数 h h h:比如 h θ ( x ) = θ 0 + θ 1 x h_\theta \left( x \right)=\theta_{0}+\theta_{1}x hθ(x)=θ0+θ1x,线性函数拟合
  • 输入和输出:房屋的预测价格 y = h y = h y=h(房屋面积 x)

机器学习算法的训练就是计算最优的参数 a 和 b,这里的函数只有一个输入特征面积,所以叫单变量线性回归模型。

三、代价函数(Cost Function)

我的理解:代价函数(cost function,loss function)在机器学习中的作用是确定最优的函数参数,使得拟合数据点的误差达到最小,即拟合效果最好。

因为我们训练函数参数,最终还是要选择一个最优的,那么代价函数就给我们一个最优参数的度量方式,使得我们可以根据数学理论选择训练参数。

3.1 预测房价的代价函数

还是用预测房价的例子来介绍下代价函数的原理,这是预测房价的数据集:

我们使用线性回归算法来预测,所以取假设函数 Hypothesis 的表达式为 2 个参数( θ 0 \theta_0 θ0 θ 1 \theta_1 θ1)线性函数,那么这个机器学习的问题就可以转换为如何选择最优的参数来使得预测的误差(代价)最小?

可问题是用什么方式来度量预测的误差呢?这时代价函数就派上用场了,我们可以用代价函数来计算不同参数所对应的误差,取误差最小的那组参数作为训练的最终结果,代价函数有挺多种形式,线性回归常用误差的平方和计算代价:

上面的代价函数 Cost Function 的求和公式其实就是高中学习的最小二乘法的平方误差的计算,最终的求和结果就是预测值与真实值误差的平方和,再除以训练集实例数量,不过要注意这里的乘以 1/2,只是为了尽量把最后的求和结果变小一点,不含有其他逻辑。

可以将 Cost Function 的求和值理解就是下图中三条蓝色线段的长度平方之和再除以 1/ 2m,表示当前预测的函数值与实际的函数值之间的总的误差:

可以直观的理解,蓝色的线段总长度越小(误差越小,代价越小),则预测的函数直线就越接近(1,1)(2,2)(3,3)这 3 个点,且当代价函数的值为 0 时,预测的函数直线就是 y = x(浅蓝色直线),直接拟合了这 3 个训练的数据点,这时误差达到最小,对应的函数参数为 θ 0 \theta_0 θ0 = 0, θ 1 \theta_1 θ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值