玩手机游戏,享快乐生活!
应用
北银消费1.4.4官方下载_最新北银消费app免费下载 乐房生活4.2.4官方下载_最新乐房生活app免费下载 区块链抓娃娃机2.0.8官方下载_最新区块链抓娃娃机app免费下载 抄码王1.0.1官方下载_最新抄码王app免费下载 大米印直客1.4.0官方下载_最新大米印直客app免费下载 将军财富2.5.1.1官方下载_最新将军财富app免费下载 小学数学试题练习1.2.19官方下载_最新小学数学试题练习app免费下载 掌上热力v2.2.31官方下载_最新掌上热力app免费下载 迅雷直播3.33.721官方下载_最新迅雷直播app免费下载 更美7.12.0官方下载_最新更美app免费下载 土豆Potato4.2.4官方下载_最新土豆Potatoapp免费下载 星巴克7.2.1官方下载_最新星巴克app免费下载 恋爱脱单神器9.07.23官方下载_最新恋爱脱单神器app免费下载 洛客1.5.0官方下载_最新洛客app免费下载 P云管理助手1.5.5官方下载_最新P云管理助手app免费下载 微博9.7.3官方下载_最新微博app免费下载 生态廊下2.2官方下载_最新生态廊下app免费下载 妈妈网孕育7.5.1官方下载_最新妈妈网孕育app免费下载 速贷3601.2.8官方下载_最新速贷360app免费下载 宠物店2.3.0官方下载_最新宠物店app免费下载 全息自然拼读法3.2.0722官方下载_最新全息自然拼读法app免费下载 卓越设计2.6.4官方下载_最新卓越设计app免费下载 爱途2.9.9官方下载_最新爱途app免费下载 更多
游戏
模拟城市:我是市长0.30.20715.12509官方下载_最新模拟城市:我是市长app免费下载 一梦江湖23.0官方下载_最新一梦江湖app免费下载 疯狂钓鱼2.10.20官方下载_最新疯狂钓鱼app免费下载 暗黑超神3.0.2官方下载_最新暗黑超神app免费下载 天天爱钓鱼2.4.20官方下载_最新天天爱钓鱼app免费下载 最强NBA1.18.291官方下载_最新最强NBAapp免费下载 天龙八部1.56.2.2官方下载_最新天龙八部app免费下载 真龙传奇0.0.2官方下载_最新真龙传奇app免费下载 我叫MT43.4.0.0官方下载_最新我叫MT4app免费下载 烧饼抢红包修改器3.3官方下载_最新烧饼抢红包修改器app免费下载 乱世曹操传1.2.41官方下载_最新乱世曹操传app免费下载 倩女幽魂1.6.4官方下载_最新倩女幽魂app免费下载 我的汉克狗1.8.8.1007官方下载_最新我的汉克狗app免费下载 我的塔防1.190712官方下载_最新我的塔防app免费下载 海滨消消乐1.37官方下载_最新海滨消消乐app免费下载 巴啦啦魔法变身22.2.9官方下载_最新巴啦啦魔法变身2app免费下载 少年西游记3.6.55官方下载_最新少年西游记app免费下载 梦幻炫舞1.8.0.0官方下载_最新梦幻炫舞app免费下载 太极熊猫21.5.1官方下载_最新太极熊猫2app免费下载 宾果消消消?6.7.1官方下载_最新宾果消消消?app免费下载 王者英雄五连绝世3.0.0官方下载_最新王者英雄五连绝世app免费下载 梦幻西游1.234.0官方下载_最新梦幻西游app免费下载 叶罗丽公主水晶鞋2.4.3官方下载_最新叶罗丽公主水晶鞋app免费下载 更多
资讯
欧盟宣布援助南亚东南亚区逾千万欧元应对天灾” 京都纵火案:嫌犯周密划 网吧收集信息现场点 意大利铁路供电系统恶意纵火 列车延误达4小时 新加坡6月份石油品出口下降 巴斯坦人社区遭以色列强拆 合国表严重关 印尼一飞机在训飞行时坠河 致1人受伤1人失踪 英国筑工地发现铁器时代战士坟墓 头装极其精美 委内瑞再次发生规模停电 朝媒:正恩视察新潜艇 部署在朝鲜东部海域 新西兰推控枪新措:强制登记收紧申请管制购买 美国会会在 特朗普宣布院达成债务上限协议 葡萄牙山火已致32人受伤 1男子因涉嫌纵火被捕 美国因种族分裂?民:近六成不赞同特朗普种族言论 热!法国发布高温警 电力公司暂停两座核反应堆 山东:本年1至5月新增减税降费467亿元 参院选举后安倍放弃修宪梦 欲联合朝野推动修宪 直销和传销,不止一字之差 同享单车乱停放 不该是无解难题 本年上半年深圳港完结集装箱1240万标箱 刚成为国际竹组织第45个成员国 俄罗斯研发电驱动装数字孪生技术 三分之一省份民企账款清欠进展过半 法国军找到世纪前失踪的潜艇 更多
联系我们
版权说明
Welcome-牛牛游戏平台
当前位置: Welcome-牛牛游戏平台 > 资讯 > 科技

