欢迎来到池州三陆五信息科技有限公司- 未来科技

微信
手机版
网站地图

半天2k真好啊推特!李飞飞高徒发布33支神经网络训练秘技-量子比特

2023-04-17 09:01:57 栏目 : 科技 围观 : 0次

同学,现在摆在你面前的33个神经网络训练诀窍。

AI老爷子AndrejKarpathy(简称AK),刚发布了一个长博客,费尽心思列举了33个技巧和注意事项全面避免大家踩坑,推特有2300多个赞赞。

AK斯坦福读博客的时候,是飞飞实验室的成员,毕业后去了OpenAI,然后成为特斯拉的AI负责人,直到现在。

他的博客每一年更新一次,但每一句都是多年的心灵凝结,每次更新都有很大反响。

在有生之年,我们把内文翻译如下。

训练模型配方

总的来说,AndrejKarpathy的技巧是,不要着急(在文章结尾说原因),从简单到复杂逐步完善你的神经网络。

1、不要着急写代码

在训练神经网络之前,不管代码如何,先从预处理数据集开始。我们先花几个小时了解数据的分布,找出其中的规律。

Andrej在数据整理过程中发现重复样本,有时发现图像或标签错误。所以先看数据,避免我们走很多弯路。

因为神经网络实际上是数据集的压缩版本,所以可以通过显示网络(错误)预测来理解源。如果你的网络给你的预测看起来和你在数据上看到的内容不一致,那就有收获了。

当你从数据中发现规则时,你可以编写一些代码来搜索、过滤和排序。可视化数据有助于发现异常值,但异常值总是会揭示数据质量和预处理中的一些错误。

2、端到端培训评估框架设置

处理完数据集后,下一步可以开始模型培训了吗。并不是!下一步是构建完整的培训+评估框架。

在此阶段,您将选择一个简单且不会失败的模型,例如线性分类器、CNN和可视化丢失。得到精度等测量模型的基准,用模型进行预测。

此阶段的技巧包括:。

固定随机种子

使用固定的随机种子,确保执行代码两次都得到相同的结果,从而消除差异因素。

简化

在这个阶段,不要放大数据。稍后将使用放大数据,但请勿在此使用。现在部署只会出错。

为评估添加有效数字

绘制测试集丢失时,请评估整个测试集,并使用Tensorboard进行平滑,而不只是绘制批量测试丢失图像。

在初始阶段验证损失函数

确保函数从正确的丢失值开始。例如,如果要正确初始化最终层,则在softmax初始化时必须测量-log(1/n_classes)

初始化

正确初始化最后一层的权重。如果回归平均值为50,则将最终偏差初始化为50。如果存在比率为1:10的不平衡数据集,则设置对数偏差,使网络预测概率在初始化时为0.1。正确设置它们可以促进模型收敛。

人类基线

监测可人为解释和可检查的损失以外的指标。尽量评估和比较人的准确性。或者,对测试数据进行两次注释,对于每个示例,将一个注释视为预测,将第二个注释视为事实。

设置独立于输入的基线

最简单的方法是将所有输入设置为零,看模型能否从输入中提取信息。

过盈batch

增加模型的容量,验证可实现的最小损失。

减少训练损失的验证

试着增加一点数据容量吧。

训练模型前的数据可视化

通过可视化原始张量的数据和标签,可以节省调试次数,揭示了数据预处理和数据放大中的问题。

可视化预测动态

在训练过程中可视化固定试验批次上的模型预测。

使用反向传播来获得依赖关系:

一种方法是将第i个采样的丢失设置为1.0,然后执行反向传播直到输入,以确保只有第i个采样具有非零梯度。

总结例外:为正在做的事情创建一个非常具体的函数,让它运行,然后确保以后得到相同的结果。

3、超合身

首先,我们必须有足够大的模型。它过于合身,可以减少训练集上的损失,然后适当调整,放弃一些训练集的损失,可以改善验证集上的损失)

此阶段的技巧包括:。

选择模型

为了获得更好的培训损失,必须为数据选择合适的体系结构。永远不要想着一步到位。要进行图像分类,只需复制并粘贴ResNet-50,以后就可以自定义了。

Adam方法安全

在设置基线的初始阶段,使用学习率为3e-4的Adam。经验表明,亚当对超参数更宽容,包括不良的学习率。

一次只复杂一个

如果有多个信号输入分类器,请逐个输入,然后增加复杂性,确保预期性能逐步提高,不要混为一谈。例如,插入一个小图像,然后放大。

不相信学习率衰减默认值

如果不小心,代码可能会使学习速度过快,导致模型无法收敛。我们会完全禁用学习率衰减,避免这种情况的发生。

4、规范化

理想情况下,我们现在有一个适合训练集的大模型。

现在应该正规化。可以稍微放弃训练集的精度,与验证集的精度进行交换。

这里有一些技巧。

获取更多数据

迄今为止大家最喜欢的正则化方法是添加一些实际的培训数据。

