深度学习理论与实践 课件 第4章 Logistic回归_第1页
深度学习理论与实践 课件 第4章 Logistic回归_第2页
深度学习理论与实践 课件 第4章 Logistic回归_第3页
深度学习理论与实践 课件 第4章 Logistic回归_第4页
深度学习理论与实践 课件 第4章 Logistic回归_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章Logistic回归

导入导入3

目录4线性回归Logistic回归用PyTorch实现logisticregressionlogisticregression的算法优化logisticregression的模型可视化第一节第二节第三节第四节第五节1线性回归线性回归6

线性回归7

线性回归8

线性回归9

线性回归10

线性回归11

线性回归12

线性回归13

2Logistic回归Logistic回归15

Logistic回归16

Logistic函数图像Logistic回归17

Logistic回归18

3用PyTorch实现logisticregression用PyTorch实现logisticregression20用PyTorch实现logisticregression的代码主要依赖于三个模块用PyTorch实现logisticregression21

用PyTorch实现logisticregression22数据准备17-18行设置样本对应的标签y,分别用0和1表示不同高斯分布的数据,也就是正样本和负样本。第21行使用cat函数将x1和x2组合在一起,第22-24行打乱样本和标签的顺序,将数据重新随机排列是十分重要的步骤,否则算法的每次迭代只会学习到同一个类别的信息,容易造成模型过拟合。用PyTorch实现logisticregression23数据准备17-18行设置样本对应的标签y,分别用0和1表示不同高斯分布的数据,也就是正样本和负样本。第21行使用cat函数将x1和x2组合在一起,第22-24行打乱样本和标签的顺序,将数据重新随机排列是十分重要的步骤,否则算法的每次迭代只会学习到同一个类别的信息,容易造成模型过拟合。用PyTorch实现logisticregression24

用PyTorch实现logisticregression25线性方程上面代码的第一行定义了线性模型的输入维度D_in和输出维度D_out,第2-3行实例化了nn.Linear,将线性模型应用到数据x上,得到计算结果output。Linear的初始参数是随机设置的,可以调用Linear.weight和Linear.bias获取线性模型的参数,第5行打印了输入变量x,模型参数weight和bias,计算结果output的维度。第7-8行定义了我们自己实现的线性模型my_linear,第10行将my_linear的计算结果和PyTorch的计算结果output做比较,可以发现其结果一致。用PyTorch实现logisticregression26激活函数前文介绍了torch.nn.Linear可用于实现线性模型,除此之外,它还提供了机器学习当中常用的激活函数,logistcregression用于二分类问题时,使用sigmoid函数将线性模型的计算结果映射到0和1之间,得到的计算结果作为样本为正类的置信概率。torch.nn.Sigmoid()提供了这一函数的计算,在使用时,将Sigmoid类实例化,再将需要计算的变量作为参数传递给实例化的对象。用PyTorch实现logisticregression27激活函数作为练习,第4-6行手动实现sigmoid函数,第8行通过PyTorch验证我们的实现结果,其结果一致。用PyTorch实现logisticregression28损失函数logisticregression使用交叉熵作为损失函数。PyTorch的torch.nn提供了许多标准的损失函数,我们可以直接使用torch.nn.BCELoss计算二值交叉熵损失。第1-2行调用了BCELoss来计算我们实现的logisticregression模型的输出结果sigmoid(output)和数据的标签y,同样地,在4-6行我们自定义了二值交叉熵函数,在第8行将my_loss和PyTorch的BCELoss做比较,发现结果无差。用PyTorch实现logisticregression29损失函数在前面的代码中,我们使用了torch.nn包中的线性模型nn.Linear,激活函数nn.Softmax(),损失函数nn.BCELoss,它们都继承于nn.Module类,在PyTorch中,我们通过继承nn.Module来构建我们自己的模型。接下来我们用nn.Module来实现logisticRegression。用PyTorch实现logisticregression30损失函数通过继承nn.Module实现自己的模型时,forward()方法是必须被子类覆写的,在forward内部应当定义每次调用模型时执行的计算。从前面的应用我们可以看出,nn.Module类的主要作用就是接收Tensor然后计算并返回结果。在一个Module中,还可以嵌套其他的Module,被嵌套的Module的属性就可以被自动获取,比如可以调用nn.Module.parameters()方法获取Module所有保留的参数,调用nn.Module.to()方法将模型的参数放置到GPU上等等。logisticregression的算法优化第四节4logisticregression的算法优化logisticregression的算法优化33优化算法logisticregression通常采用梯度下降法优化目标函数。PyTorch的torch.optim包实现了大多数常用的优化算法,使用起来非常简单。首先构建一个优化器,在构建时,首先需要将待学习的参数传入,然后传入优化器需要的参数,比如学习率。logisticregression的算法优化34优化算法构建完优化器,就可以迭代的对模型进行训练,有两个步骤,其一是调用损失函数的backward()方法计算模型的梯度,然后再调用优化器的step()方法,更新模型的参数。需要注意的是,首先应当调用优化器的zero_grad()方法清空参数的梯度。5logisticregression的模型可视化logisticregression的模型可视化36

logisticregression的模型可视化37模型可视化结果图小结38Logistic回归是深度学习中最基础的非线性模型之一。作为铺垫,在介绍Logistic回归以前,本章首先介绍了线性回归。线性回归的预测目标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论