11选5稳赚投注技巧:炉火纯青:特斯拉AI主管、李飞飞高徒Karpathy的33个神经网络「炼丹」技巧

来源:Welcome-牛牛游戏平台 发布时间:2019-04-27 10:12:04 点击数:

Welcome-牛牛游戏平台 www.nrxeeee.com.cn 特斯拉人工智能部分主管 Andrej Karpathy 发布新博客,介绍神经网络练习的技巧。

Andrej Karpathy 是深度学习计算机视觉范畴、生成式模型与强化学习范畴的研讨员。博士期间师从李飞飞。在读博期间,两次在谷歌实习,研讨在 Youtube 视频上的大规划特征学习,2015 年在 DeepMind 实习,研讨深度强化学习。结业后,Karpathy 成为 OpenAI 的研讨科学家,后于 2017 年 6 月参加特斯拉担任人工智能自动驾驶视觉总监。

今天他发布的这篇博客能为深度学习研讨者们供给极为清楚的洞见,在 Twitter 上也引发了极大的重视。

1. 谁说神经网络练习简略了?

许多人以为开端练习神经网络是很简略的,许多库和结构声称能够用 30 行代码段处理你的数据问题,这就给咱们留下了(过错的)形象:练习神经网络这件事是十分简略的,不同??榧床寮从镁湍艽罡錾疃饶P?。

简略的建模进程一般如下所示:

>>> your_data = # plug your awesome dataset here>>> model = SuperCrossValidator(SuperDuper.fit, your_data, ResNet50, SGDOptimizer)# conquer world here

这些库和示例令咱们想起了了解规范软件及???,规范软件中一般能够获取简练的 API 和笼统。

例如 Request 库的运用展现如下:

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))>>> r.status_code200

酷!这些库和结构的开发者背负起了解用户 Query 字符串、url、GET/POST 恳求、HTTP 衔接等的许多需求,将杂乱度隐藏在几行代码后边。这便是咱们了解与等待的。

可是,神经网络不一样,它们并不是现成的技能。我在 2016 年编撰的一篇博客中企图阐明这一点,在那篇文章中我以为反向传达是「leaky abstraction」,可是现在的状况如同愈加糟糕了。

Backprop + SGD 不是魔法,无法让你的网络运转;批归一化也无法奇迹般地使网络更快收敛;RNN 也不能奇特地让你直接处理文本。不要由于你能够将自己的问题标明为强化学习,就以为你应该这么做。假如你坚持在不了解技能原理的状况下去运用它,那么你很或许失利。

2. 背着我不 work 的神经网络