不要在小数据集上花太大力气,想做大事。有精力多收集数据,这是确保性能单调提高的唯一方法。

数据放大

要增加数据集,除了继续收集数据之外,还要进行扩展。旋转、反转、拉伸、放大时可以稍微野性一点。

创造性的放大

有增加数据集的方法吗。例如,域随机化、模拟、巧妙混合,例如将数据插入场景中。也可以使用GAN。

事前训练

当然,即使你有足够的数据,也可以直接使用预培训模式。

向导演学习

不要对无监督预备训练过于兴奋。至少在视觉领域,无监督至今仍未取得非常强劲的成就。NLP领域有BERT,有讲故事的GPT-2,但我们看到的效果很大程度上是人工选择的。

输入低维点

这些东西消除了可能包含假信号的特征,尤其是在数据集不大的情况下。

同样,如果低层细节不那么重要,则输入小图像来捕捉上层信息即可。

减小模型

在许多情况下,您可以通过在网络上添加区域知识限制来减少模型。

例如,以前流行在ImageNet骨架上放置全连接层,但现在该操作被平均池化取代,参数大大减少。

减小批大小

在“批规格化”操作中,小批处理可能会带来更好的规格化效果。

· Dropout

提供用于卷积网络的dropout2d。但是,此操作似乎与批处理规范化不太匹配,因此必须谨慎使用。

权重衰减

提高权重衰减的惩罚能力。

快速停止法

不需要一直训练,你可以观察到验证集的损失,如果你快要过了拟合,你可以立即停止。

也试一下大的模型

请注意,此栏接在顶部(并且仅连接到顶部)

我们发现,大模型很容易被拟合,几乎是必然的,但如果早点停下来,模型就会表现得很好。

最后的最后,如果你想更确信自己训练的网络是一个很好的分类器,那就可视化第一层的权重,看看边缘(Edges)是否好看。

如果第一级过滤器看起来像噪音,你需要再做一次。同样,激活也可能会出现瑕疵,但我们必须研究问题出在哪里。

5、调整

读到这里,你的AI应该已经开始探索广阔的天地了。这里有几点需要注意的事情。

随机网格搜索

当同时调整多个超参数时,网格搜索听起来很有吸引力,可以包含各种设置。

但是你要记住随机搜索是最好的。

直觉上,网络通常对一些参数敏感,因为它对其他参数不那么敏感。

如果参数a是有用的,并且参数b不起任何作用,那么应该更彻底地对a进行采样,不要只在几个固定点上进行多次采样。

超参数优化

世界上有许多美丽的贝叶斯超参数优化工具箱,许多小伙伴也在评价这些工具。

但是,以我个人的经验,State-of-the-Art是由实习生制作的(错误)

6、如何压榨

在找到易用的结构和易用的超参数时,还是有一些技巧,可以在现有的模型上得到更好的结果,缩小最后的潜能:

模型合并

结合几个模型,无论任务如何,都能保证至少2%的精度提高。

如果你买不起太多的计算能力,那就用蒸馏(Distill)把模型们集合到神经网络上吧。

让我训练吧

通常,人类看到损失趋于平稳,就会停止训练。

但是,我觉得,还是训练模糊,不知道多久,比较好。

有一次,我竟然在寒假期间留下模特训练。

当我回来的时候,它变成了State-of-the-Art。

One More Thing

偶然的是,前几天有一只“战死手续猿”。

同学,如果你也有这样的经历,恭喜你,你也有训练State-of-the-Art的潜力。

原文链接:

http://karpathy.github.io/2019/04/25/recipe/

展开剩余内容

分享到:

猜你喜欢

  • b2b网站策划书_b2b策划案

    b2b网站策划书_b2b策划案大家好,今天我来给大家讲解一下关于b2b网站策划书的问题。为了让大家更好地理解这个问题,我将相关资料进行了整理,现在就让我们一起来看看吧。文章目录...

    2024-10-22 企业 网站
  • 浙江高端网站_浙江高端网站有哪些

    浙江高端网站_浙江高端网站有哪些好久不见了,今天我想和大家探讨一下关于“浙江高端网站”的话题。如果你对这个领域还不太了解,那么这篇文章就是为你准备的,让我们一看看吧。文章目录列...

    2024-10-22 网站 浙江
  • 做酒的网站_做酒的网站有哪些

    做酒的网站_做酒的网站有哪些希望我能够回答您有关做酒的网站的问题。我将根据我的知识库和研究成果回答您的问题。文章目录列表:1.酒仙网CEO郝鸿峰的电商百亿梦想2.有没有关于介绍...

    2024-10-22 中国 酒类 酒仙 网站
  • 索尼手机软件_索尼手机软件商店

    索尼手机软件_索尼手机软件商店下面,我将为大家展开关于索尼手机软件的讨论,希望我的回答能够解决大家的疑问。现在,让我们开始聊一聊索尼手机软件的问题。文章目录列表:1.索尼的手机...

    2024-10-22 手机 索尼
热门标签