Twitter买播放量网站 --Twitter刷播放量
红豆 晓查 校对物理位 公司出品 | 社会公众号 QbitAI
老师,那时有这份33条数学数学模型体能训练秘籍,摆到你眼前。
AI元老Andrej Karpathy(全称AK) ,才刚了一则白眉林白眉林网志,自已地列出了33条基本功和小常识,全面性防止我们踩坑,twitter已近2,300多赞。
AK在史丹福赵忠尧的这时候,是Bazelle生物医学的核心成员,大学毕业去了OpenAI,接着又成了Tesla的AI相关人士,直至现如今。
他的网志尽管两年一更,但帕萨旺皆是皆是十多年呕心沥血凝固而成,每天预览Dharmapuri关键性反响。
生时,他们把韦拉克译者如下表所示:
体能训练数学模型的处方药
总体而言,Andrej Karpathy的基本功是:千万别着急 (该文开头会道出其原因) ,从单纯到繁杂不断完善你的数学数学模型。
1、先Cancon写标识符
体能训练数学数学模型前,再说标识符,先从后处理统计数据集已经开始。他们要过两个半小时的天数,介绍统计数据的原产并找寻当中的规律性。
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、正则化
理想的话,他们那时有一个大数学模型,在体能训练集上拟合好了。
那时,该正则化了。舍弃一点体能训练集上的准确率,可以换取验证集上的准确率。
这里有一些基本功:
· 获取更多统计数据
至今我们最偏爱的正则化方法,是添加一些真实体能训练统计数据。
千万别在一个小统计数据集花太大功夫,试图搞出大事情来。有精力去多收集点统计数据,这是唯一一个确保性能单调提升的方法。
· 统计数据扩增
把统计数据集做大,除了继续收集统计数据之外,是扩增了。旋转,翻转,拉伸,做扩增的这时候可以野性一点。
· 有创意的扩增
还有什么办法扩增统计数据集?比如域随机化 (Domain Randomization) ,模拟 (Simulation) ,巧妙的混合 (Hybrids) ,比如把统计数据插进场景里去。甚至可以用上GAN。
· 预体能训练
当然,就算你手握充足的统计数据,直接用预体能训练数学模型也没坏处。
· 跟监督学习死磕
千万别对无监督预体能训练太过兴奋了。至少在视觉领域,无监督到那时也没有非常强大的成果。尽管,NLP领域有了BERT,有了会讲故事的GPT-2,但他们看到的效果很大程度上还是经过了人工挑选。
· 输入低维一点
把那些可能包含虚假信号的特征去掉,因为这些东西很可能造成过拟合,尤其是统计数据集不大的这时候。
同理,如果低层细节不是那么重要的话,就输入小一点的图片,捕捉高层信息就好了。
· 数学模型小一点
许多情况下,都可以给网络加上领域知识限制 (Domain Knowledge Constraints) ,来把数学模型变小。
比如,以前很流行在ImageNet的骨架上放全连接层,但那时这种操作已经被平均池化取代了,大大减少了参数。
·减小批尺寸
对批量归一化 (Batch Normalization) 这项操作来说,小批量可能带来更好的正则化效果 (Regularization) 。
· Dropout
给卷积网络用dropout2d。不过使用需谨慎,因为这种操作似乎跟批量归一化不太合得来。
· 权重衰减
增加权重衰减 (Weight Decay) 的惩罚力度。
· 早停法
不用一直一直体能训练,可以观察验证集的损失,在快要过拟合的这时候,及时喊停。
· 也试试大点的数学模型
注意,这条紧接上条 (且仅接上条) 。
我发现,大数学模型很容易过拟合,几乎是必然,但早停的话,数学模型可以表现很好。
最后的最后,如果想要更加确信,自己体能训练出的网络,是个不错的分类器,就把第一层的权重可视化一下,看看边缘 (Edges) 美不美。
如果第一层的过滤器看起来像噪音,就需要再搞一搞了。同理,激活 (Activations) 有这时候也会看出瑕疵来,那样就要研究一下哪里出了问题。
5、调参
读到这里,你的AI应该已经已经开始探索广阔天地了。这里,有几件事需要注意。
· 随机网格搜索
在同时调整多个超参数的情况下,网格搜索听起来是很诱人,可以把各种设定都包含进来。
但是要记住,随机搜索才是最好的。
直觉上说,这是因为网络通常对当中一些参数比较敏感,对其他参数不那么敏感。
如果参数a是有用的,参数b起不了什么作用,就应该对a取样更彻底一些,千万别只在两个固定点上多次取样。
· 超参数优化
世界上,有许多许多靓丽的贝叶斯超参数优化工具箱,很多小伙伴也给了这些工具好评。
但我个人的经验是,State-of-the-Art都是用实习生做出来的 (误) 。
6、还能怎么压榨**
当你已经找到了好用的架构和好用的超参数,还是有一些基本功,可以在帮你现有数学模型上获得更好的结果,榨干最后一丝潜能:
· 数学模型合体
把两个数学模型结合在一起,至少可以保证提升2%的准确度,不管是什么任务。
如果,你买不起太多的算力,就用蒸馏 (Distill) 把数学模型们集合成一个数学数学模型。
· 放那让它体能训练吧
通常,人类一看到损失趋于平稳,就停止体能训练了。
但我感觉,还是体能训练得昏天黑地,不知道多久了,比较好。
有一次,我意外把一个数学模型留在那体能训练了一整个寒假。
我回来的这时候,它就成了State-of-the-Art。
One More Thing
无独有偶,前两天有只阵亡的程序猿说:
AWS的钱,不是花在你用了多少,而是花在你忘了关电脑。
老师,如果你也曾经有这样的经历,那么恭喜,你也有体能训练出State-of-the-Art的潜力。
原文链接:
http://karpathy.github.io/2019/04/25/recipe/
—完—
订阅AI内参,获取AI行业资讯
加入社群
物理位AI社群已经开始招募啦,物理位社群分:AI讨论群、AI+行业群、AI技术群;
欢迎对AI感兴趣的老师,在物理位社会公众号(QbitAI)对话界面回复关键字群,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)
诚挚招聘
物理位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的老师加入他们!相关细节,请在物理位社会公众号(QbitAI)对话界面,回复招聘两个字。
物理位QbitAI · 头条号签约作者
վᴗ ի 追踪AI技术和产品新动态
喜欢就点「好看」吧 !