当你损坏代码或许过错装备代码时,你一般会得到某种反常。你在本来应该刺进字符串的当地刺进了整数;导入犯错;该要害字不存在……此外,为了便利 debug,你还很或许为某个功用创立单元测验。

这还仅仅开端。练习神经网络时,有或许一切代码的句法都正确,但整个练习便是不对?;蛐砦侍獬氏衷?mark data-type=technologies data-id=95a97f4b-79d2-4bbc-91ae-300f074dff9f>逻辑性(而不是句法),且很难经过单元测验找出来。

例如,你测验截丢失度而不是梯度,这会导致练习期间的反常值被忽视,但语法或维度等检测都不会呈现过错。又或许,你弄错了正则化强度、学习率、衰减率、模型巨细等的设置,那么走运的话网络会报错,可是大部分时分它会持续练习,并默默地变糟……

因而,「快速剧烈」的神经网络练习办法没有用,只会导致困难。现在,这些经历性困难是使神经网络正常运转的绊脚石,你需求愈加缜密翔实地调试网络才干削减困难,需求许多可视化来了解每一件事。

在我的经历中,深度学习成功的重要因素是耐性重视细节。

怎么处理

根据以上两点现实,我开发了一套将神经网络应用于新问题的特定流程。该流程严厉地履行了上述两项准则:耐性和重视细节。

详细来说,它依照从简略到杂乱的办法来构建,咱们在每一步都对行将发作的事作出精确的假定,然后用试验来验证假定或许查询直到发现问题。咱们企图极力阻挠许多「未经历证的」杂乱性一次来袭,这有或许导致永久也找不到的 bug/过错装备。假如让你像练习神经网络那样写它的代码,你会想运用十分小的学习率,然后猜想,再在每次迭代后评价整个测验集。

1. 整理数据

练习神经网络的第一步是不要碰代码,先完全查看自己的数据。这一步十分要害。我喜爱用许多时刻阅读数千个样本,了解它们的散布,寻觅其间的形式。走运的是,人类大脑很拿手做这件事。有一次,我发现数据中包含重复的样本,还有一次我发现了损坏的图画/标签。我会查找数据不均衡和误差。我一般还会留意自己的数据分类进程,它会提醒咱们终究探究的架构。比方,只需求部分特征就够了仍是需求大局语境?标签噪声多大?

此外,由于神经网络是数据集的紧缩/编译版别,你能够查看网络(过错)猜测,了解猜测从哪里来。假如网络猜测与你在数据中发现的不一致,那么必定是什么当地出问题了。

在你对数据有了一些感知之后,你能够写一些简略的代码来查找/过滤/排序标签类型、标示规划、标示数量等,并沿恣意轴可视化其散布和反常值。反常值一般能够提醒数据质量或预处理中的 bug。

2. 装备端到端练习/评价架构、获取基线成果

现在咱们现已了解了数据,那咱们就能够开端构建巨大上的多标准 ASPP FPN ResNet 并练习强壮的模型了吗?当然还不到时分,这是一个充溢荆棘的路途。咱们下一步需求构建一个完好的练习、评价架构,并经过一系列试验确认咱们对精确率的置信度。

在这个阶段,你们最好挑选一些不会犯错的简略模型,例如线性分类器或十分精简的 ConvNet 等。咱们期望练习这些模型,并可视化练习丢失、模型猜测和其它衡量目标(例如精确率)。当然在这个进程中,咱们还需求根据一些清晰假定,然后履行一系列对照试验(ablation experiments)。

