这篇文章的目的是揭示优化和网络设计之间的关系,提出了个猜想更快的优化方法可以inspire更好的网络结构。以此我们可以用优化的结构去启发地生成更多的神经网络的结构。
第一部分:优化与神经网络的关系:
优化是不断地迭代,目标是从一个初始点出发,达到让一个函数F 取最小值的最优点。
特征:迭代前后的维度相同,每层用的参数一般是固定的(或者有小的改变)
神经网络是过一层层的网络
特征:迭代前后的维度可以不同,每层用的参数是变化的,可以学习的
如果我们考虑表示学习的框架(最后输出一个特征f,而不是一个scalar),并且强制要求神经网络的每层的输出输入维度不变,那么可能会让神经网络和优化有点关系。
本文比较重要的是这个lemma:
也就是说当W是固定而且对称正定的时候,我们对神经网络过一层层的就相当于做某个梯度下降。目标是找到最优的x,让函数达到最优,采用的方法是对变量
做梯度下降,最后其实相当于关于x的迭代步骤是:
,他是和神经网络结构
一样的。
f 的设计是这样的:
第二部分:不同优化方法inspire不同的网络结构
通过对做函数
的优化,如果采用不同的优化方法,就会有不同的网络结构
GD:那么
HB:那么
Nesterov :那么
其中
还有ADMM也可以对应一个结构
和神经网络对应的关系:
如果说HB和Nesterov方法达到optimal point比直接GD更快,那么他们inspird 的网络结构需要的层数也就相应更少。
第三部分:如何启发网络设计
首先上面的神经网络每一层的系数是一样的,这是肯定不对的。
但是如果把系数变成可以学习的,那肯定会更好。
文章里的实验设计就表明了更快的优化方法inspired的网络会更加好一些。但是我觉得没有好太多..
而且这里启发出来的神经网络,结构上会使得前后两层的维度一样。这在具体的神经网络里,我们可以把设计出来的网络当成一小块,然后过pooling等等。多块拼起来才是最终的网络。