EMA
源
Exponential moving average (EMA) 是一个非常有用的trick, 起到加速训练的作用. 近来发现, 该技巧还可以用于提高网络鲁棒性(约1% ~ 2%). EMA的流程很简单, \(f(\cdot;\theta)\)是我们用于训练的网络, 则在每次迭代结束后进行:
\]
其中\(\theta'\)是\(f'(\cdot; \theta')\)网络的参数, \(f', f\)的网络初始化是一致的, 另外\(f'\)的网络参数的更新仅仅通过上式.
一般情况下, 对抗训练用\(f(\cdot; \theta)\)来生成对抗样本, 即
\]
来获得, 而我想的能不能
\]
背后的直觉是, \(f'\)相较于\(f\)更为平稳, 则由其产生的对抗样本的分布更加稳定, 则\(f\)拟合起来会不会更加容易?
我在一个8层的网络上进行测试, 结果不如人意:
设置
| model | cifar |
|---|---|
| dataset | CIFAR-10 |
| attack | PGD |
| epsilon | 8/255 |
| stepsize | 2/255 |
| steps | 10 |
| loss | cross entropy |
| optimizer | sgd |
| momentum | 0.9 |
| beta1 | 0.9 |
| beta2 | 0.999 |
| weight_decay | 2e-4 |
| leaning_rate | 0.1 |
| learning_policy | AT |
| epochs | 200 |
| batch_size | 128 |
| transform | default |
| seed | 1 |
| alpha | 0.999 |
结果
| Accuracy | Robustness | |
|---|---|---|
| EMA* | ![]() |
![]() |
| EMA | ![]() |
![]() |
| EMA + GroupNorm | ![]() |
![]() |
上图中, EMA是原本的逻辑, 可见其的确能加速训练(Shadow表示\(f'\)), 虽然最后的结果是降了点, 这主要是参数没调好, 毕竟对抗训练很容易过拟合. 但是我们的直接却完全不起作用, 这让我非常困惑, 因为, 我料想的最差的结果, 也应当是鲁棒性不怎样, 不能精度和鲁棒性都很差, 因为虽然是通过\(f'\)生成的对抗样本, 这些对抗样本依旧是满足$|x_{adv} - x|_{\infty} \le 8 /255 $ 的,所以应该是没问题的.
于是我又尝试让\(\alpha\)由\(0\)慢慢增加到\(0.999\), 但是结果依然不容乐观. 我料想是batch normalization的问题, 于是换了group normlization:
虽然结果似乎表明我们的直觉完全是错误的, 但是还是体会到了 normalization 的重要性, BN很难应对不同分布.
EMA的更多相关文章
- 股票中的数学:EMA的推导01
说明:本人并不炒股,原因很简单:没钱.当然了,作为一名IT工作者,因为工作需要和个人兴趣,就有了本系列文章.阅读本系列文章不需要任何高深的知识,哪怕是一个像我这样从未真正炒过股的人也没关系.但本文还是 ...
- EMA计算的C#实现(c# Exponential Moving Average (EMA) indicator )
原来国外有个源码(TechnicalAnalysisEngine src 1.25)内部对EMA的计算是: var copyInputValues = input.ToList(); for (int ...
- 新修改了EMA的计算方法,合并线性回归率的计算。和通达信的结果一模一样
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- WeQuant交易策略—EMA指标
策略名称:EMA指标策略关键词:指数移动平均.双均线.动态止损.方法:1)用快慢两条指数移动平均线的交叉作为买入卖出信号:2)快线自下而上穿过慢线,买入:自上而下穿过慢线,卖出:3)持仓期间计算净值的 ...
- 新概念英语(1-9)How is Ema?
A:Hello Helen. B:Hi Steven. A:How are you today? B:I'm very well, thank you. And you? A:I'm fine tha ...
- tensorflow(3):神经网络优化(ema,regularization)
1.指数滑动平均 (ema) 描述滑动平均: with tf.control_dependencies([train_step,ema_op]) 将计算滑动平均与 训练过程绑在一起运行 train_o ...
- 多种移动平均计算总结(MA,EMA,SMA,DMA,TMA,WMA)
多种移动平均计算总结 股票期货里面经常会遇到这些公式,通达信,同花顺,文华,基本都有.作为一个程序员觉得网上比较的思路不清晰,在此做个总结,一目了然. 一.函数简介 MA(x,n)-移动平均,是最简单 ...
- 【优化技巧】指数移动平均EMA的原理
前言 在深度学习中,经常会使用EMA(exponential moving average)方法对模型的参数做平滑或者平均,以求提高测试指标,增加模型鲁棒性. 参考 1. [优化技巧]指数移动平均(E ...
- EMA指数平滑移动平均
英文参考:http://www.incrediblecharts.com/indicators/exponential_moving_average.php Exponential moving av ...
- EMA algorithm: https://blog.csdn.net/m0_38106113/article/details/81542863
EMA algorithm: https://blog.csdn.net/m0_38106113/article/details/81542863
随机推荐
- MPI 学习笔记
目录 MPI学习笔记 MPI准备 概述 前置知识补充 环境部署 1.修改IP及主机名 2.关闭防火墙 3.实现免密码SSH登录 4.配置MPI运行环境 5.测试 程序的执行 编译语句 运行语句 MPI ...
- Yarn 生产环境核心配置参数
目录 Yarn 生产环境核心配置参数 ResourceManager NodeManager Container Yarn 生产环境核心配置参数 ResourceManager 配置调度器 yarn. ...
- day06 HTTP协议
day06 HTTP协议 HTTP协议 什么是http? HTTP 全称:Hyper Text Transfer Protocol 中文名:超文本传输协议 是一种按照URL指示,将超文本文档从一台主机 ...
- Django url中可以使用类视图.as_view()进行映射的原因
说明:在练习天天生鲜项目时,对利用类视图去与正则匹配到的url做映射有点疑惑,经过查看他人博客以及自我分析算是整明白了,所以记录一下 参考:https://www.zmrenwu.com/post/5 ...
- 【XSS】再谈CSP内容安全策略
再谈CSP内容安全策略 之前每次都是想的很浅,或者只是个理论派,事实证明就是得动手实践 参考 CSP的用法 官方文档 通过设置属性来告诉浏览器允许加载的资源数据来源.可通过Response响应头来设置 ...
- D3基础入门四-事件处理
6.5.0版 .on("mouseover", function(e,d) e: {"isTrusted":true} 第二个参考才是数据,但这在不同的环境可能 ...
- Mac iOS区别
iOS是从MacOS衍生出来的专门未为移动设备(iphone)推出的操作系统.iOS和Mac OS的UI观念有很大差别,iOS主要支持手势操作,包括多触点技术等等.从开发人员观点看,iOS和macos ...
- ReactiveCocoa操作方法-线程\时间
ReactiveCocoa操作方法-线程 deliverOn: 内容传递切换到制定线程中,副作用在原来线程中,把在创建信号时block中的代码称之为副作用. subscribeOn: 内容传递和副作用 ...
- Vue.js 学习
一,Vue.js 介绍 Vue 是一套用于构建用户界面的渐进式javascript框架,与其它大型框架不同的是:Vue被设计为可以自底向上逐层应用.Vue的核心库只关注视图层,不仅易于上手,还便于与第 ...
- 理解inode以及软硬连接,和inode磁盘爆满的解决方案以及文件权限
理解Linux的软硬链接 创建硬链接的命令 [root@centos6 data]#ln /data/f1 /data/f2 [root@centos6 data]#ll -itotal 1613 - ...