该阶段的一些技巧与留意事项:

  • 固定随机 seed:一向运用固定的随机 seed 能保证许多特点,例如在咱们两次运转相同代码时能得到相同的输出。这能消除改动因子,从进行合理的判别。

  • 简化:保证禁用不必要的技巧。例如,在这个阶段必定需求封闭数据增强。数据增强能够在后期引进,并作为一种强壮的正则化战略。不过在这个阶段引进的话,它就有时机带来一些愚笨的 bug。

  • 运用多数据、少次数的验证评价:当咱们在制作测验丢失时,咱们需求在整个比较大的测验会集履行评价。不要过几个批量就制作一次测验丢失,然后再依靠 TensorBoard 的滑润处理。咱们虽然寻求的是精确率,但也要避免犯这些初级过错。

  • 在初始化中验证丢失:验证你的丢失函数在初始化中有比较合理的丢失值。例如,假如你正确地初始化终究层,那么你应该经过-log(1/n_classes) 衡量初始化的 Softmax 值。L2 回归和 Huber 丢失函数等都有相同的默许值。

  • 优异的初始化:正确地初始化终究层。例如,假如你正在对均值为 50 的一些数据做回归处理,那么初始化的终究偏置项就应该为 50。假如你有一个非平衡数据集(两类样本数 1:10),那么就需求在 logits 上设置偏置项,令模型在初始化时猜测概率为 0.1。正确装备这些偏置项将加速收敛速度,由于网络在前面几回迭代中根本上只在学习偏置。

  • 人类基线成果:监控丢失值等其他衡量目标(例如精确度),这些目标应该是人类能解说并查看的。尽或许评价你自己(人类)获得的精确率,并与构建的模型做比照?;蛐矶圆庋槭萁辛酱伪晔?,其间一次为猜测值,另一次为标示值。

  • 独立于输入的基线成果:练习一个独立于输入的基线模型,例如最简略的办法便是将一切输入都设置为 0。这样的模型应该比实践输入数据体现更差,你的模型是否预备好从任何输入中抽取任何信息?

  • 在批数据上过拟合:在单个批数据上使得过拟合(两个或多个少样本)。为此,咱们需求添加模型拟合才能,并验证咱们能到达的最低丢失值(即 0)。我还想在同一张图中显现标签和猜测值,并保证丢失值一旦到达最小,它们就能完美地对齐了。

  • 验证练习丢失的下降:在这一阶段,你或许期望在数据集上完成欠拟合,该阶段的模型应该是极简的。然后咱们测验添加一点模型的拟合才能,再看看练习丢失是否略微下降了一些。

  • 在输入网络前可视化:在运转模型之前,咱们需求可视化数据。也便是说,咱们需求可视化输入到网络的详细数据,即可视化原始张量的数据和标签。这是仅有的「实在来历」,我有许屡次都是由于这个进程而节省了许多时刻,并提醒了数据预处理和数据增强进程中的问题。

  • 可视化猜测进程:我喜爱在练习进程中对一个固定的测验批数据进行模型猜测的可视化。这展现了猜测值怎么改动的进程,能为咱们供给关于练习进程的优异直觉。许多时分,假如网络以某种办法小幅度动摇,那么模型最或许在测验拟合数据,这也展现了一些不安稳性。太低或太高的学习率也很简略留意到,由于抖动量比较大。

  • 运用反向传达制作依靠性:你的深度学习代码一般包含杂乱的、矢量化的、Boardcast 操作。一个常见的 bug 是,人们会无意间运用 view 而不是 transpose/permute,然后混合了批量数据中的维度信息??墒?,你的网络仍然能够正常练习,只不过它们学会疏忽了其它样本中的数据。一种 debug 的办法是将某些样本 i 的丢失设置为 1.0,然后运转反向传达一向到输入,并保证第 i 个样本的梯度不为零。更一般的,梯度为咱们供给了网络中的依靠性关系,它们在 debug 中十分有用。

  • 一般化特别事例:这是一种更为通用的代码技巧,可是我常??吹饺嗣窃谠擞谜庑┘记墒被嵝路⑸?Bug,尤其是在从头构建一般函数时。相反,我喜爱直接写十分详细的函数,它只包含我现在需求做的工作。我会先让这个函数能 work,然后再一般化好函数,并保证能获得相同的成果。一般这个进程会体现在向量化代码中,我会先用循环编写某个进程,然后再一次一个循环地将它们转化为向量化化代码。

