Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7036689B2 - Computer system - Google Patents
[go: Go Back, main page]

JP7036689B2 - Computer system - Google Patents

Computer system Download PDF

Info

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
Application number
JP2018151323A
Other languages
Japanese (ja)
Other versions
JP2020027399A (en
JP2020027399A5 (en
Inventor
幸二 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018151323A priority Critical patent/JP7036689B2/en
Publication of JP2020027399A publication Critical patent/JP2020027399A/en
Publication of JP2020027399A5 publication Critical patent/JP2020027399A5/ja
Application granted granted Critical
Publication of JP7036689B2 publication Critical patent/JP7036689B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, Patent Document 1 is a computer that executes arithmetic processing using a neural network composed of a plurality of layers including one or more neurons, and connects a plurality of nodes and a plurality of nodes. A storage unit that stores graph data composed of one or more edges and sample data that stores one or more values input to the neural network, and a construction unit that builds a neural network using graph data. , The construction unit generates one or more neurons in each of the plurality of layers based on the plurality of nodes contained in the graph data, and based on the one or more edges contained in the graph data, Disclosed (eg, summary) that a neural network is constructed by creating connections between one or more neurons contained in each of multiple layers. In addition, Non-Patent Document 1 discloses an example of a relational graph convolutional network.

国際公開第2016/174725号International Publication No. 2016/174725

M. Schlichtkrull et al.、 “Modeling Relational Data with Graph Convolutional Networks”、arXiv preprint arXiv:1703.06103、 2017.M. Schlichtkrull et al., “Modeling Relational Data with Graph Convolutional Networks”, arXiv preprint arXiv: 1703.06103, 2017.

様々な種類のニューラルネットワークが知られている中で、畳み込みニューラルネットワーク(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.

計算機システムの構成の一例を示す。An example of the configuration of a computer system is shown. ニューラルネットワークの一例を示す。An example of a neural network is shown. 畳み込みニューラルネットワークの例を示す。An example of a convolutional neural network is shown. グラフ上のCNNの構成例を示す。An example of the configuration of CNN on the graph is shown. グラフデータの例を示す。An example of graph data is shown. 一つのノード及び当該ノードに接続されているノードを示す。Indicates one node and a node connected to the node. 重みデータの一部であって、ノードの畳み込みに関する値を示す。It is a part of the weight data and shows the value related to the convolution of the node. ノードの状態値の更新を模式的に示す。The update of the state value of the node is shown schematically. グラフ上のCNNの第1畳み込み層、第1プーリング層、第2畳み込み層及び第2プーリング層詳細を示す。The details of the first convolution layer, the first pooling layer, the second convolution layer and the second pooling layer of CNN on the graph are shown. グラフ上のCNNに入力されるグラフデータの例を示す。An example of graph data input to CNN on the graph is shown. 第1畳み込み層の畳み込み演算の例を示す。An example of the convolution operation of the first convolution layer is shown. グラフデータの属性の例を示す。An example of the attributes of graph data is shown. 本例の重みデータの一部のデータを示す。Some data of the weight data of this example are shown. 第1畳み込み層によりエッジの状態値の更新を示す。The update of the edge state value is shown by the first convolution layer. 第1プーリング層によるプーリング処理を模式的に示す。The pooling process by the first pooling layer is schematically shown. 図15に示すグラフ構造を有するグラフデータにおいて、適用可能なラプラシアン行例の例を示す。An example of an applicable Laplacian row example is shown in the graph data having the graph structure shown in FIG. 第2畳み込み層による、ノードのための畳み込み演算を模式的に示す。The convolution operation for the node by the second convolution layer is schematically shown. 計算機が実行する学習処理を説明するフローチャートである。It is a flowchart explaining the learning process which a computer executes. 分散CNNを実行する計算機システムの例を示す。An example of a computer system that executes a distributed CNN is shown. 分散CNNの層及びカラムの例を示す。Examples of dispersed CNN layers and columns are shown. 分散CNNの概念的な構成例を示す。An example of a conceptual configuration of a distributed CNN is shown. 関数fの適用ノードの伝播則を示す。The propagation rule of the application node of the function f is shown. 可算ノードの伝播則を示す。Shows the propagation rule of countable nodes. 乗算ノードの伝播則を示す。The propagation rule of the multiplication node is shown. 変数複製ノード(分岐ノード)の伝播則を示す。The propagation rule of the variable replication node (branch node) is shown. 分散CNNの構成例及びその処理を示す。A configuration example of the dispersed CNN and its processing are shown.

以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 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 computer system 100 is composed of a plurality of computers 101 and a storage system 102, and the plurality of computers 101 and the storage system 102 are connected via a network 103 so as to be able to communicate with each other. .. The computer system 100 of this embodiment includes three computers 101. In FIG. 1, only one computer is designated by reference numeral 100 as an example. The number of computers and storage systems is arbitrary. The computer system 100 may be composed of one computer 101.

ネットワーク103は、WAN(Wide Area Network)、LAN(Local Area Network)、及びSAN(Storage Area Network)等が考えられる。なお、ネットワーク103の種別は限定されない。計算機101それぞれとストレージシステム102接続するネットワークと、計算機101それぞれを接続するネットワークは、異なるネットワークであってもよい。 As the network 103, a WAN (Wide Area Network), a LAN (Local Area Network), a SAN (Storage Area Network), and the like can be considered. The type of network 103 is not limited. The network connecting each computer 101 and the storage system 102 and the network connecting each computer 101 may be different networks.

計算機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 computer 101 includes a processor 110, a memory 111, a communication interface 112, and an input / output interface 118, and each configuration is connected to each other via a bus 114. Further, the input / output device 119 is connected to another device via the input / output interface 118. The processor 110 includes one or more CPUs 115 that perform arithmetic processing. In FIG. 1, only one CPU is designated by reference numeral 115. The CPU 115 realizes the function of the computer 101 by executing the program stored in the memory 111. Further, the process executed on the computer 101 is executed by one or more CPUs 115. It should be noted that one CPU 115 may execute a plurality of processes. The CPU 115 may be an arithmetic unit such as FPGA or GPU.

メモリ111は、プロセッサ110が実行するプログラム及び当該プログラムによって使用される情報を格納する。また、メモリ111は、プロセッサ110が実行する1つの処理に対して割り当てられるメモリ空間を含む。なお、当該メモリ空間は、複数のメモリ111のメモリ領域上に確保されてもよいし、また、1つのメモリ111のメモリ領域上に確保されてもよい。また、メモリ111は、複数の処理のメモリ空間を含んでもよい。メモリ111に格納されるプログラム及び情報については後述する。 The memory 111 stores a program executed by the processor 110 and information used by the program. Further, the memory 111 includes a memory space allocated for one process executed by the processor 110. The memory space may be secured on the memory areas of a plurality of memories 111, or may be secured on the memory area of one memory 111. Further, the memory 111 may include a memory space for a plurality of processes. The program and information stored in the memory 111 will be described later.

通信インタフェース112は、ネットワーク103を介して外部装置と通信する。プロセッサ110は、通信インタフェース112を介して、他の装置にアクセスする。入出力インタフェース118は、ネットワーク103を介して、他の装置と入出力装置119との通信を媒介する。 The communication interface 112 communicates with an external device via the network 103. The processor 110 accesses other devices via the communication interface 112. The input / output interface 118 mediates communication between another device and the input / output device 119 via the network 103.

ストレージシステム102は、ディスクインタフェース133、及び複数の記憶デバイス117を含み、各装置はバス135を介して互いに接続される。ディスクインタフェース133は、複数の記憶ドライブ134と接続するためのインタフェースである。記憶ドライブ134は、各種データを格納する記憶装置であり、例えば、HDDやSSDである。図1において、一つの記憶ドライブのみが符号134で指示されている。 The storage system 102 includes a disk interface 133 and a plurality of storage devices 117, and each device is connected to each other via a bus 135. The disk interface 133 is an interface for connecting to a plurality of storage drives 134. The storage drive 134 is a storage device for storing various data, for example, an HDD or an SSD. In FIG. 1, only one storage drive is designated by reference numeral 134.

メモリ111は、データ処理部120を実現するプログラムを格納する。データ処理部120を実行するプロセッサ110は、逆誤差伝播により学習処理、及び順伝播による分析処理を実行する。学習処理では、プロセッサ110は、学習データ122を使用して、構築したニューラルネットワーク内のエッジの重みを決定する。分析処理では、プロセッサ110は、分析対象であるデータを、構築されたニューラルネットワークに入力することによって、分類や回帰等の所定の分析を行う。 The memory 111 stores a program that realizes the data processing unit 120. The processor 110 that executes the data processing unit 120 executes a learning process by inverse error propagation and an analysis process by forward propagation. In the training process, the processor 110 uses the training data 122 to determine the weights of the edges in the constructed neural network. In the analysis process, the processor 110 inputs the data to be analyzed into the constructed neural network to perform predetermined analysis such as classification and regression.

なお、データ処理部120は、複数のプログラムモジュールから構成されてもよい。例えば、データ処理部120は、ニューラルネットワークを構築する構築モジュール、学習処理を実行する学習処理モジュール、及び分析処理を実行する分析処理モジュールを含んでもよい。また、それぞれのプログラムモジュールを別々の計算機101が実行してもよい。 The data processing unit 120 may be composed of a plurality of program modules. For example, the data processing unit 120 may include a construction module for constructing a neural network, a learning processing module for executing learning processing, and an analysis processing module for executing analysis processing. Further, each program module may be executed by a separate computer 101.

[ニューラルネットワーク]
図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 input layer 201, an intermediate layer 202, and an output layer 203. Each layer is composed of one or more neurons 211. Also, the neuron 211 in each layer connects to at least one neuron 211 in the other layer. Specifically, the neuron 211 of the input layer 201 is connected to at least one neuron 211 of the intermediate layer 202, and the neuron 211 of the intermediate layer 202 is connected to at least one neuron 211 of the output layer 203. The side of the input layer 201 is the front stage side, and the side of the output layer 203 is the rear stage side.

エッジ212はニューロン211間のデータの出力を表す。ニューラルネットワーク200は、分析処理において、入力されたデータを入力層201から、中間層202を介して、出力層203に順伝播する。各ニューロン211に入力された値は、エッジに割り当てられている重みと掛け算され、エッジ212によって接続される他の層のニューロン211に出力される。入力211への入力はバイアスを含んでよい。重みは、ニューロン211間の接続の強さを表し、後述する学習処理によって決定される。学習処理は、損失信号の誤差逆伝播により各層の重みが更新される。 Edge 212 represents the output of data between neurons 211. In the analysis process, the neural network 200 forward propagates the input data from the input layer 201 to the output layer 203 via the intermediate layer 202. The value input to each neuron 211 is multiplied by the weight assigned to the edge and output to neurons 211 in other layers connected by the edge 212. The input to input 211 may include a bias. The weight represents the strength of the connection between the neurons 211 and is determined by the learning process described later. In the learning process, the weight of each layer is updated by the error back propagation of the loss signal.

図1に戻って、メモリ111は、グラフデータ121、学習データ122、及び重みデータ123を格納する。グラフデータ121は、任意の要素に対応するノード、及びノード間を接続するエッジから構成されるグラフ構造を有するデータである。学習データ122は、ニューラルネットワークを用いた学習処理において用いられるデータである。重みデータ123は、ニューラルネットワークの学習処理の処理結果である重みを管理する情報である。 Returning to FIG. 1, the memory 111 stores the graph data 121, the training data 122, and the weight data 123. The graph data 121 is data having a graph structure composed of nodes corresponding to arbitrary elements and edges connecting the nodes. The training data 122 is data used in a learning process using a neural network. The weight data 123 is information that manages weights that are the processing results of the learning process of the neural network.

グラフデータ121及び学習データ122は、例えば、ストレージシステム102に格納されており、プロセッサ110が、ストレージシステム102からグラフデータ121及び学習データ122を取得し、取得されたグラフデータ121及び学習データ122をメモリ111にロードする。 The graph data 121 and the training data 122 are stored in, for example, the storage system 102, and the processor 110 acquires the graph data 121 and the training data 122 from the storage system 102, and obtains the acquired graph data 121 and the training data 122. Load into memory 111.

[グリッド上のCNN]
図3は、畳み込みニューラルネットワーク(CNN)の例を示す。本開示の計算機システム100は、グラフ上のCNNを実行する。図3を参照して、典型的なグリッド上のCNN300を説明する。グリッド上のCNNは、画像データのようなマトリックス状(グリッド状)の入力データを処理する。
[CNN on the grid]
FIG. 3 shows an example of a convolutional neural network (CNN). The computer system 100 of the present disclosure executes a CNN on a graph. A typical CNN300 on a grid will be described with reference to FIG. The CNN on the grid processes matrix-like (grid-like) input data such as image data.

図3の例において、28x28のグレースケールの手書きの数字の画像301が入力される。CNN300は、5x5の畳み込みフィルタ及びReLU関数を適用して(302)、6つの24x24の特徴マップ303を生成する。CNN300は、これら特徴マップに2x2の最大値プーリングを適用して(304)、画像サイズを半分に縮小された特徴マップ305を生成する。 In the example of FIG. 3, a 28x28 grayscale handwritten numeric image 301 is input. The CNN300 applies a 5x5 convolution filter and a ReLU function (302) to generate six 24x24 feature maps 303. The CNN 300 applies a 2x2 maximum value pooling to these feature maps (304) to generate a feature map 305 with the image size reduced in half.

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 feature map 309 with the image size reduced in half. After that, the perceptron 310 consisting of two fully connected layers finally outputs a 10-dimensional vector. The output 10-dimensional vector is converted into a one-hot vector representation by the SoftMax function, and represents the plausibility of which number from 0 to 9 in the input image.

[グラフ上の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 computer system 100 executes the CNN on the graph. FIG. 4 shows a configuration example 400 of CNN on the graph. FIG. 4 shows forward propagation (analytical processing) in the CNN 400, which is executed by the data processing unit 120. The CNN 400 on the graph processes the data on a common graph structure in each layer.

グラフ構造は、複数のノードと、それぞれ二つノードを接続する複数のエッジで構成されている。グリッド構造はグラフ構造の一つであり、各ノードが隣接するノードそれぞれとエッジで接続されている。本開示におけるグラフ構造は、任意の複数ノードと、任意数のエッジとで構成される。一つのノードは、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 graph data 121 is input to the CNN 400 on the graph. As described above, each node of the graph data 121 has a state value, and an edge between the nodes is defined.

図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 CNN 400 of FIG. 4 includes two convolutional layers and two pooling layers, such as the CNN 300 on the grid described with reference to FIG. Specifically, the CNN 400 includes a first convolution layer 411, a first pooling layer 412, a second convolution layer 413, a second pooling layer 414 and a global average polling (GAP) layer 415. The first convolution layer 411 performs a convolution operation of the input graph data 121 on the graph structure of the graph data 121. As a result, two feature maps 402 are generated.

第1プーリング層412、グラフデータ121のグラフ構造上で、特徴マップ402それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ403に変換する。第2畳み込み層413は、グラフデータ121のグラフ構造上で、特徴マップ403の畳み込み演算を行う。これにより、3つの特徴マップ404が生成される。 On the graph structure of the first pooling layer 412 and the graph data 121, a pooling process is executed for each of the feature maps 402 to convert them into feature maps 403 with reduced freedom of expression. The second convolution layer 413 performs a convolution operation of the feature map 403 on the graph structure of the graph data 121. As a result, three feature maps 404 are generated.

第2プーリング層414、グラフデータ121のグラフ構造上で、特徴マップ404それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ405に変換する。特徴マップ405は全域平均プーリング層415に入力される。全域平均プーリング層415は、チャネル毎に全てのニューロンの値の平均値をとる。 On the graph structure of the second pooling layer 414 and the graph data 121, a pooling process is executed for each of the feature maps 404 to convert them into a feature map 405 with reduced freedom of expression. The feature map 405 is input to the global average pooling layer 415. The global average pooling layer 415 takes the average value of all neuron values for each channel.

畳み込み層及びプーリング層の処理の詳細は後述するが、畳み込み層及びプーリング層は、それぞれ、グラフデータの各ノードの状態値を更新する。したがって、各層に入力されたデータのグラフ構造は、出力データにおいて維持されている。具体的には、入力グラフデータ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 input graph data 121 and the feature maps 402 to 405 is common. In each layer, there is a neuron corresponding to each node, and the neuron outputs a new value of the corresponding node. In another example, the graph structure of the input data in one or more layers may be different from the graph structure of the output data.

図5は、グラフデータ121の例を示す。図5に示すグラフデータ121は、エッジの構造情報500及びノードの構造情報510を含む。エッジの構造情報500は、エッジID501、ノードID502、及びエッジ属性503を含む。エッジID501は、グラフデータのエッジそれぞれのIDを示す。ノードID502は、グラフデータそれぞれのノードのIDを示す。エッジ属性503は、エッジそれぞれに付与されている属性情報を示す。エッジ属性503は、エッジの向き及び種類の情報を含む。 FIG. 5 shows an example of graph data 121. The graph data 121 shown in FIG. 5 includes edge structure information 500 and node structure information 510. The edge structure information 500 includes an edge ID 501, a node ID 502, and an edge attribute 503. The edge ID 501 indicates the ID of each edge of the graph data. The node ID 502 indicates the ID of each node in the graph data. The edge attribute 503 indicates the attribute information given to each edge. The edge attribute 503 includes information on the orientation and type of the edge.

ノードの構造情報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 node structure information 510 includes a node ID 511, an edge ID (OUT) 512, an edge ID (IN) 513, and a node attribute 514. The node ID 511 is the same as the node ID 502. The edge ID (OUT) 512 indicates the ID of the edge flowing out from the node. The node is the start point node of the edge indicated by the edge ID (OUT) 512. The edge ID (OUT) 513 indicates the ID of the edge flowing into the node indicated by the node ID 511. The node is the end point of the edge indicated by the edge ID (IN) 513. The node attribute 514 indicates the attribute information of the node. The node attribute 514 contains information on the node type.

様々な種類の情報がグラフデータで表わすことができ、例えば、地図情報、分子構造情報、ソーシャルネットワークの情報、交通網の情報などが、グラフデータで表わすことができる。例えば、地図の位置がノードで表わされ、道路がエッジで表わされる。土地を表すノードの属性情報は、不動産価値や、駅又は公園等の土地の利用形態などを含む。また、道路を表すエッジの属性情報は、路線名、道路幅、接続する土地(ノード)の属性、向きなどを含む。土地及び道路の属性情報に応じて、土地及び道路それぞれに属性種類が定義される。例えば、グラフ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 node 600 and nodes 611 to 614 and 621 to 623 connected to the node 600. The edge connecting the node 600 and the nodes 611 to 614 each has the attribute R1. The edge connecting the node 600 and the nodes 621 to 623 each has the attribute R2.

図7は、重みデータ123の一部であって、ノード600の畳み込みに関する値を示す。重みデータ123は、エッジ属性種類601と重み602を含む。エッジ属性種類601は、エッジ属性の種類の識別子を示す。本例において、エッジ属性種類601とグラフデータ121のエッジ属性503で示される種類とは異なる。これらは同一であってもよい。重み602は、エッジ属性種類それぞれの重みを示す。重み602が示す値は、CNN400の学習(訓練)において更新される。なお、本例のノード600の状態値の畳み込み演算のバイアスは0とする。 FIG. 7 is a part of the weight data 123 and shows the value related to the convolution of the node 600. The weight data 123 includes the edge attribute type 601 and the weight 602. The edge attribute type 601 indicates an identifier of the edge attribute type. In this example, the edge attribute type 601 is different from the type shown by the edge attribute 503 of the graph data 121. These may be the same. The weight 602 indicates the weight of each edge attribute type. The value indicated by the weight 602 is updated in the learning (training) of the CNN 400. The bias of the convolution operation of the state value of the node 600 in this example is set to 0.

図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 node 600. Specifically, the edge attribute type of the edge connecting the nodes 612 to 614 and the node 600 is R1 (IN). The edge attribute type of the edge connecting the node 611 and the node 600 is R1 (OUT). The edge attribute type of the edge connecting the nodes 622 and 623 and the node 600 is R2 (IN). The edge attribute type of the edge connecting the node 621 and the node 600 is R2 (OUT). The start point and end point of the edge 631 are self-loops of the node 600, and the edge attribute type thereof is SELF.

図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 node 600. In the convolution operation, first, the sum of the state values of the nodes of the same edge attribute type is calculated. Specifically, it is as follows. The edge attribute type of the nodes 612 to 614 is R1 (IN). The convolution operation calculates the sum 811 of the state values 801 of the nodes 612 to 614. The edge attribute type of the node 611 is R1 (OUT). The convolution operation calculates the sum 812 of the state values 802 of the node 611.

ノード622及び623のエッジ属性種類はR2(IN)である。畳み込み演算は、ノード622及び623の状態値803の総和813を計算する。ノード621のエッジ属性種類はR2(OUT)である。畳み込み演算は、ノード621の状態値804の総和814を計算する。畳み込み演算は、セルフループエッジ631に対して、ノード600の状態値805の総和815を計算する。 The edge attribute type of the nodes 622 and 623 is R2 (IN). The convolution operation calculates the sum of 813 of the state values 803 of the nodes 622 and 623. The edge attribute type of the node 621 is R2 (OUT). The convolution operation calculates the sum 814 of the state values 804 of the node 621. The convolution operation calculates the total sum 815 of the state values 805 of the node 600 for the self-loop edge 631.

次に、畳み込み演算は、エッジ属性種類の総和と対応する重みの積和を計算する。エッジ属性種類の重みは、図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 weight data 123 of FIG. That is, in the convolution operation, the sum of the edge attribute types is multiplied by the weight indicated by the weight data 123, and the sum of them is calculated (821). The convolution operation outputs a state value 831 obtained by applying the ReLU function 822 to this sum of products.

図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 first convolution layer 411, the first pooling layer 412, the second convolution layer 413, and the second pooling layer 414 of the CNN 400 on the graph. The first convolution layer 411 calculates the updated value of the state value of each node from the state value of the node and the node in one hop by using the ReLU function. The first pooling layer 412 executes the pooling process within one hop. The details of the pooling process will be described later.

第2畳み込み層413は、各ノードの状態値の更新値を、当該ノード及び2ホップ内のノードの状態値から、ReLU関数を使用して計算する。第2プーリング層414は、2ホップ内でのプーリング処理を実行する。2ホップ内でのプーリング処理を実行するかわりに、1ホッププーリングを2回実行してもよい。 The second convolution layer 413 calculates the updated value of the state value of each node from the state value of the node and the node within 2 hops by using the ReLU function. The second pooling layer 414 executes the pooling process within two hops. Instead of executing the pooling process within 2 hops, 1 hop pooling may be executed twice.

図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 second convolution layer 413 is wider than the range of the convolution calculation of the first convolution layer 411. Further, the first pooling layer 412 executes the pooling process within one hop, whereas the second pooling layer 414 executes the pooling process within two hops. This means that the range of the pooling treatment of the second pooling layer 414 is wider than the range of the pooling treatment of the first pooling layer 412.

図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 CNN 400 on the graph of this example execute the pooling process without reducing the graph structure. As will be described later, the pooling process in the CNN 400 on the graph substantially performs pooling by incorporating the regularization of bringing the values closer to each other while keeping the size of the graph constant.

第1プーリング層412の直後の第2畳み込み層413は、プーリング層で近隣のノードの値が近づいてしまうため、広い範囲を見る、すなわち、畳み込みフィルタのカーネルサイズを広げる。これにより、プーリング処理後の畳み込み演算がより有効となる。第2畳み込み層413の後のプーリング層414は、第2畳み込み層413の畳み込みフィルタのカーネルサイズが広げられたため、プーリング範囲を広げることで、より有効なプーリング処理を実現する。 The second convolution layer 413 immediately after the first pooling layer 412 looks at a wide range, that is, widens the kernel size of the convolution filter because the values of neighboring nodes approach each other in the pooling layer. This makes the convolution operation after the pooling process more effective. Since the kernel size of the convolution filter of the second convolution layer 413 is expanded in the pooling layer 414 after the second convolution layer 413, a more effective pooling process is realized by expanding the pooling range.

図9に示す例において、第1畳み込み層411の範囲は1ホップ内であるが、第1畳み込み層411の範囲はより広くてもよい。第2畳み込み層413の範囲は、第1畳み込み層411の範囲より広ければ、それらの関係は限定されない。例えば、第2畳み込み層413の範囲は、3ホップ以上であってもよい。 In the example shown in FIG. 9, the range of the first convolution layer 411 is within one hop, but the range of the first convolution layer 411 may be wider. As long as the range of the second convolution layer 413 is wider than the range of the first convolution layer 411, their relationship is not limited. For example, the range of the second convolution layer 413 may be 3 hops or more.

グラフ上の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 graph data 121 input to the CNN 400 on the graph. The graph data 121 includes nodes N1 to N13 and a plurality of edges connecting the nodes, respectively. Although not explicitly shown in FIG. 10, a state value is defined for each of the nodes N1 to N13, and an edge attribute type is defined for each of the edges.

[第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 first convolution layer 411. FIG. 11 shows an example of updating the state value of the node N1. The first convolution layer 411 executes the convolution operation within one hop. The nodes within one hop from the node N1, that is, the nodes connected to the node N1 at one edge are the nodes N2, N6, N9, N10 and N12. The first convolution layer 411 collects the state values of the nodes N2, N6, N9, N10 and N12, and calculates the update state value of the node N1 from the state values of these and the state value of the node N1.

図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 graph data 121. An edge attribute type is defined for each edge of the graph data, and is indicated by a code consisting of P and a number. For example, the edge attribute type of the edge between the node N1 and the node N12 is R1, the edge attribute type of the edge between the node N1 and the node N2 is R2, and the edge attribute type of the edge between the node N1 and the node N6. The type is R3. The edge of the edge attribute type R1 is represented by a solid line, the edge of the edge attribute type R2 is represented by a broken line, and the edge of the edge attribute type R3 is represented by a two-dot chain line.

図13は、本例の重みデータ123の一部のデータを示す。重みデータ123は、対象ノードの現在状態値の重みW0及び1ホップのエッジ属性種類の重みを定義すると共に、2ホップのエッジ属性種類の重みを定義する。1ホップのエッジ属性種類は、エッジそれぞれのエッジ属性種類R1、R2及びR3と一致する。2ホップのエッジ属性種類は、2つのPと2つの数字で表わされており、二つのエッジのエッジ属性種類の組を示す。 FIG. 13 shows a part of the weight data 123 of this example. The weight data 123 defines the weight W0 of the current state value of the target node and the weight of the edge attribute type of 1 hop, and also defines the weight of the edge attribute type of 2 hops. The edge attribute type of one hop matches the edge attribute types R1, R2, and R3 of each edge. The two-hop edge attribute type is represented by two Ps and two numbers, and indicates a set of two edge edge attribute types.

より具体的には、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 first convolution layer 411. The first convolution layer 411 has the state value V1 of the target node N1 and the state values V2, V6, V9, V10, V12 of the nodes within one hop of the target node N1, that is, the adjacent nodes N2, N6, N9, N10, N12. To get. The edge attribute types of the edges between the target node N1 and the adjacent nodes N2, N6, N9, N10, and N12 are R2, R3, R1, R2, and R1.

図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 weight data 123 in FIG. 13, the weight of the state value of the own node is W0, and the weights of the edge attribute types R1, R2 and R3 are W1, W2 and W3, respectively. In the example of the convolution operation, different weights for each edge attribute type of the edge are multiplied by the state value of the node and added, and the sum of all the edge attribute types is calculated. That is, the convolution operation for the node N1 is expressed by the following mathematical formula. The bias was set to 0.
V1'= W0 x V1 + W1 * (V9 + V12) + W2 * (V2 + V10) + W3 * V6

第1畳み込み層411は、畳み込み演算の結果の状態値V1´を非線形関数であるReLUに入力し、その出力をノードN1の新たな状態値V1として保持する。なお、ReLUと異なる非線形関数(例えばシグモイド関数)を使用してもよい。第1畳み込み層411は、全てのノードについて、上述のような処理を行う。 The first convolution layer 411 inputs the state value V1'as a result of the convolution operation to ReLU, which is a nonlinear function, and holds the output as a new state value V1 of the node N1. A non-linear function different from ReLU (for example, a sigmoid function) may be used. The first convolution layer 411 performs the above-mentioned processing for all the nodes.

[第1プーリング層]
次に、第1プーリング層412の処理を説明する。従来のグリッド上のCNNは、畳み込み演算(+非線形活性化関数の適用)の後に、プーリング処理により画像サイズを縮小することが一般的である。本開示のグラフ上のCNN400のプーリング層は、入力グラフデータ121のグラフ構造を変更することなく従来のプーリング処理に相当する処理、つまり、グラフ上のプーリング処理を実行する。
[First pooling layer]
Next, the processing of the first pooling layer 412 will be described. In the conventional CNN on the grid, the image size is generally reduced by a pooling process after the convolution operation (+ application of the nonlinear activation function). The pooling layer of the CNN 400 on the graph of the present disclosure executes a process corresponding to the conventional pooling process, that is, a pooling process on the graph, without changing the graph structure of the input graph data 121.

プーリング処理は、近隣のノードで値を近づける処理であり、これによって、表現の自由度を低減する。以下において、いくつかのグラフ上のプーリング処理の例を説明する。プーリング処理には、いくつかの手法が知られているが、一般に使用される手法は、平均値プーリング及び最大値プーリングである。そこで、以下においては、グラフ上の平均値プーリング及び最大値プーリングを説明する。 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 first pooling layer 412. In FIG. 15, two nodes N1 and N2 are of interest. The first pooling layer 412 updates the state value of the node N1 so as to approach the state values of the adjacent nodes N2, N6, N9, N10, N12. Similarly, the first pooling layer 412 updates the state value of the node N2 so as to approach the state value of the adjacent nodes N1, N3, N4, N5.

グラフ上の平均値プーリングの例は、対象ノード及び隣接ノードの状態値をもとに、対象ノードの新たな状態値が、対象ノード及び隣接ノードの新たな状態値の平均値になるように、対象ノードの新たな状態値と決定する。例えば、第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 first pooling layer 412 acquires the current (pre-update) state values of the node N1 and its adjacent nodes N2, N6, N9, N10, N12 and calculates the average value thereof. The first pooling layer 412 determines the average value as a new state value of the node N1. The first pooling layer 412 may calculate the average value of the values weighted to the state values of the nodes according to the edge attribute type.

グラフ上の平均値プーリングの他の例は、以下の数式に従って対象ノードの新たな状態値を決定する。Nはグラフデータ121のノードの集合を示し、Eはエッジの集合を示す。pは、ノードiのプーリング処理の出力であり、vは、ノードiのプーリング処理の入力である。vは、直前の畳み込み演算の出力(状態値)である。βはハイパーパラメータ、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 graph data 121, and E indicates a set of edges. pi is the output of the pooling process of the node i , and vi is the input of the pooling process of the node i . vi is the output (state value) of the immediately preceding convolution operation. β is a hyperparameter, I is an identity matrix, and L is a Laplacian matrix. D is the total number of edges of the graph data 121. The reason why the second term on the right side is divided by D is to make the strength of the constraint per edge uniform, but a configuration that does not divide by D (D = 1) is also conceivable.

Figure 0007036689000001
Figure 0007036689000001

ノードiの第1プーリング層412の出力pは、第1項より入力vに近い値であり、かつ、第2項より隣接するノードの出力値pとも近い値となる。βが大きくなると第2項の寄与が大きくなるため、グラフ上のより広い範囲で値が近づくことになる。すなわち、βはプーリング処理のカーネルサイズに相当するパラメータである。上記式は、より汎用的に適切な平均値プーリングを行うことができる。 The output p i of the first pooling layer 412 of the node i is a value closer to the input v i than the first term, and is also a value closer to the output value p j of the adjacent node than the second term. As β becomes larger, the contribution of the second term becomes larger, so that the values approach in a wider range on the graph. That is, β is a parameter corresponding to the kernel size of the pooling process. The above equation can be used for more general purpose and appropriate average value pooling.

図16は、図15に示すグラフ構造を有するグラフデータ121において、適用可能なラプラシアン行例Lの例を示す。上記プーリング処理の式及び図16に示すラプラシアン行例Lは、エッジ属性種類を無視して、全エッジを一律にプーリング処理する場合に使用される。プーリング処理は、エッジ属性種類を無視して実行してもよい。 FIG. 16 shows an example of an applicable Laplacian row example L in the graph data 121 having the graph structure shown in FIG. The above equation for pooling and the Laplacian line example L shown in FIG. 16 are 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は、エッジ属性種類毎にプーリング処理を実行する。具体的には、エッジ属性種類に基づくプーリング処理の例は、以下の数式に従う。 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 first pooling layer 412 executes a pooling process for each edge attribute type. Specifically, an example of pooling processing based on the edge attribute type follows the following formula.

Figure 0007036689000002
Figure 0007036689000002

、E、Eは、それぞれ、エッジ属性種類R1、R2及びR3のエッジの集合を示す。β、β、βは、それぞれ、エッジ属性種類R1、R2及びR3のハイパーパラメータ(プーリングのカーネルサイズ)である。L、L、Lは、それぞれ、エッジ属性種類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 first pooling layer 412 acquires the current (pre-update) state values of the node N2 and its adjacent nodes N1, N3, N4, N5 and selects the maximum value among them. The first pooling layer 412 determines the maximum value as a new state value of the node N2. The first pooling layer 412 may select a node to give an update value based on the weight according to the edge attribute type.

グラフ上の最大値プーリングの他の例は、入力値(ノードの現在の状態値)に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.

Figure 0007036689000003
Figure 0007036689000003

ρは、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 first pooling layer 412 may execute the pooling process based on the edge attribute type. The first pooling layer 412 uses [Equation 2] instead of [Equation 1]. As a result, a more appropriate pooling process can be executed. The first pooling layer 412 executes a pooling process for each edge attribute type.

[第2畳み込み層]
次に、第2畳み込み層413の処理を説明する。上述のように、第1プーリング層412は、グラフ構造のサイズを一定に保つ一方で、近隣のノード間で値を近づけるという正則化をとりいれることで、データの表現の自由度を低減する。第2畳み込み層413は、第1プーリング層412で近隣のノードの値が近づいてしまう分、広い範囲を参照する、つまり、畳み込みフィルタのカーネルサイズ(畳み込み演算で参照するノードの範囲)を広げる。
[Second convolution layer]
Next, the processing of the second convolution layer 413 will be described. As described above, the first pooling layer 412 reduces the degree of freedom of expression of data by adopting the regularization that the values are brought close to each other while keeping the size of the graph structure constant. The second convolution layer 413 refers to a wide range because the values of neighboring nodes approach each other in the first pooling layer 412, that is, the kernel size of the convolution filter (the range of the nodes referred to in the convolution operation) is expanded.

図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 second convolution layer 413. A similar convolution operation is performed on all nodes. The second convolution layer 413 acquires the current (pre-update) state value of the node within the range of 2 hops from the node N1. The node within the 2-hop range is composed of a node of 1 hop and a node of 2 hops from the target node. It should be noted that instead of using the nodes within the 2-hop range, that is, the 1-hop node and the 2-hop node, it is conceivable to use only the 2-hop node.

図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 second convolution layer 413 is defined by the state value of the target node N1, the state value of the node 1 hop from the target node N1, the state value of the node 2 hops from the target node N1, and the weight data 123 for each edge attribute type. Calculate the sum of products of the weights. As described with reference to FIG. 13, the weight data 123 defines the weight of the own node, the weight of the edge attribute type of one edge, and the weight of the edge attribute type of the pair of two edges. Although not shown, the weight data 123 further defines the weights of the edge attribute types of the set of three or more types of edges. Similar to the first convolution layer 411, the state value of the target node obtained by the convolution operation is input to ReLU, and its output is held as a new state value of the target node. The convolution operation of the second convolution layer 413 can include a bias.

[第2プーリング層]
第2プーリング層414は、図9に示すように、2ホップ範囲内でプーリング処理を実行する。例えば、第2プーリング層414は、第1プーリング層412が実行するプーリング処理を2回実行する。これにより、第2畳み込み層413の処理範囲に応じたプーリング処理を行うことができる。
[Second pooling layer]
As shown in FIG. 9, the second pooling layer 414 executes the pooling process within a two-hop range. For example, the second pooling layer 414 executes the pooling process executed by the first pooling layer 412 twice. As a result, the pooling process can be performed according to the process range of the second convolution layer 413.

[全域平均プーリング層]
次に、全域平均プーリング層415の処理を説明する。グラフ上のCNN400は、ノード数やエッジ数が異なる様々なグラフ構造のグラフデータを取り扱う。従来のCNNにおける全結合層は、入力層のニューロンの数が固定であることを前提としており、グラフ上のCNN400にそのまま適用することはできない。本開示のグラフ上のCNN400は、全域平均プーリングを使用する。なお、入力されるグラフデータのグラフ構造が一定である場合、全域平均プーリング層に代えて、全てのニューロンの値を一ヶ所に集めてアフィン演算することで最終出力する値を計算する全結合層を使用してもよい。
[Overall average pooling layer]
Next, the treatment of the whole area average pooling layer 415 will be described. The CNN400 on the graph handles graph data having various graph structures having different numbers of nodes and edges. The fully connected layer in the conventional CNN is based on the premise that the number of neurons in the input layer is fixed, and cannot be directly applied to the CNN 400 on the graph. The CNN400 on the graph of the present disclosure uses global average pooling. If the graph structure of the input graph data is constant, instead of the global average pooling layer, the values of all neurons are collected in one place and affine arithmetic is performed to calculate the final output value. May be used.

全域平均プーリング層415は、その入力のチャネル毎に全てのニューロンの値の平均値をとる。したがって、全域平均プーリング層415の出力は入力チャネル数の次元のベクトルとなる。例えば、全域平均プーリング層415の後段にアフィン変換層(全結合層)を配置し、最終的に必要とする次元の出力を得る。全域平均プーリング層415は全結合層に比べてパラメータ数が大幅に少ないにも関わらず、全結合層と同等以上の性能を示すことができる。 The global mean pooling layer 415 takes the mean of the values of all neurons for each channel of its input. Therefore, the output of the global average pooling layer 415 is a vector of the dimensions of the number of input channels. For example, an affine transformation layer (fully connected layer) is arranged after the global average pooling layer 415 to finally obtain an output of the required dimension. Although the global average pooling layer 415 has a significantly smaller number of parameters than the fully connected layer, it can exhibit performance equal to or higher than that of the fully connected layer.

[誤差逆伝播による学習(訓練)]
以下において、グラフ上の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 data processing unit 120. Error backpropagation follows the nodes of the graph in forward propagation in reverse. As mentioned above, the second convolution layer 413 increases the kernel size of the convolution filter. However, since the values of neighboring nodes are approaching in the first pooling layer 412, simply increasing the kernel size increases the degree of freedom in parameter setting too much, causing overfitting or a defective setting problem and parameters. There is a possibility that you cannot learn at all.

そこで、プーリング後の第2畳み込み層413に対して、畳み込みフィルタのカーネルサイズを大きくすると同時に、直前の第1プーリング層412と同様に、畳み込みフィルタ上の近隣の重みを近づけるという正則化を行う。こうすることで、第1プーリング層412と直後の第2畳み込み層413の自由度が揃うことになり、畳み込み演算とプーリング処理のセットを何層も積み上げる、いわゆる深層学習のグラフ上のCNNをより適切に構成することができる。 Therefore, the kernel size of the convolution filter is increased with respect to the second convolution layer 413 after pooling, and at the same time, the weights of the neighbors on the convolution filter are brought closer to each other as in the case of the first pooling layer 412 immediately before. By doing so, the degrees of freedom of the first pooling layer 412 and the second convolutional layer 413 immediately after it become the same, and the CNN on the so-called deep learning graph, which stacks multiple layers of convolution operations and pooling processes, can be obtained. Can be configured appropriately.

ここでは、グラフ上のCNN400のパラメータの学習(誤差逆伝播)は、畳み込み層における複数の重みを、1段前のプーリング層と同じ正則化項を含む式により最適化する。より具体的には、CNN400全体の誤差関数E(w)に畳み込み層の正則化項を含める。 Here, the learning (error back propagation) of the parameters of the CNN 400 on the graph optimizes a plurality of weights in the convolutional layer by an equation including the same regularization term as the previous pooling layer. More specifically, the regularization term of the convolution layer is included in the error function E (w) of the entire CNN400.

Figure 0007036689000004
Figure 0007036689000004

上記式は、3以上の畳み込み層を含む構成の誤差関数E(w)を示す。E(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 node 3 hops away from a certain node. β is the same as β used in the pooling layer. The error function E (w) includes the regularization term of the convolution layer after the second convolution layer.

上述のように、第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 weight data 123 includes the weight of the own node, the weight of the edge attribute type of one edge, and the weight of the edge attribute type of the pair of two edges, and the weight of three or more types of edges. Defines the weight of the set edge attribute type. At this time, for example, the second term on the right side, that is, the regularization term of the second convolution layer, calculates the sum of the squares of the weight differences between the adjacent nodes in the two-hop node from each of all the nodes.

ノード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.

Figure 0007036689000005
Figure 0007036689000005

ノード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 node 3 for the nodes N4, N5, and N7 to N13. Further, the same calculation is performed for the nodes other than the node N1. The third term, like the second term, calculates for a node of 3 hops from each of all the nodes.

他の例において、正則化項は、グラフ構造に代えて、エッジ属性種類の関係に基づく計算を行ってもよい。例えば、第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.

Figure 0007036689000006
Figure 0007036689000006

〔数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 computer 101. The processor 110 executes a neural network construction process (S201). The neural network construction process will be described later.

次に、プロセッサ110は、ストレージシステム102から学習データ122を取得し、メモリ111に格納する(S202)。学習データ122は複数のサンプルを含む。次に、プロセッサ110は、誤差逆伝播処理のループ処理を開始する(S203)。本ループ処理では、プロセッサ110は、ステップS203からステップS207の処理を繰り返し実行する。例えば、本ループ処理内で実行される誤差逆伝播処理によって算出される誤差が予め設定された閾値以下になった場合、又は、予め決められた回数だけ誤差逆伝播処理が実行された場合に、ループ処理が終了する。 Next, the processor 110 acquires the learning data 122 from the storage system 102 and stores it in the memory 111 (S202). The training data 122 includes a plurality of samples. Next, the processor 110 starts the loop processing of the error back propagation processing (S203). In this loop processing, the processor 110 repeatedly executes the processing of steps S203 to S207. For example, when the error calculated by the error back propagation processing executed in this loop processing becomes equal to or less than a preset threshold value, or when the error back propagation processing is executed a predetermined number of times, the error back propagation processing is executed. The loop processing ends.

プロセッサ110は、サンプルのループ処理を開始する(ステップS705)。サンプルのループ処理では、ステップS202において取得された複数のサンプルに対し、サンプル毎にループ内部の処理を実行する。さらに、プロセッサ110は、1つのサンプルに対して誤差逆伝播処理を実行する(S205)。 The processor 110 starts loop processing of the sample (step S705). In the sample loop processing, the processing inside the loop is executed for each sample for the plurality of samples acquired in step S202. Further, the processor 110 executes an error back propagation process for one sample (S205).

誤差逆伝播処理では、プロセッサ110は、あるサンプルを入力とし、その入力に対するグラフ上のCNN400の出力結果と当該サンプルに対応する教師データとを比較し、2つのデータの誤差を削減するように、CNN400の上層から順に重みを更新する。 In the error back propagation process, the processor 110 takes a sample as an input and compares the output result of the CNN 400 on the graph with respect to the input with the teacher data corresponding to the sample, so as to reduce the error between the two data. The weights are updated in order from the upper layer of CNN400.

サンプルのループ処理では、プロセッサ110が、複数のサンプルの各々に対して前述した処理を実行する。ステップS205の誤差逆伝播処理では、任意のサンプルデータに対する重みの更新が1回だけ行われる。一方、誤差逆伝播処理のループ処理では、誤差を最小にするためには、誤差逆伝播処理が複数回実行される。具体的には、プロセッサ110が、所定の条件を満たすまで、繰り返し、複数のサンプルの各々に対して誤差逆伝播処理を実行する。また、サンプルのループ処理は、複数のサンプルに対する重みの更新が行われる。 In the sample loop processing, the processor 110 executes the above-mentioned processing for each of the plurality of samples. In the error back propagation process in step S205, the weight is updated only once for any sample data. On the other hand, in the loop processing of the error back propagation processing, the error back propagation processing is executed a plurality of times in order to minimize the error. Specifically, the processor 110 repeatedly executes an error back propagation process for each of the plurality of samples until a predetermined condition is satisfied. Further, in the sample loop processing, the weights are updated for a plurality of samples.

次に、プロセッサ110は、全てのサンプルデータに対して誤差逆伝播処理が実行されたか否かを判定する(S206)。全てのサンプルデータに対して誤差逆伝播処理が実行されていないと判定された場合、プロセッサ110は、ステップS204に戻り、同様の処理を実行する。全てのサンプルデータに対して誤差逆伝播処理が実行されたと判定された場合、プロセッサ110は、所定の条件を満たしたか否かを判定する(S207)。 Next, the processor 110 determines whether or not the error back propagation process has been executed for all the sample data (S206). If it is determined that the error back propagation process has not been executed for all the sample data, the processor 110 returns to step S204 and executes the same process. When it is determined that the error back propagation process has been executed for all the sample data, the processor 110 determines whether or not the predetermined condition is satisfied (S207).

所定の条件を満たしていないと判定された場合、プロセッサ110は、ステップS203に戻り、同様の処理を実行する。所定の条件を満たしたと判定された場合、プロセッサ110は、学習結果をメモリ111又はストレージシステム102に格納する(ステップS208)。学習結果は、構築されたニューラルネットワークの構造を示す情報及び学習により得られた重みの情報等が含まれる。重みは、エッジ属性種類それぞれに対して得られ、分析処理において、重みデータ123として使用される。 If it is determined that the predetermined condition is not satisfied, the processor 110 returns to step S203 and executes the same process. When it is determined that the predetermined condition is satisfied, the processor 110 stores the learning result in the memory 111 or the storage system 102 (step S208). The learning result includes information showing the structure of the constructed neural network, information on weights obtained by learning, and the like. Weights are obtained for each edge attribute type and are used as weight data 123 in the analysis process.

[グラフ上の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 data processing unit 120 constructs a CNN 400 according to the graph data 121 to be analyzed. The data processing unit 120 constructs each of the convolution layer and the pooling layer according to the graph structure of the graph data 121. The data processing unit 120 acquires weights for each edge attribute type from the learning result to form weight data 123.

以上のように、本実施例によれば、グラフ上の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 computers 101A to 101M, which are connected via a network. Adjacent computers that can communicate are connected at the edge. The configuration of the computer is as described in the first embodiment. The network configuration of FIG. 19 is an example, and in another example, the computers arranged in a grid may be able to communicate only with the adjacent computer.

分散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 layers 701 to 704 such as a convolution layer and a pooling layer. FIG. 20 shows one column 711 as an example. One column is executed by one subsystem. In the computer system of FIG. 19, any one computer calculates the neurons of the column.

以上の説明から理解されるように、実施例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 graph data 121 described in the first embodiment. The computers 101A to 101M perform arithmetic processing of the corresponding node in the graph data 121 in each layer (convolution layer and pooling layer) constituting the CNN, respectively.

図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 computer 101D is adjacent to the computer 101B and the computer 101C and can communicate with each other. The computers 101B, 101C, and 101D execute columns 711B, 711C, and 711D, respectively. The squares that make up the column indicate neurons.

各サブシステムは、自装置が担当するカラム上のニューロンの出力値をまとめたベクトルを内部状態として保持する。各サブシステムは、自分の内部状態ベクトルと、隣接サブシステムと通信によって得た隣接サブシステムの内部状態ベクトル(隣接位置のカラム上のニューロンの値)を入力として、各層の演算を行って、自分の内部状態ベクトルを更新する。 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 CNN 400 on the graph described in the first embodiment. First, the processing of the convolutional layer will be described. Each subsystem that executes the distributed CNN performs the convolution operation of the column in charge of its own system. Each subsystem performs the processing of the convolutional layer described in Example 1 in the column in charge.

実施例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 second convolution layer 413, the subsystem passes the column values (internal state vector) of the non-adjacent subsystem through the adjacent subsystem. Acquired by multi-hop relay. N-hop information transmission requires n communications.

[プーリング]
次に、プーリング処理について説明する。分散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個の値xの平均値νを分散で計算することができる。 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.

Figure 0007036689000007
Figure 0007036689000007

分散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の例は平均合意アルゴリズムである。平均合意アルゴリズムは、各サブシステムで保持する値xの総和を一定に保ちながら、サブシステム間で値xを分配し、最終的に、全てのサブシステムの値xのを同一の値に収束させる。値xの総和が常に一定であることから、収束値は各値x初期値の平均値となる。いくつかの種類の平均アルゴリズムの中で、最も単純な平均合意アルゴリズムは、例えば、サブシステムiとサブシステムjの通信時に、値xと値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.

Figure 0007036689000008
Figure 0007036689000008

これにより、隣接間通信が行われるたびに、システム全体の値xの総和を一定に保ちながら、値xの分散が減少するため、いずれ、全ての値xが同一の値、すなわち、各値xの初期値の平均値に収束することになる。 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 .

平均合意アルゴリズムは、動作の最中に値xの値やネットワークトポロジが動的に変化すると、システム全体での値xの総和が変化するため、各値xの初期値の平均値を正しく計算できない。一方で、平均合意アルゴリズムが持つ収束値が常にその時点でのシステム全体の値xの平均値になっているので、誤差逆伝播による畳み込みフィルタの重み係数の学習に有用である。 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 application node 771, the countable node 772, the multiplication node 773, and the variable duplication node (branch node) 774 of the function f, respectively. The propagation law of forward propagation is shown by a solid line, and the propagation law of back propagation is shown by a broken line. The forward propagation inputs are x and y. In the distributed CNN, it is necessary to devise the realization of the variable duplication node 774.

変数複製ノード774は、順伝播の計算時に同一の変数を複数回使用することに相当する。分散CNNでは複数のサブシステムが分散して計算するため、図25の変数複製ノード774の逆伝播則において、上層からの誤差信号dx1及びdx2のうち、自サブシステム以外のサブシステムが担当するカラムからの信号を得ることはできない。 The variable replication node 774 corresponds to using the same variable multiple times when calculating forward propagation. In the distributed CNN, since a plurality of subsystems are distributed and calculated, in the back propagation rule of the variable replication node 774 in FIG. 25, among the error signals dx1 and dx2 from the upper layer, the column in charge of the subsystem other than the own subsystem is in charge. You can't get a signal from.

そこで、変数複製ノード774の誤差逆伝搬では、各サブシステムが、それぞれ自サブシステムが担当するカラム内部で得られる誤差信号のみを使って、独立にパラメータの微係数を計算してパラメータ値を更新する。その後、各サブシステムは、上記平均合意アルゴリズムを用いて全てのサブシステムが保持するパラメータ値の平均を計算する。平均合意アルゴリズムでは、収束値が、常にその時点での全てのサブシステムが持つ値の平均値になっているため、継続的に学習、すなわち、パラメータ値の更新を続けることができる。 Therefore, in the error back propagation of the variable replication node 774, each subsystem independently calculates the parameter minute coefficient and updates the parameter value using only the error signal obtained inside the column in charge of its own subsystem. do. Each subsystem then calculates the average of the parameter values held by all the subsystems using the above average consensus algorithm. In the mean consensus algorithm, since the convergence value is always the average value of the values possessed by all the subsystems at that time, continuous learning, that is, updating of the parameter value can be continued.

なお、数学的に正しい微係数が上層からの全ての誤差信号の総和であるのに対して、この方法は、上層からの全ての誤差信号の平均値を微係数と考えてパラメータを更新する。そのため、パラメータ更新に用いる学習アルゴリズムのハイパーパラメータである学習率(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 first convolution layer 901 performs a convolution operation and a ReLU in the same manner as the first convolution layer 411 of the first embodiment. The first convolution layer 901 acquires the value of the target neuron from its own internal state vector, and also acquires the value of the adjacent neuron from the internal state vector of the adjacent subsystem held in advance. The first convolution layer 901 executes a convolution operation and ReLU of these values, and updates its own internal state vector.

第1プーリング層902は、実施例1の第1畳み込み層411と同様に、プーリング処理を実行する。第1プーリング層902は、自内部状態ベクトルから第1畳み込み層901により更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの第1畳み込み層901の出力値を取得する。第1プーリング層902は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。 The first pooling layer 902 performs a pooling process in the same manner as the first convolution layer 411 of the first embodiment. The first pooling layer 902 acquires the value of the target neuron updated by the first convolution layer 901 from the self-internal state vector, and also obtains the value of the target neuron updated by the first convolution layer 901 from the internal state vector of the adjacent subsystem held in advance, and the first of the adjacent neurons. The output value of the convolution layer 901 is acquired. The first pooling layer 902 performs pooling of these values, maximum value pooling in this example, and updates its own internal state vector.

第2畳み込み層904は、実施例1の第2畳み込み層413と同様に、畳み込み演算及びReLUを実行する。第2畳み込み層904は、自内部状態ベクトルから第1プーリング層902に更新された対象ニューロンの値を取得し、また、予め保持している2ホップ内のサブシステムの内部状態ベクトルから、隣接ニューロンの第1プーリング層の出力値を取得する。2ホップ離れたサブシステムからのデータは、隣接サブシステムを介して転送される。第2畳み込み層904は、これらの値の畳み込み演算及びReLUを実行し、自内部状態ベクトルを更新する。 The second convolution layer 904 executes the convolution operation and ReLU in the same manner as the second convolution layer 413 of the first embodiment. The second convolution layer 904 acquires the value of the target neuron updated to the first pooling layer 902 from the self-internal state vector, and also obtains the value of the neighboring neuron from the pre-held internal state vector of the subsystem in the two hops. The output value of the first pooling layer of is acquired. Data from subsystems two hops apart are transferred via neighboring subsystems. The second convolution layer 904 executes a convolution operation and ReLU of these values, and updates its own internal state vector.

第2プーリング層906は、実施例1の第2プーリング層414と同様に、プーリング処理を実行する。第2プーリング層906は、自内部状態ベクトルから第2畳み込み層904に更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。 The second pooling layer 906 performs a pooling process in the same manner as in the second pooling layer 414 of the first embodiment. The second pooling layer 906 acquires the value of the target neuron updated to the second convolution layer 904 from the self-internal state vector, and also obtains the value of the adjacent neuron from the internal state vector of the adjacent subsystem held in advance. get. The second pooling layer 906 performs pooling of these values, maximum value pooling in this example, and updates its own internal state vector.

第2プーリング層906は、さらに、自内部状態ベクトルから直前のプーリング処理で更新されたニューロンの値を取得し、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。 The second pooling layer 906 further acquires the value of the neuron updated in the previous pooling process from its own internal state vector, and acquires the value of the adjacent neuron from the internal state vector of the adjacent subsystem held in advance. .. The second pooling layer 906 performs pooling of these values, maximum value pooling in this example, and updates its own internal state vector.

全結合層907は、分散ADMMによって平均値を計算する。全結合層907は、自内部状態ベクトルの対象ニューロンの値と、予め保持している他のサブシステムの内部状態ベクトルの対象ニューロンの値から、分散ADMMによって平均値を計算する。 For the fully connected layer 907, the average value is calculated by the distributed ADMM. The fully connected layer 907 calculates the mean value by the distributed ADMM from the value of the target neuron of the self-internal state vector and the value of the target neuron of the internal state vector of another subsystem held in advance.

次に、誤差逆伝播を説明する。誤差逆伝播において、各サブシステムは、教師データを与えられている。各サブシステムは、内部に保持しているデータを使用して、他のサブシステムから独立に、重みデータ(バイアスを含む)を更新する。各サブシステムは、平均合意アルゴリズムによって、更新した重みデータの平均値を計算する。これにより、全てのサブシステムの重みデータが共通化される。 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 .
請求項1に記載の計算機システムであって、
畳み込み層の後段のプーリング層のプーリング範囲は、前記畳み込み層の前段のプーリング層のプーリング範囲よりも広い、計算機システム。
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以上のプロセッサは、前記所定ホップ数のプーリング範囲のプーリング処理を、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以上のプロセッサは、前記グラフ上の畳み込みニューラルネットワークの誤差伝播学習において、誤差関数に前記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に記載の計算機システムであって、
前記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以上の畳み込み層及び前記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.
請求項1に記載の計算機システムであって、
前記計算機システムは、ネットワークにより接続された複数のサブシステムを含み、
前記複数のサブシステムのそれぞれは、前記複数のサブシステムにおいて隣接するサブシステムとのみ通信を行い、
前記複数のサブシステムのそれぞれは、前記グラフ上の畳み込みニューラルネットワークにおいて、同一位置のニューロンからなるカラムの計算を行う、計算機システム。
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.
請求項7に記載の計算機システムであって、
前記複数のサブシステムのそれぞれは、
前記カラムの値を示す内部状態ベクトルを保持し、
隣接サブシステムを含む他のサブシステムから前記内部状態ベクトルを取得し、
自内部状態ベクトル及び前記他のサブシステムの内部状態ベクトルを使用して前記カラムの計算を行う、計算機システム。
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.
請求項7に記載の計算機システムであって、
前記複数のサブシステムは、前記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.
請求項7に記載の計算機システムであって、
前記複数のサブシステムのそれぞれは、
他のサブシステムから独立して、誤差逆伝播による学習によって前記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 .
JP2018151323A 2018-08-10 2018-08-10 Computer system Active JP7036689B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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