0%

在做对抗样本的时候,我发现对抗防御和 GAN 在某种程度上很像:

  • 对抗防御:内部生成对抗样本攻击分类器,分类器更新参数防御攻击;
  • GAN:生成器 $G$ 生成样本欺骗判别器,判别器更新防御 $G$ 的欺骗。

所以说,这俩在某种程度上真的很像,所以决定整理一下 GAN 的知识,开拓一下思路,视频内容来自这里。警告:里面有大量数学公式的推导,而我就不一样了,不仅有公式推导还有代码。

忙完了其它的,还是要回归科研做好整理,相当于论文笔记吧。对抗样本去噪算法算是告以段落,或者说叫对抗样本提纯。本文总结了一些近几年的、思路还行结果也还好的对抗样本去噪算法,就相当于写个类似的综述了,注意,并非详解。优缺点仅是个人分析,其实论文读多了或者看了代码,总会有一些想法。包含以下论文:

  1. Comdefend: An efficient image compression model to defend adversarial examples, CVPR 2019
  2. Feature denoising for improving adversarial robustness, CVPR 2019
  3. Defense against adversarial attacks using high-level representation guided denoiser, CVPR 2018
  4. A Self-supervised Approach for Adversarial Robustness, CVPR 2020
  5. Denoised Smoothing: A Provable Defense for Pretrained Classifiers, NIPS 2020
  6. Stochastic Security: Adversarial Defense Using Long-Run Dynamics of Energy-Based Models, ICLR 2021
  7. Online Adversarial Purification based on Self-Supervision, ICLR 2021
  8. Adversarial Purification with Score-based Generative Models, ICML 2021

因为开发图像检索系统的需要,需要学习局部敏感哈希算法。我在网上看了很多局部敏感哈希算法的讲解,也没有一个能讲清楚的。什么打乱表格、计数 1 最开始出现的索引、minHash 等没啥用的东西把人说的云里雾里。

而如何设计哈希函数、如何把相似内容放到同一个桶中、计算相似度则闭口不谈。所以,关于数学理论推导,本文就不描述了,网上其他博客多的是,本文从代码的角度来理解局部敏感哈希算法,相对更清晰,附 C++ 程序实现。

想来想去,以壮士断腕的决心决定抛弃垃圾 windows 了,实在是 TMD 卡的要死,但是以我电脑的配置,不可能卡的。加上 C 盘的无理由暴增,TMD 空间锐减,加上每次系统动不动更新,每次更新都 TMDbug 直接卡死。我宁肯花一周的时间打造一款我的主力 Arch Linux ,再 TMD 也不向 windows 低头了。以本文记录 Arch Linux 的折腾全记录。

包括:代理、终端、字体、换源更新、软件、甚至是博客迁移等。最重要的是,关于向这个世界的妥协,如何使安装 QQ、微信和 word 等非必要但深入人心的软件。毕竟老板让你微信给他发文件还是很常见的,毕竟老板没手没脚,发一次不接收必须发第 $N$ 次,毕竟他用 LaTeX 也要手动编号。

我是练习时长一年的 C++ 个人练习生,喜欢野指针、模板报错和未定义行为(undefined behavior)。之前在写设计模式的『工厂模式』时,一脚踩到了构造、继承和 new 组合起来的坑,现在也有时间来整理一下了。

C++ 细节逐步填坑中,还有几个大坑预计 8 月前结束。普通的函数没啥意思了,本文涉及函数的进阶使用,包括:函数的默认参数、内联函数、函数重载和函数模板。

引用是 C++ 中一个比较神奇的东西。在这之前或者说 C 语言中,一般是使用指针来减少传参所带来的不必要的开销。如函数传递的参数是数组或结构体时,使用指针会省很多事,毕竟传递的是地址。而 C++ 中引用变量的主要用途也是函数传参,子函数直接操作原始数据,而不是其副本,这样处理大型数据结构也会佷便捷。