JP2020027399A - Computer system - Google Patents
Computer system Download PDFInfo
- Publication number
- JP2020027399A JP2020027399A JP2018151323A JP2018151323A JP2020027399A JP 2020027399 A JP2020027399 A JP 2020027399A JP 2018151323 A JP2018151323 A JP 2018151323A JP 2018151323 A JP2018151323 A JP 2018151323A JP 2020027399 A JP2020027399 A JP 2020027399A
- Authority
- JP
- Japan
- Prior art keywords
- pooling
- node
- layer
- value
- 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.)
- Granted
Links
Images
Abstract
Description
本開示は、計算機システムに関する。 The present disclosure relates to a computer system.
社会インフラ及び都市等を効率的に設計、運用するため、実社会及びサイバ空間のデータを処理し、社会インフラ等の状態を解析し、若しくは予測し、又は、社会インフラ等を制御し、若しくは誘導する技術が注目されている。処理されるデータは、温度及び湿度等の環境のセンシングデータ、自動車等の機械のログデータ、並びにメール及びSNS等の人間又は組織のログデータから構成される。 To efficiently design and operate social infrastructure and cities, etc., process data in the real world and cyber space, analyze or predict the state of social infrastructure, etc., or control or guide social infrastructure, etc. Technology is attracting attention. The data to be processed includes sensing data of the environment such as temperature and humidity, log data of a machine such as an automobile, and log data of a human or an organization such as mail and SNS.
近年、ニューラルネットワークを使用する機械学習が、データ解析する手法として注目されている。ニューラルネットワークは、高速で正確なデータ解析を容易に実現することができる。上述のようなシステムのデータを含む様々な種類のデータは、グラフ構造により表わすことができるグラフデータである。 In recent years, machine learning using a neural network has attracted attention as a data analysis technique. The neural network 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, WO 2016/174725 (Patent Document 1) discloses a technique capable of constructing a neural network of graph data. Specifically,
様々な種類のニューラルネットワークが知られている中で、畳み込みニューラルネットワーク(CNN)は、特に画像処理に有用なニューラルネットワークとして知られている。グラフデータは関係性を有しており、グラフデータをCNNにより解析することができれば有用である。 Among various types of neural networks, 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 the CNN.
CNNを深いネットワークで構成するいわゆる深層学習の実現には、プーリング、又は、より一般にパラメータの自由度を上層に行くほど小さくする操作が必要である。プーリング層なしで畳み込み層だけを多数重ねると、表現可能な自由度が減らない(正則化がかからない)ままパラメータ数のみが増えることととなり、パラメータの学習時に過学習を引き起こす。 In order to realize so-called deep learning in which the CNN is configured by a deep network, it is necessary to perform pooling or, more generally, an operation of reducing the degree of freedom of the parameter toward an upper layer. If a large number of convolutional layers are superimposed without a pooling layer, only the number of parameters increases without reducing the degree of freedom that can be expressed (no regularization is applied), which causes over-learning when learning the parameters.
従来のグリッドデータのCNN(グリッド上のCNN)は、畳み込み演算(及び非線形活性化関数の適用)の後に、プーリングと呼ばれる操作で画像サイズを縮小することが一般的である。しかし、グラフデータのCNNにおいて、プーリング操作の実現は困難である。 In the conventional CNN of grid data (CNN on a grid), it is common to reduce the image size by an operation called pooling after a convolution operation (and application of a 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 nodes of the graph data should be appropriately deleted to reduce the size of the graph data. However, it is not clear how to select a node to be deleted and a node to be left.
したがって、グラフ上のCNNにおいてパラメータの自由度を低減するプーリングを実現する技術が望まれる。 Therefore, a technique for implementing pooling that reduces the degree of freedom of parameters in a CNN on a graph is desired.
本開示の一態様は、グラフ上の畳み込みニューラルネットワークを実行する、計算機システムであって、1以上のプロセッサと、1以上の記憶装置と、を含み、前記グラフ上の畳み込みニューラルネットワークは、1以上の畳み込み層と、1以上のプーリング層と、を含み、前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、前記1以上のプロセッサは、各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、プーリング層の後段の畳み込み層のカーネルのサイズは、前段の畳み込み層のカーネルのサイズよりも大きい。 One aspect of the present disclosure is a computer system that executes a convolutional neural network on a graph, the computer system including one or more processors and one or more storage devices, wherein the convolutional neural network on the graph includes one or more And one or more pooling layers, the one or more storage devices store kernel weight data for the one or more convolution layers, and the one or more processors, at each convolution layer, The value of each node is updated by a convolution 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 within a pooling range of a predetermined number of hops from the value of each node and each node. Updated by the pooling process based on the node value, the kernel size of the convolutional layer after the pooling layer is Larger than the size of the kernel of the convolution layer.
本開示の一態様によれば、グラフ上の畳み込み演算において適切にプーリング処理を行うことができる。 According to an embodiment of the present disclosure, pooling processing can be appropriately performed in a convolution operation on a graph.
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that this embodiment is merely an example for realizing the present invention, and does not limit the technical scope of the present invention. In each of the drawings, common components are denoted by the same reference numerals.
[システム構成]
図1は、計算機システムの構成の一例を示す。図1に示すように、計算機システム100は、複数の計算機101、及びストレージシステム102から構成され、複数の計算機101とストレージシステム102とは、互いに通信できるように、ネットワーク103を介して接続される。本実施例の計算機システム100は、3つの計算機101を含む。図1は、一つの計算機のみを例として符号100で指示する。なお、計算機及びストレージシステムの数は、任意である。計算機システム100は、一つの計算機101で構成されていてもよい。
[System configuration]
FIG. 1 shows an example of the configuration of a computer system. As shown in FIG. 1, the
ネットワーク103は、WAN(Wide Area Network)、LAN(Local Area Network)、及びSAN(Storage Area Network)等が考えられる。なお、ネットワーク103の種別は限定されない。計算機101それぞれとストレージシステム102接続するネットワークと、計算機101それぞれを接続するネットワークは、異なるネットワークであってもよい。
The
計算機101は、プロセッサ110、メモリ111、通信インタフェース112、及び入出力インタフェース118を含み、各構成はバス114を介して互いに接続される。また、入出力装置119は、入出力インタフェース118を介して他の装置と接続される。プロセッサ110は、演算処理を実行する1つ以上のCPU115を含む。図1において、一つのCPUのみが符号115で指示されている。CPU115は、メモリ111に格納されるプログラムを実行することによって、計算機101が有する機能を実現する。また、計算機101上で実行される処理は1つ以上のCPU115によって実行される。なお、1つのCPU115が複数の処理を実行してもよい。なお、CPU115は、FPGA又はGPU等の演算器であってもよい。
The
メモリ111は、プロセッサ110が実行するプログラム及び当該プログラムによって使用される情報を格納する。また、メモリ111は、プロセッサ110が実行する1つの処理に対して割り当てられるメモリ空間を含む。なお、当該メモリ空間は、複数のメモリ111のメモリ領域上に確保されてもよいし、また、1つのメモリ111のメモリ領域上に確保されてもよい。また、メモリ111は、複数の処理のメモリ空間を含んでもよい。メモリ111に格納されるプログラム及び情報については後述する。
The
通信インタフェース112は、ネットワーク103を介して外部装置と通信する。プロセッサ110は、通信インタフェース112を介して、他の装置にアクセスする。入出力インタフェース118は、ネットワーク103を介して、他の装置と入出力装置119との通信を媒介する。
The
ストレージシステム102は、ディスクインタフェース133、及び複数の記憶デバイス117を含み、各装置はバス135を介して互いに接続される。ディスクインタフェース133は、複数の記憶ドライブ134と接続するためのインタフェースである。記憶ドライブ134は、各種データを格納する記憶装置であり、例えば、HDDやSSDである。図1において、一つの記憶ドライブのみが符号134で指示されている。
The storage system 102 includes a
メモリ111は、データ処理部120を実現するプログラムを格納する。データ処理部120を実行するプロセッサ110は、逆誤差伝播により学習処理、及び順伝播による分析処理を実行する。学習処理では、プロセッサ110は、学習データ122を使用して、構築したニューラルネットワーク内のエッジの重みを決定する。分析処理では、プロセッサ110は、分析対象であるデータを、構築されたニューラルネットワークに入力することによって、分類や回帰等の所定の分析を行う。
The
なお、データ処理部120は、複数のプログラムモジュールから構成されてもよい。例えば、データ処理部120は、ニューラルネットワークを構築する構築モジュール、学習処理を実行する学習処理モジュール、及び分析処理を実行する分析処理モジュールを含んでもよい。また、それぞれのプログラムモジュールを別々の計算機101が実行してもよい。
Note that the
[ニューラルネットワーク]
図2は、ニューラルネットワークの一例を示す。図2に示すニューラルネットワーク200は、入力層201、中間層202、及び出力層203の3層から構成される。各層は1つ以上のニューロン211から構成される。また、各層のニューロン211は、他の層の少なくとも1つのニューロン211と接続する。具体的には、入力層201のニューロン211は、中間層202の少なくとも1つのニューロン211と接続し、また、中間層202のニューロン211は、出力層203の少なくとも1つのニューロン211と接続する。入力層201の側が前段側であり、出力層203の側が後段側である。
[neural network]
FIG. 2 shows an example of a neural network. The neural network 200 shown in FIG. 2 includes three layers: an
エッジ212はニューロン211間のデータの出力を表す。ニューラルネットワーク200は、分析処理において、入力されたデータを入力層201から、中間層202を介して、出力層203に順伝播する。各ニューロン211に入力された値は、エッジに割り当てられている重みと掛け算され、エッジ212によって接続される他の層のニューロン211に出力される。入力211への入力はバイアスを含んでよい。重みは、ニューロン211間の接続の強さを表し、後述する学習処理によって決定される。学習処理は、損失信号の誤差逆伝播により各層の重みが更新される。
図1に戻って、メモリ111は、グラフデータ121、学習データ122、及び重みデータ123を格納する。グラフデータ121は、任意の要素に対応するノード、及びノード間を接続するエッジから構成されるグラフ構造を有するデータである。学習データ122は、ニューラルネットワークを用いた学習処理において用いられるデータである。重みデータ123は、ニューラルネットワークの学習処理の処理結果である重みを管理する情報である。
Returning to FIG. 1, the
グラフデータ121及び学習データ122は、例えば、ストレージシステム102に格納されており、プロセッサ110が、ストレージシステム102からグラフデータ121及び学習データ122を取得し、取得されたグラフデータ121及び学習データ122をメモリ111にロードする。
The
[グリッド上のCNN]
図3は、畳み込みニューラルネットワーク(CNN)の例を示す。本開示の計算機システム100は、グラフ上のCNNを実行する。図3を参照して、典型的なグリッド上のCNN300を説明する。グリッド上のCNNは、画像データのようなマトリックス状(グリッド状)の入力データを処理する。
[CNN on grid]
FIG. 3 shows an example of a convolutional neural network (CNN). The
図3の例において、28x28のグレースケールの手書きの数字の画像301が入力される。CNN300は、5x5の畳み込みフィルタ及びReLU関数を適用して(302)、6つの24x24の特徴マップ303を生成する。CNN300は、これら特徴マップに2x2の最大値プーリングを適用して(304)、画像サイズを半分に縮小された特徴マップ305を生成する。
In the example of FIG. 3, an
CNN300は、さらに、5x5の畳み込みフィルタ及びReLU関数を実行して(306)、10の8x8の特徴マップ307を生成する。CNN300は、これら特徴マップに2x2の最大値プーリングを適用して(308)、画像サイズを半分に縮小された特徴マップ309を生成する。その後、2層の全結合層よりなるパーセプトロン310が、最終的に10次元のベクトルを出力する。出力された10次元ベクトルはSoftMax関数によりワンホットベクトル表現に変換され、入力画像が0〜9までのどの数字であるかの尤もらしさを表す。
The
[グラフ上のCNN(順伝播)]
以下において、本開示のグラフ上のCNNについて説明する。計算機システム100は、グラフ上のCNNを実行する。図4は、グラフ上のCNNの構成例400を示す。図4は、CNN400における順伝播(分析処理)を示し、データ処理部120により実行される。グラフ上のCNN400は、各層において、共通のグラフ構造上でデータを処理する。
[CNN on graph (forward propagation)]
Hereinafter, the CNN on the graph of the present disclosure will be described. The
グラフ構造は、複数のノードと、それぞれ二つノードを接続する複数のエッジで構成されている。グリッド構造はグラフ構造の一つであり、各ノードが隣接するノードそれぞれとエッジで接続されている。本開示におけるグラフ構造は、任意の複数ノードと、任意数のエッジとで構成される。一つのノードは、1以上の任意の数のエッジに接続される。 The graph structure includes a plurality of nodes and a plurality of edges each connecting two nodes. The grid structure is one of graph structures, and each node is connected to an adjacent node by an edge. The graph structure according to the present disclosure includes an arbitrary plurality of nodes and an arbitrary number of edges. One node is connected to one or more arbitrary number of edges.
グラフデータは、グラフ構造を有するデータであって、ノードそれぞれに状態値が割り当てられている。状態値は、1次元以上のベクトルで表わすことができる。図4に示すように、グラフデータ121が、グラフ上のCNN400に入力される。上述のように、グラフデータ121の各ノードは、状態値を有しており、ノード間のエッジが定義されている。
The graph data is data having a graph structure, and a state value is assigned to each node. State values can be represented by one or more dimensional vectors. As shown in FIG. 4, the
図4のCNN400は、図3を参照して説明したグリッド上のCNN300のように、2つの畳み込み層と2つのプーリング層を含む。具体的には、CNN400は、第1畳み込み層411、第1プーリング層412、第2畳み込み層413、第2プーリング層414及び全域平均プーリング(Global Average Pooling:GAP)層415を含む。第1畳み込み層411は、グラフデータ121のグラフ構造上で、入力されたグラフデータ121の畳み込み演算を行う。これにより、2つの特徴マップ402が生成される。
The
第1プーリング層412、グラフデータ121のグラフ構造上で、特徴マップ402それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ403に変換する。第2畳み込み層413は、グラフデータ121のグラフ構造上で、特徴マップ403の畳み込み演算を行う。これにより、3つの特徴マップ404が生成される。
On the graph structure of the
第2プーリング層414、グラフデータ121のグラフ構造上で、特徴マップ404それぞれにプーリング処理を実行し、表現の自由度が低下した特徴マップ405に変換する。特徴マップ405は全域平均プーリング層415に入力される。全域平均プーリング層415は、チャネル毎に全てのニューロンの値の平均値をとる。
On the graph structure of the
畳み込み層及びプーリング層の処理の詳細は後述するが、畳み込み層及びプーリング層は、それぞれ、グラフデータの各ノードの状態値を更新する。したがって、各層に入力されたデータのグラフ構造は、出力データにおいて維持されている。具体的には、入力グラフデータ121、特徴マップ402〜405のグラフ構造は共通である。各層において、ノードそれぞれに対応するニューロンが存在し、ニューロンは、対応するノードの新たな値を出力する。なお、他の例において、1又は複数の層における入力データのグラフ構造が出力データのグラフ構造と異なっていてもよい。
Although details of the processing of the convolutional layer and the pooling layer will be described later, the convolutional layer and the pooling layer respectively update 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 structures of the
図5は、グラフデータ121の例を示す。図5に示すグラフデータ121は、エッジの構造情報500及びノードの構造情報510を含む。エッジの構造情報500は、エッジID501、ノードID502、及びエッジ属性503を含む。エッジID501は、グラフデータのエッジそれぞれのIDを示す。ノードID502は、グラフデータそれぞれのノードのIDを示す。エッジ属性503は、エッジそれぞれに付与されている属性情報を示す。エッジ属性503は、エッジの向き及び種類の情報を含む。
FIG. 5 shows an example of the
ノードの構造情報510は、ノードID511、エッジID(OUT)512、エッジID(IN)513、及びノード属性514を含む。ノードID511は、ノードID502と同一のである。エッジID(OUT)512は、ノードから流出するエッジのIDを示す。ノードは、エッジID(OUT)512が示すエッジの始点ノードである。エッジID(OUT)513は、ノードID511が示すノードに流入するエッジのIDを示す。ノードは、エッジID(IN)513が示すエッジの終点である。ノード属性514は、ノードの属性情報を示す。ノード属性514は、ノードの種類の情報を含む。
The
様々な種類の情報がグラフデータで表わすことができ、例えば、地図情報、分子構造情報、ソーシャルネットワークの情報、交通網の情報などが、グラフデータで表わすことができる。例えば、地図の位置がノードで表わされ、道路がエッジで表わされる。土地を表すノードの属性情報は、不動産価値や、駅又は公園等の土地の利用形態などを含む。また、道路を表すエッジの属性情報は、路線名、道路幅、接続する土地(ノード)の属性、向きなどを含む。土地及び道路の属性情報に応じて、土地及び道路それぞれに属性種類が定義される。例えば、グラフCNNを既存の不動産価値を表す属性情報を教師データとして学習することで、与えられた土地の不動産価値の推定を行うことができる。 Various types of information can be represented by graph data, for example, map information, molecular structure information, social network information, transportation network information, and the like can be represented by graph data. For example, the position of the map is represented by a node, and the road is represented by an edge. The attribute information of the node representing the land includes a real estate value, a use form of the land such as a station or a park, and the like. The attribute information of an edge representing a road includes a line name, a road width, an attribute of a land (node) to be connected, a direction, and the like. An attribute type is defined for each of the land and the road according to the attribute information of the land and the road. For example, it is possible to estimate the real estate value of a given land by learning the graph CNN using attribute information representing the existing real estate value as teacher data.
グラフ上の畳み込み演算には、大きく分けて、グラフフーリエ変換を用いる手法と、Relational Graph Convolution Network(R−GCN)と呼ばれるより直接的な手法がある。このうち、グラフフーリエ変換を用いる手法は、理論的な背景が明らかという利点があるが、重複エッジのない単純な無向グラフにしか適用することができないという欠点がある。 The convolution operation on a graph can be roughly classified into a method using a graph Fourier transform and a more direct method called Relational Graph Convolution Network (R-GCN). Among them, the method using the graph Fourier transform has an advantage that the theoretical background is clear, but has a disadvantage that it can be applied only to a simple undirected graph without overlapping edges.
一方、R−GCNは、グリッド上の畳み込み演算の直感的な拡張になっており、有向グラフエッジ、又はより一般的にノードやエッジに属性が付与されている場合でも自然に定義することが可能である。本開示の特徴は、いずれの手法にも適用することができるが、以下において、R−GCNの例を説明する。 On the other hand, the R-GCN is an intuitive extension of the convolution operation on the grid, and can be naturally defined even when a directed graph edge or, more generally, an attribute is given to a node or an edge. is there. Although the features of the present disclosure can be applied to any of the methods, an example of the 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 the R-GCN will be described with reference to FIGS. The convolution operation updates the state value of the node based on the state values of the node and other surrounding nodes. Hereinafter, an example of a process of updating the state value of one node will be described. FIG. 6 shows one
図7は、重みデータ123の一部であって、ノード600の畳み込みに関する値を示す。重みデータ123は、エッジ属性種類601と重み602を含む。エッジ属性種類601は、エッジ属性の種類の識別子を示す。本例において、エッジ属性種類601とグラフデータ121のエッジ属性503で示される種類とは異なる。これらは同一であってもよい。重み602は、エッジ属性種類それぞれの重みを示す。重み602が示す値は、CNN400の学習(訓練)において更新される。なお、本例のノード600の状態値の畳み込み演算のバイアスは0とする。
FIG. 7 shows a part of the
図6及び7に示すように、エッジの属性種類は、エッジの属性及びノード600に対するエッジの方向により定義されている。具体的には、ノード612〜614とノード600とを接続するエッジのエッジ属性種類は、R1(IN)である。ノード611とノード600とを接続するエッジのエッジ属性種類は、R1(OUT)である。ノード622及び623とノード600とを接続するエッジのエッジ属性種類は、R2(IN)である。ノード621とノード600とを接続するエッジのエッジ属性種類は、R2(OUT)である。エッジ631の始点及び終点はノード600のセルフループであり、そのエッジ属性種類は、SELFである。
As shown in FIGS. 6 and 7, the attribute type of the edge is defined by the attribute of the edge and the direction of the edge with respect to the
図8は、ノード600の状態値の更新を模式的に示す。畳み込み演算は、まず、同一エッジ属性種類のノードの状態値の総和を計算する。具体的には、以下の通りである。ノード612〜614のエッジ属性種類はR1(IN)である。畳み込み演算は、ノード612〜614の状態値801の総和811を計算する。ノード611のエッジ属性種類はR1(OUT)である。畳み込み演算は、ノード611の状態値802の総和812を計算する。
FIG. 8 schematically shows the update of the state value of the
ノード622及び623のエッジ属性種類はR2(IN)である。畳み込み演算は、ノード622及び623の状態値803の総和813を計算する。ノード621のエッジ属性種類はR2(OUT)である。畳み込み演算は、ノード621の状態値804の総和814を計算する。畳み込み演算は、セルフループエッジ631に対して、ノード600の状態値805の総和815を計算する。
The edge attribute type of the
次に、畳み込み演算は、エッジ属性種類の総和と対応する重みの積和を計算する。エッジ属性種類の重みは、図7の重みデータ123に示されている。つまり、畳み込み演算は、エッジ属性種類の総和それぞれに、重みデータ123が示す重みを乗算し、それらの総和を計算する(821)。畳み込み演算は、この積和にReLU関数822を適用して得られる状態値831を出力する。
Next, the convolution operation calculates the product sum of the sum of the edge attribute types and the corresponding weight. The weight of the edge attribute type is shown in the
図6〜8を参照して説明したグラフ上のCNNの例は、対象ノードの状態値と、当該対象ノードに隣接するノード状態値とから、当該対象ノードの状態値の更新値を決定する。隣接するノードは、対象ノードから1ホップのノードである。ホップ数は、ノード間の距離を表し、ノード間のエッジの数を示す。一つのノードから他のノードまで複数の経路が存在する場合、それぞれの経路のホップ数が定義される。 In the example of the CNN on the graph described with reference to FIGS. 6 to 8, the updated value of the state value of the target node is determined from the state value of the target node and the state values of the nodes adjacent to the target node. The adjacent node is a node one hop from the target node. The hop number indicates the distance between nodes and indicates the number of edges between nodes. When there are a plurality of routes from one node to another node, the hop number of each route is defined.
[グラフ上のCNNの各層の処理]
図9は、グラフ上のCNN400の第1畳み込み層411、第1プーリング層412、第2畳み込み層413及び第2プーリング層414の詳細を示す。第1畳み込み層411は、各ノードの状態値の更新値を、当該ノード及び1ホップ内のノードの状態値から、ReLU関数を使用して計算する。第1プーリング層412は、1ホップ内でのプーリング処理を実行する。プーリング処理の詳細は後述する。
[Treatment of each layer of CNN on graph]
FIG. 9 shows details of the
第2畳み込み層413は、各ノードの状態値の更新値を、当該ノード及び2ホップ内のノードの状態値から、ReLU関数を使用して計算する。第2プーリング層414は、2ホップ内でのプーリング処理を実行する。2ホップ内でのプーリング処理を実行するかわりに、1ホッププーリングを2回実行してもよい。
The second
図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 operation of the
図3を参照して説明したように、従来のグリッド上のCNN300は、畳み込み演算(畳み込み演算+非線形活性化関数の適用)の後にプーリング処理(通常は最大値プーリング処理)を実行することで、画像サイズを縮小する。これに対して、本例のグラフ上のCNN400のプーリング層412及び414は、グラフ構造を縮小することなくプーリング処理を実行する。後述するように、グラフ上のCNN400におけるプーリング処理は、グラフのサイズを一定に保つ一方で、近隣のノード間で値を近づけるという正則化をとりいれることで、実質的にプーリングを行う。
As described with reference to FIG. 3, the
第1プーリング層412の直後の第2畳み込み層413は、プーリング層で近隣のノードの値が近づいてしまうため、広い範囲を見る、すなわち、畳み込みフィルタのカーネルサイズを広げる。これにより、プーリング処理後の畳み込み演算がより有効となる。第2畳み込み層413の後のプーリング層414は、第2畳み込み層413の畳み込みフィルタのカーネルサイズが広げられたため、プーリング範囲を広げることで、より有効なプーリング処理を実現する。
The
図9に示す例において、第1畳み込み層411の範囲は1ホップ内であるが、第1畳み込み層411の範囲はより広くてもよい。第2畳み込み層413の範囲は、第1畳み込み層411の範囲より広ければ、それらの関係は限定されない。例えば、第2畳み込み層413の範囲は、3ホップ以上であってもよい。
In the example shown in FIG. 9, the range of the
グラフ上のCNN400の例は、それぞれ3増以上の畳み込み層及びプーリング層を含むことができる。例えば、畳み込み層の畳み込み演算の範囲(ホップ数)は、例えば、一つ前の畳み込み層の定数倍である。ホップ数2倍の例において、畳み込み層の畳み込み演算の範囲は、1ホップ、2ホップ、4ホップ、8ホップと増加する。ホップ数1.5倍の例において、畳み込み層の畳み込み演算の範囲は、1ホップ、2ホップ、3ホップ、4ホップ、6ホップと増加する。プーリング層のプーリング処理の範囲(ホップ数)は、例えば、直前の畳み込み層のホップ数と一致させる。
Examples of
以下において、グラフ上のCNN400の処理の例を示す。図10は、グラフ上のCNN400に入力されるグラフデータ121の例を示す。グラフデータ121は、ノードN1〜N13と、それぞれノード間を接続する複数のエッジを含む。図10は明示していないが、ノードN1〜N13のそれぞれに状態値が定義されており、また、エッジのそれぞれにエッジ属性種類が定義されている。
Hereinafter, an example of the process of the
[第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の更新状態値を計算する。
[First convolution layer]
FIG. 11 shows an example of the convolution operation of the
図12は、グラフデータ121の属性の例を示す。グラフデータのエッジそれぞれにエッジ属性種類が定義されており、Pと数字からなる符号で指示されている。例えば、ノードN1とノードN12の間のエッジのエッジ属性種類はR1であり、ノードN1とノードN2の間のエッジのエッジ属性種類はR2であり、ノードN1とノードN6の間のエッジのエッジ属性種類はR3である。エッジ属性種類R1のエッジは実線で表わされ、エッジ属性種類R2のエッジは破線で表わされ、エッジ属性種類R3のエッジは2点鎖線で表わされている。
FIG. 12 shows an example of the attribute of the
図13は、本例の重みデータ123の一部のデータを示す。重みデータ123は、対象ノードの現在状態値の重みW0及び1ホップのエッジ属性種類の重みを定義すると共に、2ホップのエッジ属性種類の重みを定義する。1ホップのエッジ属性種類は、エッジそれぞれのエッジ属性種類R1、R2及びR3と一致する。2ホップのエッジ属性種類は、2つのPと2つの数字で表わされており、二つのエッジのエッジ属性種類の組を示す。
FIG. 13 shows a part of the
より具体的には、2ホップのエッジ属性種類は、対象ノードに近いエッジのエッジ属性種類と対象ノードから遠いエッジのエッジ属性種類を示す。例えば、エッジ属性種類R1R2は、対象ノードと隣接ノードの間のエッジのエッジ属性種類がR1であり、対象ノードの隣接ノードと2ホップ離れたノードとの間のエッジのエッジ属性種類がR2であることを表す。 More specifically, the 2-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. It 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 updating of the state value of the node N1 by the
図13の重みデータ123が示すように、自ノードの状態値の重みはW0、エッジ属性種類R1、R2及びR3の重みは、それぞれ、W1、W2及びW3である。畳み込み演算の例は、エッジのエッジ属性種類毎に異なる重みをノードの状態値に乗算して足し合わせ、全てのエッジ属性種類の総和を計算する。つまり、ノードN1のための畳み込み演算は、以下の数式で表わされる。なお、バイアスは0とした。
V1´=W0×V1+W1*(V9+V12)+W2*(V2+V10)+W3*V6
As shown by the
V1 '= W0 * V1 + W1 * (V9 + V12) + W2 * (V2 + V10) + W3 * V6
第1畳み込み層411は、畳み込み演算の結果の状態値V1´を非線形関数であるReLUに入力し、その出力をノードN1の新たな状態値V1として保持する。なお、ReLUと異なる非線形関数(例えばシグモイド関数)を使用してもよい。第1畳み込み層411は、全てのノードについて、上述のような処理を行う。
The
[第1プーリング層]
次に、第1プーリング層412の処理を説明する。従来のグリッド上のCNNは、畳み込み演算(+非線形活性化関数の適用)の後に、プーリング処理により画像サイズを縮小することが一般的である。本開示のグラフ上のCNN400のプーリング層は、入力グラフデータ121のグラフ構造を変更することなく従来のプーリング処理に相当する処理、つまり、グラフ上のプーリング処理を実行する。
[First pooling layer]
Next, the processing of the
プーリング処理は、近隣のノードで値を近づける処理であり、これによって、表現の自由度を低減する。以下において、いくつかのグラフ上のプーリング処理の例を説明する。プーリング処理には、いくつかの手法が知られているが、一般に使用される手法は、平均値プーリング及び最大値プーリングである。そこで、以下においては、グラフ上の平均値プーリング及び最大値プーリングを説明する。 The pooling process is a process of making values close to each other in a neighboring node, thereby reducing the degree of freedom of expression. Hereinafter, examples of pooling processing on some graphs will be described. Several techniques are known for the pooling process, but the commonly used techniques are average pooling and maximum pooling. Therefore, hereinafter, the average 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の状態値と近づくように更新する。
In the pooling process, similar to the convolution operation, the state value of each node is updated 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 nodes near the target node. FIG. 15 schematically shows the pooling process by the
グラフ上の平均値プーリングの例は、対象ノード及び隣接ノードの状態値をもとに、対象ノードの新たな状態値が、対象ノード及び隣接ノードの新たな状態値の平均値になるように、対象ノードの新たな状態値と決定する。例えば、第1プーリング層412は、ノードN1及びその隣接ノードN2、N6、N9、N10、N12の現在の(更新前の)状態値を取得し、それらの平均値を計算する。第1プーリング層412は、当該平均値をノードN1の新たな状態値と決定する。第1プーリング層412は、エッジ属性種類に応じて、ノードの状態値に重みを与えた値の平均値を計算してもよい。
The example of the average value pooling on the graph is based on the state values of the target node and the adjacent node, so that 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. The new state value of the target node is determined. For example, the
グラフ上の平均値プーリングの他の例は、以下の数式に従って対象ノードの新たな状態値を決定する。Nはグラフデータ121のノードの集合を示し、Eはエッジの集合を示す。piは、ノードiのプーリング処理の出力であり、viは、ノードiのプーリング処理の入力である。viは、直前の畳み込み演算の出力(状態値)である。βはハイパーパラメータ、Iは単位行列、Lはラプラシアン行列である。Dは、グラフデータ121の全エッジ本数である。右辺の第2項をDで除算しているのは、エッジ1本あたりの制約の強さをそろえるためであるが、Dで割らない(D=1とする)構成も考えられる。
Another example of the average value pooling on the graph determines a new state value of the target node according to the following formula. N indicates a set of nodes of the
ノードiの第1プーリング層412の出力piは、第1項より入力viに近い値であり、かつ、第2項より隣接するノードの出力値pjとも近い値となる。βが大きくなると第2項の寄与が大きくなるため、グラフ上のより広い範囲で値が近づくことになる。すなわち、βはプーリング処理のカーネルサイズに相当するパラメータである。上記式は、より汎用的に適切な平均値プーリングを行うことができる。
The output p i of the
図16は、図15に示すグラフ構造を有するグラフデータ121において、適用可能なラプラシアン行例Lの例を示す。上記プーリング処理の式及び図16に示すラプラシアン行例Lは、エッジ属性種類を無視して、全エッジを一律にプーリング処理する場合に使用される。プーリング処理は、エッジ属性種類を無視して実行してもよい。
FIG. 16 shows an example of an applicable Laplacian row example L in the
これと異なり、エッジ属性種類に基づきプーリング処理を実行してもよい。これにより、より適切なプーリング処理を実行できる。第1プーリング層412は、エッジ属性種類毎にプーリング処理を実行する。具体的には、エッジ属性種類に基づくプーリング処理の例は、以下の数式に従う。
Alternatively, the pooling process may be performed based on the edge attribute type. Thereby, more appropriate pooling processing can be executed. The
E1、E2、E3は、それぞれ、エッジ属性種類R1、R2及びR3のエッジの集合を示す。β1、β2、β3は、それぞれ、エッジ属性種類R1、R2及びR3のハイパーパラメータ(プーリングのカーネルサイズ)である。L1、L2、L3は、それぞれ、エッジ属性種類R1、R2及びR3のプーリングのラプラシアン行列である。 E 1 , E 2 , and E 3 indicate sets 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 pooling Laplacian matrices 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 a graph will be described. The example of the maximum value pooling on the graph selects the maximum value of the state values of the nodes within the pooling range. For example, the
グラフ上の最大値プーリングの他の例は、入力値(ノードの現在の状態値)にSmooth Maximumを適用した後で、平均値プーリングを行う。Smooth Maximumとしていくつかの関数が知られているが、例えば、LogMeanExpを使用することができる。グラフ上の最大値プーリングの他の例は、以下の数式に従って対象ノードの新たな状態値を決定する。 Another example of maximum value pooling on a graph performs average value pooling after applying the Smooth Maximum to input values (current state values of nodes). Several functions are known as Smooth Maximum, for example, Log MeanExp can be used. Another example of maximum value pooling on a graph determines a new state value of the target node according to the following formula.
ρは、Smooth Maximumの強さを表すパラメータであり、∞の極限で、LogMeanExpは最大値関数と一致する。他の変数は、平均値プーリングで説明した通りである。〔数3〕で表わされる最大値プーリングは、エッジ属性種類を無視して、全エッジを一律にプーリング処理する場合に使用される。プーリング処理は、エッジ属性種類を無視して実行してもよい。 ρ is a parameter indicating the strength of the Smooth Maximum, and at the limit of ∞, LogMeanExp matches the maximum value function. Other variables are as described for 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 performed ignoring the edge attribute type.
平均値プーリングの説明と同様に、第1プーリング層412は、エッジ属性種類に基づきプーリング処理を実行してもよい。第1プーリング層412は、〔数1〕に代えて、〔数2〕を使用する。これにより、より適切なプーリング処理を実行できる。第1プーリング層412は、エッジ属性種類毎にプーリング処理を実行する。
As in the description of the average value pooling, the
[第2畳み込み層]
次に、第2畳み込み層413の処理を説明する。上述のように、第1プーリング層412は、グラフ構造のサイズを一定に保つ一方で、近隣のノード間で値を近づけるという正則化をとりいれることで、データの表現の自由度を低減する。第2畳み込み層413は、第1プーリング層412で近隣のノードの値が近づいてしまう分、広い範囲を参照する、つまり、畳み込みフィルタのカーネルサイズ(畳み込み演算で参照するノードの範囲)を広げる。
[Second convolution layer]
Next, the processing of the
図17は、第2畳み込み層413による、ノードN1のための畳み込み演算を模式的に示す。同様の畳み込み演算が全てのノードに対して実行される。第2畳み込み層413は、ノードN1から2ホップ範囲内のノードの現在の(更新前の)状態値を取得する。2ホップ範囲内のノードは、対象ノードから1ホップのノード及び2ホップのノードで構成される。なお、2ホップ範囲内のノード、つまり1ホップのノード及び2ホップのノードを使う代わりに、2ホップのノードのみを使う構成も考えられる。
FIG. 17 schematically illustrates the convolution operation for the node N1 by the
図17に示す例において、ノードN2、N6、N9、N10、N12は、ノードN1から1ホップのノードである。ノードN3〜N5、N7〜N13は、ノードN1から2ホップのノードである。ノードN9、N10、N12は、ノードN1から1ホップのノードであると共に、2ホップのノードでもある。ノードN9、N10、N12は、ノードN1から1ホップのノードと定義し、ノードN1から2ホップのノードから除外してもよい。 In the example illustrated in FIG. 17, the nodes N2, N6, N9, N10, and N12 are one-hop nodes from the node N1. The nodes N3 to N5 and N7 to N13 are two-hop nodes from the node N1. The nodes N9, N10, and N12 are one-hop nodes from the node N1 and are also two-hop nodes. The nodes N9, N10, and N12 may be defined as nodes of one hop from the node N1, and may be excluded from nodes of two hops from the node N1.
第2畳み込み層413は、対象ノードN1の状態値、対象ノードN1から1ホップのノードの状態値及び対象ノードN1から2ホップのノードの状態値と、重みデータ123でエッジ属性種類毎に定義されている重みの積和を計算する。図13を参照して説明したように、重みデータ123は、自ノードの重み、1つのエッジのエッジ属性種類の重み、及び2つのエッジの組のエッジ属性種類の重みを定義している。図示していないが、重みデータ123は、さらに、3種類以上のエッジの組のエッジ属性種類の重みを定義する。第1畳み込み層411と同様に、畳み込み演算により得られた対象ノードの状態値は、ReLUに入力され、その出力が対象ノードの新しい状態値として保持される。なお、第2畳み込み層413の畳み込み演算は、バイアスを含むことができる。
The second
[第2プーリング層]
第2プーリング層414は、図9に示すように、2ホップ範囲内でプーリング処理を実行する。例えば、第2プーリング層414は、第1プーリング層412が実行するプーリング処理を2回実行する。これにより、第2畳み込み層413の処理範囲に応じたプーリング処理を行うことができる。
[Second pooling layer]
The
[全域平均プーリング層]
次に、全域平均プーリング層415の処理を説明する。グラフ上のCNN400は、ノード数やエッジ数が異なる様々なグラフ構造のグラフデータを取り扱う。従来のCNNにおける全結合層は、入力層のニューロンの数が固定であることを前提としており、グラフ上のCNN400にそのまま適用することはできない。本開示のグラフ上のCNN400は、全域平均プーリングを使用する。なお、入力されるグラフデータのグラフ構造が一定である場合、全域平均プーリング層に代えて、全てのニューロンの値を一ヶ所に集めてアフィン演算することで最終出力する値を計算する全結合層を使用してもよい。
[Whole area average pooling layer]
Next, the processing of the entire area
全域平均プーリング層415は、その入力のチャネル毎に全てのニューロンの値の平均値をとる。したがって、全域平均プーリング層415の出力は入力チャネル数の次元のベクトルとなる。例えば、全域平均プーリング層415の後段にアフィン変換層(全結合層)を配置し、最終的に必要とする次元の出力を得る。全域平均プーリング層415は全結合層に比べてパラメータ数が大幅に少ないにも関わらず、全結合層と同等以上の性能を示すことができる。
The global
[誤差逆伝播による学習(訓練)]
以下において、グラフ上のCNN400の誤差逆伝播によるパラメータの学習を説明する。学習処理は、データ処理部120により実行される。誤差逆伝播は、順伝播におけるグラフのノードを逆にたどる。上述のように、第2畳み込み層413は、畳み込みフィルタのカーネルサイズを広げる。しかし、第1プーリング層412で近隣のノードの値が近づいているので、単純にカーネルサイズを広げるのみでは、パラメータ設定の自由度が大きくなりすぎて過学習を引き起こす、又は、不良設定問題となりパラメータの学習が全くできない可能性が存在する。
[Learning (training) by backpropagation]
In the following, learning of parameters by backpropagation of errors by the
そこで、プーリング後の第2畳み込み層413に対して、畳み込みフィルタのカーネルサイズを大きくすると同時に、直前の第1プーリング層412と同様に、畳み込みフィルタ上の近隣の重みを近づけるという正則化を行う。こうすることで、第1プーリング層412と直後の第2畳み込み層413の自由度が揃うことになり、畳み込み演算とプーリング処理のセットを何層も積み上げる、いわゆる深層学習のグラフ上のCNNをより適切に構成することができる。
Therefore, for the
ここでは、グラフ上のCNN400のパラメータの学習(誤差逆伝播)は、畳み込み層における複数の重みを、1段前のプーリング層と同じ正則化項を含む式により最適化する。より具体的には、CNN400全体の誤差関数E(w)に畳み込み層の正則化項を含める。
Here, learning (parameter backpropagation) of the parameters of the
上記式は、3以上の畳み込み層を含む構成の誤差関数E(w)を示す。E0(w)は、畳み込み層の正則化項を含まない通常の誤差関数である。右辺の第2項は、第2畳み込み層の正則化項であり、第3項は第3畳み込み層の正則化項である。w2、i、w2、jは、あるノードから2ホップ離れたノードにおいて隣接している(一つのエッジで結合されている)ノードを示す。w3、i、w3、jは、あるノードから3ホップ離れたノードにおいて隣接しているノードを示す。βはプーリング層で使用されるβと同一である。誤差関数E(w)は、2層目の畳み込み層以降の畳み込み層の正則化項を含む。 The above equation shows an error function E (w) of a configuration including three or more convolutional layers. E 0 (w) is a normal error function that does not include the regularization term of the convolutional layer. The second term on the right side is a regularization term of the second convolutional layer, and the third term is a regularization term of the third convolutional layer. w2 , i , w2 , j indicate adjacent nodes (joined by one edge) at a node two hops away from a certain node. w3 , i , w3 , j indicate adjacent nodes at a node three hops away from a certain node. β is the same as β used in the pooling layer. The error function E (w) includes the regularization terms of the convolutional layers after the second convolutional layer.
上述のように、第2畳み込み層、第3畳み込み層と、後段にいくにしたがって畳み込みフィルタのカーネルサイズを大きくすることになる。上記式の右辺の第2項と第3項でβにかかる次数を増やして正則化項の効果を大きくしていくことで、各畳み込み層における実質的なパラメータ設定の自由度を一定に保つ。 As described above, the kernel size of the convolution filter increases in the second convolution layer, the third convolution layer, and the subsequent stages. By increasing the order 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 of the actual parameter setting in each convolutional layer is kept constant.
図13を参照して説明したように、重みデータ123は、自ノードの重み、1つのエッジのエッジ属性種類の重み、及び2つのエッジの組のエッジ属性種類の重み、3種類以上のエッジの組のエッジ属性種類の重み、を定義している。このとき、例えば、右辺の第2項、すなわち、第2畳み込み層の正則化項は、全ノードそれぞれから2ホップのノードにおいて隣接するノード間の重みの差の2乗の和を計算する。
As described with reference to FIG. 13, the
ノードN1を例として、右辺の第2項を説明する。ノードN1から2ホップのノードは、ノードN3〜N5、N7〜N13である。w2、iは、これらノードの全ての重みがそれぞれ代入される。w2、jは、w2、iのノードに隣接する全てのノードの全ての重みが代入される。ノードN1の第2項の計算(β/2を省略)は以下のように表わされる。 The second term on the right side will be described using the node N1 as an example. The nodes of two hops from the node N1 are the nodes N3 to N5 and N7 to N13. For w2 , i , all the weights of these nodes are substituted. For w2 , j , all the weights of all the nodes adjacent to the node of w2 , i are substituted. The calculation of the second term of the node N1 (omitting β / 2) is expressed as follows.
ノードN3の例を説明する。ノードN1からノードN3を見て、2つのエッジの組のエッジ属性種類の重みは、W12、W23(ノードN2を介する)、W23(ノードN10を介する)である。従って、ノードN3のw2、iは、W12、W23、W23である。ノードN1から2ホップのノードにおいて、ノードN3に隣接するノードは、ノードN4、N10、N12である。したがって、w2、jは、ノードN1からこれらノードを見た重みそれぞれが代入される。 An example of the node N3 will be described. When looking at the node N3 from the node N1, the weights of the edge attribute types of the set of two edges are W12, W23 (via the node N2), and W23 (via the node N10). Therefore, w2, i of the node N3 is W12, W23, W23. Among the nodes that are two hops from the node N1, the nodes adjacent to the node N3 are the nodes N4, N10, and N12. Therefore, weights obtained by viewing these nodes from the node N1 are substituted for w2 , j .
例えば、ノードN1からノードN4を見て、2つのエッジの組のエッジ属性種類の重みは、W22である。ノードN1からノードN10を見て、2つのエッジの組のエッジ属性種類の重みは、W11、W12である。ノードN1からノードN12を見て、2つのエッジの組のエッジ属性種類の重みは、W22である。 For example, when looking at the node N1 to the node N4, the weight of the edge attribute type of the pair of two edges is W22. When 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 the node N1 to the node N12, 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 also for the nodes N4, N5, N7 to N13. Further, the same calculation is performed for nodes other than the node N1. In the third term, similarly to the second term, calculation is performed for a node of three hops from each of all nodes.
他の例において、正則化項は、グラフ構造に代えて、エッジ属性種類の関係に基づく計算を行ってもよい。例えば、第2項は、対象ノードに近いエッジのエッジ属性種類が同一の重みが近づくような計算を行ってもよい。例えば、重みグループ(W11、W12、W13)、(W21、W22、W23)、(W31、W32、W33)それぞれにおいて、重みが近づくように、第2項が定義される。第3項以下についても、3ホップ以上のエッジ属性種類に応じて同様に定義される。 In another example, the regularization term may be calculated based on the relationship between edge attribute types instead of the graph structure. For example, for the second term, a calculation may be performed such that an edge close to the target node has the same edge attribute type and the same weight. For example, in each of the weight groups (W11, W12, W13), (W21, W22, W23), and (W31, W32, W33), the second term is defined so that the weights become closer. The third and subsequent terms are similarly defined according to the types of edge attributes of three or more hops.
第2畳み込み層の勾配値は、以下の数式のように、誤差関数E(w)をwで微分することにより得られる。 The gradient value of the second convolutional layer is obtained by differentiating the error function E (w) with w as in the following equation.
〔数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 side shows the differentiation of the normalization term. The gradient values of other convolutional layers can be expressed by a similar expression. The learning process updates the weight w of the convolutional layer according to the gradient value. For example, a known method such as SGD (stomatic gradient descent) and ADAM can be used. As described above, in learning by error back propagation, the weight w is updated with a value obtained by adding a differential term (βLw , n ) of a regularization term to a normal error signal back-propagated from the upper layer as a gradient. This makes it possible to add a constraint to 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 an example of a learning process performed by the
次に、プロセッサ110は、ストレージシステム102から学習データ122を取得し、メモリ111に格納する(S202)。学習データ122は複数のサンプルを含む。次に、プロセッサ110は、誤差逆伝播処理のループ処理を開始する(S203)。本ループ処理では、プロセッサ110は、ステップS203からステップS207の処理を繰り返し実行する。例えば、本ループ処理内で実行される誤差逆伝播処理によって算出される誤差が予め設定された閾値以下になった場合、又は、予め決められた回数だけ誤差逆伝播処理が実行された場合に、ループ処理が終了する。
Next, the
プロセッサ110は、サンプルのループ処理を開始する(ステップS705)。サンプルのループ処理では、ステップS202において取得された複数のサンプルに対し、サンプル毎にループ内部の処理を実行する。さらに、プロセッサ110は、1つのサンプルに対して誤差逆伝播処理を実行する(S205)。
The
誤差逆伝播処理では、プロセッサ110は、あるサンプルを入力とし、その入力に対するグラフ上のCNN400の出力結果と当該サンプルに対応する教師データとを比較し、2つのデータの誤差を削減するように、CNN400の上層から順に重みを更新する。
In the error back-propagation processing, the
サンプルのループ処理では、プロセッサ110が、複数のサンプルの各々に対して前述した処理を実行する。ステップS205の誤差逆伝播処理では、任意のサンプルデータに対する重みの更新が1回だけ行われる。一方、誤差逆伝播処理のループ処理では、誤差を最小にするためには、誤差逆伝播処理が複数回実行される。具体的には、プロセッサ110が、所定の条件を満たすまで、繰り返し、複数のサンプルの各々に対して誤差逆伝播処理を実行する。また、サンプルのループ処理は、複数のサンプルに対する重みの更新が行われる。
In the sample loop processing, the
次に、プロセッサ110は、全てのサンプルデータに対して誤差逆伝播処理が実行されたか否かを判定する(S206)。全てのサンプルデータに対して誤差逆伝播処理が実行されていないと判定された場合、プロセッサ110は、ステップS204に戻り、同様の処理を実行する。全てのサンプルデータに対して誤差逆伝播処理が実行されたと判定された場合、プロセッサ110は、所定の条件を満たしたか否かを判定する(S207)。
Next, the
所定の条件を満たしていないと判定された場合、プロセッサ110は、ステップS203に戻り、同様の処理を実行する。所定の条件を満たしたと判定された場合、プロセッサ110は、学習結果をメモリ111又はストレージシステム102に格納する(ステップS208)。学習結果は、構築されたニューラルネットワークの構造を示す情報及び学習により得られた重みの情報等が含まれる。重みは、エッジ属性種類それぞれに対して得られ、分析処理において、重みデータ123として使用される。
When it is determined that the predetermined condition is not satisfied, the
[グラフ上のCNNの構築]
グラフ上のCNN400は、ノード数やエッジ数が異なる様々なグラフ構造のグラフデータを取り扱う。データ処理部120は、分析対象のグラフデータ121に応じたCNN400を構築する。データ処理部120は、グラフデータ121のグラフ構造に従って、畳み込み層及びプーリング層それぞれを構築する。データ処理部120は、学習結果からエッジ属性種類それぞれに対する重みを取得して、重みデータ123を構成する。
[Construction of CNN on graph]
The
以上のように、本実施例によれば、グラフ上のCNNにおいてプーリングを行うことで、表現可能自由度(パラメータの自由度)を上層に行くほど小さくすることができ、パラメータの学習時の過学習や不良設定問題の蓋然性を低下させることができる。また、CNNの層の数を増加させていわゆる深層学習を行うグラフ上のCNNを構成することが可能となる。 As described above, according to the present embodiment, by performing pooling in the CNN on the graph, the representable degree of freedom (the degree of freedom of the parameter) can be reduced toward the upper layer, and the excess in learning the parameter can be obtained. It is possible to reduce the probability of learning and the problem of setting a defect. In addition, it is possible to configure a CNN on a graph for performing so-called deep learning by increasing the number of CNN layers.
以下において、分散CNNを説明する。分散CNNは、ネットワークを介して接続された複数のサブシステム(例えば計算機)が、CNNを実行する。サブシステムは、サブシステムをネットワーク上で隣接するサブシステムとのみ通信(情報交換)が可能である。なお、サブシステム間を接続するネットワーク構造は、固定である必要はなく時間的に変化してもよい。分散CNNにおいて、各サブシステムは、例えば、それぞれ独立にシステム状態関数の値を推定する。分散CNNにより、全てのサブシステムの推定値が真のシステム状態関数の値に一致する。 Hereinafter, the distributed CNN will be described. In the distributed CNN, a plurality of subsystems (for example, computers) connected via a network execute the CNN. The subsystem can communicate (exchange information) only with the subsystem adjacent to the subsystem on the network. The network structure connecting the subsystems does not need to be fixed, and may change over time. In the distributed CNN, each subsystem estimates the value of the system state function independently, for example. With distributed CNN, the estimates of all subsystems match the values of the true system state function.
他の例において、各サブシステムがそれぞれの環境入力と内部状態に応じてアクションを取ってもよい。各サブシステムは、全体システムの状態関数の値を最適化するようなアクションを見出すことができる。例えば、ネットワークを介して接続された工場(の計算機)が、それぞれ隣接する工場とのみ通信を行い、全工場の総利益を最小化するような工場の電力使用量を決定する。工場又はその計算機は、サブシステムである。 In another example, each subsystem may take action in response to a respective environmental input and internal state. Each subsystem can find an action that optimizes the value of the state function of the overall system. For example, a factory (computer) connected via a network communicates only with each adjacent factory, and determines the power consumption of the factory so as to minimize the total profit of all factories. The factory or its computer is a subsystem.
このほか、分散CNNは、車間通信による、車のルート最適化に適用できる。車又はその計算機(例えばカーナビゲーションシステム)は、サブシステムである。各車は、現在位置と、目的地とから、独立にルートを決定する。各車が近隣の車と通信することで、多数の車が、全体として一つの分散CNNを構成する。各車は、自車のルートを入力として、分散CNNによって、平均移動時間を回帰(推定)する。 In addition, the distributed CNN can be applied to vehicle route optimization by inter-vehicle communication. A car or its calculator (eg, a car navigation system) is a subsystem. Each car independently determines a route from the current position and the destination. Each car communicates with neighboring cars so that many cars constitute one distributed CNN as a whole. Each vehicle regresses (estimates) the average traveling time by the variance CNN, using the route of the vehicle as an input.
各車は、独立に、誤差逆伝播によって、分散CNNの出力値(=平均移動時間)を減らす方向に、ルート(=入力)を更新する。同時に、各車は、独立に、道路交通情報から得た真の平均移動時間と、分散CNNの出力値との誤差を減らすように、誤差逆伝播で、パラメータ(重み)を更新する。各車は、目的地につけば、分散CNNから離脱する。 Each vehicle independently updates the route (= input) in a direction to reduce the output value (= average travel time) of the distributed CNN by backpropagation. At the same time, each vehicle independently updates a parameter (weight) by 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 decentralized CNN once it reaches its destination.
[システム構成]
図19は、分散CNNを実行する計算機システムの例を示す。計算機システムは、複数の計算機101A〜101Mを含み、これらはネットワークを介して接続されている。通信可能な隣接計算機は、エッジで接続されている。計算機の構成は実施例1で説明した通りである。図19のネットワーク構成は一例であって、他の例において、グリッド状に配置された計算機が隣接計算機とのみ通信可能であってもよい。
[System configuration]
FIG. 19 shows an example of a computer system that executes a distributed CNN. The computer system includes a plurality of
分散CNNは、CNNを構成するニューロンを層(畳み込み層やプーリング層等)ごとにまとめて扱うのではなく、複数の層の同一位置のニューロン(以下ではカラムと呼ぶ)をまとめて、一つのサブシステムで計算する。結果として、多数のサブシステムが集まったシステム全体が、単一のCNNとして動作する。 The distributed CNN does not handle neurons constituting the CNN collectively for each layer (convolution layer, pooling layer, etc.), but collects neurons at the same position in a plurality of layers (hereinafter referred to as columns) to form one sub-cell. Calculate with the system. As a result, the entire system of many subsystems operates as a single CNN.
図20は、分散CNNの層及びカラムの例を示す。分散CNNは、畳み込み層やプーリング層等の層701〜704を含む。図20は、一つのカラム711を例として示す。一つのカラムは、一つのサブシステムにより実行される。図19の計算機システムにおいて、いずれか一つの計算機が、カラムのニューロンの計算を行う。
FIG. 20 shows an example of dispersed CNN layers and columns. The distributed CNN includes
以上の説明から理解されるように、実施例1において説明したグラフ上のCNNは、分散CNNに適用することができる。図19に示す計算機システムのネットワーク構造は、実施例1で説明したグラフデータ121のグラフ構造と一致している。計算機101A〜101Mは、それぞれ、CNNを構成する各層(畳み込み層やプーリング層)において、グラフデータ121における対応するノードの演算処理を行う。
As understood from the above description, the CNN on the graph described in the first embodiment can be applied to the distributed CNN. The network structure of the computer system shown in FIG. 19 matches the graph structure of the
図21は、分散CNNの概念的な構成例を示す。図21は、3つの計算機(サブシステム)101B、101C、及び101Dを例として示す。計算機101Dは、計算機101B及び計算機101Cと隣接しており、通信可能である。計算機101B、101C、及び101Dは、それぞれ、カラム711B、711C、及び711Dを実行する。カラムを構成する四角はニューロンを示す。
FIG. 21 shows a conceptual configuration example of a distributed CNN. FIG. 21 shows three computers (subsystems) 101B, 101C, and 101D as an example. The
各サブシステムは、自装置が担当するカラム上のニューロンの出力値をまとめたベクトルを内部状態として保持する。各サブシステムは、自分の内部状態ベクトルと、隣接サブシステムと通信によって得た隣接サブシステムの内部状態ベクトル(隣接位置のカラム上のニューロンの値)を入力として、各層の演算を行って、自分の内部状態ベクトルを更新する。 Each subsystem holds, as an internal state, a vector in which the output values of the neurons on the column in charge of the subsystem are collected. Each subsystem inputs its own internal state vector and the internal state vector of the adjacent subsystem obtained by communication with the adjacent subsystem (the value of the neuron on the column at the adjacent position), and performs the operation of each layer, and Update the internal state vector of.
分散CNNを実行する計算機システムにおいて、システム全体を統括する中央制御システムは存在せず、システム全体でのグローバルな同期機構も存在しない。各サブシステムは、隣接サブシステムとの通信とサブシステムの内部状態ベクトルの更新を、他のサブシステムは非同期に実行する。サブシステムは、他のサブシステムの内部状態ベクトルと自サブシステムの内部状態ベクトルに基づき、自サブシステムの内部状態ベクトルを更新する。 In a computer system that executes a 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 an adjacent subsystem and updates an internal state vector of the subsystem, and the other subsystems execute asynchronously. The subsystem updates the internal state vector of its own subsystem based on the internal state vector of another subsystem and the internal state vector of its own subsystem.
隣接サブシステムとの通信とサブシステムの内部状態ベクトルの更新は、同頻度で行われるとは限らず、あるサブシステムでは隣接サブシステムとの通信頻度が高いのに対して、別のサブシステムでは内部状態ベクトルの更新の頻度高いこともある。あるサブシステムが複数の隣接サブシステムをもつとき、それぞれの隣接サブシステムとの通信が行われる頻度は同一でなくてよい。 The communication with the adjacent subsystem and the update of the internal state vector of the subsystem are not always performed at the same frequency.In one subsystem, the communication frequency with the adjacent subsystem is high, while in the other subsystem, the communication frequency is high. The internal state vector may be updated frequently. When a certain subsystem has a plurality of adjacent subsystems, the frequency of communication with each adjacent subsystem may not be the same.
分散CNNを実行する計算機システムは、隣接サブシステム間の通信と内部状態ベクトルの更新処理をそれぞれ非同期に行う。したがって、サブシステムは、内部状態ベクトルの更新を実行する時に、畳み込み演算に必要な隣接コラム(隣接サブシステムが実行するカラム)上のニューロンの値を得ることはできない。 The computer system that executes the distributed CNN asynchronously performs communication between adjacent subsystems and updates the internal state vector. Therefore, when executing the 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 in the previous communication with the adjacent subsystem in the memory, and stores the value stored when the internal state vector is updated. Is used to perform a convolution operation. This configuration makes it possible to perform error back propagation asynchronously, as described later.
[畳み込み]
以下において、分散CNNの各層の処理を説明する。計算機システムは、実施例1において説明した、グラフ上のCNN400における各層の処理を実行することができる。まず、畳み込み層の処理を説明する。分散CNNを実行する各サブシステムは、自システムが担当するカラムの畳み込み演算する。各サブシステムは、実施例1で説明した畳み込み層の処理を、担当するカラムにおいて実行する。
[Convolution]
Hereinafter, processing of each layer of the distributed CNN will be described. The computer system can execute the processing of each layer in the
実施例1において説明したように、畳み込み演算は、対象ノード(ニューロン)の値及び対象ノードから所定ホップ数のノードの値を使用する。分散CNNでは、各サブシステムは、対象ノード(ニューロン)以外のノードの値を、他のサブシステムから収集する。 As described in the first embodiment, the convolution operation uses the value of the target node (neuron) and the value of the node having a predetermined number of hops from the target node. In the distributed CNN, each subsystem collects 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 at the time of communication with the adjacent subsystem, and performs the convolution operation using the stored value when updating the internal state vector. I do. The weight (coefficient of the kernel) of the convolution operation is common to all subsystems. For example, the subsystems can share the same weight data by communicating with each other.
サブシステムは、畳み込み演算のカーネル範囲(ホップ数)内の全てのカラムの値を必要とする。実施例1で説明したように、プーリング層の後の畳み込み章におけるカーネルサイズは広げられる。第2畳み込み層413の処理のような、2ホップ以上のカーネルサイズの畳み込み演算のため、サブシステムは、隣接していないサブシステムのカラムの値(内部状態ベクトル)を、隣接サブシステムを介したマルチホップ中継により取得する。nホップの情報伝達は、n回の通信が必要である。
The subsystem needs the values of all columns within the kernel range (hop count) of the convolution operation. As described in the first embodiment, the kernel size in the convolution chapter after the pooling layer is increased. For a convolution operation with a kernel size of 2 hops or more, such as the processing of the
[プーリング]
次に、プーリング処理について説明する。分散CNNでは、各サブシステムが、CNNの下層から上層まで同一位置のニューロンをカラムとして扱うため、全ての層でニューロンの数は一定である。これは、実施例1において説明したグラフ上のCNNと同様である。分散CNNにおいて、各サブシステムは、実施例1で説明したプーリング処理と同様に、そこで、ニューロン数(ノード数)を削減することなく、表現の自由度を低下させるプーリング処理を実行する。
[Pooling]
Next, the pooling process will be described. In the distributed CNN, since each subsystem treats neurons at the same position from the lower layer to the upper layer of the CNN as columns, the number of neurons is constant in all layers. This is similar to the CNN on the graph described in the first embodiment. In the distributed CNN, similarly to the pooling process described in the first embodiment, each subsystem executes a pooling process that reduces the degree of freedom of expression without reducing the number of neurons (the number of nodes).
実施例1において説明した平均値プーリング及び最大値プーリングの双方が、分散CNNにおけるプーリング処理に適用できる。実施例1において説明したように、プーリング処理は、隣接ノードの状態値を必要とする。分散CNNにおいては、サブシステムは、自システムの内部状態ベクトルと隣接するサブシステムから取得した内部状態ベクトルから、自システムの新たな内部状態ベクトルを計算する。 Both the average value pooling and the maximum value pooling described in the first embodiment can be applied to the pooling process in the distributed CNN. As described in the first embodiment, the pooling process requires the state value of the adjacent node. In the distributed CNN, a subsystem calculates a new internal state vector of its own system from an internal state vector of its own system and an internal state vector acquired from an adjacent subsystem.
[全結合]
次に全結合について説明する。集中型のCNNは、畳み込み演算及びプーリングを何度か繰り返したのち全結合層によって全てのニューロンの値を一ヶ所に集めてアフィン演算することで、最終出力する値を計算する。一方、分散CNNでは、各サブシステムは自律的に動作しており、全サブシステムの値を一ヶ所に集めることはできない。
[Full join]
Next, all coupling will be described. The centralized CNN calculates the final output value by repeating the convolution operation and pooling several times, then collecting all neuron values at one place by an all-connected layer and performing an affine operation. On the other hand, in the distributed CNN, each subsystem operates autonomously, and the values of all subsystems cannot be collected in one place.
そこで、本開示の計算機システムは、分散で平均値を求める既知のアルゴリズムを利用する。分散で平均値を求めるアルゴリズムは、例えば、分散ADMM(Alternating Direction Method of Multipliers)や平均合意アルゴリズムである。 Therefore, the computer system according to the present disclosure uses a known algorithm for calculating an average value by variance. The algorithm for obtaining the average value by the variance is, for example, a distributed ADMM (Alternating Direction Method of Multipliers) or an average agreement algorithm.
具体的には、各サブシステムは、まず、自分のカラム上のニューロンの出力値に、対応する全結合層の重み係数を乗算する。次に、全てのサブシステムの乗算結果の値の平均値を、後述のアルゴリズムを用いて分散で計算することで、全結合層の出力値を得ることができる。なお、この方法は、ニューロンの値に重み係数を乗算したものの総和ではなく平均値が出力する。重み係数は学習データ(教師データ)から学習されるため、この違いが問題になることはない。従来の集中型CNNで学習した重み係数を分散CNNで用いる場合には、各サブシステムに保持させる重み係数の値に、あらかじめ全サブシステムの数を乗算しておけばよい。 Specifically, each subsystem first multiplies the output value of the neuron on its own column by the weight coefficient of the corresponding fully connected layer. Next, the output value of the fully connected layer can be obtained by calculating the average of the values of the multiplication results of all the subsystems in a variance using an algorithm described later. In this method, an average value is output instead of the sum of the values obtained by multiplying the value of the neuron by the weight coefficient. Since the weight coefficient is learned from the learning data (teacher data), this difference does not matter. When the weighting factor learned in the conventional centralized CNN is used in the distributed CNN, the value of the weighting factor held in each subsystem may be multiplied by the number of all subsystems in advance.
以下において、分散で平均値を計算するアルゴリズムの二つの例を説明する。第1の例は分散ADMMを用いた平均値計算アルゴリズムである。分散ADMMを用いて以下の最適化問題を解くことで、N個の値xiの平均値νを分散で計算することができる。 In the following, two examples of an algorithm for calculating an average value by variance will be described. The first example is an average calculation algorithm using a distributed ADMM. Using a dispersion ADMM by solving the following optimization problem, it is possible to calculate the mean value ν of N values x i in a distributed.
分散ADMMを用いる方法は、常に、上記式を満たすように最適化を行うため、動作の最中に値xiやネットワークトポロジが動的に変化した場合でも、変化に追随してその時点での平均値νを出力することができる。したがって、任意の指定した時点の値に対する平均値を計算することができる。 In the method using the distributed ADMM, the optimization is always performed so as to satisfy the above equation. Therefore, even when the value xi or the network topology changes dynamically during the operation, the average at that time follows the change. The value ν can be output. Therefore, it is possible to calculate an average value for a value at any specified time.
第2の例は平均合意アルゴリズムである。平均合意アルゴリズムは、各サブシステムで保持する値xiの総和を一定に保ちながら、サブシステム間で値xiを分配し、最終的に、全てのサブシステムの値xiのを同一の値に収束させる。値xiの総和が常に一定であることから、収束値は各値xi初期値の平均値となる。いくつかの種類の平均アルゴリズムの中で、最も単純な平均合意アルゴリズムは、例えば、サブシステムiとサブシステムjの通信時に、値xiと値xjを以下の式に従って更新する。 A second example is an average agreement algorithm. Mean agreement algorithm, while keeping the sum of the values x i of holding in each subsystem constant distributes the values x i between subsystems, finally, the same value that the value x i of all the subsystems To converge. Since the sum of values x i is always constant, the convergence value is the average of the values x i the initial value. Among several types of means algorithm, the simplest mean agreement algorithm, for example, when communicating subsystem i and subsystem j, updates a value x i and the value x j according to the following equation.
これにより、隣接間通信が行われるたびに、システム全体の値xiの総和を一定に保ちながら、値xiの分散が減少するため、いずれ、全ての値xiが同一の値、すなわち、各値xiの初期値の平均値に収束することになる。 Thereby, every time the communication between the 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, so that all the values x i eventually become the same value, that is, will converge to an average value of the initial value of each value x i.
平均合意アルゴリズムは、動作の最中に値xiの値やネットワークトポロジが動的に変化すると、システム全体での値xiの総和が変化するため、各値xiの初期値の平均値を正しく計算できない。一方で、平均合意アルゴリズムが持つ収束値が常にその時点でのシステム全体の値xiの平均値になっているので、誤差逆伝播による畳み込みフィルタの重み係数の学習に有用である。 The average consensus algorithm calculates the average value of the initial values of each value x i because the sum of the values x i in the entire system changes when the value of the value x i or the network topology changes dynamically during the operation. Cannot calculate correctly. On the other hand, since the convergence value of the average agreement algorithm is always the average value of the values x i of the entire system at that time, it is useful for learning the weight coefficient of the convolution filter by the back propagation of the error.
[誤差逆伝播による学習(訓練)]
上述のように、分散CNNにおいて、サブシステムは、前回の隣接サブシステムとの通信のときに得られた隣接カラム上のニューロンの値を記憶し、記憶しておいた値を用いて畳み込み演算等の順伝播の計算を行うことで内部状態ベクトルを更新する。サブシステムは、誤差逆伝播計算時に順伝播時に用いた値をそのまま使うことで、他のサブシステムとの同期なく、誤差逆伝播によるパラメータ更新を行うことができる。
[Learning (training) by backpropagation]
As described above, in the distributed CNN, the subsystem stores the value of the neuron on the adjacent column obtained during the previous communication with the adjacent subsystem, and performs convolution operation or the like using the stored value. To update the internal state vector by performing forward propagation calculation. By using the value used during forward propagation at the time of error backpropagation calculation, the subsystem can update parameters by error backpropagation without synchronization with other subsystems.
誤差逆伝播の計算は、順伝播のグラフのノード(ニューロン)を逆にたどることで行う。図22〜25にグラフ上のノードの種類ごとの伝播則の例を示す。具体的には、図22〜25は、それぞれ、関数fの適用ノード771、可算ノード772、乗算ノード773及び変数複製ノード(分岐ノード)774を示す。順伝播の伝播則は実線で示され、逆伝播の伝播則は破線で示されている。順伝播の入力はx及びyである。分散CNNでは、このうち変数複製ノード774の実現に工夫が必要である。
The calculation of the backpropagation is performed by following the nodes (neurons) of the forward propagation graph in reverse. 22 to 25 show examples of propagation rules for each type of node on the graph. Specifically, FIGS. 22 to 25 show an
変数複製ノード774は、順伝播の計算時に同一の変数を複数回使用することに相当する。分散CNNでは複数のサブシステムが分散して計算するため、図25の変数複製ノード774の逆伝播則において、上層からの誤差信号dx1及びdx2のうち、自サブシステム以外のサブシステムが担当するカラムからの信号を得ることはできない。
The
そこで、変数複製ノード774の誤差逆伝搬では、各サブシステムが、それぞれ自サブシステムが担当するカラム内部で得られる誤差信号のみを使って、独立にパラメータの微係数を計算してパラメータ値を更新する。その後、各サブシステムは、上記平均合意アルゴリズムを用いて全てのサブシステムが保持するパラメータ値の平均を計算する。平均合意アルゴリズムでは、収束値が、常にその時点での全てのサブシステムが持つ値の平均値になっているため、継続的に学習、すなわち、パラメータ値の更新を続けることができる。
Therefore, in the error backpropagation of the
なお、数学的に正しい微係数が上層からの全ての誤差信号の総和であるのに対して、この方法は、上層からの全ての誤差信号の平均値を微係数と考えてパラメータを更新する。そのため、パラメータ更新に用いる学習アルゴリズムのハイパーパラメータである学習率(Learning Rate)に、あらかじめ全サブシステムの数を乗算しておく。 Note that while the mathematically correct differential coefficient is the sum of all error signals from the upper layer, this method updates the parameters by considering the average value of all error signals from the upper layer as the differential coefficient. Therefore, the learning rate (learning rate), which is a hyperparameter of the learning algorithm used for updating the parameter, is multiplied in advance by the number of all subsystems.
逆誤差伝播における分岐ノードの後段(順伝播では前段)にさらに別のノードがある場合も、同様に、分岐ノードでは各サブシステムが自サブシステムが担当するコラムの情報のみを用いて誤差信号を逆伝播させて後段にあるパラメータ更新を独立に実行し、その後にパラメータ値の平均値を平均合意アルゴリズムにより計算する。 Similarly, when there is another node after the branch node in the backward error propagation (the previous stage in the forward propagation), similarly, in the branch node, each subsystem generates an error signal by using only the information of the column in charge of its own subsystem. The parameter is back-propagated and the subsequent parameters are updated independently, and then the average 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 distributed CNN of the present disclosure will be described. FIG. 26 shows a configuration example 900 of the distributed CNN and its processing. Hereinafter, processing executed by one subsystem will be described. First, forward propagation will be described. In the forward propagation, the
第1プーリング層902は、実施例1の第1畳み込み層411と同様に、プーリング処理を実行する。第1プーリング層902は、自内部状態ベクトルから第1畳み込み層901により更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの第1畳み込み層901の出力値を取得する。第1プーリング層902は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
第2畳み込み層904は、実施例1の第2畳み込み層413と同様に、畳み込み演算及びReLUを実行する。第2畳み込み層904は、自内部状態ベクトルから第1プーリング層902に更新された対象ニューロンの値を取得し、また、予め保持している2ホップ内のサブシステムの内部状態ベクトルから、隣接ニューロンの第1プーリング層の出力値を取得する。2ホップ離れたサブシステムからのデータは、隣接サブシステムを介して転送される。第2畳み込み層904は、これらの値の畳み込み演算及びReLUを実行し、自内部状態ベクトルを更新する。
The
第2プーリング層906は、実施例1の第2プーリング層414と同様に、プーリング処理を実行する。第2プーリング層906は、自内部状態ベクトルから第2畳み込み層904に更新された対象ニューロンの値を取得し、また、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
第2プーリング層906は、さらに、自内部状態ベクトルから直前のプーリング処理で更新されたニューロンの値を取得し、予め保持している隣接サブシステムの内部状態ベクトルから、隣接ニューロンの値を取得する。第2プーリング層906は、これらの値のプーリング、本例において最大値プーリングを実行し、自内部状態ベクトルを更新する。
The
全結合層907は、分散ADMMによって平均値を計算する。全結合層907は、自内部状態ベクトルの対象ニューロンの値と、予め保持している他のサブシステムの内部状態ベクトルの対象ニューロンの値から、分散ADMMによって平均値を計算する。
The
次に、誤差逆伝播を説明する。誤差逆伝播において、各サブシステムは、教師データを与えられている。各サブシステムは、内部に保持しているデータを使用して、他のサブシステムから独立に、重みデータ(バイアスを含む)を更新する。各サブシステムは、平均合意アルゴリズムによって、更新した重みデータの平均値を計算する。これにより、全てのサブシステムの重みデータが共通化される。 Next, error back propagation will be described. In backpropagation, each subsystem is provided with teacher data. Each subsystem updates the weight data (including the bias) independently of the other subsystems, using the data held internally. Each subsystem calculates an average value of the updated weight data by an average agreement algorithm. As a result, the weight data of all subsystems is shared.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 Note that the present invention is not limited to the above-described embodiment, and includes various modifications. For example, the above-described embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described above. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of one embodiment can be added to the configuration of another embodiment. Also, for a part of the configuration of each embodiment, it is possible to add, delete, or replace another configuration.
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。 In addition, each of the above configurations, functions, processing units, and the like may be partially or entirely realized by hardware, for example, by designing an integrated circuit. In addition, the above-described configurations, functions, and the like may be realized by software by a processor interpreting and executing a program that realizes each function. Information such as a program, a table, and a file for realizing each function can be stored 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. Further, the control lines and the information lines are shown to be necessary for the explanation, and not all the control lines and the information lines are necessarily shown on the product. In practice, almost all components may be considered to be 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 pooling layer, 413 second convolution layer, 414 second pooling layer, 900 distributed CNN
Claims (11)
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記グラフ上の畳み込みニューラルネットワークは、
1以上の畳み込み層と、
1以上のプーリング層と、を含み、
前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、
前記1以上のプロセッサは、
各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、
各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、
プーリング層の後段の畳み込み層のカーネルのサイズは、前段の畳み込み層のカーネルのサイズよりも大きい、計算機システム。 A computer system for executing a convolutional neural network on a graph, comprising:
One or more processors,
One or more storage devices;
The convolutional neural network on the graph is
One or more convolutional layers,
One or more pooling layers;
The one or more storage devices store kernel weight data of the one or more convolutional layers,
The one or more processors include:
In each convolution layer, the value of each node is updated by a convolution operation based on a kernel having a size of a predetermined number of hops,
In each pooling layer, the value of each node is updated by pooling processing based on the value of each node and the value of a node within a pooling range of a predetermined number of hops from each node,
The computer system, wherein the size of the kernel of the convolutional layer at the subsequent stage of the pooling layer is larger than the size of the kernel of the convolutional layer of the preceding stage.
畳み込み層の後段のプーリング層のプーリング範囲は、前段のプーリング層のプーリング範囲よりも広い、計算機システム。 The computer system according to claim 1, wherein
The computer system, wherein the pooling range of the subsequent pooling layer of the convolutional layer is wider than the pooling range of the preceding pooling layer.
前記1以上のプロセッサは、前記所定ホップ数のプーリング範囲のプーリング処理を、1ホップ範囲のプーリング処理を前記所定ホップ数と一致する回数だけ繰り返すことで行う、計算機システム。 The computer system according to claim 1, wherein
The computer system, wherein the one or more processors perform the pooling process of the pooling range of the predetermined hop number by repeating the pooling process of the one hop range a number of times equal to the predetermined hop number.
前記1以上のプロセッサは、前記グラフ上の畳み込みニューラルネットワークの誤差伝播学習において、誤差関数に前記1以上の畳み込み層の正則化項を含める、計算機システム。 The computer system according to claim 1, wherein
The computer system, wherein the one or more processors include a regularization term of the one or more convolution layers in an error function in error propagation learning of the convolutional neural network on the graph.
前記1以上のプロセッサは、前記プーリング処理において、入力値にスムースマキシマムを適用した後に平均値プーリングを行う、計算機システム。 The computer system according to claim 1, wherein
The computer system, wherein the one or more processors perform average pooling after applying smooth maximum to an input value in the pooling process.
前記1以上のプロセッサは、前記1以上の畳み込み層及び前記1以上のプーリング層の後段において、全域平均プーリングを実行する、計算機システム。 The computer system according to claim 1, wherein
The computer system, wherein the one or more processors execute a global average pooling at a stage subsequent to the one or more convolutional layers and the one or more pooling layers.
前記計算機システムは、ネットワークにより接続された複数のサブシステムを含み、
前記複数のサブシステムは、隣接するサブシステムとのみ通信を行い、
前記複数のサブシステムのそれぞれは、前記グラフ上の畳み込みニューラルネットワークにおいて、同一位置のニューロンからなるカラムの計算を行う、計算機システム。 The computer system according to claim 1, wherein
The computer system includes a plurality of subsystems connected by a network,
The plurality of subsystems communicate only with adjacent subsystems,
A computer system, wherein each of the plurality of subsystems calculates a column composed of neurons at the same position in the convolutional neural network on the graph.
前記複数のサブシステムのそれぞれは、
前記カラムの値を示す内部状態ベクトルを保持し、
隣接サブシステムを含む他のサブシステムから前記内部状態ベクトルを取得し、
自内部状態ベクトル及び他のサブシステムの内部状態ベクトルを使用して前記カラムの計算を行う、計算機システム。 The computer system according to claim 7, wherein
Each of the plurality of subsystems comprises:
Holding an internal state vector indicating the value of the column,
Obtaining the internal state vector from other subsystems, including neighboring subsystems,
A computer system for calculating the column using its own internal state vector and internal state vectors of other subsystems.
前記複数のサブシステムは、前記1以上の畳み込み層及び前記1以上のプーリング層の後段において、分散で前記カラムの値の平均値を計算する、計算機システム。 The computer system according to claim 7, wherein
The computer system, wherein the plurality of subsystems calculate an average value of the values of the columns by variance in a stage subsequent to the one or more convolutional layers and the one or more pooling layers.
前記複数のサブシステムのそれぞれは、
他のサブシステムから独立して、誤差逆伝播による学習によって前記1以上の畳み込み層の重みを更新し、
前記更新した重みの平均値を他のサブシステムとの通信により計算する、計算機システム。 The computer system according to claim 7, wherein
Each of the plurality of subsystems comprises:
Independent of the other subsystems, updating the weights of the one or more convolutional layers by learning by backpropagation,
A computer system for calculating the updated average value of the weights by communication with another subsystem.
前記計算機システムは、
1以上のプロセッサと、
1以上の記憶装置と、を含み、
前記グラフ上の畳み込みニューラルネットワークは、
1以上の畳み込み層と、
1以上のプーリング層と、を含み、
前記1以上の記憶装置は、前記1以上の畳み込み層のカーネルの重みデータを格納し、
前記方法は、
各畳み込み層において、各ノードの値を、所定ホップ数のサイズを有するカーネルに基づく畳み込み演算によって、更新し、
各プーリング層において、各ノードの値を、各ノードの値及び各ノードから所定ホップ数のプーリング範囲内のノードの値に基づくプーリング処理によって、更新し、
プーリング層の後段の畳み込み層のカーネルのサイズは、前段の畳み込み層のカーネルのサイズよりも大きい、方法。 A method, wherein a computer system executes a convolutional neural network on a graph,
The computer system includes:
One or more processors,
One or more storage devices;
The convolutional neural network on the graph is
One or more convolutional layers,
One or more pooling layers;
The one or more storage devices store kernel weight data of the one or more convolutional layers,
The method comprises:
In each convolution layer, the value of each node is updated by a convolution operation based on a kernel having a size of a predetermined number of hops,
In each pooling layer, the value of each node is updated by pooling processing based on the value of each node and the value of a node within a pooling range of a predetermined number of hops from each node,
The method, wherein the size of the kernel of the subsequent convolutional layer is larger than the size of the kernel of the previous convolutional layer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018151323A JP7036689B2 (en) | 2018-08-10 | 2018-08-10 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018151323A JP7036689B2 (en) | 2018-08-10 | 2018-08-10 | Computer system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020027399A true JP2020027399A (en) | 2020-02-20 |
JP2020027399A5 JP2020027399A5 (en) | 2021-04-22 |
JP7036689B2 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560953A (en) * | 2020-12-16 | 2021-03-26 | 中国平安财产保险股份有限公司 | Method, system, device and storage medium for identifying illegal operation of private car |
WO2021172675A1 (en) * | 2020-02-24 | 2021-09-02 | 한국과학기술원 | Electronic device for integral prediction of future route for unspecified number of surrounding vehicles, and operation method therefor |
JP2021196969A (en) * | 2020-06-16 | 2021-12-27 | 株式会社Nttドコモ | Prediction model generation system and prediction system |
CN115791640A (en) * | 2023-02-06 | 2023-03-14 | 杭州华得森生物技术有限公司 | Tumor cell detection device and method based on spectroscopic spectrum |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190087509A1 (en) * | 2017-09-19 | 2019-03-21 | Fujitsu Limited | Search method, computer-readable recording medium, and search device |
US20190122111A1 (en) * | 2017-10-24 | 2019-04-25 | Nec Laboratories America, Inc. | Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions |
-
2018
- 2018-08-10 JP JP2018151323A patent/JP7036689B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190087509A1 (en) * | 2017-09-19 | 2019-03-21 | Fujitsu Limited | Search method, computer-readable recording medium, and search device |
JP2019056960A (en) * | 2017-09-19 | 2019-04-11 | 富士通株式会社 | Search method, search program and search apparatus |
US20190122111A1 (en) * | 2017-10-24 | 2019-04-25 | Nec Laboratories America, Inc. | Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021172675A1 (en) * | 2020-02-24 | 2021-09-02 | 한국과학기술원 | Electronic device for integral prediction of future route for unspecified number of surrounding vehicles, and operation method therefor |
JP2021196969A (en) * | 2020-06-16 | 2021-12-27 | 株式会社Nttドコモ | Prediction model generation system and prediction system |
JP7412283B2 (en) | 2020-06-16 | 2024-01-12 | 株式会社Nttドコモ | Prediction model generation system and prediction system |
CN112560953A (en) * | 2020-12-16 | 2021-03-26 | 中国平安财产保险股份有限公司 | Method, system, device and storage medium for identifying illegal operation of private car |
CN112560953B (en) * | 2020-12-16 | 2023-08-15 | 中国平安财产保险股份有限公司 | Private car illegal operation identification method, system, equipment and storage medium |
CN115791640A (en) * | 2023-02-06 | 2023-03-14 | 杭州华得森生物技术有限公司 | Tumor cell detection device and method based on spectroscopic spectrum |
Also Published As
Publication number | Publication date |
---|---|
JP7036689B2 (en) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010658B2 (en) | System and method for learning the structure of deep convolutional neural networks | |
JP7036689B2 (en) | Computer system | |
Xin et al. | Elastic extreme learning machine for big data classification | |
Moerland et al. | A0c: Alpha zero in continuous action space | |
EP3605334A1 (en) | Incentive control for multi-agent systems | |
US20180114110A1 (en) | Method and apparatus to reduce neural network | |
US20170068887A1 (en) | Apparatus for classifying data using boost pooling neural network, and neural network training method therefor | |
CA3131688A1 (en) | Process and system including an optimization engine with evolutionary surrogate-assisted prescriptions | |
Faigl et al. | Unifying multi-goal path planning for autonomous data collection | |
Liu et al. | A new path plan method based on hybrid algorithm of reinforcement learning and particle swarm optimization | |
KR20190141581A (en) | Method and apparatus for learning artificial neural network for data prediction | |
JP6205526B2 (en) | Calculation method using computer and neural network | |
Redlarski et al. | Using river formation dynamics algorithm in mobile robot navigation | |
Dash | DECPNN: A hybrid stock predictor model using Differential Evolution and Chebyshev Polynomial neural network | |
Fischer | Neural networks: a class of flexible non-linear models for regression and classification | |
CN113408949B (en) | Robot time sequence task planning method and device and electronic equipment | |
CN115759199A (en) | Multi-robot environment exploration method and system based on hierarchical graph neural network | |
Krityakierne et al. | Global optimization with sparse and local Gaussian process models | |
Wen et al. | Hierarchical sarsa learning based route guidance algorithm | |
CN111027709B (en) | Information recommendation method and device, server and storage medium | |
Zhang et al. | Regularization-Based Efficient Continual Learning in Deep State-Space Models | |
Tilahun | Swarm intelligence for a single source product distribution | |
Hu et al. | Neural-PDE: a RNN based neural network for solving time dependent PDEs | |
Bouazzi et al. | Application of an improved genetic algorithm to hamiltonian circuit problem | |
Ogurtsov | Review of Neural Networks Application in UAV Routing Problems. |
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 |