【ZC Lin】Optimization Algorithm Inspired Deep Neural Network Structure Design

这篇文章的目的是揭示优化和网络设计之间的关系,提出了个猜想更快的优化方法可以inspire更好的网络结构。以此我们可以用优化的结构去启发地生成更多的神经网络的结构


第一部分:优化与神经网络的关系:

优化是不断地迭代,目标是从一个初始点出发,达到让一个函数F 取最小值的最优点。

特征:迭代前后的维度相同,每层用的参数一般是固定的(或者有小的改变)

神经网络是过一层层的网络

特征:迭代前后的维度可以不同,每层用的参数是变化的,可以学习的


如果我们考虑表示学习的框架(最后输出一个特征f,而不是一个scalar),并且强制要求神经网络的每层的输出输入维度不变,那么可能会让神经网络和优化有点关系。

本文比较重要的是这个lemma:


也就是说当W是固定而且对称正定的时候,我们对神经网络过一层层的就相当于做某个梯度下降。目标是找到最优的x,让函数达到最优,采用的方法是对变量做梯度下降,最后其实相当于关于x的迭代步骤是:

,他是和神经网络结构一样的。

f 的设计是这样的:


第二部分:不同优化方法inspire不同的网络结构

通过对做函数的优化,如果采用不同的优化方法,就会有不同的网络结构


GD:那么

HB:那么

Nesterov :\begin{aligned}
&\mathbf{y}_{k}=\mathbf{z}_{k}+\frac{\theta_{k}\left(1-\theta_{k-1}\right)}{\theta_{k-1}}\left(\mathbf{z}_{k}-\mathbf{z}_{k-1}\right)\\
&\mathbf{z}_{k+1}=\mathbf{y}_{k}-\nabla f\left(\mathbf{y}_{k}\right)
\end{aligned}那么其中

还有ADMM也可以对应一个结构


和神经网络对应的关系:

如果说HB和Nesterov方法达到optimal point比直接GD更快,那么他们inspird 的网络结构需要的层数也就相应更少。


第三部分:如何启发网络设计

首先上面的神经网络每一层的系数是一样的,这是肯定不对的。

但是如果把系数变成可以学习的,那肯定会更好。

文章里的实验设计就表明了更快的优化方法inspired的网络会更加好一些。但是我觉得没有好太多..


而且这里启发出来的神经网络,结构上会使得前后两层的维度一样。这在具体的神经网络里,我们可以把设计出来的网络当成一小块,然后过pooling等等。多块拼起来才是最终的网络。

你可能感兴趣的:(【ZC Lin】Optimization Algorithm Inspired Deep Neural Network Structure Design)