3. 过拟合

到了这个阶段,咱们应该对数据集有所了解了,并且有了完好的练习+评价流程。关于任何给定的模型,咱们能够计算出咱们信赖的衡量。并且还为独立于输入的基线预备了功能,一些 dumb 基线的功能(最好超越这些),咱们人类的体现有大致的了解(并期望到达这一点)。现在,咱们现已为迭代一个好的模型做好了预备。

我预备用来寻觅好模型的办法有两个阶段:首要获得满足大的模型,这样它能够过拟合(即重视练习丢失),然后对其进行恰当的正则化(弃掉一些练习丢失以改善验证丢失)。我喜爱这两个阶段的原因是,假如咱们不能用任何模型完成较低的误差率,则或许再次标明一些问题、bug 和装备过错。

该阶段的一些技巧与留意事项:

  • 挑选模型:为了到达抱负的练习丢失,咱们或许期望为数据挑选一个适宜的架构。当咱们在挑选模型时,我的第一个主张即别好大喜功。我看到许多人都十分巴望一开端就堆叠一些新的???,或创造性地用于各种异质架构,然后想一步到位做好。我主张能够找最相关的论文,并直接运用它们的简略架构,然后获得杰出功能。后边再根据这个架构做修正和改善,并将咱们的主意加进去就行了。

  • Adam 是一般挑?。涸谧氨富吣P偷厍捌诮锥?,我喜爱运用 Adam 算法(学习率为 3e-4)。在我的经历中,Adam 对参数的容忍度更高,不太好的学习率也能获得一般的作用。关于卷积网络来说,一般经过细心调整的 SGD 简直总会略优于 Adam,但最佳学习率的或许区域要窄得多。

  • 一次杂乱化一个:假如你有多个特性刺进分类器,我主张你一个个刺进,然后保证能获得等待的功能提高。不要在最开端时就一次性全加上,这样你会弄不清楚功能提高到底是哪个特性带来的?;褂衅渌砑釉勇倚缘陌旆?,例如你能够先测验刺进较小的图画,然后再慢慢地加大。

  • 别信任默许的学习率衰减:假如你修正来自其它范畴的代码,你应该当心运用学习率衰减办法。关于不同问题,你不只期望运用不同的衰减战略,一起由于 Epoch 的数量不同,衰减进程也会不一样。例如数据集的巨细,会影响 Epoch 的数量,而许多学习率衰减战略是直接与 Epoch 相关的。在我自己的工作中,我常常整个地封闭学习率衰减,即运用常数学习率。

4. 正则化

抱负状况下,咱们现在至少有了一个拟合练习集的大模型。现在是时分对它进行正则化,并经过抛弃一些练习精确率来提高验证精确率了。技巧包含:

  • 更多数据:首要,在当时任何实践环境中正则化模型的最好办法是添加更多实在的练习数据。在你能搜集更多数据时,花费许多工程时刻企图从小数据集上获得更好成果是很常见的一个过错。我以为添加更多数据是单调提高一个较好装备神经网络功能的仅有牢靠办法。

  • 数据增强:比实在数据较次的办法是半假数据,试验下更急进的数据增强。

  • 创造性增强:假如半假数据也没有,假数据也还能够。人们在寻求扩展数据集的创造性办法。例如,域随机化、运用模仿数据、把数据刺进场景这样机敏的混合办法,乃至能够用 GAN。

  • 预练习:即便你有满足的数据,你也能够运用预练习网络,根本没什么丢失。

  • 坚持监督式学习:不要对无监督学习过于激动。据我所知,没有什么无监督学习办法在当时计算机视觉使命上有很强的成果(虽然 NLP 范畴现在有了 BERT 和其他相似模型,但这更多归功于文本更老练的实质以及对噪声比更好的信号)。

  • 更小的输入维度:移除或许包含假信号的特征。假如你的数据集很小,任何参加的假输入只会添加过拟合的或许。相似地,假如初级细节作用不大,试试输入更小的图画。

  • 更小的模型:在许多状况下,你能够在网络上运用域常识束缚来下降模型巨细。例如,在 ImageNet 骨干网络顶部运用全衔接层一度很盛行,但它们后来被简略的均匀池化替代,消除了这一进程中许多的参数。

  • 减小批巨细:由于 BN 根据批量巨细来做归一化,较小的批量巨细具有更强的正则化作用。这首要由于一个批量的计算均值与规范差是实践均值和规范差的近似,所以缩放量和偏移量在小批量内动摇地更大。

  • drop:添加 dropout。在卷积网络上运用 dropout2d(空间 dropout)。保存慎重的运用 dropout,由于它对 batch 归一化如同不太友爱。

  • 权重衰减:添加权重衰减赏罚。

  • 早停(early stopping):根据你得到的验证丢失中止练习,然后在行将过拟合之前获取模型。

  • 测验更大的模型:我曩昔屡次发现更大模型终究都会很大程度的过拟合,但它们「早?!购蟮墓δ芤刃∧P秃玫枚?。

