社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习中有哪些形式简单却很巧妙的idea?

计算机视觉工坊 • 8 月前 • 107 次点击  

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达


内容来自知乎,「计算机视觉工坊」整理,如有侵权请联系删除 https://www.zhihu.com/question/347847220

作者:黄哲威 hzwer

算力碾压

1.1 改大 batchsize,假装迭代次数对齐

1.2 多训 epoch,但是不明说,把训练长度换成以迭代次数报告,反之亦然,反正不能让人一眼看出来不对齐

1.3 epoch 数不变,但是一个样本用好几回,从而偷偷多过数据

1.4 把模型里下采样次数减小,模型计算量大了好几倍,但是只和别人比参数量

1.5 不在意计算量和参数量的领域狂堆算力

1.6 把算力很大的组件描述一笔带过,效率分析也只分析其它组件

1.7 用重参数化把模型搞的很大,训练很慢但是反正比推理开销

1.8 EMA / 多模型融合涨点,有条件还能自蒸馏

1.9 选个超级小的训练集,这样只要专心解决过拟合

超参数

2.1 通过把 cosine 学习率变化调成固定学习率,或者反过来,来得到想要的实验结果(cosine 降低学习率的最后那一部分一般会让模型性能快速上涨,提前下降学习率就会显得训练高效)

2.2 稍微调大一点学习率,把 baseline 的学习率调小

2.3 把各种超参数都隐藏在代码里面成为 magic number

2.4 优化器都有好多超参数可以调!

2.5 挑随机种子

小修小改

3.1 把模型的 relu 都换成 swish 或者 leaky relu / prelu

3.2 偷偷到处加 SE layer,反正基本上会涨点;加便宜的 attention 连接

3.3 把诸如 pooling, resize 不带参数的组件都换成带可学参数的,多学一点是一点

3.4 模组之间乱拉跳边,多 concat 一些特征反正不亏

3.5 在没 BN 的地方加 BN,在有 BN 的地方把 BN 去掉,还有 GN / IN / LN / WN 等等可以换

3.6 针对训练集和测试集的差异对训练集增广,改训练集分布

增量设计

4.1 加奇奇怪怪的 GAN Loss,一致性 Loss,反正有没有用很难说还能贴很多公式

4.2 把别人在论文里一句话带过的技术详细展开,加上一些魔法公式变换凑半页论文

4.3 要设计组件 x 加到模型上时,造一个可学习的 beta 参数,初始值为 0,改成把 beta * x 加到模型上,最差情况 beta=0 保持不变

4.4 扩展上一条,设计一堆组件,以可学参数的方式加起来

4.5 继续扩展,加一个 NAS 进去

4.6 从别的模型拿一些预训练参数,这样模型起点变高,上限也会变高因为相当于加数据和标注

4.7 搞一些非常复杂的课程学习,花式蒸馏(特征层,特征层的特征,跨模态蒸),别人做不 work 就说需要调参

4.8 不管有没有用,套上强化学习框架,让模型更多拥有自主能力

测试方法

5.1 测十个指标,报告有进步的三个

5.2 做十个数据集的实验,把没效果的五个扔掉

5.3 故意让测试方法和别人的训练场景不对齐,做低 baseline,比如把 RGB 通道搞反让别人挂掉

5.4 发明新的创新评价指标;魔改指标,比如 Y 通道测 PSNR,但是和别人 RGB 测的一起比

5.5 找 trivial 但是别人没考虑的场景,做出极其大的提升

5.6 用大模型比别人小模型,不报告别人的大模型;用针对某种指标训练的模型比别人没训的

5.7 在不同的硬件上测速,放在一起报告

5.8 最近语言大模型的,偷偷在测试 prompt 里加提示,few-shot 和 zero-shot 比

5.9 变相在测试集过拟合,比如泄露数据,泄露随机种子;把测试样本放到上游预训练里

5.10 测试数据集加真实场景,OOD 样本,baseline 掉点很多,这时候加点增广或者 dropout 把点补回来,但是把涨点贡献算到其它地方

5.11 私有测试集,人工评判,改进要多显著都能做出来

5.12 客观比不过比主观,主观比不过 cherry pick

终极方法

6.1 抄一个别人的方法,但是把名字换一遍

6.2 报高性能,问开源就是只有 README

6.3 直接开始写论文,不用做实验,反正恰好比 sota 高那么一点点

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175820
 
107 次点击