读画像認識のためにランダムに有線ニューラルネットワークを探ります

オリジナルリンク:https://arxiv.org/abs/1904.01569

プロジェクト住所:https://github.com/seungwonpark/RandWireNN

1.この記事では何をしましたか?

ニューラルネットワークジェネレータのこのデザイン。これらは、分類タスク(ResNet制御)と物体検出タスク(制御高速R-CNN、Detectron)にあるように、それは古典的なNN、エスケープに比べ性能トレーニング後のニューラルネットワークの古典的なトレーニングのように、乱数ネットワークを生成します図に示すように、同等または少しでもより良い点を達成します。

行うニューラルネットワークを生成する方法2.?

ニューラルネットワークは、図1を用いて生成されます。何が、非循環有向グラフ(DAG)を描くありません。なぜそこに方向がありますか?データフローの方向を示します。なぜ非環式ですか?私は、その存在は、ニューラルネットワークをより合理化され、その結果、高いレートで多重化データを作成する、理想的な状況は、ニューラルネットワークがリングを持っているの下で、リングがデータサイクルとして機能していると思います。実際には、反復的に計算するためには、我々、ニューラルネットワークのパラメータを修正するために、繰り返し計算に大きなループ内のデータネットワーク、何のリングを行っていない従来のニューラルネットワークの場合。

DAGを生成する方法は?図は、最初に決定された点側ヒューリスティックました。

図は、ノードVからなるとEエッジ、図の複雑さはVおよびEの数に依存します 著者は、3つのアルゴリズムの構築グラフを選択しました:

(1)ERアルゴリズム:初期状態0 Nは確率pエッジを介して接続されたノードのペアごとに、エッジノードされ、モデルは、ER(p)と表すことができます。場合p>\frac{ln(N)}{N}時間は、グラフの連結成分になるために大きな可能性を有しています。

(2)BAアルゴリズム:初期状態はM個のノードです。順次M側に結合された新しいノード、各追加ノードを追加します。既存のノードvに接続された特定の確率、Vの程度に関連する確率に新しいノードを追加します。ノードの数がNに増加するまで モデルは、BA(M)を示すことができます。

(3)WS算法:初始状态下,N个节点排成环状,每个节点与前后K/2个相邻节点相连(K是偶数)。以顺时针的顺序,对每个节点v,考察与它相连的第i个节点,以p的概率“重新连接”它。所谓“重新连接”,就是随机选取一个v以外的,当前没有与本节点相连的节点进行连接。重复该操作K/2次,得到新图。该模型可记做WS(K,P)。

如何将生成的无向图转化成DAG?

给这些节点编号,让所有边中编号小的节点指向编号大的节点。在ER图中,节点编号的顺序是随机的;在BA算法中,初始的M个节点编号是1-M随机的,之后的节点编号是依插入顺序的;在WS图中,节点序号是顺时针序。

如何将DAG映射成网络呢?

网络是由传送数据的数据流线路,以及处理数据流的运算模块构成的。前者与边构成映射,后者与节点构成映射,该思路是符合人们的直观认识的。

具体来说,边操作包含:将数据流从一个节点传递到另一个节点。节点操作由3个部分组成:

(1)aggregation(聚集):将输入数据流加权求和,权值是可学习的,且是正值。

(2)transformation(转换):将聚集的数据做卷积、激活等操作,本文中采用的是ReLU-Conv-BN操作。卷积部分是默认用类似Inception网络里的3x3 separable conv做的(yige 3x3深度可分离卷积结构后跟一个1x1卷积,可参考博客:https://blog.csdn.net/u012426298/article/details/80998547)

(3)distribution(分配):将加工过的数据输出到其他节点。

之所以这样设计节点和边的操作是因为这样的话有如下好处:

(1)保持了进出的通道数一致,这防止了某些出入度节点因为计算量较大而在网络中有更大影响力。

(2)保证了FLOPs和参数数目不变。

(3)聚集操作和分配操作几乎没有参数,这样使得FLOPs、参数数目和节点数目差不多呈线性正相关。

定义了这种映射关系之后,就要解决如何输入、输出的问题。解决方法也很图论,就是类似于流网络技术,额外添加一个输入节点、一个输出节点。

继续类比神经网络的结构,我们发现一个神经网络往往由多个部分组成,每个部分有着不同的结构,承担着不同的任务。我们将上述生成的一个“图”网络视作一个stage,而整个神经网络则由多个stage拼接而成。下面比较一下ResNet和与之类似的5-stage RandWire architecture的网络结构。

可以看到两者的大体结构是形成了对应关系的,而且在性能上随机连接网络在分类任务上的性能要好于ResNet。

接下来我们整合一下映射算法,定义一个映射g(\Theta,s),第一个参数指定了网络的stage数目,各stage残差块数目和深度/宽度/过滤器尺寸/激活函数类型等。第二个参数是个伪随机数种子(服从高斯分布),在g内部使用,使得同一个\Theta也能产生不同的网络。这就给了我们手动优化网络的空间(采用line/grid search处理这些参数域)。

我们知道,调试神经网络的超参数是炼丹的关键。关于optimization,是否可以逐步做到AUTO_ML是我们关心的事情。对比经典NN和本文提出的这些随机生成的网络,实验结果表明这些随机网络不需要怎么调参,就能获得比较好的结果,更符合AUTO_ML的趋势。

3.随机网络性能如何呢?

经过一系列的模型参数设置(WS(4,0.75)),在ImageNet的分类任务上:

在COCO object detection上:

可以说这种随机生成的网络确实具有较大的潜力的,未来会不会成为设计网络生成器的时代呢。原先我们将NN中的权重等参数建模,去求一个最优解。现在我们将NN也建成模型,在更大的空间里搜索最优解。这样的解会不会过拟合呢,哪些解能为神经科学研究提供参考呢,让我们拭目以待吧。

发布了22 篇原创文章 · 获赞 0 · 访问量 7401

おすすめ

転載: blog.csdn.net/georgeandgeorge/article/details/89289388