最终,为了愈加保证网络是个合理的分类器,我喜爱可视化网络第一层的权重,保证自己获得了有意义的边际。假如第一层的滤波器看起来像噪声,那需求去掉些东西。相似地,网络内的激活函数有时分也会提醒出一些问题。

5. 精调

现在你应该坐落数据集一环,探究获得较低验证丢失的架构模型空间。这一步的一些技巧包含:

  • 随机网格查找:在一起精调多个参数时,运用网格查找听起来更引诱,能够保证掩盖到一切环境。但记住,运用随机查找反而是最佳办法。直观上,由于神经网络对一些参数更为灵敏。在极限状况下,假如参数 a 很重要,改动 b 却没有影响,然后比较于屡次在固定点采样,你宁可完全采样 a。

  • 参数优化:现在社区内有许多好的贝叶斯参数优化工具箱,我的一些朋友用往后觉得很成功。但我的个人经历是,探究好的、宽的模型空间和参数的最佳办法是找个实习生。恶作剧罢了,哈哈哈。

6. 最终的压榨

一旦你找到最好的架构类型和参数,仍然能够运用更多的技巧让系统变得更好:

  • 集成:模型集成是能将精确率安稳提高 2% 的一种好办法。假如你承担不起测验阶段的计算成本,试着运用《Distilling the Knowledge in a Neural Network》中的办法把你的模型蒸馏到一个网络。

  • 一向练习:我常??吹揭恍┤嗽谘橹ざ髌匠;嶂兄鼓P土废?,以我的经历来看,网络会长时刻坚持非直观的练习。寒假时有一次我忘了关掉模型练习,一月回来后发现它获得了 SOTA 成果。

定论

一旦你做到了这些,你就具有了成功的一切要素:对神经网络、数据集和问题有了满足深的了解,装备好了完好的练习/评价系统,获得高置信度的精确率,逐步探究更杂乱的模型,提高每一步的体现。现在万事俱备,就能够去读许多论文,测验许多试验并获得 SOTA 成果了。


原文链接:https://karpathy.github.io/2019/04/25/recipe/

应用 | 游戏 | 资讯 | 联系我们 | Welcome-牛牛游戏平台 | 八卦 |

浙公网安备 33060202000544号
Copyright?十八楼 All Rights Reserved.

排列三预测_排列三预测官网 | 韩国快乐8官方网站 | 赛迪网 | qq欢乐麻将安卓版下载 卖羊肉赚钱还是羊毛赚钱 哪个成语游戏能赚钱 安徽麻将大全下载 个人西瓜视频如何赚钱 模拟人生4 工作赚钱 卡五星手机版 餐饮店要开多少时间才能赚钱吗 小鱼赚钱能微信提现吗 海外赚钱软件