JP7725065B2 - Learning model device, computing device production system, computing method, computing device production method, and program - Google Patents
Learning model device, computing device production system, computing method, computing device production method, and programInfo
- Publication number
- JP7725065B2 JP7725065B2 JP2021197852A JP2021197852A JP7725065B2 JP 7725065 B2 JP7725065 B2 JP 7725065B2 JP 2021197852 A JP2021197852 A JP 2021197852A JP 2021197852 A JP2021197852 A JP 2021197852A JP 7725065 B2 JP7725065 B2 JP 7725065B2
- Authority
- JP
- Japan
- Prior art keywords
- coordinate values
- hypersurface
- binary vector
- learning
- learning model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Image Analysis (AREA)
Description
本発明は、学習モデル装置、演算装置生産システム、演算方法、演算装置生産方法およびプログラムに関する。 The present invention relates to a learning model device, a computing device production system, a computing method, a computing device production method, and a program.
複数の二値データの入力を受け、それら複数の二値データの合計と閾値とを比較して二値データの出力値を算出するノードを用いるバイナリニューラルネットワークが提案されている(例えば、特許文献1参照)。 A binary neural network has been proposed that uses nodes that receive multiple binary data inputs, compare the sum of those binary data with a threshold, and calculate an output value for the binary data (see, for example, Patent Document 1).
1層のバイナリニューラルネットワークでは、排他的論理和を表現できないなど、入力値に対してとりうる出力値が限定される。バイナリニューラルネットワークの層数を増やせば、より多様な出力値をとり得るが、ネットワーク構造がより複雑になる。また、ニューラルネットワークの層数が増えると、学習精度の低下、および、学習速度の低下が生じる可能性がある。
二値データを用いるノードを備える学習モデルが、ノードの層数を増やす必要なしに、比較的多様な出力値をとり得ることが好ましい。
A single-layer binary neural network is limited in the output values it can take for a given input value, as it cannot express exclusive OR. Increasing the number of layers in a binary neural network allows for a greater variety of output values, but the network structure becomes more complex. In addition, increasing the number of layers in a neural network can result in a decrease in learning accuracy and speed.
It is desirable for a learning model with nodes that use binary data to be able to take on a relatively wide variety of output values without having to increase the number of layers of nodes.
本発明の目的の一例は、二値データを用いるノードを備える学習モデルが、ノードの層数を増やす必要なしに、比較的多様な出力値をとり得るようにすることができる、学習モデル装置、演算装置生産システム、演算方法、演算装置生産方法およびプログラムを提供することである。 One example of the objective of the present invention is to provide a learning model device, a computing device production system, a computing method, a computing device production method, and a program that enable a learning model having nodes that use binary data to take on a relatively wide variety of output values without the need to increase the number of layers of nodes.
本発明の第1の態様によれば、学習モデル装置は、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定するノードを備える。 According to a first aspect of the present invention, a learning model device receives a binary vector as input and includes a node that determines a binarized output value based on elements of the coordinate values of points included in a hypersurface in real space that has one more dimension than the dimension of the binary vector, the coordinate values of which include each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real space, other than the elements of the coordinate values of the binary vector.
本発明の第2の態様によれば、演算装置生産システムは、学習モデルシステムと、学習制御部と、設定部とを備え、前記学習モデルシステムは、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、出力値を決定するノードを備え、前記学習制御部は、前記学習モデルシステムの学習を制御し、前記設定部は、学習後の前記学習モデルシステムのノードにおける入力と出力との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを演算装置のテンプレートに設定する。 According to a second aspect of the present invention, a computing device production system includes a learning model system, a learning control unit, and a setting unit. The learning model system receives a binary vector as input and includes a node that determines an output value based on elements of coordinate values of a point included in a hypersurface in real space that has one more dimension than the number of dimensions of the binary vector, the coordinate values of the point including each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real space, other than the elements of the coordinate values of the binary vector. The learning control unit controls learning of the learning model system. The setting unit generates a lookup table indicating the relationship between input and output at the node of the learning model system after learning, and sets the generated lookup table in a template for the computing device.
本発明の第3の態様によれば、演算方法は、コンピュータが、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定することを含む。 According to a third aspect of the present invention, a computing method includes a computer receiving a binary vector as input, and determining a binarized output value based on elements of the coordinate values of points included in a hypersurface in real space that has one more dimension than the number of dimensions of the binary vector, the coordinate values of which include each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real space, other than the elements of the coordinate values of the binary vector.
本発明の第4の態様によれば、演算装置生産方法は、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、出力値を決定するノードを備える学習モデルシステムの学習を行い、学習後の前記学習モデルシステムのノードにおける入力と出力との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを演算装置のテンプレートに設定することを含む。 According to a fourth aspect of the present invention, a method for producing a computing device includes: training a learning model system that receives an input of a binary vector; and that includes a node that determines an output value based on elements of the coordinate values of a point that is included in a hypersurface in real space with a number of dimensions one greater than the number of dimensions of the binary vector and has coordinate values that include each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real space, other than elements of the coordinate values of the binary vector; generating a lookup table that indicates the relationship between input and output at the node of the learning model system after training; and setting the generated lookup table as a template for a computing device.
本発明の第5の態様によれば、プログラムは、コンピュータに、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定することを実行させるためのプログラムである。 According to a fifth aspect of the present invention, a program causes a computer to receive a binary vector as input, and determine a binarized output value based on elements of the coordinate values of points included in a hypersurface in real space that has one more dimension than the number of dimensions of the binary vector, the coordinate values of which include each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real space, other than the elements of the coordinate values of the binary vector.
本発明の第6の態様によれば、プログラムは、コンピュータに、二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、出力値を決定するノードを備える学習モデルシステムの学習を行うことと、学習後の前記学習モデルシステムのノードにおける入力と出力との関係を示すルックアップテーブルを生成することと、
生成したルックアップテーブルを演算装置のテンプレートに設定することと、を実行させるためのプログラムである。
According to a sixth aspect of the present invention, a program is provided for a computer to receive an input of a binary vector, and to perform training of a learning model system including a node that determines an output value based on elements of coordinate values of a point that is included in a hypersurface in a real number space having a number of dimensions one more than the number of dimensions of the binary vector, the coordinate values including each element of the coordinate values when the binary vector is treated as a coordinate value in a subspace of the real number space, other than the elements of the coordinate values of the binary vector; and to generate a lookup table indicating the relationship between input and output at the node of the learning model system after training;
and setting the generated lookup table as a template for the arithmetic unit.
上記した学習モデル装置、演算装置生産システム、演算方法、演算装置生産方法およびプログラムによれば、二値データを用いるノードを備える学習モデルが、ノードの層数を増やす必要なしに、比較的多様な出力値をとり得るようにすることができる。 The above-described learning model device, computing device production system, computing method, computing device production method, and program enable a learning model equipped with nodes that use binary data to take on a relatively wide variety of output values without the need to increase the number of node layers.
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係る演算装置生産システムの構成の例を示す図である。図1に示す構成で、演算装置生産システム1は、学習モデル装置100と、学習制御部300と、設定部400とを備える。学習モデル装置100は、超曲面型ノード110を備える。
また、図1には、演算装置200が示されている。演算装置200は、テーブル型ノード210を備える。演算装置200が、演算装置生産システム1の一部として構成されていてもよいし、演算装置生産システム1の外部の装置として構成されていてもよい。
The following describes embodiments of the present invention, but the following embodiments do not limit the scope of the invention as claimed. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
Fig. 1 is a diagram showing an example of the configuration of a computing device production system according to an embodiment. In the configuration shown in Fig. 1, the computing device production system 1 includes a learning model device 100, a learning control unit 300, and a setting unit 400. The learning model device 100 includes a hypersurface type node 110.
1 also shows a computing device 200. The computing device 200 includes a table-type node 210. The computing device 200 may be configured as a part of the computing device production system 1, or may be configured as a device external to the computing device production system 1.
演算装置生産システム1は、二値データを用いるノードを備える学習モデルの学習を行って、学習モデルのノード毎に入力値と出力値との関係を示すルックアップテーブルを取得する。演算装置生産システム1は、取得したルックアップテーブルを演算装置200のテンプレートのテーブル型ノード210に設定することで、演算装置200を生産する。ここでいう演算装置200のテンプレートは、ルックアップテーブルが設定されておらず、それ以外の点では演算装置200と同様のものである。
演算装置生産システム1では、学習モデル装置100が学習モデルの機能を有し、超曲面型ノード110が、二値データを用いるノードに該当する。
The computing device production system 1 performs learning of a learning model having nodes that use binary data, and acquires a lookup table that indicates the relationship between input values and output values for each node of the learning model. The computing device production system 1 produces the computing device 200 by setting the acquired lookup table in the table-type node 210 of the template of the computing device 200. The template of the computing device 200 here does not have a lookup table set, but is otherwise similar to the computing device 200.
In the computing device production system 1, the learning model device 100 has the function of a learning model, and the hypersurface type node 110 corresponds to a node that uses binary data.
ここでいう学習モデルは、パラメータ値を調整可能なパラメータを有し、入力データ値に対して入力データ値およびパラメータ値に応じた出力データ値を出力するものである。学習モデルのパラメータ値を調整することを、学習モデルの学習と称する。学習モデル装置100の学習モデルの学習を、学習モデル装置100の学習とも称する。
二値データの演算を二値データ演算とも称する。ここでいう演算は、ルックアップテーブルを参照して出力値を決定することであってもよい。
The learning model here has parameters whose parameter values are adjustable, and outputs output data values corresponding to the input data values and the parameter values. Adjusting the parameter values of the learning model is referred to as learning the learning model. Learning the learning model of the learning model device 100 is also referred to as learning of the learning model device 100.
The operation of binary data is also referred to as binary data operation. The operation here may refer to a lookup table to determine an output value.
演算装置200は、テーブル型ノード210を用いて二値データ演算を行う。演算装置200が備えるテーブル型ノード210の個数は特定の個数に限定されず、1つ以上のいろいろな個数とすることができる。特に、演算装置200が、学習モデル装置100が備える超曲面型ノード110の個数と同じ個数のテーブル型ノード210を備え、学習モデル装置100で超曲面型ノード110が接続されるネットワーク構造と同じネットワーク構造で、テーブル型ノード210が接続されていてもよい。これにより、演算装置生産システム1が学習モデル装置100の学習にて超曲面型ノード110毎に取得するルックアップテーブルを、そのままテーブル型ノード210に設定することができる。 The computing device 200 performs binary data operations using table-type nodes 210. The number of table-type nodes 210 provided in the computing device 200 is not limited to a specific number and can be one or more. In particular, the computing device 200 may be provided with the same number of table-type nodes 210 as the number of hypersurface-type nodes 110 provided in the learning model device 100, and the table-type nodes 210 may be connected in the same network structure as the network structure to which the hypersurface-type nodes 110 are connected in the learning model device 100. This allows the lookup table that the computing device production system 1 obtains for each hypersurface-type node 110 during learning by the learning model device 100 to be set directly in the table-type node 210.
二値データを扱ういろいろな演算に演算装置200を用いることができる。例えば、ビット演算、論理演算、または、二値画像処理に演算装置200を用いることができるが、演算装置200の用途はこれらに限定されない。
テーブル型ノード210は、ルックアップテーブルを参照し、入力される二値ベクトルとルックアップテーブルで対応付けられている出力値を出力する。
The arithmetic unit 200 can be used for various operations that handle binary data, such as bit operations, logical operations, or binary image processing, but the uses of the arithmetic unit 200 are not limited to these.
The table type node 210 refers to a lookup table and outputs an output value that is associated with an input binary vector in the lookup table.
図2は、テーブル型ノード210におけるデータの入出力の例を示す図である。図2は、2入力かつ1出力の場合のテーブル型ノード210の例を示している。ただし、テーブル型ノード210における入力データの個数は特定の個数に限定されず、1つ以上のいろいろな個数とすることができる。また、後述するように、テーブル型ノード210における出力データの個数が複数であってもよい。 Figure 2 is a diagram showing an example of data input and output in a table-type node 210. Figure 2 shows an example of a table-type node 210 with two inputs and one output. However, the number of input data items in the table-type node 210 is not limited to a specific number, and can be any number greater than or equal to one. Furthermore, as will be described later, the number of output data items in the table-type node 210 may be multiple.
図2の例では、テーブル型ノード210は、2つの二値データx0およびx1の入力を受け、ルックアップテーブルで入力データ値に対応付けられている二値データ値を出力する。2つの二値データx0およびx1は、二値ベクトルの例に該当する。また、図2の例では、ルックアップテーブルで入力データ値に対応付けられる出力データ値は、入力データ値と同じ行に示されている出力データ値である。 2, the table-type node 210 receives two binary data items x0 and x1 as inputs and outputs binary data values that are associated with the input data values in a lookup table. The two binary data items x0 and x1 are examples of binary vectors. Also, in the example of FIG. 2, the output data value that is associated with the input data value in the lookup table is the output data value shown in the same row as the input data value.
テーブル型ノード210では、ルックアップテーブルにおいて入力データ値の組み合わせ毎に任意の出力データ値を設定することができる。テーブル型ノード210は、この点で、高い表現力を有する。例えば、バイナリニューラルネットワークの1つのノードでは排他的論理和の演算を行うことができないのに対し、1つのテーブル型ノード210で排他的論理和の演算を行うことができる。
また、テーブル型ノード210では、ルックアップテーブルを参照して入力データ値に対する出力データ値を決定する点で、複雑な演算に相当する入出力の場合でも、比較的短時間で、かつ、比較的小さい消費電力で、データを出力することができる。
The table-type node 210 allows any output data value to be set for each combination of input data values in a lookup table. In this respect, the table-type node 210 has high expressive power. For example, while a single node in a binary neural network cannot perform an exclusive OR operation, a single table-type node 210 can perform an exclusive OR operation.
Furthermore, the table-type node 210 determines the output data value for the input data value by referring to a lookup table, so that even in the case of input/output that corresponds to complex calculations, data can be output in a relatively short time and with relatively low power consumption.
一方、テーブル型ノード210が用いるルックアップテーブルは離散的な入力値と離散的な出力値との対応関係を表すものであり、このルックアップテーブルを関数として微分することはできない。このため、例えば誤差逆伝播法など関数の微分を用いる学習手法を演算装置200に適用することはできない。
そこで、演算装置生産システム1は、学習モデル装置100の学習を行い、学習結果を演算装置200に反映させる。
On the other hand, the lookup table used by the table-type node 210 represents the correspondence between discrete input values and discrete output values, and this lookup table cannot be differentiated as a function. For this reason, a learning method that uses the differentiation of a function, such as the backpropagation method, cannot be applied to the arithmetic device 200.
Therefore, the computing device production system 1 performs learning on the learning model device 100 and reflects the learning results in the computing device 200.
学習モデル装置100は、超曲面型ノード110を用いて二値データ演算を行う。学習モデル装置100が、1つの超曲面型ノード110を備えていてもよいし、複数の超曲面型ノード110を備えていてもよい。学習モデル装置100が複数の超曲面型ノード110を備える場合、超曲面型ノード110間でデータの受け渡しが行われるようになっていてもよい。この場合、学習モデル装置100におけるデータの入出力の関係は、ニューラルネットワークの場合と同様、有向グラフの形式で表すことができる。
学習モデル装置100は、学習モデルシステムの例に該当する。
The learning model device 100 performs binary data operations using a hypersurface node 110. The learning model device 100 may include one hypersurface node 110, or multiple hypersurface nodes 110. When the learning model device 100 includes multiple hypersurface nodes 110, data may be passed between the hypersurface nodes 110. In this case, the data input/output relationship in the learning model device 100 can be represented in the form of a directed graph, as in the case of a neural network.
The learning model device 100 is an example of a learning model system.
図3は、超曲面型ノード110の構成の例を示す図である。図3に示す構成で、超曲面型ノード110は、超曲面処理部111と、閾値演算部112とを備える。
また、図3は、2入力かつ1出力の場合の超曲面型ノード110の例を示している。ただし、超曲面型ノード110における入力データの個数および出力データの個数は、特定の個数に限定されない。例えば、学習モデル装置100の超曲面型ノード110と、演算装置200のテーブル型ノード210とが一対一に対応付けられ、対応付けられる超曲面型ノード110とテーブル型ノード210とが、同じ個数の入力データの入力を受けて、同じ個数の出力データを出力するようにしてもよい。
3 is a diagram showing an example of the configuration of the hypersurface node 110. In the configuration shown in FIG.
3 shows an example of a hypersurface node 110 with two inputs and one output. However, the number of input data and the number of output data in the hypersurface node 110 are not limited to a specific number. For example, the hypersurface node 110 of the learning model device 100 and the table node 210 of the calculation device 200 may be in one-to-one correspondence, and the corresponding hypersurface node 110 and table node 210 may receive the same number of input data and output the same number of output data.
超曲面型ノード110は、学習モデル装置100が行う二値データ演算、またはその一部に該当する二値データ演算を行う。具体的には、超曲面型ノード110は、二値ベクトルによる入力ベクトルの入力を受ける。すなわち、超曲面型ノード110は、1つ以上の二値データ値の入力を受ける。そして、超曲面型ノード110は、超曲面処理部111および閾値演算部112にて、入力ベクトルに対する二値データ演算を行って出力値を決定し出力する。 The hypersurface node 110 performs the binary data operations performed by the learning model device 100, or a portion of those operations. Specifically, the hypersurface node 110 receives an input vector as a binary vector. That is, the hypersurface node 110 receives an input of one or more binary data values. The hypersurface node 110 then performs a binary data operation on the input vector using the hypersurface processing unit 111 and threshold calculation unit 112, and determines and outputs an output value.
超曲面処理部111は、入力ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、入力ベクトルを上記の実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の座標値を検出する。そして、超曲面処理部111は、検出した座標値の要素のうち、入力ベクトルによる座標値の要素以外の要素の値を出力する。 The hypersurface processing unit 111 detects the coordinate values of points included in a hypersurface in real space with one more dimension than the dimension of the input vector, and which have coordinate values that include each element of the coordinate values when the input vector is treated as coordinate values in a subspace of the real space.The hypersurface processing unit 111 then outputs the values of elements of the detected coordinate values other than the elements of the coordinate values of the input vector.
図3の例の場合、2つの入力データ値x0およびx1が入力ベクトルの例に該当する。この場合、入力ベクトルの次元数は2次元である。図3に示されるx0x1z座標空間が、入力ベクトルの次元数よりも1次元多い3次元の実数空間の例に該当する。ここでのzは、超曲面処理部111の出力値であり、閾値演算部112への入力データ値となる。 In the example of Fig. 3, two input data values x0 and x1 correspond to examples of input vectors. In this case, the number of dimensions of the input vector is two. The x0 x1 z coordinate space shown in Fig. 3 corresponds to an example of a three-dimensional real number space, which has one more dimension than the number of dimensions of the input vector. Here, z is the output value of the hypersurface processing unit 111 and serves as an input data value to the threshold calculation unit 112.
このように、入力ベクトルの次元数よりも1次元多い次元数の実数空間として、入力ベクトルの各要素値を実数値として扱う場合の要素毎の座標軸である入力座標軸と、超曲面処理部111の出力値の座標軸である出力座標軸との組み合わせによる座標空間を用いることができる。
入力ベクトルの次元数よりも1次元多い次元数の実数空間を、入出力実数空間とも称する。
In this way, a coordinate space can be used that is a real number space with one more dimension than the number of dimensions of the input vector, which is a combination of an input coordinate axis, which is the coordinate axis for each element when each element value of the input vector is treated as a real value, and an output coordinate axis, which is the coordinate axis for the output value of the hypersurface processing unit 111.
A real number space having one more dimension than the number of dimensions of the input vector is also referred to as an input/output real number space.
また、図3の例で、x0x1z座標空間に示される曲面が、入力ベクトルの次元数よりも1次元多い3次元の実数空間(入出力実数空間)における超曲面の例に該当する。
また、x0座標およびx1座標で構成されるx0x1座標平面が、x0x1z座標空間の部分空間の例に該当する。二値データ値である入力データ値x0およびx1を、いずれも実数データ値として扱うことで、入力ベクトルをx0x1座標平面における座標値として扱うことができる。例えば、x0=1、x1=0の場合、入力ベクトル(1,0)をx0x1座標平面における座標値(1,0)として扱うことができる。
In the example of FIG. 3, the surface shown in the x 0 x 1 z coordinate space corresponds to an example of a hypersurface in a three-dimensional real space (input/output real space) that has one more dimension than the number of dimensions of the input vector.
Furthermore, the x0x1 coordinate plane consisting of the x0 coordinate and the x1 coordinate corresponds to an example of a subspace of the x0x1z coordinate space. By treating the input data values x0 and x1 , which are binary data values, as real data values, the input vector can be treated as a coordinate value on the x0x1 coordinate plane. For example, when x0 = 1 and x1 = 0, the input vector (1, 0) can be treated as a coordinate value (1, 0) on the x0x1 coordinate plane.
このように、x0x1座標平面における座標値(1,0)が定まると、x0x1z座標空間に示される曲面に含まれる点のうち、この座標値の各要素x0=1およびx1=0を含む座標値を有する点が一意に特定される。図3に示される曲面では、x0=1、x1=0の場合のz座標値はz=0であり、座標値(1,0,0)が特定される。 In this way, once the coordinate value (1, 0 ) on the x0x1 coordinate plane is determined, points having coordinate values including the elements x0 = 1 and x1 = 0 of this coordinate value are uniquely identified among the points included in the curved surface shown in the x0x1z coordinate space. In the curved surface shown in Fig. 3, when x0 = 1 and x1 = 0, the z coordinate value is z = 0, and the coordinate value (1, 0, 0) is identified.
そのために、入出力実数空間における超曲面として、その超曲面に含まれる点のうち、入力ベクトルを入出力実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点が一意に定まるような超曲面を用いる。
そのような超曲面の例として、入力ベクトルがとり得る値の各々を、実数空間の部分空間における座標値として扱った場合のその座標値と、入力ベクトルがとり得る値毎に設定される出力座標値との組み合わせによる座標値の点を制御点とするB-Spline超曲面が挙げられる。
To this end, a hypersurface in the input/output real number space is used such that, among the points included in the hypersurface, points having coordinate values including each element of the coordinate values when the input vector is treated as coordinate values in a subspace of the input/output real number space are uniquely determined.
An example of such a hypersurface is a B-Spline hypersurface whose control points are points with coordinate values obtained by combining the coordinate values of an input vector when each possible value of the input vector is treated as a coordinate value in a subspace of real number space with the output coordinate values set for each possible value of the input vector.
図3の例では、入力データ値x0、x1の何れも0または1の値をとり得る。したがって、入力ベクトルがとり得る値は、(x0,x1)=(0,0)、(0,1)、(1,0)および(1,1)である。図3の例では、入力ベクトルがとり得る値と出力値との組み合わせによる座標値(x0,x1,z)=(0,0,0)、(0,1,0)、(1,0,0)および(1,1,1)の各点が制御点に設定されており、白丸(○)で示されている。図3の例では、これらの制御点の値に基づくB-Spline曲面が、x0x1z座標空間における曲面として用いられている。 In the example of Fig. 3, both input data values x0 and x1 can take the value of 0 or 1. Therefore, the values that the input vector can take are ( x0 , x1 ) = (0,0), (0,1), (1,0), and (1,1). In the example of Fig. 3, points with coordinate values ( x0 , x1 , z) = (0,0,0), (0,1,0), (1,0,0), and (1,1,1) that are combinations of the values that the input vector can take and the output value are set as control points and are indicated by white circles (○). In the example of Fig. 3, a B-Spline surface based on the values of these control points is used as a surface in the x0x1z coordinate space.
各制御点の座標値の要素のうち出力座標値を、学習パラメータ値として扱うことができる。学習パラメータ値としての出力座標値を変更することで、入力ベクトルがとり得る値に対する超曲面処理部111の出力値が変更される。
また、B-Spline超曲面は、入力ベクトルを引数として出力座標値を出力する微分可能な関数で表すことができる。これにより、制御点の座標値に含まれる学習パラメータ値の学習に、誤差逆伝播法など関数の微分を用いる学習手法を適用し得る。
ただし、入出力実数空間における超曲面は、B-Spline超曲面に限定されず、学習パラメータ値に応じて超曲面処理部111における入力ベクトルと出力データ値との関係が変化し、かつ、微分可能な関数で示されるいろいろな超曲面とすることができる。
The output coordinate values of the coordinate elements of each control point can be treated as learning parameter values. By changing the output coordinate values as learning parameter values, the output values of the hypersurface processing unit 111 corresponding to the values that the input vector can take are changed.
Furthermore, a B-Spline hypersurface can be expressed as a differentiable function that takes an input vector as an argument and outputs an output coordinate value. This makes it possible to apply a learning method that uses function differentiation, such as backpropagation, to learning the learning parameter values included in the coordinate values of the control points.
However, the hypersurface in the input/output real number space is not limited to a B-Spline hypersurface, and the relationship between the input vector and the output data value in the hypersurface processing unit 111 changes depending on the learning parameter value, and various hypersurfaces expressed by differentiable functions can be used.
超曲面処理部111は、超曲面に含まれる点の座標値として特定した座標値の要素のうち、入力ベクトルによる要素以外の要素の値を出力する。上記の例の場合、超曲面処理部111は、特定した座標値(x0,x1,z)=(1,0,0)のうち、z座標値「0」を出力する。
なお、超曲面処理部111の出力値は実数値であり、二値データにおける二値に相当する値以外の値をとり得る。
The hypersurface processing unit 111 outputs the values of the elements of the coordinate values identified as the coordinate values of the points included in the hypersurface, other than the elements based on the input vector. In the above example, the hypersurface processing unit 111 outputs the z coordinate value "0" from the identified coordinate values ( x0 , x1 , z) = (1, 0, 0).
The output values of the hypersurface processing unit 111 are real values, and can take values other than those corresponding to the binary values in the binary data.
閾値演算部112は、学習モデル装置100における順伝播のときは、超曲面処理部111の出力値をステップ関数で二値化する。例えば、閾値演算部112が、超曲面処理部111の出力値と閾値とを比較して、比較結果に応じて二値データにおける二値の何れかを出力するようにしてもよい。この場合の閾値は固定値となっていてもよいし、学習パラメータ値として可変になっていてもよい。
学習モデル装置100における順伝播のときの例として、学習モデル装置100による二値データ演算実行時が挙げられる。
During forward propagation in the learning model device 100, the threshold calculation unit 112 binarizes the output value of the hypersurface processing unit 111 using a step function. For example, the threshold calculation unit 112 may compare the output value of the hypersurface processing unit 111 with a threshold and output one of the two values in the binary data depending on the comparison result. In this case, the threshold may be a fixed value or may be variable as a learning parameter value.
An example of forward propagation in the learning model device 100 is when the learning model device 100 executes binary data operations.
一方、閾値演算部112は、学習モデル装置100における逆伝播のときは、ステップ関数を微分可能な関数で近似する。ステップ関数を近似する微分可能な関数の例としてシグモイド関数、および、双曲線正接関数(Hyperbolic Tangent Function)を挙げることができるが、閾値演算部112が用いる関数はこれらに限定されない。 On the other hand, during backpropagation in the learning model device 100, the threshold calculation unit 112 approximates the step function with a differentiable function. Examples of differentiable functions that approximate the step function include a sigmoid function and a hyperbolic tangent function, but the functions used by the threshold calculation unit 112 are not limited to these.
学習モデル装置100における逆伝播のときの例として、誤差逆伝播法における学習パラメータの補正量算出時が挙げられる。閾値演算部112が、ステップ関数を微分可能な関数で近似することで、誤差逆伝播法など関数の微分を用いる学習手法を学習モデル装置100の学習に適用することができる。 An example of backpropagation in the learning model device 100 is when calculating the amount of correction for learning parameters in the backpropagation method. By having the threshold calculation unit 112 approximate the step function with a differentiable function, learning methods that use function differentiation, such as the backpropagation method, can be applied to learning in the learning model device 100.
学習時の少なくとも一部の期間の間、閾値演算部112が、データの二値化を行わず、超曲面型ノード110が実数値のデータを出力するようにしてもよい。例えば、学習開始時から所定の条件が成立するまでの学習の初期の段階では、閾値演算部112がデータの二値化を行わず、所定の条件が成立した初期段階終了後は、閾値演算部112がデータの二値化を行うようにしてもよい。
これにより、学習が比較的速く進むことが期待され、また、学習結果が局所解に陥る可能性が比較的低いことが期待される。
For at least a part of the learning period, the threshold calculation unit 112 may not binarize the data, and the hypersurface node 110 may output real-valued data. For example, in the early stage of learning from the start of learning until a predetermined condition is met, the threshold calculation unit 112 may not binarize the data, and after the early stage when the predetermined condition is met ends, the threshold calculation unit 112 may binarize the data.
This is expected to enable learning to proceed relatively quickly, and also to reduce the likelihood that the learning results will fall into a local optimum.
図3の例の場合、入出力実数空間における超曲面は、式(1)のように表される。 In the example shown in Figure 3, the hypersurface in the input/output real space is expressed as in equation (1).
ここでは、x0およびx1は、それぞれ、二値データ値による超曲面型ノード110への入力値を実数値として扱う場合の、その実数値をとる実数変数とする。zは、超曲面処理部111の出力値をとる実数変数とする。超曲面処理部111の出力値は、x0x1z座標空間における曲面に含まれる点のうち、超曲面型ノード110への入力値をx0座標値およびx1座標値として扱った場合の、それらの座標値を含むx0x1z座標値を有する点の、そのx0x1z座標値のうちのz座標値である。 Here, x0 and x1 are real variables that take on real values when the input values to the hypersurface node 110, which are binary data values, are treated as real values. z is a real variable that takes on the output value of the hypersurface processing unit 111. The output value of the hypersurface processing unit 111 is the z coordinate value of the x0 x1 z coordinate values of a point that has an x0 x1 z coordinate value that includes the input values to the hypersurface node 110 when these coordinate values are treated as x0 and x1 coordinate values, among the points included on the surface in the x0 x1 z coordinate space.
w0、w1、w2、w3は、それぞれ学習パラメータとして用いられる実数変数である。上記のように、これら学習パラメータの値が、B-Spline曲面の制御点におけるz座標値として用いられていてもよい。
fは、微分可能な関数である。
超曲面型ノード110と閾値演算部112とを組み合わせた超曲面型ノード110全体による演算は、式(2)のように表される。
w0 , w1 , w2 , and w3 are real variables used as learning parameters. As described above, the values of these learning parameters may be used as z coordinate values at the control points of the B-Spline surface.
f is a differentiable function.
The calculation performed by the entire hypersurface node 110, which is a combination of the hypersurface node 110 and the threshold calculation unit 112, is expressed as in equation (2).
ここでは、yは、二値データ値による超曲面型ノード110の出力値を実数値として扱う場合の、その実数値をとる実数変数とする。
学習モデル装置100における逆伝播のときは、fRは、微分可能な関数である。
超曲面型ノード110の出力値の正解値をy*で表し、超曲面型ノード110の出力値yとその正解値y*との誤差Eを式(3)のように定義する。
Here, y is a real variable that takes on a real value when the output value of the hypersurface node 110 based on binary data values is treated as a real value.
In the case of back propagation in the learning model device 100, f R is a differentiable function.
The correct value of the output value of the hypersurface node 110 is represented by y * , and the error E between the output value y of the hypersurface node 110 and the correct value y * is defined as in equation (3).
学習係数をαとして、学習パラメータw0の補正量Δw0は、Δw0=-α(∂E/∂w0)と算出することができる。式(3)および式(2)を用いてEの記載を書き換えると、学習パラメータw0の補正量Δw0は、式(4)を用いて算出することができる。 When the learning coefficient is α, the correction amount Δw 0 of the learning parameter w 0 can be calculated as Δw 0 = -α(∂E/∂w 0 ). By rewriting the description of E using equations (3) and (2), the correction amount Δw 0 of the learning parameter w 0 can be calculated using equation (4).
学習パラメータw1、w2、w3についても同様である。
このように、超曲面型ノード110によれば、関数の微分を用いる学習手法を用いることができる。
The same applies to the learning parameters w 1 , w 2 , and w 3 .
In this way, the hypersurface node 110 allows for the use of a learning method that uses the differentiation of a function.
学習制御部300は、学習モデル装置100の学習を制御する。例えば、学習制御部300は、データベースなど他の装置から学習データ(Training Data)を取得し、得られた学習データを用いて学習モデル装置100に学習を行わせる。学習によって、学習モデル装置100の学習パラメータ値が調整される。 The learning control unit 300 controls the learning of the learning model device 100. For example, the learning control unit 300 acquires training data from another device, such as a database, and causes the learning model device 100 to perform learning using the acquired training data. Through learning, the learning parameter values of the learning model device 100 are adjusted.
設定部400は、学習後の学習モデル装置100の超曲面型ノード110における入力値と出力値との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを演算装置200のテンプレートのテーブル型ノード210に設定する。
例えば、設定部400は、図3の例における学習モデル装置100について、入力ベクトルがとり得る全ての値(x0,x1)=(0,0)、(0,1)、(1,0)、(1,1)のそれぞれについて出力値yを観測し、図2の例におけるルックアップテーブルを生成する。そして、設定部400は、生成したルックアップテーブルを、図2の例のように演算装置200のテンプレートのテーブル型ノード210に設定する。
The setting unit 400 generates a lookup table showing the relationship between input values and output values in the hypersurface type node 110 of the learning model device 100 after learning, and sets the generated lookup table in the table type node 210 of the template of the calculation device 200.
For example, for the learning model device 100 in the example of Fig. 3, the setting unit 400 observes the output value y for each of all possible values ( x0 , x1 ) = (0,0), (0,1), (1,0), and (1,1) of the input vector, and generates the lookup table in the example of Fig. 2. Then, the setting unit 400 sets the generated lookup table in the table-type node 210 of the template of the arithmetic device 200 as in the example of Fig. 2.
学習制御部300と、設定部400と、学習モデル装置100とが、別々の装置として構成されていてもよい。この場合、これら各装置がパソコン(Personal Computer)などのコンピュータを用いて構成されていてもよい。あるいは、学習制御部300、設定部400、または、学習モデル装置100の何れか1つ以上が、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)を用いて構成されるなど、その装置専用のハードウェアを用いて構成されていてもよい。 The learning control unit 300, setting unit 400, and learning model device 100 may be configured as separate devices. In this case, each of these devices may be configured using a computer such as a personal computer. Alternatively, one or more of the learning control unit 300, setting unit 400, or learning model device 100 may be configured using hardware dedicated to that device, such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
あるいは、学習制御部300、設定部400、および、学習モデル装置100のうち何れか2つ以上が、一体的に構成されていてもよい。例えば、学習制御部300と、設定部400と、学習モデル装置100とが同一の装置に組み込まれていてもよい。この場合も、装置がコンピュータを用いて構成されていてもよいし、その装置専用のハードウェアを用いて構成されていてもよい。 Alternatively, any two or more of the learning control unit 300, setting unit 400, and learning model device 100 may be configured integrally. For example, the learning control unit 300, setting unit 400, and learning model device 100 may be incorporated into the same device. In this case, too, the device may be configured using a computer, or may be configured using hardware dedicated to that device.
演算装置200についても、コンピュータを用いて構成されていてもよいし、演算装置200専用のハードウェアを用いて構成されていてもよい。後述するように、演算装置200は、特にFPGAへの実装に適した構成となっていると考えられ、演算装置200が、FPGAを用いて構成されていてもよい。 The arithmetic device 200 may also be configured using a computer, or may be configured using hardware dedicated to the arithmetic device 200. As described below, the arithmetic device 200 is considered to have a configuration that is particularly suitable for implementation in an FPGA, and the arithmetic device 200 may also be configured using an FPGA.
また、装置の運用時に追加学習を行う場合など、学習モデル装置100を運用に用いるようにしてもよい。この場合、演算装置生産システム1が、設定部400と演算装置200とを備えていなくてもよい。 Furthermore, the learning model device 100 may be used for operation, such as when additional learning is performed during device operation. In this case, the computing device production system 1 does not need to be equipped with the setting unit 400 and the computing device 200.
B-Spline曲面を用いて超曲面処理部111による二値演算の学習について動作確認をおこなったところ、良好な結果が得られた。
図4は、B-Spline曲面を用いた超曲面処理部111の動作確認に用いた二値演算の第1の例を示す図である。
図4に示すような論理演算の「AND」(論理積)の入出力データを用いて動作確認を行い、図5に示すような曲面を得られた。
When the operation of the hypersurface processing unit 111 was checked using a B-Spline surface for learning binary operations, good results were obtained.
FIG. 4 is a diagram showing a first example of binary operations used to check the operation of the hypersurface processing unit 111 using a B-Spline surface.
Operation was confirmed using input and output data of the logical operation "AND" (logical product) as shown in FIG. 4, and a curved surface as shown in FIG. 5 was obtained.
図5は、動作確認で得られたB-Spline曲面の第1の例を示す図である。
図5に示す曲面では、x0=0、x1=0のときのzの値は、およそ0になっている。また、x0=0、x1=1のときのzの値は、およそ0になっている。また、x0=1、x1=0のときのzの値は、およそ0になっている。また、x0=1、x1=1のときのzの値は、およそ1になっている。
このように、図4に示す論理回路の「AND」の入出力と同様の入出力を示す曲面を得られた。
FIG. 5 is a diagram showing a first example of a B-Spline surface obtained in the operation check.
In the curved surface shown in Fig. 5, when x0 = 0 and x1 = 0, the value of z is approximately 0. Also, when x0 = 0 and x1 = 1, the value of z is approximately 0. Also, when x0 = 1 and x1 = 0, the value of z is approximately 0. Also, when x0 = 1 and x1 = 1, the value of z is approximately 1.
In this way, a curved surface showing inputs and outputs similar to the inputs and outputs of "AND" in the logic circuit shown in FIG. 4 was obtained.
図6は、B-Spline曲面を用いた超曲面処理部111の動作確認に用いた二値演算の第2の例を示す図である。
図6に示すような論理演算の「OR」(論理和)の入出力データを用いて動作確認を行い、図7に示すような曲面を得られた。
FIG. 6 is a diagram showing a second example of binary operations used to check the operation of the hypersurface processing unit 111 using a B-Spline surface.
Operation was confirmed using input and output data of the logical operation "OR" (logical sum) as shown in FIG. 6, and a curved surface as shown in FIG. 7 was obtained.
図7は、動作確認で得られたB-Spline曲面の第2の例を示す図である。
図7に示す曲面では、x0=0、x1=0のときのzの値は、およそ0になっている。また、x0=0、x1=1のときのzの値は、およそ1になっている。また、x0=1、x1=0のときのzの値は、およそ1になっている。また、x0=1、x1=1のときのzの値は、およそ1になっている。
このように、図6に示す論理回路の「OR」の入出力と同様の入出力を示す曲面を得られた。
FIG. 7 is a diagram showing a second example of a B-Spline surface obtained in the operation check.
In the curved surface shown in Fig. 7, when x0 = 0 and x1 = 0, the value of z is approximately 0. When x0 = 0 and x1 = 1, the value of z is approximately 1. When x0 = 1 and x1 = 0, the value of z is approximately 1. When x0 = 1 and x1 = 1, the value of z is approximately 1.
In this way, a curved surface showing inputs and outputs similar to the "OR" inputs and outputs of the logic circuit shown in FIG. 6 was obtained.
図8は、B-Spline曲面を用いた超曲面処理部111の動作確認に用いた二値演算の第3の例を示す図である。
図8に示すような論理演算の「EXOR」(排他的論理和)の入出力データを用いて動作確認を行い、図9に示すような曲面を得られた。
FIG. 8 is a diagram showing a third example of binary operations used to check the operation of the hypersurface processing unit 111 using a B-Spline surface.
Operation was confirmed using input and output data of the logical operation "EXOR" (exclusive OR) as shown in FIG. 8, and a curved surface as shown in FIG. 9 was obtained.
図9は、動作確認で得られたB-Spline曲面の第3の例を示す図である。
図9に示す曲面では、x0=0、x1=0のときのzの値は、およそ0になっている。また、x0=0、x1=1のときのzの値は、およそ1になっている。また、x0=1、x1=0のときのzの値は、およそ1になっている。また、x0=1、x1=1のときのzの値は、およそ0になっている。
このように、図8に示す論理回路の「EXOR」の入出力と同様の入出力を示す曲面を得られた。
FIG. 9 is a diagram showing a third example of a B-Spline surface obtained in the operation check.
In the curved surface shown in Fig. 9, when x0 = 0 and x1 = 0, the value of z is approximately 0. When x0 = 0 and x1 = 1, the value of z is approximately 1. When x0 = 1 and x1 = 0, the value of z is approximately 1. When x0 = 1 and x1 = 1, the value of z is approximately 0.
In this way, a curved surface showing inputs and outputs similar to the inputs and outputs of "EXOR" in the logic circuit shown in FIG. 8 was obtained.
図10は、B-Spline曲面を用いた超曲面処理部111の動作確認に用いた二値演算の第4の例を示す図である。
図10に示すような論理演算の「NOT x0」(入力信号x0の否定)の入出力データを用いて動作確認を行い、図11に示すような曲面を得られた。
FIG. 10 is a diagram showing a fourth example of binary operations used to check the operation of the hypersurface processing unit 111 using a B-Spline surface.
Operation was confirmed using input and output data of the logical operation "NOT x 0 " (negation of input signal x 0 ) as shown in FIG. 10, and a curved surface as shown in FIG. 11 was obtained.
図11は、動作確認で得られたB-Spline曲面の第4の例を示す図である。
図11に示す曲面では、x0=0、x1=0のときのzの値は、およそ1になっている。また、x0=0、x1=1のときのzの値は、およそ1になっている。また、x0=1、x1=0のときのzの値は、およそ0になっている。また、x0=1、x1=1のときのzの値は、およそ0になっている。
このように、図10に示す論理回路の「NOT x0」の入出力と同様の入出力を示す曲面を得られた。
FIG. 11 is a diagram showing a fourth example of a B-Spline surface obtained in the operation check.
In the curved surface shown in Fig. 11, when x0 = 0 and x1 = 0, the value of z is approximately 1. When x0 = 0 and x1 = 1, the value of z is approximately 1. When x0 = 1 and x1 = 0, the value of z is approximately 0. When x0 = 1 and x1 = 1, the value of z is approximately 0.
In this way, a curved surface showing inputs and outputs similar to the inputs and outputs of "NOT x 0 " in the logic circuit shown in FIG. 10 was obtained.
図12は、演算装置生産システム1が演算装置200を生成する処理の手順の例を示すフローチャートである。
図12の処理で、学習モデル装置100は、学習制御部300の制御に従って学習を行い、学習パラメータ値を調整する(ステップS11)。学習モデル装置100は、学習制御部300の制御に従って、超曲面型ノード110を含む学習モデル装置100の学習を行う。特に、複数の超曲面型ノード110がネットワークを構成している場合、ニューラルネットワークの学習の場合ように、ネットワーク全体の学習を行う。
上述したように、学習パラメータが、B-Spline超曲面の制御点の座標の要素となっていてもよい。
FIG. 12 is a flowchart showing an example of a processing procedure by which the computing device production system 1 generates the computing device 200.
12, the learning model device 100 performs learning and adjusts learning parameter values under the control of the learning control unit 300 (step S11). The learning model device 100 performs learning of the learning model device 100 including the hypersurface type node 110 under the control of the learning control unit 300. In particular, when a network is made up of multiple hypersurface type nodes 110, learning of the entire network is performed, as in the case of neural network learning.
As described above, the learning parameters may be elements of the coordinates of the control points of the B-Spline hypersurface.
次に、設定部400は、学習完了後の超曲面型ノード110における入力値と出力値との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを、演算装置200のテンプレートのテーブル型ノード210に設定する(ステップS12)。
学習モデル装置100が複数の超曲面型ノード110を備える場合、超曲面型ノード110とテーブル型ノード210とが一対一に対応付けられるように、演算装置200を構成しておく。具体的には、演算装置200が備えるテーブル型ノード210の個数を、学習モデル装置100が備える超曲面型ノード110の個数と同数にし、テーブル型ノード210が、超曲面型ノード110が構成するネットワークと同じ構造のネットワークを構成するようにしておく。設定部400は、超曲面型ノード110毎に、その超曲面型ノード110における入力値と出力値との関係を示すルックアップテーブルを生成し、その超曲面型ノード110と一対一に対応付けられるテーブル型ノード210に、生成したルックアップテーブルを設定する。
ステップS12の後、演算装置生産システム1は、図12の処理を終了する。
Next, the setting unit 400 generates a lookup table showing the relationship between input values and output values in the hypersurface type node 110 after learning is complete, and sets the generated lookup table in the table type node 210 of the template of the calculation device 200 (step S12).
When the learning model device 100 includes a plurality of hypersurface type nodes 110, the arithmetic device 200 is configured so that the hypersurface type nodes 110 and the table type nodes 210 are in one-to-one correspondence with each other. Specifically, the number of table type nodes 210 included in the arithmetic device 200 is set to the same number as the number of hypersurface type nodes 110 included in the learning model device 100, and the table type nodes 210 are configured to form a network having the same structure as the network formed by the hypersurface type nodes 110. The setting unit 400 generates, for each hypersurface type node 110, a lookup table indicating the relationship between input values and output values in that hypersurface type node 110, and sets the generated lookup table in the table type node 210 that is in one-to-one correspondence with that hypersurface type node 110.
After step S12, the computing device production system 1 ends the process of FIG.
超曲面型ノード110およびテーブル型ノード210が、それぞれ二値ベクトルを出力するようにしてもよい。すなわち、超曲面型ノード110およびテーブル型ノード210が、それぞれ複数の二値データを出力するようにしてもよい。 The hypersurface node 110 and the table node 210 may each output a binary vector. In other words, the hypersurface node 110 and the table node 210 may each output multiple binary data.
図13は、テーブル型ノード210が二値ベクトルを出力する場合の、データの入出力の例を示す図である。
図13の例で、テーブル型ノード210bは、N次元(Nは、正の整数)の二値ベクトル(x0,x1,・・・,xN-1)の入力を受け、M次元(Mは、正の整数)の二値ベクトル(y0,y1,・・・,yM-1)を出力する。テーブル型ノード210bは、テーブル型ノード210の例に該当する。
FIG. 13 is a diagram showing an example of data input/output when the table type node 210 outputs a binary vector.
13, the table type node 210b receives an input of an N-dimensional (N is a positive integer) binary vector (x 0 , x 1 , ..., x N-1 ) and outputs an M-dimensional (M is a positive integer) binary vector (y 0 , y 1 , ..., y M-1 ). The table type node 210b is an example of the table type node 210.
この場合、テーブル型ノード210bは、入力ベクトルである二値ベクトル(x0,x1,・・・,xN-1)がとり得る値毎に、出力ベクトルである二値ベクトル(y0,y1,・・・,yM-1)の値を示すルックアップテーブルを備える。入力ベクトルである二値ベクトル(x0,x1,・・・,xN-1)がとり得る値は、2N通りであり、ルックアップテーブルは、2N行分のデータを示す。 In this case, the table-type node 210b has a lookup table that indicates the value of the binary vector (y 0 , y 1 , ..., y M-1 ), which is the output vector, for each possible value of the binary vector (x 0 , x 1 , ..., x N- 1 ), which is the input vector. The binary vector (x 0 , x 1 , ..., x N-1 ), which is the input vector, can take on 2 N different values, and the lookup table indicates 2 N rows of data.
図14は、超曲面型ノード110が二値ベクトルを出力する場合の、データの入出力の例を示す図である。
図14の例で、超曲面型ノード110bは、テーブル型ノード210bの場合と同じ二値ベクトル(x0,x1,・・・,xN-1)の入力を受け、テーブル型ノード210bの場合と同じ二値ベクトル(y0,y1,・・・,yM-1)を出力する。
この場合の超曲面は、例えば、式(5)のように表される。
FIG. 14 is a diagram showing an example of data input/output when the hypersurface node 110 outputs a binary vector.
In the example of Figure 14, the hypersurface type node 110b receives the same binary vector (x 0 , x 1 , ..., x N-1 ) as the table type node 210b, and outputs the same binary vector (y 0 , y 1 , ..., y M-1 ) as the table type node 210b.
In this case, the hypersurface is expressed as, for example, equation (5).
Lは、超曲面としてB-Spline超曲面を用いる場合の学習パラメータの個数を表す正の整数である。入力ベクトルがとり得る値毎にB-Spline超曲面の制御点が設けられ、1つの制御点につき1つの学習パラメータが設けられる。このため、Lの値は式(6)のように表される。 L is a positive integer representing the number of learning parameters when a B-Spline hypersurface is used as the hypersurface. A control point of the B-Spline hypersurface is provided for each possible value of the input vector, and one learning parameter is provided for each control point. Therefore, the value of L is expressed as in equation (6).
この場合も、微分可能な関数fを得ることができ、関数の微分を用いる学習手法を適用し得る。例えば、式(5)の関数fが、N個の入力変数x0、x1、・・・、xN-1、および、1つの出力変数yi(ここでは、iは0≦i≦M-1の整数)の各変数の座標軸を持つN+1次元座標空間におけるM個の超曲面で表されていてもよい。 In this case, too, a differentiable function f can be obtained, and a learning method using the differentiation of the function can be applied. For example, the function f in equation (5) may be expressed by M hypersurfaces in an N+1-dimensional coordinate space having coordinate axes for N input variables x 0 , x 1 , ..., x N-1 and one output variable y i (where i is an integer such that 0≦i≦M-1).
あるいは、テーブル型ノード210が出力する二値データの個数分だけ、学習モデル装置100に1出力の超曲面型ノード110が設けられていてもよい。図13に例示されるN入力M出力のテーブル型ノード210bに対応付けて、学習モデル装置100に、N入力1出力の超曲面型ノード110がM個設けられていてもよい。学習完了後に設定部400が、これらM個の超曲面型ノード110における入力値と出力値との関係を、図13に例示されるようなN入力M出力のルックアップテーブルに纏め、得られたルックアップテーブルをテーブル型ノード210bに設定するようにしてもよい。 Alternatively, the learning model device 100 may be provided with one-output hypersurface nodes 110, the number of which is equal to the number of binary data output by the table-type node 210. The learning model device 100 may be provided with M N-input, one-output hypersurface nodes 110, corresponding to the N-input, M-output table-type node 210b illustrated in FIG. 13. After learning is complete, the setting unit 400 may compile the relationships between input and output values in these M hypersurface-type nodes 110 into an N-input, M-output lookup table, such as the one illustrated in FIG. 13, and set the resulting lookup table in the table-type node 210b.
学習モデル装置100における超曲面型ノード110の構成について、幾つかのバリエーションが考えられる。
図15は、1つの学習モデル装置100が1つの超曲面型ノード110を備える場合の、学習モデル装置100における超曲面型ノード110の構成の例を示す図である。図15に示す構成で、学習モデル装置100cは、1つの超曲面型ノード110cを備える。
学習モデル装置100cは、学習モデル装置100の例に該当する。超曲面型ノード110cは、超曲面型ノード110の例に該当する。
There are several possible variations in the configuration of the hypersurface node 110 in the learning model device 100.
Fig. 15 is a diagram showing an example of the configuration of the hypersurface type node 110 in a learning model device 100 when one learning model device 100 includes one hypersurface type node 110. In the configuration shown in Fig. 15, a learning model device 100c includes one hypersurface type node 110c.
The learning model device 100c is an example of the learning model device 100. The hypersurface type node 110c is an example of the hypersurface type node 110.
学習モデル装置100cは、4つの二値データx0、x1、x2およびx3の入力を受けて、3つの二値データy0、y1およびy2を出力する。これに応じて、超曲面型ノード110cは、4つの二値データx0、x1、x2およびx3の入力を受けて、3つの二値データy0、y1およびy2を出力する。 The learning model device 100c receives four inputs of binary data x0 , x1 , x2 , and x3 , and outputs three inputs of binary data y0 , y1 , and y2 . In response to this, the hypersurface node 110c receives four inputs of binary data x0 , x1 , x2 , and x3 , and outputs three inputs of binary data y0 , y1 , and y2 .
このように、学習モデル装置100が1つの超曲面型ノード110を備えるようにしてもよい。そして、超曲面型ノード110が、学習モデル装置100への入力データの入力を受けて、学習モデル装置100の出力データを出力するようにしてもよい。
この学習モデル装置100に対応する演算装置200も、この学習モデル装置100と同様の構成とすることができる。具体的には、演算装置200が、1つのテーブル型ノード210を備えるようにしてもよい。そして、テーブル型ノード210が、演算装置200への入力データの入力を受けて、演算装置200の出力データを出力するようにしてもよい。
In this way, the learning model device 100 may be configured to include one hypersurface node 110. The hypersurface node 110 may then receive input data to the learning model device 100 and output output data from the learning model device 100.
The arithmetic device 200 corresponding to this learning model device 100 can also have the same configuration as this learning model device 100. Specifically, the arithmetic device 200 may be provided with one table-type node 210. The table-type node 210 may then receive input data to the arithmetic device 200 and output output data from the arithmetic device 200.
あるいは、上述したように、学習モデル装置100が出力データの個数の超曲面型ノード110を備えるようにしてもよい。そして、学習完了後に、設定部400が、複数の超曲面型ノード110における入力値と出力値との関係を、1つのルックアップテーブルに纏め、得られたルックアップテーブルを1つのテーブル型ノード210に設定するようにしてもよい。 Alternatively, as described above, the learning model device 100 may be provided with hypersurface nodes 110 equal to the number of output data. Then, after learning is complete, the setting unit 400 may compile the relationships between input values and output values in multiple hypersurface nodes 110 into a single lookup table, and set the obtained lookup table in a single table-type node 210.
例えば、図15の例で、学習モデル装置100が、1つの超曲面型ノード110cに変えて、3つの超曲面型ノード110を備えるようにしてもよい。この場合、3つの超曲面型ノード110のそれぞれに、4つの二値データx0、x1、x2およびx3を入力する。出力データについては、超曲面型ノード110毎に異なる二値データを1つずつ出力するようにする。具体的には、1つ目の超曲面型ノード110が二値データy0を出力し、2つ目の超曲面型ノード110が二値データy1を出力し、3つ目の超曲面型ノード110が二値データy3を出力するようにする。
学習完了後に、設定部400が、3つの超曲面型ノード110における入力値と出力値との関係を、1つのルックアップテーブルに纏め、得られたルックアップテーブルを1つのテーブル型ノード210に設定するようにしてもよい。
For example, in the example of Figure 15, the learning model device 100 may be equipped with three hypersurface type nodes 110 instead of one hypersurface type node 110c. In this case, four binary data x0 , x1 , x2 , and x3 are input to each of the three hypersurface type nodes 110. As for output data, each hypersurface type node 110 outputs a different binary data. Specifically, the first hypersurface type node 110 outputs binary data y0 , the second hypersurface type node 110 outputs binary data y1, and the third hypersurface type node 110 outputs binary data y3 .
After the learning is completed, the setting unit 400 may compile the relationships between the input values and output values of the three hypersurface type nodes 110 into one lookup table, and set the obtained lookup table to one table type node 210.
図16は、1つの学習モデル装置100が複数の超曲面型ノード110を備える場合の、学習モデル装置100における超曲面型ノード110の構成の第1の例を示す図である。図16に示す構成で、学習モデル装置100dは、超曲面型ノード110d-1、超曲面型ノード110d-2、超曲面型ノード110d-3、および、超曲面型ノード110d-4を備える。
学習モデル装置100dは、学習モデル装置100の例に該当する。超曲面型ノード110d-1、超曲面型ノード110d-2、超曲面型ノード110d-3、および、超曲面型ノード110d-4は、それぞれ、超曲面型ノード110の例に該当する。
Fig. 16 is a diagram showing a first example of the configuration of the hypersurface type nodes 110 in a learning model device 100 when one learning model device 100 is equipped with a plurality of hypersurface type nodes 110. In the configuration shown in Fig. 16, a learning model device 100d is equipped with a hypersurface type node 110d-1, a hypersurface type node 110d-2, a hypersurface type node 110d-3, and a hypersurface type node 110d-4.
The learning model device 100d is an example of the learning model device 100. The hypersurface type node 110d-1, the hypersurface type node 110d-2, the hypersurface type node 110d-3, and the hypersurface type node 110d-4 are examples of the hypersurface type node 110, respectively.
図16は、超曲面型ノード110が構成するネットワークの構造が固定の場合の例を示している。例えば、学習モデル装置100の設計者など人が、ネットワークの構造を予め決定し、学習モデル装置100に実装しておく。
このように、1つの学習モデル装置100が複数の超曲面型ノード110を備え、これら複数の超曲面型ノード110がネットワークを構成していてもよい。この場合のネットワークの構造は、ニューラルネットワークの場合と同様、いろいろな構造とすることができる。
16 shows an example in which the structure of the network formed by the hypersurface type nodes 110 is fixed. For example, a person such as a designer of the learning model device 100 determines the structure of the network in advance and implements it in the learning model device 100.
In this way, one learning model device 100 may be equipped with a plurality of hypersurface type nodes 110, and these plurality of hypersurface type nodes 110 may constitute a network. In this case, the structure of the network may be various, as in the case of a neural network.
この学習モデル装置100に対応する演算装置200も、この学習モデル装置100と同様の構成とすることができる。具体的には、演算装置200が、学習モデル装置100が備える超曲面型ノード110の個数と同じ個数のテーブル型ノード210を備えるようにする。そして、テーブル型ノード210が、超曲面型ノード110が構成するネットワークと同じ構造のネットワークを構成するようにする。 The calculation device 200 corresponding to this learning model device 100 can also be configured in the same way as this learning model device 100. Specifically, the calculation device 200 is configured to have the same number of table-type nodes 210 as the number of hypersurface-type nodes 110 that the learning model device 100 has. The table-type nodes 210 are then configured to form a network with the same structure as the network formed by the hypersurface-type nodes 110.
図17は、1つの学習モデル装置100が複数の超曲面型ノード110を備える場合の、学習モデル装置100における超曲面型ノード110の構成の第2の例を示す図である。図17に示す構成で、学習モデル装置100eは、超曲面型ノード110e-1から超曲面型ノード110e-12を備える。
学習モデル装置100eは、学習モデル装置100の例に該当する。超曲面型ノード110e-1から超曲面型ノード110e-12の各々は、超曲面型ノード110の例に該当する。
17 is a diagram showing a second example of the configuration of the hypersurface type nodes 110 in the learning model device 100 when one learning model device 100 is equipped with multiple hypersurface type nodes 110. In the configuration shown in FIG. 17, the learning model device 100e is equipped with hypersurface type nodes 110e-1 to 110e-12.
The learning model device 100e corresponds to an example of the learning model device 100. Each of the hypersurface type node 110e-1 to the hypersurface type node 110e-12 corresponds to an example of the hypersurface type node 110.
図17は、超曲面型ノード110が構成するネットワークの構造が学習時に可変である場合の例を示している。この場合、ネットワークの構造を機械学習で決定するようにしてもよい。ネットワークの構造の学習手法について、例えば、遺伝的プログラミングの手法を用いるようにしてもよい。 Figure 17 shows an example where the structure of the network formed by the hypersurface type nodes 110 is variable during learning. In this case, the network structure may be determined by machine learning. A genetic programming technique, for example, may be used as a method for learning the network structure.
さらに例えば、学習制御部300が、遺伝的プログラミングの一種であるCartesian genetic programming (CGP)の手法を用いてネットワーク構造を探索する場合について考える。この場合、学習制御部300は、超曲面型ノード110が構成するネットワークの構造を、あるネットワーク構造に仮設定する。仮設定されるネットワーク構造は、ネットワーク構造の候補といえる。 Furthermore, consider the case where the learning control unit 300 searches for a network structure using Cartesian genetic programming (CGP), a type of genetic programming. In this case, the learning control unit 300 provisionally sets the structure of the network made up of the hypersurface type nodes 110 to a certain network structure. The provisionally set network structure can be considered a candidate network structure.
そして、学習制御部300は、仮設定したネットワーク構造の評価値を計算する。具体的には、学習制御部300は、仮設定による超曲面型ノード110のネットワークの学習を行い、学習結果の評価スコア(例えば、認識率)を算出して、仮設定したネットワーク構造の評価値とする。 Then, the learning control unit 300 calculates an evaluation value for the provisionally set network structure. Specifically, the learning control unit 300 learns the network of the provisionally set hypersurface node 110, calculates an evaluation score (e.g., recognition rate) for the learning results, and sets this as the evaluation value for the provisionally set network structure.
学習制御部300は、仮設定するネットワーク構造を変化させ、そのネットワーク構造の評価値を算出することを、ネットワーク構造の学習の終了条件として予め定められている条件が成立するまで繰り返す。
ネットワーク構造を変化させる際、学習制御部300は、ネットワーク構造を変化させる度合いを、評価値に基づいて決定することができる。例えば、評価値が所定の評価閾値以上によい評価を示す場合、学習制御部300が、ネットワーク構造における1つのエッジ(Edge)のみ変化させるなど、ネットワーク構造の変化の度合いを比較的小さくするようにしてもよい。一方、例えば、評価値が所定の評価閾値未満の低い評価を示す場合、学習制御部300が、ネットワーク構造における10個のエッジを変化させるなど、ネットワーク構造の変化の度合いを比較的大きくするようにしてもよい。
ただし、超曲面型ノード110が構成するネットワークの構造の学習手法は、特定の方法に限定されない。
The learning control unit 300 repeatedly changes the provisionally set network structure and calculates the evaluation value of the network structure until a predetermined condition is met as a condition for terminating the learning of the network structure.
When changing the network structure, the learning control unit 300 can determine the degree of change to the network structure based on the evaluation value. For example, if the evaluation value indicates a good evaluation equal to or greater than a predetermined evaluation threshold, the learning control unit 300 may change the network structure to a relatively small degree, such as by changing only one edge in the network structure. On the other hand, if the evaluation value indicates a low evaluation equal to or less than the predetermined evaluation threshold, the learning control unit 300 may change the network structure to a relatively large degree, such as by changing ten edges in the network structure.
However, the method for learning the structure of the network formed by the hypersurface type nodes 110 is not limited to a specific method.
畳み込みニューラルネットワークにB-Spline超曲面を用いた学習の手法を適用して文字認識の実験を行ったところ、良好な結果が得られた。
図18は、実験に用いた畳み込みニューラルネットワークの構成を示す図である。図18に示すように、実験では、第1畳み込み層と、プーリング層と、第2畳み込み層とを備え、ソフトマックス関数を用いてクラスを選択する畳み込みニューラルネットワークを用いた。
We conducted character recognition experiments by applying a learning method using B-Spline hypersurfaces to a convolutional neural network, and obtained good results.
Fig. 18 shows the configuration of the convolutional neural network used in the experiment. As shown in Fig. 18, the experiment used a convolutional neural network that includes a first convolutional layer, a pooling layer, and a second convolutional layer and selects classes using a softmax function.
学習データとして、MNIST(Modified National Institute of Standards and Technology)で示される手書きの数字の画像を、8ピクセル×8ピクセルに縮小し二値化した画像のデータセットを用いた。
第1畳み込み層では、8ピクセル×8ピクセルの入力画像データに対し、3ピクセル×3ピクセルの部分画像毎に畳み込み演算を行い、パディングは無し(Zero Padding)として、6ピクセル×6ピクセルの画像データを生成する。
第1畳み込み層は、1つの画像データの入力を受けて10個の画像データを出力する。これら10個の画像データは、「0」から「9」の10個のクラスそれぞれについての特徴量として扱われる。
このように、第1畳み込み層は、3ピクセル×3ピクセルの画像パッチを用いた畳み込みによる9次元のデータの入力を受けて、10次元のデータ(10チャンネルのデータ)を出力する。
As training data, a dataset of images of handwritten numbers specified by the Modified National Institute of Standards and Technology (MNIST) was used, which were reduced to 8 pixels x 8 pixels and binarized.
In the first convolutional layer, a convolution operation is performed on each 3 pixel x 3 pixel partial image of 8 pixel x 8 pixel input image data, and 6 pixel x 6 pixel image data is generated with no padding (zero padding).
The first convolutional layer receives one image data input and outputs ten image data pieces, which are treated as features for each of the ten classes from "0" to "9."
In this way, the first convolutional layer receives 9-dimensional data input by convolution using a 3 pixel x 3 pixel image patch, and outputs 10-dimensional data (10-channel data).
なお、実験では、従来側の畳み込みニューラルネットワークを用いる場合と、B-Spline超曲面を用いて、かつ、ノードの出力データを二値化せずに実数データとする場合と、B-Spline超曲面を用いて、かつ、ノードの出力データを二値化する場合とを比較した。
従来側の畳み込みニューラルネットワークでは、活性化関数としてReLU(Rectified Linear Unit、正規化線形関数)を用いて、ノードの出力データは実数データとした。
In the experiment, we compared the results of using a conventional convolutional neural network, using a B-Spline hypersurface and converting the node output data into real data without binarizing it, and using a B-Spline hypersurface and binarizing the node output data.
In the conventional convolutional neural network, ReLU (Rectified Linear Unit) was used as the activation function, and the output data of the nodes was real number data.
一方、B-Spline超曲面を用いる場合は、B-Spline超曲面(B-Spline関数)が、活性化関数の意味合いを含むといえる。一般的なニューラルネットワークではノード毎に、線形処理と活性化関数による処理とが行われるのに対し、超曲面型ノード110によれば、これら2つの処理の組み合わせに相当する処理を、B-Spline超曲面を用いた処理で行うことができる。 On the other hand, when a B-Spline hypersurface is used, the B-Spline hypersurface (B-Spline function) can be said to have the semantics of an activation function. In a typical neural network, linear processing and processing using an activation function are performed for each node, but with the hypersurface node 110, processing equivalent to a combination of these two processes can be performed using a B-Spline hypersurface.
出力データを二値化する場合については、超曲面型ノード110における閾値演算部112の場合と同様、B-Spline超曲面を用いて得られる値を二値化した。
なお、B-Spline超曲面を用いて、かつ、ノードの出力データを二値化する場合の畳み込みニューラルネットワークで、二値化されたデータを実数データの形式で出力している。このデータを1ビットデータで出力するようにしても、同等の認識率を得られると考えられる。
When binarizing the output data, the values obtained using a B-Spline hypersurface are binarized in the same manner as in the case of the threshold calculation unit 112 in the hypersurface type node 110 .
In addition, in the convolutional neural network where the B-Spline hypersurface is used and the output data of the nodes is binarized, the binarized data is output in the form of real number data. It is believed that the same recognition rate can be obtained even if this data is output as 1-bit data.
プーリング層では、最大プーリング(Max Pooling)にて、6ピクセル×6ピクセルの画像データを3ピクセル×3ピクセルの画像データに縮小する。
プーリング層は、10個の画像データの入力を受けて10個の画像データを出力する。
In the pooling layer, image data of 6 pixels x 6 pixels is reduced to image data of 3 pixels x 3 pixels by max pooling.
The pooling layer receives 10 pieces of image data as input and outputs 10 pieces of image data.
第2畳み込み層では、3ピクセル×3ピクセルの画像データに対して、3ピクセル×3ピクセル単位でDepthwise畳み込みを行い、パディングは無しとして、1ピクセル×1ピクセルの画像データを出力する。
第2畳み込み層での、従来側の畳み込みニューラルネットワークに用いる活性化関数、および、B-Spline超曲面を用いるノードにおける次元数は、第1畳み込み層の場合と同様とした。
In the second convolutional layer, depthwise convolution is performed on 3 pixel x 3 pixel image data in 3 pixel x 3 pixel units, and 1 pixel x 1 pixel image data is output without padding.
In the second convolutional layer, the activation function used in the conventional convolutional neural network and the number of dimensions in the node using the B-Spline hypersurface were the same as in the first convolutional layer.
第2畳み込み層は、10個の画像データの入力を受けて10個の画像データを出力する。したがって、第2畳み込み層は、「0」から「9」の10個のクラスそれぞれについて、スカラのスコアを出力する。
ソフトマックス関数が、「0」から「9」の10個のクラスのうちスコアが最大のクラスを選択することで、クラス推定が行われる。
The second convolutional layer receives 10 pieces of image data as input and outputs 10 pieces of image data. Therefore, the second convolutional layer outputs a scalar score for each of the 10 classes from "0" to "9."
The softmax function selects the class with the largest score from the 10 classes from "0" to "9," thereby performing class estimation.
図19は、実験結果として得られた認識率を示す図である。
図19に示す実験結果で、B-Spline超曲面を用いて、かつ、ノードの出力データを二値化せずに実数データとする場合、および、B-Spline超曲面を用いて、かつ、ノードの出力データを二値化する場合の何れも、従来側の畳み込みニューラルネットワークを用いる場合よりも高い認識率が得られた。
FIG. 19 is a diagram showing the recognition rate obtained as a result of the experiment.
In the experimental results shown in FIG. 19, a higher recognition rate was obtained than when using a conventional convolutional neural network in both cases: when a B-Spline hypersurface was used and the node output data was converted to real data without being binarized, and when a B-Spline hypersurface was used and the node output data was binarized.
設定部400が、演算装置200をFPGAに実装するようにしてもよい。
図20は、FPGAの構成の例を示す図である。図20に示す構成で、FPGAは、コンフィギャラブルロジックブロック(Configurable Logic Block;CLB)と、スイッチングブロック(Switching Block)とを備えるコンフィギャラブルロジックブロックは、ベーシックロジックエレメント(Basic Logic Element)を備える。ベーシックロジックエレメントは、LUT(Lookup Table)と、フリップフロップ(Flip Flop;FF)と、マルチプレクサ(Multiplexer;MUX)とを備える。
The setting unit 400 may implement the arithmetic device 200 in an FPGA.
Fig. 20 is a diagram showing an example of the configuration of an FPGA. In the configuration shown in Fig. 20, the FPGA includes a configurable logic block (CLB) and a switching block. The configurable logic block includes a basic logic element (BLE). The BLE includes a lookup table (LUT), a flip-flop (FF), and a multiplexer (MUX).
ベーシックロジックエレメントでは、ルックアップテーブルが、入力データ(I/P's)の入力を受けて入力データの値に応じた値のデータをフリップフロップおよびマルチプレクサに出力する。
フリップフロップは、クロック信号(CLK)が入力されるタイミングで、ルックアップテーブルからのデータ値を記憶する。リセット信号(RST)が入力された場合、フリップフロップは、記憶しているデータをリセットする。フリップフロップは、記憶しているデータをマルチプレクサに出力する。
In a basic logic element, a lookup table receives input data (I/P's) and outputs data of a value corresponding to the value of the input data to a flip-flop and a multiplexer.
The flip-flop stores the data value from the look-up table when a clock signal (CLK) is input. When a reset signal (RST) is input, the flip-flop resets the stored data. The flip-flop outputs the stored data to the multiplexer.
マルチプレクサは、ルックアップテーブルからのデータ、および、フリップフロップからのデータの入力を受けて、1つの出力データ(O/P)を出力する。例えば、マルチプレクサは、制御信号の入力を受けて、ルックアップテーブルからのデータ、または、フリップフロップからのデータの何れか一方を出力する。
スイッチングブロックは、コンフィギャラブルロジックブロック間のデータ線の接続の有無(On/Off)を切り替える。
The multiplexer receives data from the lookup table and data from the flip-flop as inputs and outputs one output data (O/P). For example, the multiplexer receives a control signal and outputs either data from the lookup table or data from the flip-flop.
The switching block switches the connection/non-connection (On/Off) of the data lines between the configurable logic blocks.
演算装置200をFPGAに実装する場合、設定部400が、超曲面型ノード110における入力値と出力値との関係に基づいて生成したルックアップテーブルを、ベーシックロジックエレメントのルックアップテーブルに設定するようにしてもよい。この場合、マルチプレクサがルックアップテーブルからのデータを出力するようにすることで、ベーシックロジックエレメントに、超曲面型ノード110が行う演算と同様の演算を行わせることができる。 When the arithmetic device 200 is implemented in an FPGA, the setting unit 400 may set a lookup table generated based on the relationship between input and output values in the hypersurface node 110 as the lookup table of the basic logic element. In this case, by having the multiplexer output data from the lookup table, the basic logic element can be made to perform the same calculation as the calculation performed by the hypersurface node 110.
図17の例のように、学習モデル装置100が、超曲面型ノード110が構成するネットワークの構造を学習によって決定する場合、設定部400が、スイッチングブロックの設定を調整することで、超曲面型ノード110が構成するネットワークと同様の構造のネットワークをFPGAに実装するようにしてもよい。 As in the example of Figure 17, when the learning model device 100 determines the structure of the network formed by the hypersurface node 110 through learning, the setting unit 400 may adjust the settings of the switching block so that a network with a structure similar to the network formed by the hypersurface node 110 is implemented in the FPGA.
複数のテーブル型ノード210に共用でルックアップテーブルが設けられていてもよい。
図21は、複数のテーブル型ノード210に共用でルックアップテーブルが設けられる場合の、演算装置200の構成の例を示す図である。図21に示す構成で、演算装置200fは、テーブル型ノード210f-1からテーブル型ノード210f-4と、テーブル記憶部220f-1およびテーブル記憶部220f-2とを備える。
A lookup table may be provided in common for multiple table type nodes 210 .
Fig. 21 is a diagram showing an example of the configuration of a computing device 200 when a lookup table is provided to be shared by multiple table type nodes 210. In the configuration shown in Fig. 21, a computing device 200f includes table type nodes 210f-1 to 210f-4, table storage units 220f-1 and 220f-2.
テーブル型ノード210f-1からテーブル型ノード210f-4を総称してテーブル型ノード210fとも表記する。テーブル記憶部220f-1およびテーブル記憶部220f-2を総称してテーブル記憶部220fとも表記する。
演算装置200fは、演算装置200の例に該当する。テーブル型ノード210fは、テーブル型ノード210の変形例に該当する。テーブル型ノード210fとテーブル記憶部220fとの組み合わせは、テーブル型ノード210の例に該当する。
テーブル記憶部220fは、ルックアップテーブルを記憶する。
The table type nodes 210f-1 to 210f-4 are also collectively referred to as table type nodes 210f. The table storage units 220f-1 and 220f-2 are also collectively referred to as table storage units 220f.
The arithmetic device 200f corresponds to an example of the arithmetic device 200. The table type node 210f corresponds to a modified example of the table type node 210. The combination of the table type node 210f and the table storage unit 220f corresponds to an example of the table type node 210.
The table storage unit 220f stores a lookup table.
テーブル型ノード210fの各々は、テーブル型ノード210f自らはルックアップテーブルを備えず、テーブル記憶部220が記憶するルックアップテーブルを参照する。それ以外の点では、テーブル型ノード210fはテーブル型ノード210と同様である。
テーブル記憶部220f-1が記憶するルックアップテーブルは、テーブル型ノード210f-1とテーブル型ノード210f-2とが共用で参照するルックアップテーブルとなっている。テーブル記憶部220f-2が記憶するルックアップテーブルは、テーブル型ノード210f-3とテーブル型ノード210f-4とが共用で参照するルックアップテーブルとなっている。
Each of the table type nodes 210f does not have its own lookup table, but refers to a lookup table stored in the table storage unit 220. In other respects, the table type node 210f is similar to the table type node 210.
The lookup table stored in the table storage unit 220f-1 is a lookup table that is commonly referenced by the table type node 210f-1 and the table type node 210f-2. The lookup table stored in the table storage unit 220f-2 is a lookup table that is commonly referenced by the table type node 210f-3 and the table type node 210f-4.
学習モデル装置100の学習が完了し、設定部400が、超曲面型ノード110毎にルックアップテーブルを生成した際に、「似ているルックアップテーブル」を1つのルックアップテーブルに纏め、纏められた1つのルックアップテーブルをテーブル記憶部220fに記憶させるようにしてもよい。そして、纏められる前のルックアップテーブルを参照することになっていた超曲面型ノード110が、纏められたルックアップテーブルを共用で参照するように、設定部400が、各超曲面型ノード110のルックアップテーブルの参照先を設定するようにしてもよい。 When learning by the learning model device 100 is complete and the setting unit 400 has generated a lookup table for each hypersurface node 110, the "similar lookup tables" may be aggregated into a single lookup table, and the aggregated lookup table may be stored in the table storage unit 220f. The setting unit 400 may then set the reference destination for the lookup table of each hypersurface node 110 so that the hypersurface nodes 110 that were to reference the lookup tables before the aggregation now share the aggregated lookup table.
「似ているルックアップテーブル」の判定条件として、例えば、ルックアップテーブルで「共通する行」のうち所定の閾値の割合以上(例えば、90%以上)の行で出力値が同じである、といった条件を用いるようにしてもよい。
テーブル型ノード210への入力データと、ルックアップテーブルに示される入力データとの対応関係をテーブル型ノード210毎に設定可能な場合、「共通する行」の設定方法が複数通りあり、この点でルックアップテーブルを共用化できる可能性が高くなる。
As a criterion for determining whether a lookup table is similar, for example, a condition may be used in which the output values of the "common rows" in the lookup table are the same for a predetermined threshold percentage or more (for example, 90% or more).
If the correspondence between the input data to the table-type node 210 and the input data shown in the lookup table can be set for each table-type node 210, there are multiple ways to set the "common rows," which increases the possibility of sharing the lookup table.
図21の例で、テーブル型ノード210f-1への入力データは(x1,x2)であり、テーブル型ノード210f-2への入力データは(x0,x1)である。また、テーブル記憶部220f-1が記憶するルックアップテーブルにおける入力データが(I0,I1)であるものとする。また、テーブル型ノード210f-1が、x1をI0に対応付け、x2をI1に対応付けてルックアップテーブルを参照するように、ルックアップテーブルにおける出力値が設定されるものとする。 21, the input data to the table type node 210f-1 is ( x1 , x2 ), and the input data to the table type node 210f-2 is ( x0 , x1 ). Also, the input data in the lookup table stored in the table storage unit 220f-1 is ( I0 , I1 ). Also, the output values in the lookup table are set so that the table type node 210f-1 associates x1 with I0 and x2 with I1 and refers to the lookup table.
テーブル型ノード210f-2が、x0をI0に対応付け、x1をI1に対応付けるようにしてもよいし、あるいは、x1をI0に対応付け、x0をI1に対応付けるようにしてもよい。これら2通りの対応付けのうち少なくとも何れか一方の対応付けで判定条件が満たされれば、テーブル型ノード210f-1が参照するルックアップテーブルと、テーブル型ノード210f-2が参照するルックアップテーブルとを共用化することができる。 The table type node 210f-2 may associate x 0 with I 0 and x 1 with I 1 , or may associate x 1 with I 0 and x 0 with I 1. If the determination condition is satisfied by at least one of these two associations, the lookup table referenced by the table type node 210f-1 and the lookup table referenced by the table type node 210f-2 can be shared.
テーブル型ノード210fへの入力データの個数が、ルックアップテーブルに示される入力データの個数よりも少ない場合、「共通する行」の設定方法の場合の数がさらに増え、ルックアップテーブルを共用化できる可能性がさらに高くなる。
例えば、テーブル型ノード210f-1の出力データをv1と表記すると、テーブル型ノード210f-3の入力データは、(x0,v1)の2つである。また、テーブル型ノード210f-4の入力データは、(y0,x2,x3)の3つである。
なお、ここでは、「入力データの個数」は、入力ベクトルの個数ではなく、個々の二値データの個数(したがって、入力ベクトルの要素数)を指すものとする。
If the number of input data to the table-type node 210f is less than the number of input data shown in the lookup table, the number of cases in which the "common row" setting method is used increases, further increasing the possibility that the lookup table can be shared.
For example, if the output data of the table type node 210f-1 is expressed as v1 , the input data of the table type node 210f-3 is two pieces of data ( x0 , v1 ), and the input data of the table type node 210f-4 is three pieces of data ( y0 , x2 , x3 ).
It should be noted that the "number of input data" here refers not to the number of input vectors but to the number of individual binary data (hence, the number of elements of the input vector).
また、テーブル記憶部220f-2が記憶するルックアップテーブルにおける入力データが(I2,I3,I4)の3つであるものとする。また、テーブル型ノード210f-4が、y0をI2に対応付け、x2をI3に対応付け、x3をI4に対応付けてルックアップテーブルを参照するように、ルックアップテーブルにおける出力値が設定されるものとする。 It is also assumed that the input data in the lookup table stored in the table storage unit 220f-2 are three, (I 2 , I 3 , I 4 ). It is also assumed that the output values in the lookup table are set so that the table-type node 210f-4 associates y 0 with I 2 , x 2 with I 3 , and x 3 with I 4 to refer to the lookup table.
テーブル型ノード210f-3が入力データ(x0,v1)をルックアップテーブルにおける入力データ(I2,I3,I4)に対応付ける方法は、(x0,v1)=(I2,I3)、(I2,I4)、(I3,I2)、(I3,I4)、(I4,I2)、(I4,I3)の6通りある。これら6通りの対応付けのうち少なくとも何れか1通りの対応付けで判定条件が満たされれば、テーブル型ノード210f-3が参照するルックアップテーブルと、テーブル型ノード210f-4が参照するルックアップテーブルとを共用化することができる。 There are six ways in which the table type node 210f-3 associates input data ( x0 , v1 ) with input data ( I2 , I3 , I4 ) in the lookup table: ( x0 , v1 ) = ( I2 , I3 ), ( I2 , I4), ( I3 , I2 ) , ( I3 , I4 ), ( I4 , I2 ), ( I4 , I3 ). If the determination condition is met with at least one of these six associations, the lookup table referenced by the table type node 210f-3 and the lookup table referenced by the table type node 210f-4 can be shared.
また、複数のテーブル型ノード210fが参照するルックアップテーブルを共用化する場合、共用化されるルックアップテーブルに、図13の例のように出力値の列を複数設け、テーブル型ノード210f毎の出力値を記載するようにしてもよい。
例えば、3つの1出力のテーブル型ノード210fを共用化する場合、ルックアップテーブルに出力値の列を3列設け、各テーブル型ノード210fの出力値を記載するようにしてもよい。
この場合、テーブル型ノード210fがルックアップテーブルを参照する際の検索キーとして用いられる入力データの記載を共用化することができ、この点で、ルックアップテーブルの記憶に必要なメモリ容量を削減することができる。
Furthermore, when a lookup table referenced by multiple table-type nodes 210f is shared, the shared lookup table may have multiple columns of output values, as in the example of Figure 13, and the output values for each table-type node 210f may be entered.
For example, when three table-type nodes 210f each having one output are shared, three columns of output values may be provided in the lookup table, and the output value of each table-type node 210f may be written therein.
In this case, the description of the input data used as a search key when the table type node 210f refers to the lookup table can be shared, and in this respect, the memory capacity required to store the lookup table can be reduced.
以上のように、超曲面型ノード110は、二値ベクトルの入力を受け、入力された二値ベクトルの次元数よりも1次元多い次元数の実数空間である入出力実数空間における超曲面に含まれる点のうち、入力された二値ベクトルを入出力実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の座標値の要素のうち、入力された二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定する。 As described above, the hypersurface node 110 receives a binary vector as input, and determines a binarized output value based on the coordinate elements of points contained in a hypersurface in the input/output real space, which is a real space with one more dimension than the number of dimensions of the input binary vector, that have coordinate values that include each element of the coordinate values when the input binary vector is treated as coordinate values in a subspace of the input/output real space, other than the elements of the coordinate values of the input binary vector.
超曲面型ノード110によれば、超曲面で入力値と出力値との関係を表すことで、真理値表と同等の表現力を得られる。学習モデル装置100によれば、この点で、二値データを用いる超曲面型ノード110を備える学習モデルが、超曲面型ノード110の層数を増やす必要なしに、比較的多様な出力値をとり得るようにすることができる。 The hypersurface node 110 can express the relationship between input and output values using a hypersurface, achieving expressive power equivalent to that of a truth table. In this respect, the learning model device 100 enables a learning model equipped with a hypersurface node 110 that uses binary data to be able to take a relatively wide variety of output values without the need to increase the number of layers of the hypersurface node 110.
また、超曲面型ノード110に設けられる超曲面は、超曲面型ノード110に入力される二値ベクトルがとり得る値の各々を、入出力実数空間の部分空間における座標値として扱った場合のその座標値と、学習パラメータ値との組み合わせによる、入出力実数空間における座標値の点を制御点とするB-Spline超曲面である。 Furthermore, the hypersurface provided in the hypersurface type node 110 is a B-Spline hypersurface whose control points are points with coordinate values in the input/output real number space, which are determined by combining the coordinate values of the binary vectors input to the hypersurface type node 110 when treated as coordinate values in a subspace of the input/output real number space with learning parameter values.
超曲面型ノード110によれば、このようにB-Spline超曲面を用いることで微分可能な関数を得られ、誤差逆伝播法など関数の微分を用いる学習手法を適用することができる。
また、超曲面型ノード110への入力データ値をB-Spline超曲面の制御点として用いることで、制御点の出力座標値が入力データ値に対する出力データ値を示すようなる。超曲面型ノード110によれば、この点で、入力データ値と出力データ値との関係を比較的容易に把握することができる。
According to the hypersurface node 110, a differentiable function can be obtained by using a B-Spline hypersurface in this way, and a learning method that uses the differentiation of a function, such as the backpropagation method, can be applied.
Furthermore, by using the input data values to the hypersurface node 110 as control points of the B-Spline hypersurface, the output coordinate values of the control points indicate the output data values for the input data values. In this respect, the hypersurface node 110 makes it relatively easy to grasp the relationship between the input data values and the output data values.
また、超曲面処理部111は、超曲面に含まれる点のうち、超曲面型ノード110に入力される二値ベクトルを入出力実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、超曲面型ノード110に入力される二値ベクトルによる座標値の要素以外の要素の値を取得する。
閾値演算部112は、学習モデル装置100における順伝播のときは、超曲面処理部111が取得した値をステップ関数で二値化し、超曲面処理部111における逆伝播のときは、ステップ関数を微分可能な関数で近似する。
Furthermore, the hypersurface processing unit 111 acquires the values of elements of the coordinate values of points included in the hypersurface that include each element of the coordinate values when the binary vector input to the hypersurface type node 110 is treated as a coordinate value in a subspace of the input/output real number space, other than the elements of the coordinate values of the binary vector input to the hypersurface type node 110.
When performing forward propagation in the learning model device 100, the threshold calculation unit 112 binarizes the value acquired by the hypersurface processing unit 111 using a step function, and when performing backward propagation in the hypersurface processing unit 111, it approximates the step function with a differentiable function.
このように、閾値演算部112が、閾値関数を切り替えることで、順伝播のときは超曲面型ノード110が二値データを出力するようにし、かつ、誤差逆伝播法など関数の微分を用いる学習手法を適用することができる。 In this way, the threshold calculation unit 112 switches the threshold function, allowing the hypersurface node 110 to output binary data during forward propagation, and also enabling the application of learning methods that use function differentiation, such as backpropagation.
また、学習モデル装置100は、二値ベクトルの入力を受け、入力された二値ベクトルの次元数よりも1次元多い次元数の実数空間である入出力実数空間における超曲面に含まれる点のうち、入力された二値ベクトルを入出力実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の座標値の要素のうち、入力された二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定する。
学習制御部300は、学習モデル装置100の学習を制御する。
設定部400は、学習後の学習モデル装置100のノードにおける入力値と出力値との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを演算装置200のテンプレートに設定する。
Furthermore, the learning model device 100 receives an input of a binary vector, and determines a binarized output value based on elements of the coordinate values of points included in a hypersurface in an input/output real space, which is a real space with one more dimension than the number of dimensions of the input binary vector, that have coordinate values including each element of the coordinate values when the input binary vector is treated as a coordinate value in a subspace of the input/output real space, other than the elements of the coordinate values of the input binary vector.
The learning control unit 300 controls the learning of the learning model device 100 .
The setting unit 400 generates a lookup table indicating the relationship between input values and output values at the nodes of the learning model device 100 after learning, and sets the generated lookup table in the template of the calculation device 200.
演算装置生産システム1によれば、超曲面で超曲面処理部111における入力値と出力値との関係を表すことで、真理値表と同等の表現力を得られる。演算装置生産システム1によれば、この点で、二値データを用いる超曲面型ノード110を備える学習モデルが、超曲面型ノード110の層数を増やす必要なしに、比較的多様な出力値をとり得るようにすることができる。
また、演算装置生産システム1によれば、学習で得られたルックアップテーブルを演算装置200のテンプレートに設定して演算装置200を生産することで、演算装置200は、ルックアップテーブルを参照して二値演算を行うことができる。演算装置生産システム1によれば、テーブル型ノード210は、ルックアップテーブルを参照して入力データ値に対する出力データ値を決定する点で、複雑な演算に相当する入出力の場合でも、比較的短時間で、かつ、比較的小さい消費電力で、データを出力することができる。
According to the computing device production system 1, it is possible to obtain expressive power equivalent to that of a truth table by using a hypersurface to represent the relationship between input values and output values in the hypersurface processing unit 111. In this respect, according to the computing device production system 1, it is possible to make it possible for a learning model including hypersurface type nodes 110 that use binary data to take on a relatively wide variety of output values without the need to increase the number of layers of the hypersurface type nodes 110.
Furthermore, according to the computing device production system 1, the lookup table obtained by learning is set as a template for the computing device 200 and the computing device 200 is produced, so that the computing device 200 can perform binary operations by referring to the lookup table. According to the computing device production system 1, the table-type node 210 determines an output data value for an input data value by referring to the lookup table, and therefore can output data in a relatively short time and with relatively low power consumption even in the case of input/output corresponding to a complex operation.
また、演算装置200は、Field Programmable Gate Arrayを用いて構成される。
演算装置生産システム1によれば、既存のFGPAを演算装置200のテンプレートとして用いることができ、演算装置200のテンプレートを別途生成する必要がない。このように、演算装置生産システム1によれば、演算装置200を生産するための負担が比較的小さい。
The arithmetic device 200 is configured using a field programmable gate array.
According to the computing device production system 1, an existing FPGA can be used as a template for the computing device 200, and there is no need to separately generate a template for the computing device 200. In this way, according to the computing device production system 1, the burden of producing the computing device 200 is relatively small.
図22は、少なくとも1つの実施形態に係るコンピュータの構成の例を示す概略ブロック図である。図22に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。 Figure 22 is a schematic block diagram illustrating an example of a computer configuration according to at least one embodiment. In the configuration shown in Figure 22, the computer 700 includes a CPU 710, a main memory device 720, an auxiliary memory device 730, and an interface 740.
上記の学習モデル装置100、演算装置200、演算装置200f、学習制御部300、および、設定部400のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。 Any one or more of the above-mentioned learning model device 100, calculation device 200, calculation device 200f, learning control unit 300, and setting unit 400 may be implemented in the computer 700. In this case, the operation of each of the above-mentioned processing units is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above-mentioned processing in accordance with the program. The CPU 710 also allocates memory areas in the main storage device 720 corresponding to each of the above-mentioned memory units in accordance with the program.
学習モデル装置100がコンピュータ700に実装される場合、超曲面型ノード110の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。 When the learning model device 100 is implemented in a computer 700, the operation of the hypersurface node 110 is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it into the main storage device 720, and executes the above-mentioned processing in accordance with the program.
また、CPU710は、プログラムに従って、学習モデル装置100が処理を行うための記憶領域を主記憶装置720に確保する。学習モデル装置100と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
学習モデル装置100とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
Furthermore, the CPU 710, in accordance with the program, allocates a memory area in the main memory device 720 for the learning model device 100 to perform processing. Communication between the learning model device 100 and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710.
Interaction between the learning model device 100 and the user is carried out by the interface 740 having an input device and an output device, presenting information to the user via the output device under the control of the CPU 710, and accepting user operations via the input device.
演算装置200がコンピュータ700に実装される場合、テーブル型ノード210の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。 When the computing device 200 is implemented in a computer 700, the operation of the table type node 210 is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it into the main storage device 720, and executes the above processing in accordance with the program.
また、CPU710は、プログラムに従って、演算装置200が処理を行うための記憶領域を主記憶装置720に確保する。演算装置200と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
演算装置200とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
Furthermore, the CPU 710 allocates a storage area in the main storage device 720 for the arithmetic device 200 to perform processing in accordance with the program. Communication between the arithmetic device 200 and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710.
Interaction between the computing device 200 and the user is carried out by the interface 740 having an input device and an output device, presenting information to the user via the output device under the control of the CPU 710, and accepting user operations via the input device.
演算装置200fがコンピュータ700に実装される場合、テーブル型ノード210fの動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。 When the calculation device 200f is implemented in the computer 700, the operation of the table type node 210f is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above processing in accordance with the program.
また、CPU710は、プログラムに従って、テーブル記憶部220fに対応する記憶領域を主記憶装置720に確保する。演算装置200fと他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
演算装置200fとユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
Furthermore, the CPU 710, in accordance with the program, allocates a storage area corresponding to the table storage unit 220f in the main storage device 720. Communication between the calculation device 200f and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710.
Interaction between the computing device 200f and the user is carried out by the interface 740 having an input device and an output device, presenting information to the user via the output device under the control of the CPU 710, and accepting user operations via the input device.
学習制御部300がコンピュータ700に実装される場合、学習制御部300の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。 When the learning control unit 300 is implemented in the computer 700, the operation of the learning control unit 300 is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above-mentioned processing in accordance with the program.
また、CPU710は、プログラムに従って、学習制御部300が処理を行うための記憶領域を主記憶装置720に確保する。学習制御部300と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
学習制御部300とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
Furthermore, the CPU 710 allocates a storage area in the main storage device 720 for the learning control unit 300 to perform processing in accordance with the program. Communication between the learning control unit 300 and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710.
Interaction between the learning control unit 300 and the user is carried out by the interface 740 having an input device and an output device, presenting information to the user via the output device under the control of the CPU 710, and accepting user operations via the input device.
設定部400がコンピュータ700に実装される場合、設定部400の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。 When the setting unit 400 is implemented in the computer 700, the operation of the setting unit 400 is stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above-mentioned processing in accordance with the program.
また、CPU710は、プログラムに従って、設定部400が処理を行うための記憶領域を主記憶装置720に確保する。設定部400と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
設定部400とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
Furthermore, the CPU 710, in accordance with the program, allocates a storage area in the main storage device 720 for the setting unit 400 to perform processing. Communication between the setting unit 400 and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710.
Interaction between the setting unit 400 and the user is carried out by the interface 740 having an input device and an output device, presenting information to the user via the output device under the control of the CPU 710, and accepting user operations via the input device.
なお、学習モデル装置100、演算装置200、演算装置200f、学習制御部300、および、設定部400の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
In addition, a program for realizing all or part of the functions of the learning model device 100, the calculation device 200, the calculation device 200f, the learning control unit 300, and the setting unit 400 may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed to perform processing of each unit. Note that the term "computer system" here includes hardware such as an OS (Operating System) and peripheral devices.
Furthermore, "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs (Read Only Memory), and CD-ROMs (Compact Disc Read Only Memory), as well as storage devices such as hard disks built into computer systems. The program may be one that realizes part of the functions described above, or may be one that can realize the functions described above in combination with a program already recorded in the computer system.
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。 The above describes an embodiment of the present invention in detail with reference to the drawings, but the specific configuration is not limited to this embodiment and includes design modifications and the like that do not deviate from the gist of the present invention.
1 演算装置生産システム
100 学習モデル装置
110 超曲面型ノード
111 超曲面処理部
112 閾値演算部
200、200f 演算装置
210、210f テーブル型ノード
220f テーブル記憶部
300 学習制御部
400 設定部
220 テーブル記憶部
1 Calculation device production system 100 Learning model device 110 Hypersurface type node 111 Hypersurface processing unit 112 Threshold value calculation unit 200, 200f Calculation device 210, 210f Table type node 220f Table storage unit 300 Learning control unit 400 Setting unit 220 Table storage unit
Claims (9)
を備える学習モデル装置。 A learning model device comprising: a node that receives an input of a binary vector, and determines a binarized output value based on elements of coordinate values of a point that is included in a hypersurface in a real number space that has one more dimension than the number of dimensions of the binary vector, the point having coordinate values that include each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real number space, other than elements of the coordinate values of the binary vector.
請求項1に記載の学習モデル装置。 The hypersurface is a B-Spline hypersurface whose control points are points of coordinate values in the real number space, which are determined by combining the coordinate values when each of the values that the binary vector can take is treated as a coordinate value in a subspace of the real number space with a learning parameter value.
The learning model device according to claim 1 .
前記超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素の値を取得する超曲面処理部と、
前記学習モデル装置における順伝播のときは、前記超曲面処理部が取得した値をステップ関数で二値化し、前記学習モデル装置における逆伝播のときは、前記ステップ関数を微分可能な関数で近似する閾値演算部と、
を備える、請求項1または請求項2に記載の学習モデル装置。 The node
a hypersurface processing unit that acquires values of elements other than the coordinate values of the binary vector among elements of coordinate values of points included in the hypersurface, the points having coordinate values including elements of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real number space; and
a threshold calculation unit that, in forward propagation in the learning model device, binarizes the value acquired by the hypersurface processing unit using a step function, and, in back propagation in the learning model device, approximates the step function using a differentiable function;
The learning model device according to claim 1 or 2, comprising:
前記学習モデルシステムは、
二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定するノード
を備え、
前記学習制御部は、前記学習モデルシステムの学習を制御し、
前記設定部は、学習後の前記学習モデルシステムのノードにおける入力値と出力値との関係を示すルックアップテーブルを生成し、生成したルックアップテーブルを演算装置のテンプレートに設定する、
演算装置生産システム。 A learning model system, a learning control unit, and a setting unit are provided,
The learning model system includes:
a node that receives an input of a binary vector and determines a binarized output value based on elements of coordinate values of a point that is included in a hypersurface in a real number space that has a dimension that is one dimension larger than the dimension of the binary vector, the coordinate values including each element of the coordinate values when the binary vector is treated as a coordinate value in a subspace of the real number space, other than the elements of the coordinate values of the binary vector;
the learning control unit controls learning of the learning model system;
the setting unit generates a lookup table indicating a relationship between an input value and an output value at a node of the learning model system after learning, and sets the generated lookup table in a template of the arithmetic device.
Computing device production system.
請求項4に記載の演算装置生産システム。 The arithmetic unit is configured using a Field Programmable Gate Array.
The computing device production system of claim 4.
二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定する
ことを含む演算方法。 The computer
A calculation method including: receiving an input of a binary vector; and determining a binarized output value based on elements of coordinate values of a point included in a hypersurface in a real number space that has one more dimension than the number of dimensions of the binary vector, the point having coordinate values including each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real number space, other than elements of coordinate values of the binary vector.
学習後の前記学習モデルシステムのノードにおける入力と出力との関係を示すルックアップテーブルを生成し、
生成したルックアップテーブルを演算装置のテンプレートに設定する
ことを含む演算装置生産方法。 learning a learning model system including a node that receives an input of a binary vector and determines an output value based on elements of coordinate values of a point that has coordinate values including each element of the coordinate values when the binary vector is treated as a coordinate value in a subspace of the real number space, among points included in a hypersurface in a real number space that has one dimension greater than the dimension of the binary vector, other than the elements of the coordinate values of the binary vector;
generating a lookup table indicating the relationship between inputs and outputs at the nodes of the learning model system after learning;
A method for producing a computing device, comprising setting the generated lookup table as a template for the computing device.
二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、二値化された出力値を決定すること
を実行させるためのプログラム。 On the computer,
A program for executing the following: receiving an input of a binary vector, and determining a binarized output value based on elements of the coordinate values of a point included in a hypersurface in a real number space that has one more dimension than the number of dimensions of the binary vector, the point having coordinate values including each element of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real number space, other than elements of the coordinate values of the binary vector.
二値ベクトルの入力を受け、前記二値ベクトルの次元数よりも1次元多い次元数の実数空間における超曲面に含まれる点のうち、前記二値ベクトルを前記実数空間の部分空間における座標値として扱った場合のその座標値の各要素を含む座標値を有する点の前記座標値の要素のうち、前記二値ベクトルによる座標値の要素以外の要素に基づいて、出力値を決定するノードを備える学習モデルシステムの学習を行うことと、
学習後の前記学習モデルシステムのノードにおける入力と出力との関係を示すルックアップテーブルを生成することと、
生成したルックアップテーブルを演算装置のテンプレートに設定することと、
を実行させるためのプログラム。 On the computer,
learning a learning model system including a node that receives an input of a binary vector and determines an output value based on elements of coordinate values of a point that has coordinate values including elements of the coordinate values when the binary vector is treated as coordinate values in a subspace of the real number space, among points included in a hypersurface in a real number space that has one dimension greater than the dimension of the binary vector, other than the elements of the coordinate values of the binary vector;
generating a lookup table indicating the relationship between inputs and outputs at the nodes of the learning model system after learning;
Setting the generated lookup table as a template for the arithmetic device;
A program to execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021197852A JP7725065B2 (en) | 2021-12-06 | 2021-12-06 | Learning model device, computing device production system, computing method, computing device production method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021197852A JP7725065B2 (en) | 2021-12-06 | 2021-12-06 | Learning model device, computing device production system, computing method, computing device production method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023083885A JP2023083885A (en) | 2023-06-16 |
| JP7725065B2 true JP7725065B2 (en) | 2025-08-19 |
Family
ID=86731626
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021197852A Active JP7725065B2 (en) | 2021-12-06 | 2021-12-06 | Learning model device, computing device production system, computing method, computing device production method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7725065B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210365777A1 (en) | 2018-07-23 | 2021-11-25 | Google Llc | Continuous parametrizations of neural network layer weights |
-
2021
- 2021-12-06 JP JP2021197852A patent/JP7725065B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210365777A1 (en) | 2018-07-23 | 2021-11-25 | Google Llc | Continuous parametrizations of neural network layer weights |
Non-Patent Citations (2)
| Title |
|---|
| 野崎 佑典,AIハードウェアを指向したニューラルネットワーク物理的複製不可能関数とその評価,電気学会論文誌C,日本,一般社団法人電気学会,2020年07月01日,Vol.140 No.7,P.689-696 |
| 長野 呂夢 ,粒子群最適化を用いた動的バイナリニューラルネットワークの学習法,電子情報通信学会技術研究報告 Vol.113 No.500,日本,一般社団法人電子情報通信学会,2014年03月10日,NC2013-113(2014-03),P.145-149 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023083885A (en) | 2023-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Smith et al. | Geometrics: Exploiting geometric structure for graph-encoded objects | |
| CN113168559B (en) | Automated generation of machine learning models | |
| US20240135139A1 (en) | Implementing Traditional Computer Vision Algorithms as Neural Networks | |
| US11580376B2 (en) | Electronic apparatus and method for optimizing trained model | |
| US20200104573A1 (en) | Data processing apparatus and method | |
| CN112771543A (en) | Training neural networks by including cost of implementation as a goal | |
| Marin et al. | Kernel clustering: Density biases and solutions | |
| CN109754359B (en) | Pooling processing method and system applied to convolutional neural network | |
| US11275558B2 (en) | Sorting instances of input data for processing through a neural network | |
| JP2019057072A (en) | Neural network circuit device, neural network, neural network processing method and execution program of neural network | |
| WO2019167665A1 (en) | Learning device, method and program | |
| Struharik | Implementing decision trees in hardware | |
| US20250181921A1 (en) | Training a neural network | |
| Wei et al. | Automatic group-based structured pruning for deep convolutional networks | |
| Carbonera et al. | Local-set based-on instance selection approach for autonomous object modelling | |
| JP7725065B2 (en) | Learning model device, computing device production system, computing method, computing device production method, and program | |
| Tsai et al. | Minimising the energy of active contour model using a Hopfield network | |
| Manzoor et al. | Ancient coin classification based on recent trends of deep learning. | |
| Ibrahim et al. | On feature selection methods for accurate classification and analysis of emphysema ct images | |
| Saurav et al. | Fpga based implementation of linear svm for facial expression classification | |
| Tsai et al. | A CNN accelerator on FPGA using binary weight networks | |
| KR20210122665A (en) | Mixed-precision neural processing unit(npu) using spatial fusion with load balancing | |
| Oh et al. | Retraining and regularization to optimize neural networks for stochastic computing | |
| Fernandez-Francos et al. | One-class classification algorithm based on convex hull. | |
| Baptista et al. | Configurable N-fold hardware architecture for convolutional neural networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240926 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250704 |
|
| 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: 20250722 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250730 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7725065 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |