又又又摸了几天,写了个爬虫,还是回来看论文了。整理一些常见的基于生成的攻击算法,之后再看一些较新的论文,就开始写自己的论文了,早日毕业吧。
基于数据分布的对抗防御和攻击
本文字数: 2.5k 阅读时长 ≈ 2 分钟
在做对抗训练的时候,我时常在想一个问题:PGD、CW 这些攻击算法都会设置迭代步长和阈值,如果模型固定、参数固定,那么每次生成的对抗样本也会是一样的。如果使用 min-max 的方式进行对抗训练,那么模型可能会只认识在某一设置下的数据,如果面对新的分布攻击样本,如 ZOO, UAP, Deepfool 等,岂不是不能很好的防御?
这就又会回到小样本问题,总不能对所有的攻击算法在不同阈值下都生成对抗样本,而应该生成分布尽可能广泛的对抗样。既然提到生成,就不得不考虑 GAN,所以搜了些相关论文,并作整理。注意,所有论文我没看代码,所以不评价好与坏,在不久的将来如果我要发论文,肯定还会做对比算法,到时候回来评价各个算法。未完待续。
神经网络常见问题
本文字数: 278 阅读时长 ≈ 1 分钟
写深度学习的代码多了,经常会发现网络准确率低、难以收敛等错误,大多时候不是算法问题,而是人为的 bug,特此记录。
比如:为何网络的误差一直是一个定值?为何同样的网络、同样的优化器和学习率,训练得到的准确率比别人低 20% ?
YOLO V2,细读代码
本文字数: 4k 阅读时长 ≈ 4 分钟
还是老样子,不看代码永远不能称为学会了。况且 YOLO V2 有一些优化还是很常见的,如 Anchor Box 和多尺度训练。我之前也只是听说过这些名词,并不知道如何在程序中使用,索性直接读了程序了解一下,程序写的还是比较精彩的。另外:这是第一篇用 vim 写的博客。
关于六天掌握 Vim 这件事
本文字数: 4.4k 阅读时长 ≈ 4 分钟
学习 vim 的时候曾经4进4出一直没学会,这次下定决心要学一下了,也不求一口吃个胖子,每天学习一点点。首先从基础操作开始练习,先不要配置插件,也不管高亮和编程。IDE是人类退步的阶梯,沃茨基说的。
当然,这份文档不一定包含所有命令,只是教学的目的,遇到没有涵盖的命令自行查阅即可。有些命令是我自己的总结,不一定对。此外,本文涉及的命令之间可以任意组合实现各类高级功能,这个没办法统一列出。
此外,纸上得来终觉浅,学习 vim 一定多动手练习,在平时任务中多用 vim,自然而然就掌握了。我前后花了 6 天能使用 vim 应付日常开发工作,所以本文也叫六天掌握 vim。
YOLO目标检测从 V1 开始,细读代码
本文字数: 4k 阅读时长 ≈ 4 分钟
忙里偷闲,写几篇长文,从 YOLO 的 v1 到 v5。没想到时隔多年会回来重新看 YOLO 系列的东西,相比两阶段检测,YOLO 真的太快了,加上一些训练的 trick,mAP 也不会很低。网上看了好多教程不明所以,索性还是直接去读原论文了,读了原论文有些东西还是不理解,索性又去读了源程序。不过为了便于理解,有的地方不会按照论文顺序进行整理。少问问题,读论文产生的疑问在代码里都有解答,不看代码永远不能被称为学会了。
C++ 多线程
本文字数: 11k 阅读时长 ≈ 10 分钟
rush 项目的时候,有些地方可以并行化,可以借助 C++ 的多线程来加速程序的执行。多线程的基本概念在一年前整过了,这里只是来看一下 C++ 的多线程该怎么写,顺便查漏补缺。