楼主: 墨羽听风
384 0

[新手尝试] 机器学习题库 [推广有奖]

  • 0关注
  • 0粉丝

大专生

8%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0063
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
313 点
帖子
20
精华
0
在线时间
13 小时
注册时间
2022-7-6
最后登录
2022-9-17

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
4.4.1 向量化

数据通常表现为各种格式,如文本、声音、图像和视频。首先要做的就是把数据转换成PyTorch张量。在前面的例子中,使用tourchvision的工具函数将Python图形库(Python Imaging Library,PIL)的图片转换成张量对象,尽管PyTorchtorchvision库抽取出了大部分的复杂度。在第7章中处理递归神经网络(Recurrent Neural Network,RNN)时,将了解如何把文本数据转换成PyTorch张量。对于涉及结构化数据的问题,数据已经以向量化的格式存在,我们需要做的就是把它们转换成PyTorch张量。

4.4.2 值归一化

在将数据传递到任何机器学习算法或深度学习算法之前,将特征归一化是一种通用实践。它有助于更快地训练算法并达到更高的性能。归一化是指,将特定特征的数据表示成均值为0、标准差为1的数据的过程。

在上一章所描述的狗猫分类的例子中,使用了ImageNet数据集中已有的均值和标准差来归一化数据。我们选择ImageNet数据集的均值和标准差的原因,是因为使用的ReNet模型的权重是在ImageNet上进行预训练的。通常的做法是将每个像素值除以255,使得所有值都在0和1之间,尤其是在不使用预训练权重的情况下。

归一化也适用于涉及结构化数据的问题。假设我们正在研究房价预测问题,可能存在不同规模的不同特征。例如,到最近的机场的距离和房子的屋龄是具备不同度量的变量或特征。将它们与神经网络一起使用可以防止梯度收敛。简单来说,损失可能不会像预期的那样下降。因此,在对算法进行训练之前,应该谨慎地将归一化应用到任何类型的数据上。为了使算法或模型性能更好,应确保数据遵循以下规则。

· 取较小的值:通常取值在0和1之间。

· 相同值域:确保所有特征都在同一数据范围内。

4.4.3 处理缺失值

缺失值在现实世界的机器学习问题中是很常见的。从之前预测房价的例子来看,房屋屋龄的某些信息可能会丢失。通常用不可能出现的数字替换缺失值是安全的。算法将能够识别模式。还有其他技术可用于处理更特定领域的缺失值。

4.4.4 特征工程

特征工程是利用特定问题的领域知识来创建可以传递给模型的新变量或特征的过程。为了更好地理解,来看一个销售预测的问题。假设我们有促销日期、假期、竞争者的开始日期、与竞争对手的距离以及特定日期的销售情况。在现实世界中,有数以百计的特征可以用来预测店铺的价格,可能有一些信息在预测销售方面很重要。一些重要的特征或衍生价值是:

· 知道下一次促销的日期;

· 距离下一个假期还有多少天;

· 竞争对手的业务开放天数。

还有许多这样的特征可以从领域知识中提取出来。对于任何机器学习算法或深度学习算法,算法自动提取这种类别的特征都是相当具有挑战性的。对于某些领域,特别是在计算机视觉和文本领域,现代深度学习算法有助于我们摆脱特征工程。除了这些领域,良好的特征工程对下述方面也总是有益的。

· 用较少的计算资源就可以更快地解决问题。

· 深度学习算法可以使用大量数据自己学习出特征,不再使用手动的特征工程。所以,如果你注重数据,可以专注于构建良好的特征工程。

4.5 过拟合与欠拟合

理解过拟合和欠拟合是成功构建机器学习和深度学习模型的关键。在本章的开头,我们简要地描述了什么是过拟合和欠拟合,这里将详细解释过拟合和欠拟合的概念,以及如何解决过拟合和欠拟合问题。

过拟合或不泛化,是机器学习和深度学习中的一类常见问题。当特定的算法在训练数据集上执行得很好,但在未知数据或验证和测试数据集上表现不佳时,就说算法过拟合了。这种情况的发生主要是因为算法过于特定于训练集而造成的。简单来说,我们可以理解为该算法找出了一种方法来记忆数据集,使其在训练数据集上表现得很好,但无法对未知数据执行。有不同的技术可以用来避免算法的过拟合。这些技术是:

· 获取更多数据;

· 缩小网络规模;

· 应用权重正则化;

· 应用dropout。

4.5.1 获取更多数据

如果能够获得更多的用于算法训练的数据,则可以通过关注一般模式而不是特定于小数据点的模式来帮助算法避免过拟合。在某些情况下,获取更多标签数据可能是一项挑战。

有一些技术,如数据增强,可用于在计算机视觉相关的问题中生成更多的训练数据。数据增强是一种让用户通过执行不同的操作,如旋转、裁剪和生成更多数据,来轻微调整图像的技术。在对行业知识足够了解时,如果获取实际数据的成本很高,也可以创建人造数据。当无法获得更多数据时,还有其他方法可以帮助避免过拟合。让我们看看这些方法。

4.5.2 缩小网络规模

网络的大小通常是指网络中使用的层数或权重参数的数量。在上一章中的图像分类例子中,我们使用了一个ResNet模型,它包含具有不同层的18个组成模块。PyTorch中的torchvision库具有不同大小的ResNet模型,从18个块开始,最多可达152个块。比如说,如果我们使用具有152个块的ResNet模型导致了过拟合,那么可以尝试使用101个块或50个块的ResNet。在构建的自定义架构中,可以简单地去除一些中间线性层,从而阻止我们的PyTorch模型记忆训练数据集。让我们来看一个示例代码片段,它演示了缩小网络规模的确切含义:

上面的架构有3个线性层,假设它在训练数据上过拟合了,让我们重新创建更低容量的架构:

上面的架构只有两个线性层,减少了容量后,潜在地避免了训练数据集的过拟合问题。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 学习题 Recurrent network Library

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 12:56