JP7036689B2 - Computer system - Google Patents
Computer system Download PDFInfo
- Publication number
- JP7036689B2 JP7036689B2 JP2018151323A JP2018151323A JP7036689B2 JP 7036689 B2 JP7036689 B2 JP 7036689B2 JP 2018151323 A JP2018151323 A JP 2018151323A JP 2018151323 A JP2018151323 A JP 2018151323A JP 7036689 B2 JP7036689 B2 JP 7036689B2
- Authority
- JP
- Japan
- Prior art keywords
- pooling
- node
- value
- layer
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Analysis (AREA)
Description
本開示は、計算機システムに関する。 The present disclosure relates to a computer system.
社会インフラ及び都市等を効率的に設計、運用するため、実社会及びサイバ空間のデータを処理し、社会インフラ等の状態を解析し、若しくは予測し、又は、社会インフラ等を制御し、若しくは誘導する技術が注目されている。処理されるデータは、温度及び湿度等の環境のセンシングデータ、自動車等の機械のログデータ、並びにメール及びSNS等の人間又は組織のログデータから構成される。 In order to efficiently design and operate social infrastructure and cities, it processes data in the real world and cyber space, analyzes or predicts the state of social infrastructure, etc., or controls or guides social infrastructure, etc. Technology is attracting attention. The data to be processed is composed of environmental sensing data such as temperature and humidity, log data of machines such as automobiles, and log data of humans or organizations such as mail and SNS.
近年、ニューラルネットワークを使用する機械学習が、データ解析する手法として注目されている。ニューラルネットワークは、高速で正確なデータ解析を容易に実現することができる。上述のようなシステムのデータを含む様々な種類のデータは、グラフ構造により表わすことができるグラフデータである。 In recent years, machine learning using neural networks has been attracting attention as a method for data analysis. Neural networks can easily realize high-speed and accurate data analysis. Various types of data, including system data as described above, are graph data that can be represented by a graph structure.
例えば、国際公開第2016/174725号(特許文献1)は、グラフデータのニューラルネットワークを構築得る技術を開示する。具体的には、特許文献1は、一つ以上のニューロンを含む複数の層から構成されるニューラルネットワークを用いた演算処理を実行する計算機であって、複数のノード及び複数のノード間を接続する一つ以上のエッジから構成されるグラフデータ、及びニューラルネットワークに入力される一つ以上の値を格納するサンプルデータを格納する記憶部と、グラフデータを用いて、ニューラルネットワークを構築する構築部と、を備え、構築部は、グラフデータに含まれる前記複数のノードに基づいて、複数の層の各々の一つ以上のニューロンを生成し、グラフデータに含まれる一つ以上のエッジに基づいて、複数の層の各々に含まれる一つ以上のニューロン間の接続を生成することによってニューラルネットワークを構築する、ことを開示する(例えば要約)。また、非特許文献1は、関係グラフ畳み込みネットワークの例を開示する。
For example, International Publication No. 2016/174725 (Patent Document 1) discloses a technique capable of constructing a neural network of graph data. Specifically,
様々な種類のニューラルネットワークが知られている中で、畳み込みニューラルネットワーク(CNN)は、特に画像処理に有用なニューラルネットワークとして知られている。グラフデータは関係性を有しており、グラフデータをCNNにより解析することができれば有用である。 Among various types of neural networks known, a convolutional neural network (CNN) is known as a neural network particularly useful for image processing. The graph data has a relationship, and it is useful if the graph data can be analyzed by CNN.
CNNを深いネットワークで構成するいわゆる深層学習の実現には、プーリング、又は、より一般にパラメータの自由度を上層に行くほど小さくする操作が必要である。プーリング層なしで畳み込み層だけを多数重ねると、表現可能な自由度が減らない(正則化がかからない)ままパラメータ数のみが増えることととなり、パラメータの学習時に過学習を引き起こす。 In order to realize so-called deep learning in which a CNN is composed of a deep network, pooling or, more generally, an operation of reducing the degree of freedom of parameters toward the upper layer is required. If a large number of convolution layers are stacked without a pooling layer, only the number of parameters increases without reducing the degree of freedom that can be expressed (regularization is not applied), which causes overfitting when learning the parameters.
従来のグリッドデータのCNN(グリッド上のCNN)は、畳み込み演算(及び非線形活性化関数の適用)の後に、プーリングと呼ばれる操作で画像サイズを縮小することが一般的である。しかし、グラフデータのCNNにおいて、プーリング操作の実現は困難である。 In the conventional grid data CNN (CNN on the grid), it is common to reduce the image size by an operation called pooling after the convolution operation (and application of the nonlinear activation function). However, it is difficult to realize the pooling operation in the CNN of the graph data.
グリッドデータにおけるプーリング操作を単純にグラフデータに対応させると、適当にグラフデータのノードを削除してグラフデータのサイズを縮小すればよいと考えられる。しかしながら、どのようにして削除するノードと残すノードを選ぶのかの指針が明らかでない。 If the pooling operation in the grid data is simply made to correspond to the graph data, it is considered that the node of the graph data should be appropriately deleted to reduce the size of the graph data. However, the guideline on how to select the node to be deleted and the node to be retained is not clear.
したがって、グラフ上のCNNにおいてパラメータの自由度を低減するプーリングを実現する技術が望まれる。 Therefore, a technique for realizing pooling that reduces the degree of freedom of parameters in the CNN on the graph is desired.
本開示の一態様は、グラフ上の畳み込みニューラルネットワークを実行する、計算機システムであって、1以上のプロセッサと、1以上の記憶装置と、を含み、前記グラフ上の畳み込みニューラルネットワークは、1以上の畳み込み層と、1以上のプーリング層と、を含み、前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、前記1以上のプロセッサは、各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、プーリング層の後段の畳み込み層のカーネルのサイズは、前段の畳み込み層のカーネルのサイズよりも大きい。 One aspect of the present disclosure is a computer system that performs a convolutional neural network on a graph, comprising one or more processors and one or more storage devices, wherein the convolutional neural network on the graph is one or more. Convolutional layer and one or more pooling layers, the one or more storage devices store the kernel weight data of the one or more convolutional layers, and the one or more processors in each convolutional layer. The value of each node is updated by a convolutional operation based on a kernel having a size of a predetermined number of hops, and in each pooling layer, the value of each node is set to the value of each node and within the pooling range of a predetermined number of hops from each node. It is updated by the pooling process based on the value of the node, and the size of the kernel of the convolutional layer behind the pooling layer is larger than the size of the kernel of the convolutional layer of the previous stage.
本開示の一態様によれば、グラフ上の畳み込み演算において適切にプーリング処理を行うことができる。 According to one aspect of the present disclosure, the pooling process can be appropriately performed in the convolution operation on the graph.
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that the present embodiment is merely an example for realizing the present invention and does not limit the technical scope of the present invention. The same reference numerals are given to the common configurations in each figure.
[システム構成]
図1は、計算機システムの構成の一例を示す。図1に示すように、計算機システム100は、複数の計算機101、及びストレージシステム102から構成され、複数の計算機101とストレージシステム102とは、互いに通信できるように、ネットワーク103を介して接続される。本実施例の計算機システム100は、3つの計算機101を含む。図1は、一つの計算機のみを例として符号100で指示する。なお、計算機及びストレージシステムの数は、任意である。計算機システム100は、一つの計算機101で構成されていてもよい。
[System configuration]
FIG. 1 shows an example of the configuration of a computer system. As shown in FIG. 1, the
ネットワーク103は、WAN(Wide Area Network)、LAN(Local Area Network)、及びSAN(Storage Area Network)等が考えられる。なお、ネットワーク103の種別は限定されない。計算機101それぞれとストレージシステム102接続するネットワークと、計算機101それぞれを接続するネットワークは、異なるネットワークであってもよい。
As the
計算機101は、プロセッサ110、メモリ111、通信インタフェース112、及び入出力インタフェース118を含み、各構成はバス114を介して互いに接続される。また、入出力装置119は、入出力インタフェース118を介して他の装置と接続される。プロセッサ110は、演算処理を実行する1つ以上のCPU115を含む。図1において、一つのCPUのみが符号115で指示されている。CPU115は、メモリ111に格納されるプログラムを実行することによって、計算機101が有する機能を実現する。また、計算機101上で実行される処理は1つ以上のCPU115によって実行される。なお、1つのCPU115が複数の処理を実行してもよい。なお、CPU115は、FPGA又はGPU等の演算器であってもよい。
The
メモリ111は、プロセッサ110が実行するプログラム及び当該プログラムによって使用される情報を格納する。また、メモリ111は、プロセッサ110が実行する1つの処理に対して割り当てられるメモリ空間を含む。なお、当該メモリ空間は、複数のメモリ111のメモリ領域上に確保されてもよいし、また、1つのメモリ111のメモリ領域上に確保されてもよい。また、メモリ111は、複数の処理のメモリ空間を含んでもよい。メモリ111に格納されるプログラム及び情報については後述する。
The
通信インタフェース112は、ネットワーク103を介して外部装置と通信する。プロセッサ110は、通信インタフェース112を介して、他の装置にアクセスする。入出力インタフェース118は、ネットワーク103を介して、他の装置と入出力装置119との通信を媒介する。
The
ストレージシステム102は、ディスクインタフェース133、及び複数の記憶デバイス117を含み、各装置はバス135を介して互いに接続される。ディスクインタフェース133は、複数の記憶ドライブ134と接続するためのインタフェースである。記憶ドライブ134は、各種データを格納する記憶装置であり、例えば、HDDやSSDである。図1において、一つの記憶ドライブのみが符号134で指示されている。
The storage system 102 includes a
メモリ111は、データ処理部120を実現するプログラムを格納する。データ処理部120を実行するプロセッサ110は、逆誤差伝播により学習処理、及び順伝播による分析処理を実行する。学習処理では、プロセッサ110は、学習データ122を使用して、構築したニューラルネットワーク内のエッジの重みを決定する。分析処理では、プロセッサ110は、分析対象であるデータを、構築されたニューラルネットワークに入力することによって、分類や回帰等の所定の分析を行う。
The
なお、データ処理部120は、複数のプログラムモジュールから構成されてもよい。例えば、データ処理部120は、ニューラルネットワークを構築する構築モジュール、学習処理を実行する学習処理モジュール、及び分析処理を実行する分析処理モジュールを含んでもよい。また、それぞれのプログラムモジュールを別々の計算機101が実行してもよい。
The
[ニューラルネットワーク]
図2は、ニューラルネットワークの一例を示す。図2に示すニューラルネットワーク200は、入力層201、中間層202、及び出力層203の3層から構成される。各層は1つ以上のニューロン211から構成される。また、各層のニューロン211は、他の層の少なくとも1つのニューロン211と接続する。具体的には、入力層201のニューロン211は、中間層202の少なくとも1つのニューロン211と接続し、また、中間層202のニューロン211は、出力層203の少なくとも1つのニューロン211と接続する。入力層201の側が前段側であり、出力層203の側が後段側である。
[neural network]
FIG. 2 shows an example of a neural network. The neural network 200 shown in FIG. 2 is composed of three layers, an
エッジ212はニューロン211間のデータの出力を表す。ニューラルネットワーク200は、分析処理において、入力されたデータを入力層201から、中間層202を介して、出力層203に順伝播する。各ニューロン211に入力された値は、エッジに割り当てられている重みと掛け算され、エッジ212によって接続される他の層のニューロン211に出力される。入力211への入力はバイアスを含んでよい。重みは、ニューロン211間の接続の強さを表し、後述する学習処理によって決定される。学習処理は、損失信号の誤差逆伝播により各層の重みが更新される。
図1に戻って、メモリ111は、グラフデータ121、学習データ122、及び重みデータ123を格納する。グラフデータ121は、任意の要素に対応するノード、及びノード間を接続するエッジから構成されるグラフ構造を有するデータである。学習データ122は、ニューラルネットワークを用いた学習処理において用いられるデータである。重みデータ123は、ニューラルネットワークの学習処理の処理結果である重みを管理する情報である。
Returning to FIG. 1, the
グラフデータ121及び学習データ122は、例えば、ストレージシステム102に格納されており、プロセッサ110が、ストレージシステム102からグラフデータ121及び学習データ122を取得し、取得されたグラフデータ121及び学習データ122をメモリ111にロードする。
The
[グリッド上のCNN]
図3は、畳み込みニューラルネットワーク(CNN)の例を示す。本開示の計算機システム100は、グラフ上のCNNを実行する。図3を参照して、典型的なグリッド上のCNN300を説明する。グリッド上のCNNは、画像データのようなマトリックス状(グリッド状)の入力データを処理する。
[CNN on the grid]
FIG. 3 shows an example of a convolutional neural network (CNN). The
図3の例において、28x28のグレースケールの手書きの数字の画像301が入力される。CNN300は、5x5の畳み込みフィルタ及びReLU関数を適用して(302)、6つの24x24の特徴マップ303を生成する。CNN300は、これら特徴マップに2x2の最大値プーリングを適用して(304)、画像サイズを半分に縮小された特徴マップ305を生成する。
In the example of FIG. 3, a 28x28 grayscale handwritten
CNN300は、さらに、5x5の畳み込みフィルタ及びReLU関数を実行して(306)、10の8x8の特徴マップ307を生成する。CNN300は、これら特徴マップに2x2の最大値プーリングを適用して(308)、画像サイズを半分に縮小された特徴マップ309を生成する。その後、2層の全結合層よりなるパーセプトロン310が、最終的に10次元のベクトルを出力する。出力された10次元ベクトルはSoftMax関数によりワンホットベクトル表現に変換され、入力画像が0~9までのどの数字であるかの尤もらしさを表す。
The CNN300 also performs a 5x5 convolution filter and a ReLU function (306) to generate 10 8x8 feature maps 307. The CNN300 applies a 2x2 maximum value pooling to these feature maps (308) to generate a
[グラフ上のCNN(順伝播)]
以下において、本開示のグラフ上のCNNについて説明する。計算機システム100は、グラフ上のCNNを実行する。図4は、グラフ上のCNNの構成例400を示す。図4は、CNN400における順伝播(分析処理)を示し、データ処理部120により実行される。グラフ上のCNN400は、各層において、共通のグラフ構造上でデータを処理する。
[CNN (forward propagation) on the graph]
Hereinafter, the CNN on the graph of the present disclosure will be described. The
グラフ構造は、複数のノードと、それぞれ二つノードを接続する複数のエッジで構成されている。グリッド構造はグラフ構造の一つであり、各ノードが隣接するノードそれぞれとエッジで接続されている。本開示におけるグラフ構造は、任意の複数ノードと、任意数のエッジとで構成される。一つのノードは、1以上の任意の数のエッジに接続される。 The graph structure is composed of a plurality of nodes and a plurality of edges connecting the two nodes. The grid structure is one of the graph structures, and each node is connected to each of the adjacent nodes by an edge. The graph structure in the present disclosure is composed of an arbitrary plurality of nodes and an arbitrary number of edges. A node is connected to any number of edges, one or more.
グラフデータは、グラフ構造を有するデータであって、ノードそれぞれに状態値が割り当てられている。状態値は、1次元以上のベクトルで表わすことができる。図4に示すように、グラフデータ121が、グラフ上のCNN400に入力される。上述のように、グラフデータ121の各ノードは、状態値を有しており、ノード間のエッジが定義されている。
The graph data is data having a graph structure, and a state value is assigned to each node. The state value can be represented by a vector having one or more dimensions. As shown in FIG. 4, the
図4のCNN400は、図3を参照して説明したグリッド上のCNN300のように、2つの畳み込み層と2つのプーリング層を含む。具体的には、CNN400は、第1畳み込み層411、第1プーリング層412、第2畳み込み層413、第2プーリング層414及び全域平均プーリング(Global Average Pooling:GAP)層415を含む。第1畳み込み層411は、グラフデータ121のグラフ構造上で、入力されたグラフデータ121の畳み込み演算を行う。これにより、2つの特徴マップ402が生成される。
The
第1プーリング層412、グラフデータ121のグラフ構造上で、特徴マップ402それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ403に変換する。第2畳み込み層413は、グラフデータ121のグラフ構造上で、特徴マップ403の畳み込み演算を行う。これにより、3つの特徴マップ404が生成される。
On the graph structure of the
第2プーリング層414、グラフデータ121のグラフ構造上で、特徴マップ404それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ405に変換する。特徴マップ405は全域平均プーリング層415に入力される。全域平均プーリング層415は、チャネル毎に全てのニューロンの値の平均値をとる。
On the graph structure of the
畳み込み層及びプーリング層の処理の詳細は後述するが、畳み込み層及びプーリング層は、それぞれ、グラフデータの各ノードの状態値を更新する。したがって、各層に入力されたデータのグラフ構造は、出力データにおいて維持されている。具体的には、入力グラフデータ121、特徴マップ402~405のグラフ構造は共通である。各層において、ノードそれぞれに対応するニューロンが存在し、ニューロンは、対応するノードの新たな値を出力する。なお、他の例において、1又は複数の層における入力データのグラフ構造が出力データのグラフ構造と異なっていてもよい。
The details of the processing of the convolution layer and the pooling layer will be described later, but each of the convolution layer and the pooling layer updates the state value of each node of the graph data. Therefore, the graph structure of the data input to each layer is maintained in the output data. Specifically, the graph structure of the
図5は、グラフデータ121の例を示す。図5に示すグラフデータ121は、エッジの構造情報500及びノードの構造情報510を含む。エッジの構造情報500は、エッジID501、ノードID502、及びエッジ属性503を含む。エッジID501は、グラフデータのエッジそれぞれのIDを示す。ノードID502は、グラフデータそれぞれのノードのIDを示す。エッジ属性503は、エッジそれぞれに付与されている属性情報を示す。エッジ属性503は、エッジの向き及び種類の情報を含む。
FIG. 5 shows an example of
ノードの構造情報510は、ノードID511、エッジID(OUT)512、エッジID(IN)513、及びノード属性514を含む。ノードID511は、ノードID502と同一のである。エッジID(OUT)512は、ノードから流出するエッジのIDを示す。ノードは、エッジID(OUT)512が示すエッジの始点ノードである。エッジID(OUT)513は、ノードID511が示すノードに流入するエッジのIDを示す。ノードは、エッジID(IN)513が示すエッジの終点である。ノード属性514は、ノードの属性情報を示す。ノード属性514は、ノードの種類の情報を含む。
The
様々な種類の情報がグラフデータで表わすことができ、例えば、地図情報、分子構造情報、ソーシャルネットワークの情報、交通網の情報などが、グラフデータで表わすことができる。例えば、地図の位置がノードで表わされ、道路がエッジで表わされる。土地を表すノードの属性情報は、不動産価値や、駅又は公園等の土地の利用形態などを含む。また、道路を表すエッジの属性情報は、路線名、道路幅、接続する土地(ノード)の属性、向きなどを含む。土地及び道路の属性情報に応じて、土地及び道路それぞれに属性種類が定義される。例えば、グラフCNNを既存の不動産価値を表す属性情報を教師データとして学習することで、与えられた土地の不動産価値の推定を行うことができる。 Various types of information can be represented by graph data, and for example, map information, molecular structure information, social network information, transportation network information, and the like can be represented by graph data. For example, map locations are represented by nodes and roads are represented by edges. The attribute information of the node representing the land includes the real estate value, the usage pattern of the land such as a station or a park, and the like. Further, the attribute information of the edge representing the road includes the route name, the road width, the attribute of the connected land (node), the direction, and the like. Attribute types are defined for each land and road according to the attribute information of the land and road. For example, by learning the graph CNN from the attribute information representing the existing real estate value as teacher data, the real estate value of the given land can be estimated.
グラフ上の畳み込み演算には、大きく分けて、グラフフーリエ変換を用いる手法と、Relational Graph Convolution Network(R-GCN)と呼ばれるより直接的な手法がある。このうち、グラフフーリエ変換を用いる手法は、理論的な背景が明らかという利点があるが、重複エッジのない単純な無向グラフにしか適用することができないという欠点がある。 Convolutional operations on graphs can be broadly divided into a method using a graph Fourier transform and a more direct method called a Regional Graph Convolution Network (R-GCN). Of these, the method using the graph Fourier transform has the advantage that the theoretical background is clear, but has the disadvantage that it can be applied only to a simple undirected graph without overlapping edges.
一方、R-GCNは、グリッド上の畳み込み演算の直感的な拡張になっており、有向グラフエッジ、又はより一般的にノードやエッジに属性が付与されている場合でも自然に定義することが可能である。本開示の特徴は、いずれの手法にも適用することができるが、以下において、R-GCNの例を説明する。 On the other hand, R-GCN is an intuitive extension of the convolution operation on the grid, and can be defined naturally even when attributes are given to directed graph edges, or more generally nodes and edges. be. Although the features of the present disclosure can be applied to any method, an example of R-GCN will be described below.
[R-GCNの例]
図6、7及び8を参照して、R-GCNの公知の例を説明する。畳み込み演算は、ノードの状態値を、当該ノード及び周囲の他のノードの状態値に基づき、更新する。以下においては、一つのノードの状態値を更新する処理の例を説明する。図6は一つのノード600及び当該ノード600に接続されているノード611~614、621~623を示す。ノード600及びノード611~614それぞれを接続するエッジは属性R1を有する。ノード600及びノード621~623それぞれを接続するエッジは属性R2を有する。
[Example of R-GCN]
A known example of R-GCN will be described with reference to FIGS. 6, 7 and 8. The convolution operation updates the state value of a node based on the state value of the node and other nodes around it. In the following, an example of the process of updating the state value of one node will be described. FIG. 6 shows one
図7は、重みデータ123の一部であって、ノード600の畳み込みに関する値を示す。重みデータ123は、エッジ属性種類601と重み602を含む。エッジ属性種類601は、エッジ属性の種類の識別子を示す。本例において、エッジ属性種類601とグラフデータ121のエッジ属性503で示される種類とは異なる。これらは同一であってもよい。重み602は、エッジ属性種類それぞれの重みを示す。重み602が示す値は、CNN400の学習(訓練)において更新される。なお、本例のノード600の状態値の畳み込み演算のバイアスは0とする。
FIG. 7 is a part of the
図6及び7に示すように、エッジの属性種類は、エッジの属性及びノード600に対するエッジの方向により定義されている。具体的には、ノード612~614とノード600とを接続するエッジのエッジ属性種類は、R1(IN)である。ノード611とノード600とを接続するエッジのエッジ属性種類は、R1(OUT)である。ノード622及び623とノード600とを接続するエッジのエッジ属性種類は、R2(IN)である。ノード621とノード600とを接続するエッジのエッジ属性種類は、R2(OUT)である。エッジ631の始点及び終点はノード600のセルフループであり、そのエッジ属性種類は、SELFである。
As shown in FIGS. 6 and 7, the edge attribute type is defined by the edge attribute and the direction of the edge with respect to the
図8は、ノード600の状態値の更新を模式的に示す。畳み込み演算は、まず、同一エッジ属性種類のノードの状態値の総和を計算する。具体的には、以下の通りである。ノード612~614のエッジ属性種類はR1(IN)である。畳み込み演算は、ノード612~614の状態値801の総和811を計算する。ノード611のエッジ属性種類はR1(OUT)である。畳み込み演算は、ノード611の状態値802の総和812を計算する。
FIG. 8 schematically shows the update of the state value of the
ノード622及び623のエッジ属性種類はR2(IN)である。畳み込み演算は、ノード622及び623の状態値803の総和813を計算する。ノード621のエッジ属性種類はR2(OUT)である。畳み込み演算は、ノード621の状態値804の総和814を計算する。畳み込み演算は、セルフループエッジ631に対して、ノード600の状態値805の総和815を計算する。
The edge attribute type of the
次に、畳み込み演算は、エッジ属性種類の総和と対応する重みの積和を計算する。エッジ属性種類の重みは、図7の重みデータ123に示されている。つまり、畳み込み演算は、エッジ属性種類の総和それぞれに、重みデータ123が示す重みを乗算し、それらの総和を計算する(821)。畳み込み演算は、この積和にReLU関数822を適用して得られる状態値831を出力する。
Next, the convolution operation calculates the sum of products of the weights corresponding to the sum of the edge attribute types. The weights of the edge attribute type are shown in the
図6~8を参照して説明したグラフ上のCNNの例は、対象ノードの状態値と、当該対象ノードに隣接するノード状態値とから、当該対象ノードの状態値の更新値を決定する。隣接するノードは、対象ノードから1ホップのノードである。ホップ数は、ノード間の距離を表し、ノード間のエッジの数を示す。一つのノードから他のノードまで複数の経路が存在する場合、それぞれの経路のホップ数が定義される。 In the example of CNN on the graph described with reference to FIGS. 6 to 8, the update value of the state value of the target node is determined from the state value of the target node and the node state value adjacent to the target node. The adjacent node is a node one hop from the target node. The number of hops represents the distance between the nodes and the number of edges between the nodes. If there are multiple routes from one node to another, the number of hops for each route is defined.
[グラフ上のCNNの各層の処理]
図9は、グラフ上のCNN400の第1畳み込み層411、第1プーリング層412、第2畳み込み層413及び第2プーリング層414の詳細を示す。第1畳み込み層411は、各ノードの状態値の更新値を、当該ノード及び1ホップ内のノードの状態値から、ReLU関数を使用して計算する。第1プーリング層412は、1ホップ内でのプーリング処理を実行する。プーリング処理の詳細は後述する。
[Processing of each layer of CNN on the graph]
FIG. 9 shows the details of the
第2畳み込み層413は、各ノードの状態値の更新値を、当該ノード及び2ホップ内のノードの状態値から、ReLU関数を使用して計算する。第2プーリング層414は、2ホップ内でのプーリング処理を実行する。2ホップ内でのプーリング処理を実行するかわりに、1ホッププーリングを2回実行してもよい。
The
図9に示すように、第2畳み込み層413の畳み込み演算の範囲は、第1畳み込み層411の畳み込み演算の範囲よりも広い。また、第1プーリング層412が1ホップ内でのプーリング処理を実行することに対して、第2プーリング層414は、2ホップ内でのプーリング処理を実行する。これは、第2プーリング層414のプーリング処理の範囲が、第1プーリング層412のプーリング処理の範囲よりも広いことを意味する。
As shown in FIG. 9, the range of the convolution calculation of the
図3を参照して説明したように、従来のグリッド上のCNN300は、畳み込み演算(畳み込み演算+非線形活性化関数の適用)の後にプーリング処理(通常は最大値プーリング処理)を実行することで、画像サイズを縮小する。これに対して、本例のグラフ上のCNN400のプーリング層412及び414は、グラフ構造を縮小することなくプーリング処理を実行する。後述するように、グラフ上のCNN400におけるプーリング処理は、グラフのサイズを一定に保つ一方で、近隣のノード間で値を近づけるという正則化をとりいれることで、実質的にプーリングを行う。
As described with reference to FIG. 3, the CNN300 on the conventional grid performs a pooling process (usually a maximum value pooling process) after a convolution operation (convolution operation + application of a nonlinear activation function). Reduce the image size. On the other hand, the pooling layers 412 and 414 of the
第1プーリング層412の直後の第2畳み込み層413は、プーリング層で近隣のノードの値が近づいてしまうため、広い範囲を見る、すなわち、畳み込みフィルタのカーネルサイズを広げる。これにより、プーリング処理後の畳み込み演算がより有効となる。第2畳み込み層413の後のプーリング層414は、第2畳み込み層413の畳み込みフィルタのカーネルサイズが広げられたため、プーリング範囲を広げることで、より有効なプーリング処理を実現する。
The
図9に示す例において、第1畳み込み層411の範囲は1ホップ内であるが、第1畳み込み層411の範囲はより広くてもよい。第2畳み込み層413の範囲は、第1畳み込み層411の範囲より広ければ、それらの関係は限定されない。例えば、第2畳み込み層413の範囲は、3ホップ以上であってもよい。
In the example shown in FIG. 9, the range of the
グラフ上のCNN400の例は、それぞれ3増以上の畳み込み層及びプーリング層を含むことができる。例えば、畳み込み層の畳み込み演算の範囲(ホップ数)は、例えば、一つ前の畳み込み層の定数倍である。ホップ数2倍の例において、畳み込み層の畳み込み演算の範囲は、1ホップ、2ホップ、4ホップ、8ホップと増加する。ホップ数1.5倍の例において、畳み込み層の畳み込み演算の範囲は、1ホップ、2ホップ、3ホップ、4ホップ、6ホップと増加する。プーリング層のプーリング処理の範囲(ホップ数)は、例えば、直前の畳み込み層のホップ数と一致させる。 Examples of CNN400 on the graph can include three or more convolutional layers and pooling layers, respectively. For example, the range (number of hops) of the convolution operation of the convolution layer is, for example, a constant multiple of the previous convolution layer. In the example of doubling the number of hops, the range of the convolution operation of the convolution layer increases to 1 hop, 2 hops, 4 hops, and 8 hops. In the example of 1.5 times the number of hops, the range of the convolution operation of the convolution layer increases to 1 hop, 2 hops, 3 hops, 4 hops, and 6 hops. The range (number of hops) of the pooling process of the pooling layer is matched with, for example, the number of hops of the immediately preceding convolution layer.
以下において、グラフ上のCNN400の処理の例を示す。図10は、グラフ上のCNN400に入力されるグラフデータ121の例を示す。グラフデータ121は、ノードN1~N13と、それぞれノード間を接続する複数のエッジを含む。図10は明示していないが、ノードN1~N13のそれぞれに状態値が定義されており、また、エッジのそれぞれにエッジ属性種類が定義されている。
The following is an example of processing of CNN400 on the graph. FIG. 10 shows an example of
[第1畳み込み層]
図11は、第1畳み込み層411の畳み込み演算の例を示す。図11は、ノードN1の状態値の更新の例を示す。第1畳み込み層411は、1ホップ内で畳み込み演算を実行する。ノードN1から1ホップ内のノード、つまり、ノードN1に一つのエッジで接続されているノードは、ノードN2、N6、N9、N10及びN12である。第1畳み込み層411は、ノードN2、N6、N9、N10及びN12の状態値を集め、それら状態値とノードN1の状態値とから、ノードN1の更新状態値を計算する。
[1st convolution layer]
FIG. 11 shows an example of the convolution operation of the
図12は、グラフデータ121の属性の例を示す。グラフデータのエッジそれぞれにエッジ属性種類が定義されており、Pと数字からなる符号で指示されている。例えば、ノードN1とノードN12の間のエッジのエッジ属性種類はR1であり、ノードN1とノードN2の間のエッジのエッジ属性種類はR2であり、ノードN1とノードN6の間のエッジのエッジ属性種類はR3である。エッジ属性種類R1のエッジは実線で表わされ、エッジ属性種類R2のエッジは破線で表わされ、エッジ属性種類R3のエッジは2点鎖線で表わされている。
FIG. 12 shows an example of the attributes of the
図13は、本例の重みデータ123の一部のデータを示す。重みデータ123は、対象ノードの現在状態値の重みW0及び1ホップのエッジ属性種類の重みを定義すると共に、2ホップのエッジ属性種類の重みを定義する。1ホップのエッジ属性種類は、エッジそれぞれのエッジ属性種類R1、R2及びR3と一致する。2ホップのエッジ属性種類は、2つのPと2つの数字で表わされており、二つのエッジのエッジ属性種類の組を示す。
FIG. 13 shows a part of the
より具体的には、2ホップのエッジ属性種類は、対象ノードに近いエッジのエッジ属性種類と対象ノードから遠いエッジのエッジ属性種類を示す。例えば、エッジ属性種類R1R2は、対象ノードと隣接ノードの間のエッジのエッジ属性種類がR1であり、対象ノードの隣接ノードと2ホップ離れたノードとの間のエッジのエッジ属性種類がR2であることを表す。 More specifically, the two-hop edge attribute type indicates an edge attribute type of an edge close to the target node and an edge attribute type of an edge far from the target node. For example, in the edge attribute type R1R2, the edge attribute type of the edge between the target node and the adjacent node is R1, and the edge attribute type of the edge between the adjacent node of the target node and the node two hops away is R2. Represents that.
図14は、第1畳み込み層411によりノードN1の状態値の更新を示す。第1畳み込み層411は、対象ノードN1の状態値V1及び、対象ノードN1の1ホップ内のノード、つまり隣接ノードN2、N6、N9、N10、N12の状態値V2、V6、V9、V10、V12を取得する。対象ノードN1と、隣接ノードN2、N6、N9、N10、N12それぞれとの間のエッジのエッジ属性種類は、R2、R3、R1、R2、R1である。
FIG. 14 shows the update of the state value of the node N1 by the
図13の重みデータ123が示すように、自ノードの状態値の重みはW0、エッジ属性種類R1、R2及びR3の重みは、それぞれ、W1、W2及びW3である。畳み込み演算の例は、エッジのエッジ属性種類毎に異なる重みをノードの状態値に乗算して足し合わせ、全てのエッジ属性種類の総和を計算する。つまり、ノードN1のための畳み込み演算は、以下の数式で表わされる。なお、バイアスは0とした。
V1´=W0×V1+W1*(V9+V12)+W2*(V2+V10)+W3*V6
As shown by the
V1'= W0 x V1 + W1 * (V9 + V12) + W2 * (V2 + V10) + W3 * V6
第1畳み込み層411は、畳み込み演算の結果の状態値V1´を非線形関数であるReLUに入力し、その出力をノードN1の新たな状態値V1として保持する。なお、ReLUと異なる非線形関数(例えばシグモイド関数)を使用してもよい。第1畳み込み層411は、全てのノードについて、上述のような処理を行う。
The
[第1プーリング層]
次に、第1プーリング層412の処理を説明する。従来のグリッド上のCNNは、畳み込み演算(+非線形活性化関数の適用)の後に、プーリング処理により画像サイズを縮小することが一般的である。本開示のグラフ上のCNN400のプーリング層は、入力グラフデータ121のグラフ構造を変更することなく従来のプーリング処理に相当する処理、つまり、グラフ上のプーリング処理を実行する。
[First pooling layer]
Next, the processing of the
プーリング処理は、近隣のノードで値を近づける処理であり、これによって、表現の自由度を低減する。以下において、いくつかのグラフ上のプーリング処理の例を説明する。プーリング処理には、いくつかの手法が知られているが、一般に使用される手法は、平均値プーリング及び最大値プーリングである。そこで、以下においては、グラフ上の平均値プーリング及び最大値プーリングを説明する。 The pooling process is a process of bringing values closer to each other at neighboring nodes, thereby reducing the degree of freedom of expression. An example of pooling processing on some graphs will be described below. Although several methods are known for the pooling process, the commonly used methods are mean value pooling and maximum value pooling. Therefore, in the following, the mean value pooling and the maximum value pooling on the graph will be described.
プーリング処理は、畳み込み演算と同様に、グラフ構造を維持しつつ、各ノードの状態値を更新する。プーリング処理は、対象ノード及び対象ノードの近隣のノードの状態値から、対象ノードの新たな状態値を決定する。図15は、第1プーリング層412によるプーリング処理を模式的に示す。図15において、2つのノードN1及びN2が着目されている。第1プーリング層412は、ノードN1の状態値を、隣接ノードN2、N6、N9、N10、N12の状態値と近づくように更新する。同様に、第1プーリング層412は、ノードN2の状態値を、隣接ノードN1、N3、N4、N5の状態値と近づくように更新する。
Similar to the convolution operation, the pooling process updates the state value of each node while maintaining the graph structure. The pooling process determines a new state value of the target node from the state values of the target node and the nodes in the vicinity of the target node. FIG. 15 schematically shows the pooling process by the
グラフ上の平均値プーリングの例は、対象ノード及び隣接ノードの状態値をもとに、対象ノードの新たな状態値が、対象ノード及び隣接ノードの新たな状態値の平均値になるように、対象ノードの新たな状態値と決定する。例えば、第1プーリング層412は、ノードN1及びその隣接ノードN2、N6、N9、N10、N12の現在の(更新前の)状態値を取得し、それらの平均値を計算する。第1プーリング層412は、当該平均値をノードN1の新たな状態値と決定する。第1プーリング層412は、エッジ属性種類に応じて、ノードの状態値に重みを与えた値の平均値を計算してもよい。
In the example of average value pooling on the graph, based on the state values of the target node and the adjacent node, the new state value of the target node becomes the average value of the new state values of the target node and the adjacent node. Determine the new state value of the target node. For example, the
グラフ上の平均値プーリングの他の例は、以下の数式に従って対象ノードの新たな状態値を決定する。Nはグラフデータ121のノードの集合を示し、Eはエッジの集合を示す。piは、ノードiのプーリング処理の出力であり、viは、ノードiのプーリング処理の入力である。viは、直前の畳み込み演算の出力(状態値)である。βはハイパーパラメータ、Iは単位行列、Lはラプラシアン行列である。Dは、グラフデータ121の全エッジ本数である。右辺の第2項をDで除算しているのは、エッジ1本あたりの制約の強さをそろえるためであるが、Dで割らない(D=1とする)構成も考えられる。
Another example of mean pooling on the graph determines a new state value for the target node according to the following formula. N indicates a set of nodes in the
ノードiの第1プーリング層412の出力piは、第1項より入力viに近い値であり、かつ、第2項より隣接するノードの出力値pjとも近い値となる。βが大きくなると第2項の寄与が大きくなるため、グラフ上のより広い範囲で値が近づくことになる。すなわち、βはプーリング処理のカーネルサイズに相当するパラメータである。上記式は、より汎用的に適切な平均値プーリングを行うことができる。
The output p i of the
図16は、図15に示すグラフ構造を有するグラフデータ121において、適用可能なラプラシアン行例Lの例を示す。上記プーリング処理の式及び図16に示すラプラシアン行例Lは、エッジ属性種類を無視して、全エッジを一律にプーリング処理する場合に使用される。プーリング処理は、エッジ属性種類を無視して実行してもよい。
FIG. 16 shows an example of an applicable Laplacian row example L in the
これと異なり、エッジ属性種類に基づきプーリング処理を実行してもよい。これにより、より適切なプーリング処理を実行できる。第1プーリング層412は、エッジ属性種類毎にプーリング処理を実行する。具体的には、エッジ属性種類に基づくプーリング処理の例は、以下の数式に従う。
Unlike this, the pooling process may be executed based on the edge attribute type. As a result, a more appropriate pooling process can be executed. The
E1、E2、E3は、それぞれ、エッジ属性種類R1、R2及びR3のエッジの集合を示す。β1、β2、β3は、それぞれ、エッジ属性種類R1、R2及びR3のハイパーパラメータ(プーリングのカーネルサイズ)である。L1、L2、L3は、それぞれ、エッジ属性種類R1、R2及びR3のプーリングのラプラシアン行列である。 E 1 , E 2 , and E 3 indicate a set of edges of edge attribute types R1, R2, and R3, respectively. β 1 , β 2 , and β 3 are hyperparameters (pooling kernel size) of edge attribute types R1, R2, and R3, respectively. L 1 , L 2 , and L 3 are Laplacian matrices of pooling of edge attribute types R1, R2, and R3, respectively.
次に、グラフ上の最大値プーリングの例を説明する。グラフ上の最大値プーリングの例は、プーリング範囲内のノードの状態値の最大値を選択する。例えば、第1プーリング層412は、ノードN2及びその隣接ノードN1、N3、N4、N5の現在の(更新前の)状態値を取得し、それらの内の最大値を選択する。第1プーリング層412は、当該最大値をノードN2の新たな状態値と決定する。第1プーリング層412は、エッジ属性種類に応じた重みに基づき、更新値を与えるノードを選択してもよい。
Next, an example of maximum value pooling on the graph will be described. The example of maximum value pooling on the graph selects the maximum value of the state value of the node in the pooling range. For example, the
グラフ上の最大値プーリングの他の例は、入力値(ノードの現在の状態値)にSmooth Maximumを適用した後で、平均値プーリングを行う。Smooth Maximumとしていくつかの関数が知られているが、例えば、LogMeanExpを使用することができる。グラフ上の最大値プーリングの他の例は、以下の数式に従って対象ノードの新たな状態値を決定する。 Another example of maximum value pooling on the graph is to apply Math Maximum to the input value (the current state value of the node) and then perform average value pooling. Some functions are known as Smooth Maximum, but LogMeanExp can be used, for example. Another example of maximum value pooling on the graph determines a new state value for the target node according to the following formula.
ρは、Smooth Maximumの強さを表すパラメータであり、∞の極限で、LogMeanExpは最大値関数と一致する。他の変数は、平均値プーリングで説明した通りである。〔数3〕で表わされる最大値プーリングは、エッジ属性種類を無視して、全エッジを一律にプーリング処理する場合に使用される。プーリング処理は、エッジ属性種類を無視して実行してもよい。 ρ is a parameter representing the strength of Smooth Maximum, and at the limit of ∞, LogMeanExp matches the maximum value function. The other variables are as described in Mean Pooling. The maximum value pooling represented by [Equation 3] is used when all edges are uniformly pooled, ignoring the edge attribute type. The pooling process may be executed ignoring the edge attribute type.
平均値プーリングの説明と同様に、第1プーリング層412は、エッジ属性種類に基づきプーリング処理を実行してもよい。第1プーリング層412は、〔数1〕に代えて、〔数2〕を使用する。これにより、より適切なプーリング処理を実行できる。第1プーリング層412は、エッジ属性種類毎にプーリング処理を実行する。
Similar to the description of the average value pooling, the
[第2畳み込み層]
次に、第2畳み込み層413の処理を説明する。上述のように、第1プーリング層412は、グラフ構造のサイズを一定に保つ一方で、近隣のノード間で値を近づけるという正則化をとりいれることで、データの表現の自由度を低減する。第2畳み込み層413は、第1プーリング層412で近隣のノードの値が近づいてしまう分、広い範囲を参照する、つまり、畳み込みフィルタのカーネルサイズ(畳み込み演算で参照するノードの範囲)を広げる。
[Second convolution layer]
Next, the processing of the
図17は、第2畳み込み層413による、ノードN1のための畳み込み演算を模式的に示す。同様の畳み込み演算が全てのノードに対して実行される。第2畳み込み層413は、ノードN1から2ホップ範囲内のノードの現在の(更新前の)状態値を取得する。2ホップ範囲内のノードは、対象ノードから1ホップのノード及び2ホップのノードで構成される。なお、2ホップ範囲内のノード、つまり1ホップのノード及び2ホップのノードを使う代わりに、2ホップのノードのみを使う構成も考えられる。
FIG. 17 schematically shows the convolution operation for the node N1 by the
図17に示す例において、ノードN2、N6、N9、N10、N12は、ノードN1から1ホップのノードである。ノードN3~N5、N7~N13は、ノードN1から2ホップのノードである。ノードN9、N10、N12は、ノードN1から1ホップのノードであると共に、2ホップのノードでもある。ノードN9、N10、N12は、ノードN1から1ホップのノードと定義し、ノードN1から2ホップのノードから除外してもよい。 In the example shown in FIG. 17, the nodes N2, N6, N9, N10, and N12 are nodes one hop from the node N1. Nodes N3 to N5 and N7 to N13 are two-hop nodes from node N1. Nodes N9, N10, and N12 are one-hop nodes from node N1 and are also two-hop nodes. Nodes N9, N10, and N12 may be defined as one-hop nodes from node N1 and may be excluded from two-hop nodes from node N1.
第2畳み込み層413は、対象ノードN1の状態値、対象ノードN1から1ホップのノードの状態値及び対象ノードN1から2ホップのノードの状態値と、重みデータ123でエッジ属性種類毎に定義されている重みの積和を計算する。図13を参照して説明したように、重みデータ123は、自ノードの重み、1つのエッジのエッジ属性種類の重み、及び2つのエッジの組のエッジ属性種類の重みを定義している。図示していないが、重みデータ123は、さらに、3種類以上のエッジの組のエッジ属性種類の重みを定義する。第1畳み込み層411と同様に、畳み込み演算により得られた対象ノードの状態値は、ReLUに入力され、その出力が対象ノードの新しい状態値として保持される。なお、第2畳み込み層413の畳み込み演算は、バイアスを含むことができる。
The
[第2プーリング層]
第2プーリング層414は、図9に示すように、2ホップ範囲内でプーリング処理を実行する。例えば、第2プーリング層414は、第1プーリング層412が実行するプーリング処理を2回実行する。これにより、第2畳み込み層413の処理範囲に応じたプーリング処理を行うことができる。
[Second pooling layer]
As shown in FIG. 9, the
[全域平均プーリング層]
次に、全域平均プーリング層415の処理を説明する。グラフ上のCNN400は、ノード数やエッジ数が異なる様々なグラフ構造のグラフデータを取り扱う。従来のCNNにおける全結合層は、入力層のニューロンの数が固定であることを前提としており、グラフ上のCNN400にそのまま適用することはできない。本開示のグラフ上のCNN400は、全域平均プーリングを使用する。なお、入力されるグラフデータのグラフ構造が一定である場合、全域平均プーリング層に代えて、全てのニューロンの値を一ヶ所に集めてアフィン演算することで最終出力する値を計算する全結合層を使用してもよい。
[Overall average pooling layer]
Next, the treatment of the whole area
全域平均プーリング層415は、その入力のチャネル毎に全てのニューロンの値の平均値をとる。したがって、全域平均プーリング層415の出力は入力チャネル数の次元のベクトルとなる。例えば、全域平均プーリング層415の後段にアフィン変換層(全結合層)を配置し、最終的に必要とする次元の出力を得る。全域平均プーリング層415は全結合層に比べてパラメータ数が大幅に少ないにも関わらず、全結合層と同等以上の性能を示すことができる。
The global
[誤差逆伝播による学習(訓練)]
以下において、グラフ上のCNN400の誤差逆伝播によるパラメータの学習を説明する。学習処理は、データ処理部120により実行される。誤差逆伝播は、順伝播におけるグラフのノードを逆にたどる。上述のように、第2畳み込み層413は、畳み込みフィルタのカーネルサイズを広げる。しかし、第1プーリング層412で近隣のノードの値が近づいているので、単純にカーネルサイズを広げるのみでは、パラメータ設定の自由度が大きくなりすぎて過学習を引き起こす、又は、不良設定問題となりパラメータの学習が全くできない可能性が存在する。
[Learning by error back propagation (training)]
In the following, parameter learning by error back propagation of CNN400 on the graph will be described. The learning process is executed by the
そこで、プーリング後の第2畳み込み層413に対して、畳み込みフィルタのカーネルサイズを大きくすると同時に、直前の第1プーリング層412と同様に、畳み込みフィルタ上の近隣の重みを近づけるという正則化を行う。こうすることで、第1プーリング層412と直後の第2畳み込み層413の自由度が揃うことになり、畳み込み演算とプーリング処理のセットを何層も積み上げる、いわゆる深層学習のグラフ上のCNNをより適切に構成することができる。
Therefore, the kernel size of the convolution filter is increased with respect to the
ここでは、グラフ上のCNN400のパラメータの学習(誤差逆伝播)は、畳み込み層における複数の重みを、1段前のプーリング層と同じ正則化項を含む式により最適化する。より具体的には、CNN400全体の誤差関数E(w)に畳み込み層の正則化項を含める。
Here, the learning (error back propagation) of the parameters of the
上記式は、3以上の畳み込み層を含む構成の誤差関数E(w)を示す。E0(w)は、畳み込み層の正則化項を含まない通常の誤差関数である。右辺の第2項は、第2畳み込み層の正則化項であり、第3項は第3畳み込み層の正則化項である。w2、i、w2、jは、あるノードから2ホップ離れたノードにおいて隣接している(一つのエッジで結合されている)ノードを示す。w3、i、w3、jは、あるノードから3ホップ離れたノードにおいて隣接しているノードを示す。βはプーリング層で使用されるβと同一である。誤差関数E(w)は、2層目の畳み込み層以降の畳み込み層の正則化項を含む。
The above equation shows the error function E (w) of the configuration including three or more convolution layers. E 0 (w) is a normal error function that does not include the regularization term of the convolution layer. The second term on the right side is the regularization term of the second convolutional layer, and the third term is the regularization term of the third convolutional layer. w 2, i , w 2, j indicate adjacent nodes (joined at one edge) at a node two hops away from a node. w3 , i , w3 , j indicate adjacent nodes in a
上述のように、第2畳み込み層、第3畳み込み層と、後段にいくにしたがって畳み込みフィルタのカーネルサイズを大きくすることになる。上記式の右辺の第2項と第3項でβにかかる次数を増やして正則化項の効果を大きくしていくことで、各畳み込み層における実質的なパラメータ設定の自由度を一定に保つ。 As described above, the kernel size of the convolution filter is increased toward the second convolution layer, the third convolution layer, and the subsequent stages. By increasing the degree of β in the second and third terms on the right side of the above equation to increase the effect of the regularization term, the degree of freedom in substantially parameter setting in each convolution layer is kept constant.
図13を参照して説明したように、重みデータ123は、自ノードの重み、1つのエッジのエッジ属性種類の重み、及び2つのエッジの組のエッジ属性種類の重み、3種類以上のエッジの組のエッジ属性種類の重み、を定義している。このとき、例えば、右辺の第2項、すなわち、第2畳み込み層の正則化項は、全ノードそれぞれから2ホップのノードにおいて隣接するノード間の重みの差の2乗の和を計算する。
As described with reference to FIG. 13, the
ノードN1を例として、右辺の第2項を説明する。ノードN1から2ホップのノードは、ノードN3~N5、N7~N13である。w2、iは、これらノードの全ての重みがそれぞれ代入される。w2、jは、w2、iのノードに隣接する全てのノードの全ての重みが代入される。ノードN1の第2項の計算(β/2を省略)は以下のように表わされる。 The second term on the right side will be described by taking node N1 as an example. The two-hop nodes from node N1 are nodes N3 to N5 and N7 to N13. For w 2 and i , all the weights of these nodes are assigned respectively. For w 2 and j , all the weights of all the nodes adjacent to the nodes of w 2 and i are assigned. The calculation of the second term of node N1 (β / 2 omitted) is expressed as follows.
ノードN3の例を説明する。ノードN1からノードN3を見て、2つのエッジの組のエッジ属性種類の重みは、W12、W23(ノードN2を介する)、W23(ノードN10を介する)である。従って、ノードN3のw2、iは、W12、W23、W23である。ノードN1から2ホップのノードにおいて、ノードN3に隣接するノードは、ノードN4、N10、N12である。したがって、w2、jは、ノードN1からこれらノードを見た重みそれぞれが代入される。 An example of node N3 will be described. Looking at node N3 from node N1, the weights of the edge attribute types of the pair of two edges are W12, W23 (via node N2), and W23 (via node N10). Therefore, w2 and i of the node N3 are W12, W23 and W23. In the node of 2 hops from the node N1, the nodes adjacent to the node N3 are the nodes N4, N10 and N12. Therefore, w 2 and j are assigned the weights of the nodes N1 as seen from these nodes.
例えば、ノードN1からノードN4を見て、2つのエッジの組のエッジ属性種類の重みは、W22である。ノードN1からノードN10を見て、2つのエッジの組のエッジ属性種類の重みは、W11、W12である。ノードN1からノードN12を見て、2つのエッジの組のエッジ属性種類の重みは、W22である。 For example, looking at node N4 from node N1, the weight of the edge attribute type of the pair of two edges is W22. Looking at the node N10 from the node N1, the weights of the edge attribute types of the pair of two edges are W11 and W12. Looking at node N12 from node N1, the weight of the edge attribute type of the pair of two edges is W22.
第2項は、ノードN1について、ノード3についての上記説明と同様の処理を、ノードN4、N5、N7~N13についても計算する。さらに、ノードN1以外の他のノードについても同様の計算を行う。第3項は、第2項と同様に、全ノードそれぞれから3ホップのノードについて計算を行う。
The second term calculates the same processing for the node N1 as described above for the
他の例において、正則化項は、グラフ構造に代えて、エッジ属性種類の関係に基づく計算を行ってもよい。例えば、第2項は、対象ノードに近いエッジのエッジ属性種類が同一の重みが近づくような計算を行ってもよい。例えば、重みグループ(W11、W12、W13)、(W21、W22、W23)、(W31、W32、W33)それぞれにおいて、重みが近づくように、第2項が定義される。第3項以下についても、3ホップ以上のエッジ属性種類に応じて同様に定義される。 In another example, the regularization term may perform calculations based on the relationship of edge attribute types instead of the graph structure. For example, in the second term, the calculation may be performed so that the weights having the same edge attribute type of the edge close to the target node approach each other. For example, in each of the weight groups (W11, W12, W13), (W21, W22, W23), (W31, W32, W33), the second term is defined so that the weights approach each other. The third and subsequent terms are similarly defined according to the edge attribute type of 3 hops or more.
第2畳み込み層の勾配値は、以下の数式のように、誤差関数E(w)をwで微分することにより得られる。 The gradient value of the second convolution layer is obtained by differentiating the error function E (w) with w as in the following mathematical formula.
〔数6〕における右辺の第1項は、上層からの誤差信号(通常の誤差逆伝播)を示す。右辺の第2項は、正規化項の微分を示す。他の畳み込み層の勾配値も同様の式で表わすことができる。学習処理は、この勾配値にしたがって、畳み込み層の重みwを更新する。例えば、SGD(stochastic gradient descent)、ADAMなどの公知の手法を使用することができる。このように、誤差逆伝播による学習は、上層から逆伝播されてきた通常の誤差信号に、正則化項の微分の項(βLw、n)を加算した値を勾配として、重みwを更新する。これにより、畳み込み層(フィルタ)に対して、直前のプーリングに応じた制約を加えることができる。 The first term on the right side in [Equation 6] indicates an error signal (normal error back propagation) from the upper layer. The second term on the right-hand side shows the derivative of the normalization term. The gradient values of other convolutional layers can be expressed by the same equation. The learning process updates the weight w of the convolution layer according to this gradient value. For example, known methods such as SGD (stochastic gradient descent) and ADAM can be used. In this way, in the learning by error back propagation, the weight w is updated with the value obtained by adding the differential term (βLw , n ) of the regularization term to the normal error signal back propagated from the upper layer as a gradient. This makes it possible to impose restrictions on the convolutional layer (filter) according to the immediately preceding pooling.
次に、学習処理の全体について説明する。図18は、計算機101が実行する学習処理の一つの例を説明するフローチャートである。プロセッサ110は、ニューラルネットワークの構築処理を実行する(S201)。ニューラルネットワークの構築処理は後述する。
Next, the entire learning process will be described. FIG. 18 is a flowchart illustrating one example of the learning process executed by the
次に、プロセッサ110は、ストレージシステム102から学習データ122を取得し、メモリ111に格納する(S202)。学習データ122は複数のサンプルを含む。次に、プロセッサ110は、誤差逆伝播処理のループ処理を開始する(S203)。本ループ処理では、プロセッサ110は、ステップS203からステップS207の処理を繰り返し実行する。例えば、本ループ処理内で実行される誤差逆伝播処理によって算出される誤差が予め設定された閾値以下になった場合、又は、予め決められた回数だけ誤差逆伝播処理が実行された場合に、ループ処理が終了する。
Next, the
プロセッサ110は、サンプルのループ処理を開始する(ステップS705)。サンプルのループ処理では、ステップS202において取得された複数のサンプルに対し、サンプル毎にループ内部の処理を実行する。さらに、プロセッサ110は、1つのサンプルに対して誤差逆伝播処理を実行する(S205)。
The
誤差逆伝播処理では、プロセッサ110は、あるサンプルを入力とし、その入力に対するグラフ上のCNN400の出力結果と当該サンプルに対応する教師データとを比較し、2つのデータの誤差を削減するように、CNN400の上層から順に重みを更新する。
In the error back propagation process, the
サンプルのループ処理では、プロセッサ110が、複数のサンプルの各々に対して前述した処理を実行する。ステップS205の誤差逆伝播処理では、任意のサンプルデータに対する重みの更新が1回だけ行われる。一方、誤差逆伝播処理のループ処理では、誤差を最小にするためには、誤差逆伝播処理が複数回実行される。具体的には、プロセッサ110が、所定の条件を満たすまで、繰り返し、複数のサンプルの各々に対して誤差逆伝播処理を実行する。また、サンプルのループ処理は、複数のサンプルに対する重みの更新が行われる。
In the sample loop processing, the
次に、プロセッサ110は、全てのサンプルデータに対して誤差逆伝播処理が実行されたか否かを判定する(S206)。全てのサンプルデータに対して誤差逆伝播処理が実行されていないと判定された場合、プロセッサ110は、ステップS204に戻り、同様の処理を実行する。全てのサンプルデータに対して誤差逆伝播処理が実行されたと判定された場合、プロセッサ110は、所定の条件を満たしたか否かを判定する(S207)。
Next, the
所定の条件を満たしていないと判定された場合、プロセッサ110は、ステップS203に戻り、同様の処理を実行する。所定の条件を満たしたと判定された場合、プロセッサ110は、学習結果をメモリ111又はストレージシステム102に格納する(ステップS208)。学習結果は、構築されたニューラルネットワークの構造を示す情報及び学習により得られた重みの情報等が含まれる。重みは、エッジ属性種類それぞれに対して得られ、分析処理において、重みデータ123として使用される。
If it is determined that the predetermined condition is not satisfied, the
[グラフ上のCNNの構築]
グラフ上のCNN400は、ノード数やエッジ数が異なる様々なグラフ構造のグラフデータを取り扱う。データ処理部120は、分析対象のグラフデータ121に応じたCNN400を構築する。データ処理部120は、グラフデータ121のグラフ構造に従って、畳み込み層及びプーリング層それぞれを構築する。データ処理部120は、学習結果からエッジ属性種類それぞれに対する重みを取得して、重みデータ123を構成する。
[Construction of CNN on the graph]
The CNN400 on the graph handles graph data having various graph structures having different numbers of nodes and edges. The
以上のように、本実施例によれば、グラフ上のCNNにおいてプーリングを行うことで、表現可能自由度(パラメータの自由度)を上層に行くほど小さくすることができ、パラメータの学習時の過学習や不良設定問題の蓋然性を低下させることができる。また、CNNの層の数を増加させていわゆる深層学習を行うグラフ上のCNNを構成することが可能となる。 As described above, according to this embodiment, by pooling in the CNN on the graph, the expressible degree of freedom (parameter degree of freedom) can be reduced toward the upper layer, and overfitting during parameter learning can be achieved. It can reduce the probability of learning and well-posed problems. In addition, it is possible to increase the number of CNN layers to form a CNN on a graph that performs so-called deep learning.
以下において、分散CNNを説明する。分散CNNは、ネットワークを介して接続された複数のサブシステム(例えば計算機)が、CNNを実行する。サブシステムは、サブシステムをネットワーク上で隣接するサブシステムとのみ通信(情報交換)が可能である。なお、サブシステム間を接続するネットワーク構造は、固定である必要はなく時間的に変化してもよい。分散CNNにおいて、各サブシステムは、例えば、それぞれ独立にシステム状態関数の値を推定する。分散CNNにより、全てのサブシステムの推定値が真のシステム状態関数の値に一致する。 The dispersed CNN will be described below. In a distributed CNN, a plurality of subsystems (for example, a computer) connected via a network execute the CNN. A subsystem can communicate (exchange information) only with an adjacent subsystem on the network. The network structure connecting the subsystems does not have to be fixed and may change over time. In a distributed CNN, each subsystem estimates, for example, the value of a system state function independently. Due to the distributed CNN, the estimates of all subsystems match the values of the true system state function.
他の例において、各サブシステムがそれぞれの環境入力と内部状態に応じてアクションを取ってもよい。各サブシステムは、全体システムの状態関数の値を最適化するようなアクションを見出すことができる。例えば、ネットワークを介して接続された工場(の計算機)が、それぞれ隣接する工場とのみ通信を行い、全工場の総利益を最小化するような工場の電力使用量を決定する。工場又はその計算機は、サブシステムである。 In another example, each subsystem may take action depending on its environmental input and internal state. Each subsystem can find an action that optimizes the value of the state function of the whole system. For example, factories (computers) connected via a network communicate only with adjacent factories and determine the power consumption of the factories so as to minimize the total profit of all factories. A factory or its computer is a subsystem.
このほか、分散CNNは、車間通信による、車のルート最適化に適用できる。車又はその計算機(例えばカーナビゲーションシステム)は、サブシステムである。各車は、現在位置と、目的地とから、独立にルートを決定する。各車が近隣の車と通信することで、多数の車が、全体として一つの分散CNNを構成する。各車は、自車のルートを入力として、分散CNNによって、平均移動時間を回帰(推定)する。 In addition, distributed CNN can be applied to vehicle route optimization by vehicle-to-vehicle communication. A car or its calculator (eg, a car navigation system) is a subsystem. Each car decides the route independently from the current position and the destination. As each vehicle communicates with a neighboring vehicle, a large number of vehicles together constitute one distributed CNN. Each vehicle uses the route of its own vehicle as an input and returns (estimates) the average travel time by the distributed CNN.
各車は、独立に、誤差逆伝播によって、分散CNNの出力値(=平均移動時間)を減らす方向に、ルート(=入力)を更新する。同時に、各車は、独立に、道路交通情報から得た真の平均移動時間と、分散CNNの出力値との誤差を減らすように、誤差逆伝播で、パラメータ(重み)を更新する。各車は、目的地につけば、分散CNNから離脱する。 Each vehicle independently updates the route (= input) in the direction of reducing the output value (= average moving time) of the distributed CNN by error back propagation. At the same time, each vehicle independently updates the parameters (weights) with error backpropagation so as to reduce the error between the true average travel time obtained from the road traffic information and the output value of the distributed CNN. Each car leaves the distributed CNN once it reaches its destination.
[システム構成]
図19は、分散CNNを実行する計算機システムの例を示す。計算機システムは、複数の計算機101A~101Mを含み、これらはネットワークを介して接続されている。通信可能な隣接計算機は、エッジで接続されている。計算機の構成は実施例1で説明した通りである。図19のネットワーク構成は一例であって、他の例において、グリッド状に配置された計算機が隣接計算機とのみ通信可能であってもよい。
[System configuration]
FIG. 19 shows an example of a computer system that implements a distributed CNN. The computer system includes a plurality of
分散CNNは、CNNを構成するニューロンを層(畳み込み層やプーリング層等)ごとにまとめて扱うのではなく、複数の層の同一位置のニューロン(以下ではカラムと呼ぶ)をまとめて、一つのサブシステムで計算する。結果として、多数のサブシステムが集まったシステム全体が、単一のCNNとして動作する。 The distributed CNN does not treat the neurons that make up the CNN for each layer (convolution layer, pooling layer, etc.), but collects neurons at the same position in multiple layers (hereinafter referred to as columns) into one sub. Calculate in the system. As a result, the entire system, which is a collection of many subsystems, operates as a single CNN.
図20は、分散CNNの層及びカラムの例を示す。分散CNNは、畳み込み層やプーリング層等の層701~704を含む。図20は、一つのカラム711を例として示す。一つのカラムは、一つのサブシステムにより実行される。図19の計算機システムにおいて、いずれか一つの計算機が、カラムのニューロンの計算を行う。
FIG. 20 shows examples of dispersed CNN layers and columns. The dispersed CNN includes
以上の説明から理解されるように、実施例1において説明したグラフ上のCNNは、分散CNNに適用することができる。図19に示す計算機システムのネットワーク構造は、実施例1で説明したグラフデータ121のグラフ構造と一致している。計算機101A~101Mは、それぞれ、CNNを構成する各層(畳み込み層やプーリング層)において、グラフデータ121における対応するノードの演算処理を行う。
As can be understood from the above description, the CNN on the graph described in Example 1 can be applied to the dispersed CNN. The network structure of the computer system shown in FIG. 19 is consistent with the graph structure of the
図21は、分散CNNの概念的な構成例を示す。図21は、3つの計算機(サブシステム)101B、101C、及び101Dを例として示す。計算機101Dは、計算機101B及び計算機101Cと隣接しており、通信可能である。計算機101B、101C、及び101Dは、それぞれ、カラム711B、711C、及び711Dを実行する。カラムを構成する四角はニューロンを示す。
FIG. 21 shows a conceptual configuration example of a distributed CNN. FIG. 21 shows three computers (subsystems) 101B, 101C, and 101D as an example. The
各サブシステムは、自装置が担当するカラム上のニューロンの出力値をまとめたベクトルを内部状態として保持する。各サブシステムは、自分の内部状態ベクトルと、隣接サブシステムと通信によって得た隣接サブシステムの内部状態ベクトル(隣接位置のカラム上のニューロンの値)を入力として、各層の演算を行って、自分の内部状態ベクトルを更新する。 Each subsystem holds as an internal state a vector that summarizes the output values of neurons on the column that the device is in charge of. Each subsystem inputs its own internal state vector and the internal state vector of the adjacent subsystem (value of the neuron on the column at the adjacent position) obtained by communicating with the adjacent subsystem, and performs the calculation of each layer to perform its own operation. Update the internal state vector of.
分散CNNを実行する計算機システムにおいて、システム全体を統括する中央制御システムは存在せず、システム全体でのグローバルな同期機構も存在しない。各サブシステムは、隣接サブシステムとの通信とサブシステムの内部状態ベクトルの更新を、他のサブシステムは非同期に実行する。サブシステムは、他のサブシステムの内部状態ベクトルと自サブシステムの内部状態ベクトルに基づき、自サブシステムの内部状態ベクトルを更新する。 In a computer system that executes distributed CNN, there is no central control system that controls the entire system, and there is no global synchronization mechanism for the entire system. Each subsystem communicates with its neighbors and updates the subsystem's internal state vector asynchronously with the other subsystems. The subsystem updates the internal state vector of its own subsystem based on the internal state vector of other subsystems and the internal state vector of its own subsystem.
隣接サブシステムとの通信とサブシステムの内部状態ベクトルの更新は、同頻度で行われるとは限らず、あるサブシステムでは隣接サブシステムとの通信頻度が高いのに対して、別のサブシステムでは内部状態ベクトルの更新の頻度高いこともある。あるサブシステムが複数の隣接サブシステムをもつとき、それぞれの隣接サブシステムとの通信が行われる頻度は同一でなくてよい。 Communication with a neighboring subsystem and updating of the internal state vector of a subsystem are not always performed at the same frequency, and one subsystem communicates frequently with the neighboring subsystem, while another subsystem communicates frequently. The frequency of updating the internal state vector may be high. When a subsystem has multiple neighboring subsystems, the frequency of communication with each neighboring subsystem does not have to be the same.
分散CNNを実行する計算機システムは、隣接サブシステム間の通信と内部状態ベクトルの更新処理をそれぞれ非同期に行う。したがって、サブシステムは、内部状態ベクトルの更新を実行する時に、畳み込み演算に必要な隣接コラム(隣接サブシステムが実行するカラム)上のニューロンの値を得ることはできない。 The computer system that executes the distributed CNN performs communication between adjacent subsystems and update processing of the internal state vector asynchronously. Therefore, when performing an update of the internal state vector, the subsystem cannot obtain the value of the neuron on the adjacent column (the column executed by the adjacent subsystem) required for the convolution operation.
そのため、サブシステムは、前回の隣接サブシステムとの通信のときに得られた隣接コラム上のニューロンの値(内部状態ベクトル)をメモリに記憶し、内部状態ベクトルの更新時には記憶しておいた値を用いて畳み込み演算を行う。この構成は、後述するように、誤差逆伝播を非同期で行うことを可能とする。 Therefore, the subsystem stores the value of the neuron on the adjacent column (internal state vector) obtained during the previous communication with the adjacent subsystem in the memory, and the value stored when the internal state vector is updated. Performs a convolution operation using. This configuration makes it possible to perform error backpropagation asynchronously, as will be described later.
[畳み込み]
以下において、分散CNNの各層の処理を説明する。計算機システムは、実施例1において説明した、グラフ上のCNN400における各層の処理を実行することができる。まず、畳み込み層の処理を説明する。分散CNNを実行する各サブシステムは、自システムが担当するカラムの畳み込み演算する。各サブシステムは、実施例1で説明した畳み込み層の処理を、担当するカラムにおいて実行する。
[Convolution]
The treatment of each layer of the dispersed CNN will be described below. The computer system can execute the processing of each layer in the
実施例1において説明したように、畳み込み演算は、対象ノード(ニューロン)の値及び対象ノードから所定ホップ数のノードの値を使用する。分散CNNでは、各サブシステムは、対象ノード(ニューロン)以外のノードの値を、他のサブシステムから収集する。 As described in the first embodiment, the convolution operation uses the value of the target node (neuron) and the value of the node having a predetermined number of hops from the target node. In a distributed CNN, each subsystem collects the values of nodes other than the target node (neuron) from other subsystems.
上述のように、各サブシステムは、隣接サブシステムとの通信時に得た隣接カラム上のニューロンの値を記憶しておき、内部状態ベクトルの更新時には、記憶しておいた値を用いて畳み込み演算を行う。畳み込み演算の重み(カーネルの係数)は、全てのサブシステムで共通である。例えば、サブシステムは、互いに通信を行うことで、同一の重みデータを共有することができる。 As described above, each subsystem stores the value of the neuron on the adjacent column obtained when communicating with the adjacent subsystem, and when updating the internal state vector, the convolution operation is performed using the stored value. I do. The weight of the convolution operation (kernel coefficient) is common to all subsystems. For example, subsystems can share the same weight data by communicating with each other.
サブシステムは、畳み込み演算のカーネル範囲(ホップ数)内の全てのカラムの値を必要とする。実施例1で説明したように、プーリング層の後の畳み込み章におけるカーネルサイズは広げられる。第2畳み込み層413の処理のような、2ホップ以上のカーネルサイズの畳み込み演算のため、サブシステムは、隣接していないサブシステムのカラムの値(内部状態ベクトル)を、隣接サブシステムを介したマルチホップ中継により取得する。nホップの情報伝達は、n回の通信が必要である。
The subsystem requires the values of all columns within the kernel range (number of hops) of the convolution operation. As described in Example 1, the kernel size in the convolution chapter after the pooling layer is increased. For a kernel-sized convolution operation of two hops or more, such as the processing of the
[プーリング]
次に、プーリング処理について説明する。分散CNNでは、各サブシステムが、CNNの下層から上層まで同一位置のニューロンをカラムとして扱うため、全ての層でニューロンの数は一定である。これは、実施例1において説明したグラフ上のCNNと同様である。分散CNNにおいて、各サブシステムは、実施例1で説明したプーリング処理と同様に、そこで、ニューロン数(ノード数)を削減することなく、表現の自由度を低下させるプーリング処理を実行する。
[Pooling]
Next, the pooling process will be described. In a distributed CNN, each subsystem treats neurons at the same position from the lower layer to the upper layer of the CNN as columns, so the number of neurons is constant in all layers. This is the same as the CNN on the graph described in Example 1. In the distributed CNN, each subsystem performs a pooling process that reduces the degree of freedom of expression without reducing the number of neurons (number of nodes), similar to the pooling process described in the first embodiment.
実施例1において説明した平均値プーリング及び最大値プーリングの双方が、分散CNNにおけるプーリング処理に適用できる。実施例1において説明したように、プーリング処理は、隣接ノードの状態値を必要とする。分散CNNにおいては、サブシステムは、自システムの内部状態ベクトルと隣接するサブシステムから取得した内部状態ベクトルから、自システムの新たな内部状態ベクトルを計算する。 Both the mean value pooling and the maximum value pooling described in Example 1 can be applied to the pooling treatment in the dispersed CNN. As described in the first embodiment, the pooling process requires the state value of the adjacent node. In a distributed CNN, the subsystem calculates a new internal state vector of its own system from the internal state vector of its own system and the internal state vector acquired from the adjacent subsystem.
[全結合]
次に全結合について説明する。集中型のCNNは、畳み込み演算及びプーリングを何度か繰り返したのち全結合層によって全てのニューロンの値を一ヶ所に集めてアフィン演算することで、最終出力する値を計算する。一方、分散CNNでは、各サブシステムは自律的に動作しており、全サブシステムの値を一ヶ所に集めることはできない。
[Full combination]
Next, the full connection will be described. The centralized CNN calculates the final output value by repeating the convolution operation and pooling several times, and then collecting the values of all neurons in one place by the fully connected layer and performing an affine operation. On the other hand, in the distributed CNN, each subsystem operates autonomously, and it is not possible to collect the values of all the subsystems in one place.
そこで、本開示の計算機システムは、分散で平均値を求める既知のアルゴリズムを利用する。分散で平均値を求めるアルゴリズムは、例えば、分散ADMM(Alternating Direction Method of Multipliers)や平均合意アルゴリズムである。 Therefore, the computer system of the present disclosure uses a known algorithm for obtaining an average value by variance. The algorithm for obtaining the mean value by the variance is, for example, a variance ADMM (Alternating Direction Methods of Multipliers) or an average consensus algorithm.
具体的には、各サブシステムは、まず、自分のカラム上のニューロンの出力値に、対応する全結合層の重み係数を乗算する。次に、全てのサブシステムの乗算結果の値の平均値を、後述のアルゴリズムを用いて分散で計算することで、全結合層の出力値を得ることができる。なお、この方法は、ニューロンの値に重み係数を乗算したものの総和ではなく平均値が出力する。重み係数は学習データ(教師データ)から学習されるため、この違いが問題になることはない。従来の集中型CNNで学習した重み係数を分散CNNで用いる場合には、各サブシステムに保持させる重み係数の値に、あらかじめ全サブシステムの数を乗算しておけばよい。 Specifically, each subsystem first multiplies the output value of the neuron on its column by the weighting factor of the corresponding fully connected layer. Next, the output value of the fully connected layer can be obtained by calculating the average value of the multiplication result values of all the subsystems by dispersion using the algorithm described later. In this method, the value of the neuron is multiplied by the weighting factor, and the average value is output instead of the sum. Since the weighting factor is learned from the training data (teacher data), this difference does not matter. When the weighting coefficient learned in the conventional centralized CNN is used in the distributed CNN, the value of the weighting coefficient held in each subsystem may be multiplied by the number of all the subsystems in advance.
以下において、分散で平均値を計算するアルゴリズムの二つの例を説明する。第1の例は分散ADMMを用いた平均値計算アルゴリズムである。分散ADMMを用いて以下の最適化問題を解くことで、N個の値xiの平均値νを分散で計算することができる。 In the following, two examples of the algorithm for calculating the mean value by variance will be described. The first example is an average value calculation algorithm using a distributed ADMM. By solving the following optimization problem using the variance ADMM, the mean value ν of N values x i can be calculated by the variance.
分散ADMMを用いる方法は、常に、上記式を満たすように最適化を行うため、動作の最中に値xiやネットワークトポロジが動的に変化した場合でも、変化に追随してその時点での平均値νを出力することができる。したがって、任意の指定した時点の値に対する平均値を計算することができる。 Since the method using the distributed ADMM always optimizes to satisfy the above equation, even if the value xi or the network topology changes dynamically during the operation, it follows the change and averages at that time. The value ν can be output. Therefore, it is possible to calculate the average value for the value at any specified time point.
第2の例は平均合意アルゴリズムである。平均合意アルゴリズムは、各サブシステムで保持する値xiの総和を一定に保ちながら、サブシステム間で値xiを分配し、最終的に、全てのサブシステムの値xiのを同一の値に収束させる。値xiの総和が常に一定であることから、収束値は各値xi初期値の平均値となる。いくつかの種類の平均アルゴリズムの中で、最も単純な平均合意アルゴリズムは、例えば、サブシステムiとサブシステムjの通信時に、値xiと値xjを以下の式に従って更新する。 The second example is the average consensus algorithm. The average consensus algorithm distributes the value x i among the subsystems while keeping the sum of the values x i held by each subsystem constant, and finally the same value for all the subsystems x i . Converge to. Since the sum of the values x i is always constant, the convergence value is the average value of the initial values of each value x i . Of the several types of averaging algorithms, the simplest averaging algorithm updates, for example, the value x i and the value x j according to the following equation during communication between the subsystem i and the subsystem j.
これにより、隣接間通信が行われるたびに、システム全体の値xiの総和を一定に保ちながら、値xiの分散が減少するため、いずれ、全ての値xiが同一の値、すなわち、各値xiの初期値の平均値に収束することになる。 As a result, each time communication between neighbors is performed, the variance of the value x i is reduced while keeping the sum of the values x i of the entire system constant. Therefore, all the values x i are the same value, that is, It will converge to the average value of the initial values of each value x i .
平均合意アルゴリズムは、動作の最中に値xiの値やネットワークトポロジが動的に変化すると、システム全体での値xiの総和が変化するため、各値xiの初期値の平均値を正しく計算できない。一方で、平均合意アルゴリズムが持つ収束値が常にその時点でのシステム全体の値xiの平均値になっているので、誤差逆伝播による畳み込みフィルタの重み係数の学習に有用である。 In the average agreement algorithm, if the value of the value x i or the network topology changes dynamically during operation, the sum of the values x i in the entire system changes, so the average value of the initial values of each value x i is calculated. I can't calculate correctly. On the other hand, since the convergence value of the average consensus algorithm is always the average value of the system-wide value x i at that time, it is useful for learning the weighting coefficient of the convolution filter by error back propagation.
[誤差逆伝播による学習(訓練)]
上述のように、分散CNNにおいて、サブシステムは、前回の隣接サブシステムとの通信のときに得られた隣接カラム上のニューロンの値を記憶し、記憶しておいた値を用いて畳み込み演算等の順伝播の計算を行うことで内部状態ベクトルを更新する。サブシステムは、誤差逆伝播計算時に順伝播時に用いた値をそのまま使うことで、他のサブシステムとの同期なく、誤差逆伝播によるパラメータ更新を行うことができる。
[Learning by error back propagation (training)]
As described above, in the distributed CNN, the subsystem stores the value of the neuron on the adjacent column obtained at the time of the previous communication with the adjacent subsystem, and the convolution operation etc. is performed using the stored value. Update the internal state vector by performing the forward propagation calculation of. By using the value used at the time of forward propagation at the time of error back propagation calculation as it is, the subsystem can update the parameters by error back propagation without synchronization with other subsystems.
誤差逆伝播の計算は、順伝播のグラフのノード(ニューロン)を逆にたどることで行う。図22~25にグラフ上のノードの種類ごとの伝播則の例を示す。具体的には、図22~25は、それぞれ、関数fの適用ノード771、可算ノード772、乗算ノード773及び変数複製ノード(分岐ノード)774を示す。順伝播の伝播則は実線で示され、逆伝播の伝播則は破線で示されている。順伝播の入力はx及びyである。分散CNNでは、このうち変数複製ノード774の実現に工夫が必要である。
The calculation of error back propagation is performed by tracing the nodes (neurons) of the forward propagation graph in reverse. Figures 22 to 25 show examples of propagation rules for each type of node on the graph. Specifically, FIGS. 22 to 25 show the
変数複製ノード774は、順伝播の計算時に同一の変数を複数回使用することに相当する。分散CNNでは複数のサブシステムが分散して計算するため、図25の変数複製ノード774の逆伝播則において、上層からの誤差信号dx1及びdx2のうち、自サブシステム以外のサブシステムが担当するカラムからの信号を得ることはできない。
The
そこで、変数複製ノード774の誤差逆伝搬では、各サブシステムが、それぞれ自サブシステムが担当するカラム内部で得られる誤差信号のみを使って、独立にパラメータの微係数を計算してパラメータ値を更新する。その後、各サブシステムは、上記平均合意アルゴリズムを用いて全てのサブシステムが保持するパラメータ値の平均を計算する。平均合意アルゴリズムでは、収束値が、常にその時点での全てのサブシステムが持つ値の平均値になっているため、継続的に学習、すなわち、パラメータ値の更新を続けることができる。
Therefore, in the error back propagation of the
なお、数学的に正しい微係数が上層からの全ての誤差信号の総和であるのに対して、この方法は、上層からの全ての誤差信号の平均値を微係数と考えてパラメータを更新する。そのため、パラメータ更新に用いる学習アルゴリズムのハイパーパラメータである学習率(Learning Rate)に、あらかじめ全サブシステムの数を乗算しておく。 In addition, while the mathematically correct minute coefficient is the sum of all the error signals from the upper layer, this method updates the parameter by considering the average value of all the error signals from the upper layer as the minute coefficient. Therefore, the learning rate (Learning Rate), which is a hyperparameter of the learning algorithm used for parameter update, is multiplied by the number of all subsystems in advance.
逆誤差伝播における分岐ノードの後段(順伝播では前段)にさらに別のノードがある場合も、同様に、分岐ノードでは各サブシステムが自サブシステムが担当するコラムの情報のみを用いて誤差信号を逆伝播させて後段にあるパラメータ更新を独立に実行し、その後にパラメータ値の平均値を平均合意アルゴリズムにより計算する。 If there is another node after the branch node in reverse error propagation (previous stage in forward propagation), similarly, in the branch node, each subsystem sends an error signal using only the information in the column that its own subsystem is in charge of. It is back-propagated and the parameter update in the subsequent stage is executed independently, and then the average value of the parameter values is calculated by the average agreement algorithm.
[分散CNNの構成例]
以下において、本開示の分散CNNの構成例を説明する。図26は、分散CNNの構成例900及びその処理を示す。以下において、一つのサブシステムが実行する処理を説明する。まず、順伝播を説明する。順伝播において、第1畳み込み層901は、実施例1の第1畳み込み層411と同様に、畳み込み演算及びReLUを実行する。第1畳み込み層901は、自内部状態ベクトルから対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第1畳み込み層901は、これらの値の畳み込み演算及びReLUを実行し、自内部状態ベクトルを更新する。
[Configuration example of distributed CNN]
Hereinafter, a configuration example of the dispersed CNN of the present disclosure will be described. FIG. 26 shows a configuration example 900 of the distributed CNN and its processing. In the following, the processing executed by one subsystem will be described. First, forward propagation will be described. In forward propagation, the
第1プーリング層902は、実施例1の第1畳み込み層411と同様に、プーリング処理を実行する。第1プーリング層902は、自内部状態ベクトルから第1畳み込み層901により更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの第1畳み込み層901の出力値を取得する。第1プーリング層902は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
第2畳み込み層904は、実施例1の第2畳み込み層413と同様に、畳み込み演算及びReLUを実行する。第2畳み込み層904は、自内部状態ベクトルから第1プーリング層902に更新された対象ニューロンの値を取得し、また、予め保持している2ホップ内のサブシステムの内部状態ベクトルから、隣接ニューロンの第1プーリング層の出力値を取得する。2ホップ離れたサブシステムからのデータは、隣接サブシステムを介して転送される。第2畳み込み層904は、これらの値の畳み込み演算及びReLUを実行し、自内部状態ベクトルを更新する。
The
第2プーリング層906は、実施例1の第2プーリング層414と同様に、プーリング処理を実行する。第2プーリング層906は、自内部状態ベクトルから第2畳み込み層904に更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
第2プーリング層906は、さらに、自内部状態ベクトルから直前のプーリング処理で更新されたニューロンの値を取得し、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
全結合層907は、分散ADMMによって平均値を計算する。全結合層907は、自内部状態ベクトルの対象ニューロンの値と、予め保持している他のサブシステムの内部状態ベクトルの対象ニューロンの値から、分散ADMMによって平均値を計算する。
For the fully connected
次に、誤差逆伝播を説明する。誤差逆伝播において、各サブシステムは、教師データを与えられている。各サブシステムは、内部に保持しているデータを使用して、他のサブシステムから独立に、重みデータ(バイアスを含む)を更新する。各サブシステムは、平均合意アルゴリズムによって、更新した重みデータの平均値を計算する。これにより、全てのサブシステムの重みデータが共通化される。 Next, error back propagation will be described. In error backpropagation, each subsystem is given teacher data. Each subsystem uses the data it holds internally to update its weighted data (including bias) independently of the other subsystems. Each subsystem calculates the mean value of the updated weight data by the mean consensus algorithm. As a result, the weight data of all the subsystems is standardized.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The present invention is not limited to the above-described embodiment, and includes various modifications. For example, the above-described embodiment has been described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to the one including all the configurations described. Further, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Further, it is possible to add / delete / replace a part of the configuration of each embodiment with another configuration.
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。 Further, each of the above-mentioned configurations, functions, processing units and the like may be realized by hardware, for example, by designing a part or all of them by an integrated circuit or the like. Further, each of the above configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function. Information such as programs, tables, and files that realize each function can be placed in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card or an SD card. In addition, the control lines and information lines indicate what is considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. In practice, it can be considered that almost all configurations are interconnected.
101 計算機、110 プロセッサ、111 メモリ、123 重みデータ、400 CNN、411 第1畳み込み層、412 第1プーリング層、413 第2畳み込み層、414 第2プーリング層、900 分散CNN 101 computer, 110 processor, 111 memory, 123 weight data, 400 CNN, 411 first convolution layer, 412 first convolution layer, 413 second convolution layer, 414 second pooling layer, 900 distributed CNN.
Claims (11)
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記グラフ上の畳み込みニューラルネットワークは、
1以上の畳み込み層と、
1以上のプーリング層と、を含み、
前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、
前記1以上のプロセッサは、
各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、
各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、
プーリング層の後段の畳み込み層のカーネルのサイズは、前記プーリング層の前段の畳み込み層のカーネルのサイズよりも大きい、計算機システム。 A computer system that executes a convolutional neural network on a graph.
With one or more processors
Including one or more storage devices,
The convolutional neural network on the graph
With one or more convolutional layers,
Including one or more pooling layers,
The one or more storage devices store the kernel weight data of the one or more convolution layers.
The above-mentioned one or more processors
In each convolution layer, the value of each node is updated by a kernel-based convolution operation with a predetermined number of hops.
In each pooling layer, the value of each node is updated by the pooling process based on the value of each node and the value of the node within the pooling range of a predetermined number of hops from each node.
A computer system in which the size of the kernel of the convolution layer behind the pooling layer is larger than the size of the kernel of the convolution layer before the pooling layer .
畳み込み層の後段のプーリング層のプーリング範囲は、前記畳み込み層の前段のプーリング層のプーリング範囲よりも広い、計算機システム。 The computer system according to claim 1.
A computer system in which the pooling range of the pooling layer after the convolution layer is wider than the pooling range of the pooling layer before the convolution layer .
前記1以上のプロセッサは、前記所定ホップ数のプーリング範囲のプーリング処理を、1ホップ範囲のプーリング処理を前記所定ホップ数と一致する回数だけ繰り返すことで行う、計算機システム。 The computer system according to claim 1.
The computer system in which the one or more processors perform the pooling process of the pooling range of the predetermined number of hops by repeating the pooling process of the one hop range as many times as the number of times matching the predetermined number of hops.
前記1以上のプロセッサは、前記グラフ上の畳み込みニューラルネットワークの誤差逆伝播学習において、誤差関数に前記1以上の畳み込み層の正則化項を含める、計算機システム。 The computer system according to claim 1.
The one or more processors are computer systems that include the regularization term of the one or more convolutional layers in the error function in the error backpropagation learning of the convolutional neural network on the graph.
前記1以上のプロセッサは、前記プーリング処理において、入力値にスムースマキシマムを適用した後に平均値プーリングを行う、計算機システム。 The computer system according to claim 1.
A computer system in which one or more processors perform average value pooling after applying a smooth maximum to an input value in the pooling process.
前記1以上のプロセッサは、前記1以上の畳み込み層及び前記1以上のプーリング層の後段において、全域平均プーリングを実行する、計算機システム。 The computer system according to claim 1.
A computer system in which the one or more processors perform global average pooling in the subsequent stages of the one or more convolutional layers and the one or more pooling layers.
前記計算機システムは、ネットワークにより接続された複数のサブシステムを含み、
前記複数のサブシステムのそれぞれは、前記複数のサブシステムにおいて隣接するサブシステムとのみ通信を行い、
前記複数のサブシステムのそれぞれは、前記グラフ上の畳み込みニューラルネットワークにおいて、同一位置のニューロンからなるカラムの計算を行う、計算機システム。 The computer system according to claim 1.
The computer system includes a plurality of subsystems connected by a network.
Each of the plurality of subsystems communicates only with an adjacent subsystem in the plurality of subsystems .
Each of the plurality of subsystems is a computer system that calculates a column composed of neurons at the same position in the convolutional neural network on the graph.
前記複数のサブシステムのそれぞれは、
前記カラムの値を示す内部状態ベクトルを保持し、
隣接サブシステムを含む他のサブシステムから前記内部状態ベクトルを取得し、
自内部状態ベクトル及び前記他のサブシステムの内部状態ベクトルを使用して前記カラムの計算を行う、計算機システム。 The computer system according to claim 7.
Each of the above-mentioned multiple subsystems
Holds an internal state vector showing the value of the column,
Obtaining the internal state vector from other subsystems, including neighboring subsystems,
A computer system that calculates the column using its own internal state vector and the internal state vector of the other subsystem.
前記複数のサブシステムは、前記1以上の畳み込み層及び前記1以上のプーリング層の後段において、分散で前記カラムの値の平均値を計算する、計算機システム。 The computer system according to claim 7.
The plurality of subsystems are computer systems that calculate the average value of the values of the columns by dispersion in the subsequent stages of the one or more convolutional layers and the one or more pooling layers.
前記複数のサブシステムのそれぞれは、
他のサブシステムから独立して、誤差逆伝播による学習によって前記1以上の畳み込み層の重みを更新し、
前記更新した重みの平均値を前記他のサブシステムとの通信により計算する、計算機システム。 The computer system according to claim 7.
Each of the above-mentioned multiple subsystems
Independent of other subsystems, the weights of the one or more convolution layers are updated by learning by error backpropagation.
A computer system that calculates the average value of the updated weights by communicating with the other subsystems.
前記計算機システムは、
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記グラフ上の畳み込みニューラルネットワークは、
1以上の畳み込み層と、
1以上のプーリング層と、を含み、
前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、
前記方法は、
各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、
各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、
プーリング層の後段の畳み込み層のカーネルのサイズは、前記プーリング層の前段の畳み込み層のカーネルのサイズよりも大きい、方法。 A way in which a computer system performs a convolutional neural network on a graph,
The computer system is
With one or more processors
Including one or more storage devices,
The convolutional neural network on the graph
With one or more convolutional layers,
Including one or more pooling layers,
The one or more storage devices store the kernel weight data of the one or more convolution layers.
The method is
In each convolution layer, the value of each node is updated by a kernel-based convolution operation with a predetermined number of hops.
In each pooling layer, the value of each node is updated by the pooling process based on the value of each node and the value of the node within the pooling range of a predetermined number of hops from each node.
A method in which the size of the kernel of the convolution layer behind the pooling layer is larger than the size of the kernel of the convolution layer before the pooling layer .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018151323A JP7036689B2 (en) | 2018-08-10 | 2018-08-10 | Computer system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018151323A JP7036689B2 (en) | 2018-08-10 | 2018-08-10 | Computer system |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2020027399A JP2020027399A (en) | 2020-02-20 |
| JP2020027399A5 JP2020027399A5 (en) | 2021-04-22 |
| JP7036689B2 true JP7036689B2 (en) | 2022-03-15 |
Family
ID=69622172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018151323A Active JP7036689B2 (en) | 2018-08-10 | 2018-08-10 | Computer system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7036689B2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102192348B1 (en) * | 2020-02-24 | 2020-12-17 | 한국과학기술원 | Electronic device for integrated trajectory prediction for unspecified number of surrounding vehicles and operating method thereof |
| JP7412283B2 (en) * | 2020-06-16 | 2024-01-12 | 株式会社Nttドコモ | Prediction model generation system and prediction system |
| JP7659373B2 (en) * | 2020-07-09 | 2025-04-09 | キヤノン株式会社 | Convolutional Neural Network Processing Unit |
| CN112560953B (en) * | 2020-12-16 | 2023-08-15 | 中国平安财产保险股份有限公司 | Private car illegal operation identification method, system, equipment and storage medium |
| CN115130642B (en) * | 2021-03-26 | 2025-04-08 | 杭州海康威视数字技术股份有限公司 | Method, device, equipment and system for training and calculating graph convolution neural network |
| CN115791640B (en) * | 2023-02-06 | 2023-06-02 | 杭州华得森生物技术有限公司 | Tumor cell detection equipment and method based on spectroscopic spectrum |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190087509A1 (en) | 2017-09-19 | 2019-03-21 | Fujitsu Limited | Search method, computer-readable recording medium, and search device |
| US20190122111A1 (en) | 2017-10-24 | 2019-04-25 | Nec Laboratories America, Inc. | Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions |
-
2018
- 2018-08-10 JP JP2018151323A patent/JP7036689B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190087509A1 (en) | 2017-09-19 | 2019-03-21 | Fujitsu Limited | Search method, computer-readable recording medium, and search device |
| JP2019056960A (en) | 2017-09-19 | 2019-04-11 | 富士通株式会社 | SEARCH METHOD, SEARCH PROGRAM, AND SEARCH DEVICE |
| US20190122111A1 (en) | 2017-10-24 | 2019-04-25 | Nec Laboratories America, Inc. | Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2020027399A (en) | 2020-02-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7036689B2 (en) | Computer system | |
| CN114650249B (en) | Algorithm model and path determination method, electronic device, SDN controller and medium | |
| US20190042911A1 (en) | System and method for learning the structure of deep convolutional neural networks | |
| CN115311205A (en) | Industrial equipment fault detection method based on pattern neural network federal learning | |
| EP4475052B1 (en) | Method and apparatus with flexible job shop scheduling | |
| Sinha et al. | On data-driven computation of information transfer for causal inference in discrete-time dynamical systems | |
| CN105487537A (en) | Vehicle motion planning method and unmanned vehicle | |
| Gao et al. | Dynamic deep graph convolution with enhanced transformer networks for time series anomaly detection in IoT | |
| Coello Coello | Recent results and open problems in evolutionary multiobjective optimization | |
| James | Online traffic speed estimation for urban road networks with few data: A transfer learning approach | |
| Liu et al. | A surrogate model assisted evolutionary algorithm for computationally expensive design optimization problems with discrete variables | |
| Esguerra et al. | Sparsity-aware orthogonal initialization of deep neural networks | |
| US20240220688A1 (en) | Numerical Simulation Method By Deep Learning And Associated Recurrent Neural Network | |
| Lin et al. | Output-dependent Gaussian process state-space model | |
| Salehisadaghiani et al. | Nash equilibrium seeking with non-doubly stochastic communication weight matrix | |
| Zhang et al. | Distributed consensus-based boundary observers for freeway traffic estimation with sensor networks | |
| Wen et al. | Hierarchical sarsa learning based route guidance algorithm | |
| Ramezani-Mayiami et al. | Joint graph learning and signal recovery via Kalman filter for multivariate auto-regressive processes | |
| Krityakierne et al. | Global optimization with sparse and local Gaussian process models | |
| Xu et al. | Traffic flow forecasting with spatial-temporal graph convolutional networks in edge-computing systems | |
| Bouazzi et al. | Application of an improved genetic algorithm to Hamiltonian circuit problem | |
| US20230388224A1 (en) | Robust Network Path Generation | |
| Ismailov et al. | Intelligent algorithms of construction of public transport routes | |
| Boopalan et al. | A new kernel-based algorithm for cluster sparse system identification | |
| Pan et al. | An improved deep belief network model for road safety analyses |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210305 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210305 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220209 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220301 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220303 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7036689 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |