网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案2.4 实践任务(共2节).docx

深度学习案例教程 教案2.4 实践任务(共2节).docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

2.4.1

(p1)同学们大家好,本节课我们来学习2.4节实践任务。

本章实践任务是用pytorch制作简单线性模型,并预测“程序员代码量”与“其编程水平成绩”的关系。

我们将任务划分为5个子任务。

分别是:

任务1认识线性回归

任务2准备数据

任务3设计模型

任务4训练模型

任务5预测数据

(p2)下面我们就来看一下第一个,认识线性回归。

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的

一种统计分析方法,运用十分广泛。

回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种

回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量

和自变量之间是线性关系,则称为多元线性回归分析。

(p3)线性回归属于回归算法,表达监督学习的过程。通过属性的线性组合来预测函数,其线性模型基本形式为:

??f(x)=??w1x1+w??2x??2+?+????????wdxd+??b

一般向量形式写成:

f??(x??)=wT??x????+b??

其中w是(w1;w2;…;wd)组成的向量。

而w1;w2;…;wd为模型训练数据中学习到的参数,或赋予每个变量的“权值”。b也是一个学习到的参数。这个线性函数中的常量也称为模型的偏置。

(p4)为了更好地理解前面所讲的概念,本节将引入一个案例:

根据程序员的编程代码量来预测其编程水平测试的成绩。我们将实现一个线性回归模型,并用梯度下降算法求解该模型,从而给出预测直线。

这个实例问题是:假如有历史编程代码量和成绩的数据,我们应如何预测未来某个程序员的编程水平成绩呢?针对这个问题,我们的求解步骤包括:准备数据、设计模型、训练和预测。

(p5)首先,我们编造一批“程序员代码量”的数据。代码量数据就可以为0,1,2,3…,每个数表示以百行为单位,例如3表示300行代码量。

(p6)具体实现方法,我们可以用PyTorch的linspace来构造0~100之间的均匀数字作为代码量的变量x,代码如下所示。

至此,我们已经有数据集x的样本100个,类型为torch下的floatTensor类型。

(p7)然后,我们生成对应的“编程成绩”数据。

假设它就是在x的基础上加上一定的噪声,实现代码如下:

torch.randn(100)这个命令是生成100个满足标准正态分布的随机数,其均值为0,方差为1。

然后乘以10,赋值给rand。

所以,这里的rand是一个随机数,且满足均值为0,方差为10的正态分布。

(p8)这样我们就构造了一个数据集,

x表示代码量,y表示编程水平成绩。

这100个不同的“代码量????”与其每一个“成绩”相????对应,

其中,每个????Xi,Yi??我们称之为一个样本点。

(p9)下面,我们将数据集切分成训练集和测试集两部分。

所谓训练集,是指训练一个模型的所有数据;

所谓测试集,则是指用于检验这个训练好的模型的所有数据。

注意,在训练过程中,

模型不会接触到测试集的数据。

因此,模型在测试集上运行的效果模拟了真实的“编程水平成绩”预测环境。

在下面这段代码中,:-10是指从x变量中取出倒数第10个元素之前的所有元素;

而-10:是指取出x中倒数10个元素。

所以,我们就把第0到第90个的数据当作训练集,

把后10个的数据当作测试集:

(p10)接下来,我们对训练数据点进行可视化:

通过观察散点图2.19,可以看出“编程成绩”y和“编程代码量”x之间,存在一定的“正”相关性,接下来我们可以用线性回归来进行拟合。

(p11)我们希望得到一条尽可能从中间穿越这些数据散点的拟合直线。设这条直线的方程为:

y=ax+b

接下来的问题是,求解参数a、b的数值。

我们可以将每一个数据点????代入这个方程中,计算出一个??“预测值y拨”,

计算公式如下所示。

显然,这个点越靠近????“真实值”,也就是“样本值”y越好。

所以,我们只需要定义一个平均损失函数:计算公式如下所示。

并且让它尽可能地小。

其中??N为所有数据点的个数,也就是100。

由于????Xi和Yi????都是固定的数,

而只有??a和b??是变量,那么??L本质上就是??a和b??的函数。

所以,我们要寻找最优的a和b??组合,让??L最小化。

我们可以利用梯度下降法来反复迭代??a和b????,从而让??

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档