关键点:

1、关于filter正交

将一层中的一个$k \times k \times c$的卷积核展开为$k * k * c$的向量,表示为$f$。一层中有$J_{\ell}$个卷积核,$\boldsymbol{W}_{\ell}$为一个矩阵,矩阵的行 为卷积核展开的向量,行数为卷积核数$J_{\ell}$。

首先对于矩阵$\boldsymbol{W}_{\ell}$做标准化。

\begin{equation}
\hat{\boldsymbol{W}}_{\ell}=\boldsymbol{W}_{\ell} /\left\|\boldsymbol{W}_{\ell}\right\|
\end{equation}

一层之中卷积核间的正交性用$O_{\ell}^{f}$表示。

\begin{equation}
\boldsymbol{P}_{\ell}=\left|\hat{\boldsymbol{W}}_{\ell} \times \hat{\boldsymbol{W}}_{\ell}^{T}-I\right|
\end{equation}

\begin{equation}
O_{\ell}^{f}=\frac{\sum P_{\ell}[f]}{J_{\ell}}
\end{equation}

$\boldsymbol{P}_{\ell}$是大小为$J_{\ell} \times J_{\ell}$的矩阵,$P[i]$表示矩阵$\boldsymbol{P}_{\ell}$的$i^{t h}$行。

作者认为如果$i^{t h}$行对应的卷积核与其他的卷积核正交,那么该行的sum值应该是最小的。然后按照这个标准在层内对filter进行排序。

因为文中,作者先去构建了一个两层的网络,针对于CIFAR-10数据集,drop filter之后发现后面的层drop filter对于最后的准确度的影响相对来说要更小,所以作者就剪去更深层的filter。

2、重新初始化权重

作者在剪去不重要的权重之后,继承权重进行训练,进行一定epoch之后,将剪去的卷积核再拿来重新初始化后添加进网络,但是问题的关键在于如何进行初始化的,如果随便的进行初始化会不会有效果,作者是将新添加进来的卷积核和未添加卷积核之前的网络卷积核正交的方式来初始化的权重数据。

分析:

在github上找到了别人实现的工程:https://github.com/siahuat0727/RePr

还有相对应的复现过程记录博客:https://siahuat0727.github.io/2019/03/17/repr/

复现者有些思考方向是值得借鉴的:

1、复现者开始复现后结果并没有论文中这么好。然后开始对比自己的loss曲线和论文中的loss曲线之间的差别,发现自己复现的einitialize 之后train精度特别明显的回升,而论文中的曲线回升明显并且精度值比较高,所以作者就怀疑是不是pytorch中数据增强的问题,data augmentation,torchvision.transforms.RandomCrop

2、复现者不使用data augmentation,发现效果还是不好,这时候复现者没有就此放弃,而是做了其他的尝试,调低了学习率,发现论文中的方法的却是有效的。

3、这时候作者重新恢复使用data augmentation,使用现在的学习率,但是没有使用论文中的方法,发现data augmentation的效果更好。

总而言之,复现还存在问题。

RePr: Improved Training of Convolutional Filters的更多相关文章

  1. 论文阅读笔记六十二:RePr: Improved Training of Convolutional Filters(CVPR2019)

    论文原址:https://arxiv.org/abs/1811.07275 摘要 一个训练好的网络模型由于其模型捕捉的特征中存在大量的重叠,可以在不过多的降低其性能的条件下进行压缩剪枝.一些skip/ ...

  2. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

  3. [转] Understanding Convolutional Neural Networks for NLP

    http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 讲CNN以及其在NLP的应用,非常 ...

  4. (转)ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks

    ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks by KO ...

  5. (zhuan) Building Convolutional Neural Networks with Tensorflow

    Ahmet Taspinar Home About Contact Building Convolutional Neural Networks with Tensorflow Posted on a ...

  6. (zhuan) Using convolutional neural nets to detect facial keypoints tutorial

    Using convolutional neural nets to detect facial keypoints tutorial   this blog from: http://danieln ...

  7. [转]An Intuitive Explanation of Convolutional Neural Networks

    An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...

  8. Understanding Convolutional Neural Networks for NLP

    When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs ...

  9. 卷积神经网络LeNet Convolutional Neural Networks (LeNet)

    Note This section assumes the reader has already read through Classifying MNIST digits using Logisti ...

随机推荐

  1. python数据类型之元组类型

    #为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(1,[1,2,3],'a',(1,2)) #t=tuple((1,[1,2,3],'a',(1,2))) # print(type(t ...

  2. 一般程序中的session

    在WebHandler中无法访问session: IRequiresSessionState必须实现这个接口(不包含任何方法的标记接口), 需要导入using System.Web.SessionSt ...

  3. Unity如何退出游戏

    使用 Application.Quit(),但在 editor 模式下使用 Application.Quit()是没用的,要用 EditorApplication.isPlaying = false. ...

  4. 灵雀云受邀加入VMware 创新网络,共同助力企业数字化进程

        11月15日,在VMware主办的“VMware创新网络”2018高峰论坛上,VMware发布了VMware创新网络(VMwareInnovation Network,VIN)的长期发展规划和 ...

  5. linux配制DNS服务器基本能功能

    1.环境 Centos 6.5 bind 关闭防火墙和SELINUX 2.安装bind服务软件 yum -y install bind 3.配制主配制文件/etc/name.conf options ...

  6. Django框架详细介绍---cookie、session、自定义分页

    1.cookie 在HTTP协议介绍中提到,该协议是无状态的,也就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的 ...

  7. Visual Studio 项目依赖

    在解决方案上点击右键,选择项目依赖项 选择需要发布的所有依赖项目 主要是为了解决插件项目DLL无法生成的问题

  8. sitecore 8.2 item属性查询

    查询: query:/sitecore/content/[@@templatename='Homepage'] 结果: home (name: home, path: /sitecore/conten ...

  9. 【最新】Xmanager Power Suite 6.0 Build 0010

    永久最新版地址:https://www.netsarang.com/download/down_live.html 弹出来的下载地址,在.exe前面加r即可. 截至2018年11月14日发布的最新版本 ...

  10. Git仓库完全迁移,包括所有的分支和标签,当然也包括日志

    一.删除原有远程仓库地址 git remote rm origin 添加新的仓库地址 cd existing_repo git remote add origin <URL> git pu ...