JP2022049141A - 演算デバイス、計算機システム、及び演算方法 - Google Patents
演算デバイス、計算機システム、及び演算方法 Download PDFInfo
- Publication number
- JP2022049141A JP2022049141A JP2020155200A JP2020155200A JP2022049141A JP 2022049141 A JP2022049141 A JP 2022049141A JP 2020155200 A JP2020155200 A JP 2020155200A JP 2020155200 A JP2020155200 A JP 2020155200A JP 2022049141 A JP2022049141 A JP 2022049141A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- similarity
- vectors
- vector
- arithmetic device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims abstract description 85
- 239000013598 vector Substances 0.000 claims abstract description 67
- 238000013528 artificial neural network Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 abstract description 23
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 13
- 229940050561 matrix product Drugs 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 8
- 238000003058 natural language processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000001994 activation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4814—Non-logic devices, e.g. operational amplifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明の実施形態は、演算デバイス、計算機システム、及び演算方法に関する。
従来、自然言語処理(NLP:Natural Language Processing)の演算に、ベクトル行列積の結果を重みとして別の行列の加重和を計算する処理(Attention)を含むニューラルネットワークが広く利用されるようになってきている。NLPは、人間の言語(自然言語)を機械で処理するための複数の処理を含む。Attentionを含むニューラルネットワークは、画像処理の分野でも採用が検討されている。
本発明が解決しようとする課題は、処理時間などのコストを削減することができる演算デバイス、計算機システム、及び演算方法を提供することである。
実施形態の演算デバイスは、ニューラルネットワークに関する演算を実行する演算デバイスにおいて、第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算する第1計算部を備える。また、演算デバイスは、前記第1計算部における前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択する選択部を備える。また、演算デバイスは、前記第1ベクトルと、前記選択部で選択された複数の第3ベクトルとの類似度を計算する第2計算部を備える。
以下に添付図面を参照して、実施形態に係る演算デバイス、計算機システム、及び演算方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
図1は、実施形態の演算デバイスを含む計算機システム1の構成の一例を示すブロック図である。図1に示されるように、計算機システム1は、入力データを受信する。この入力データは、例えば音声データや音声データから生成されたテキストデータであっても良いし、画像データであっても良い。計算機システム1は、入力データに対して各種の処理を実行する。例えば、入力データが音声データである場合、計算機システム1は、自然言語処理を実行する。
計算機システム1は、入力データに対する処理の結果に対応する信号を出力し、処理の結果を表示デバイス80に表示させることができる。表示デバイス80は、液晶ディスプレイ、又は、有機ELディスプレイなどである。表示デバイス80は、ケーブル又は無線通信を介して、計算機システム1に電気的に接続される。
計算機システム1は、GPU(Graphic Processing Unit)10、CPU(Central Processing Unit)20、及び、メモリ70を少なくとも含む。GPU10、CPU20、及び、メモリ70は、内部バスにより通信可能に接続されている。
本実施形態において、GPU10は、機械学習装置である後述のニューラルネットワーク100を用いた推論処理用に関する演算を実行する。GPU10は、後述する近似的に類似度計算を行うプロセッサである。GPU10は、メモリ70をワークエリアとして用いながら、入力データに対する処理を実行する。GPU10は、機械学習装置である後述のニューラルネットワーク100を有する。
CPU20は、計算機システム1の全体の動作を制御するプロセッサである。CPU20は、GPU10及びメモリ70の制御のための各種の処理を実行する。CPU20は、メモリ70をワークエリアとして用いながら、GPU10で実行される後述のニューラルネットワーク100に関する演算を制御する。
メモリ70は、メモリデバイスとして機能する。メモリ70は、外部から入力された入力データ、GPU10によって生成されたデータ、CPU20によって生成されたデータ、及び、ニューラルネットワークのパラメータを記憶する。なお、GPU10及びCPU20によって生成されるデータは、各種の計算の中間結果及び最終結果を含み得る。例えば、メモリ70は、DRAM、SRAM、MRAM、NAND型フラッシュメモリ、抵抗変化型メモリ(例えば、ReRAM、PCM(Phase Change Memory))などの中から選択される少なくとも1以上を含む。GPU10にかかる専用のメモリ(図示せず)が、GPU10に直接接続されてもよい。
入力データは、記憶媒体99から提供されてもよい。記憶媒体99は、ケーブル又は無線通信によって、計算機システム1に電気的に結合される。記憶媒体99は、メモリデバイスとして機能するものであって、メモリカード、USBメモリ、SSD、HDD、及び、光記憶媒体などのいずれでもよい。
図2は、実施形態の計算機システム1で実行されるニューラルネットワーク100の構成例を説明するための模式図である。
計算機システム1において、図2のニューラルネットワーク100は、機械学習デバイスとして用いられる。例えば、ニューラルネットワーク100は、多層パーセプトロン(MLP)、畳み込みニューラルネットワーク(CNN)、又は注意機構を備えたニューラルネットワーク(例えばTransformer)を含む。ここで、機械学習とは、コンピュータが大量のデータを学習し、分類や予測などのタスクを遂行するアルゴリズムやモデルを自動的に構築する技術である。
なお、ニューラルネットワーク100は、如何なる推論を行う機械学習モデルであってもよい。例えば、ニューラルネットワーク100は、音声データを入力として、当該音声データの分類を出力する機械学習モデルであってもよいし、音声データのノイズ除去や音声認識を実現する機械学習モデルであってもよい。
ニューラルネットワーク100は、入力層101、隠れ層(中間層ともよばれる)102、及び出力層(全結合層ともよばれる)103を有する。
入力層101は、計算機システム1の外部から受信した入力データ(又はその一部分)を受信する。入力層101は、複数の演算デバイス(ニューロン又はニューロン回路ともよばれる)118を有する。なお、演算デバイス118は専用の装置であってもよいし、汎用のプロセッサがプログラムを実行することでその処理が実現されても良い。これ以降も同様の意味で演算デバイスという表記を使う。入力層101において、各演算デバイス118は、入力データに任意の処理(例えば線形変換や、補助データの追加など)を施して変換し、変換したデータを、隠れ層102に送信する。
隠れ層102(102A,102B)は、入力層101からのデータに対して、各種の計算処理を実行する。
隠れ層102は、複数の演算デバイス110(110A,110B)を有する。隠れ層102において、各演算デバイス110は、供給されたデータ(以下では、区別化のため、デバイス入力データともよばれる)に対して、所定のパラメータ(例えば、重み係数)を用いた積和演算処理を実行する。例えば、各演算デバイス110は、供給されたデータに対して、互いに異なるパラメータを用いて積和演算処理を実行する。
隠れ層102は、階層化されてもよい。この場合において、隠れ層102は、少なくとも2つの層(第1の隠れ層102A及び第2の隠れ層102B)を含む。
第1の隠れ層102Aの各演算デバイス110Aは、入力層101の処理結果であるデバイス入力データに対して、所定の計算処理を実行する。各演算デバイス110Aは、計算結果を、第2の隠れ層102Bの各演算デバイス110Bに送信する。第2の隠れ層102Bの各演算デバイス110Bは、各演算デバイス110Aの計算結果であるデバイスを入力データに対して、所定の計算処理を実行する。各演算デバイス110Bは、計算結果を、出力層103に送信する。
このように、隠れ層102が階層構造を有する場合、ニューラルネットワーク100による推論(inference)、学習(learning/training)、及び分類の能力が、向上され得る。なお、隠れ層102の層の数は、3層以上でもよいし、1層でもよい。1つの隠れ層は、積和演算処理、プーリング処理、正規化処理、活性化処理などの処理の任意の組み合わせを含むように構成されてもよい。
出力層103は、隠れ層102の各演算デバイス110によって実行された各種の計算処理の結果を受信し、各種の処理を実行する。
出力層103は、複数の演算デバイス119を有する。各演算デバイス119は、複数の演算デバイス110Bからの計算結果であるデバイス入力データに対して、所定の処理を実行する。これによって、隠れ層102による計算結果に基づいて、ニューラルネットワーク100に供給されたデータに関する推論や分類を、実行できる。各演算デバイス119は、得られた処理結果(分類結果)を記憶及び出力できる。出力層103は、隠れ層102の計算結果をニューラルネットワーク100の外部へ出力するためのバッファ及びインターフェイスとしても機能する。
なお、ニューラルネットワーク100は、GPU10の外部に設けられてもよい。すなわち、ニューラルネットワーク100は、GPU10のみならず、計算機システム1内のCPU20、メモリ70、記憶媒体99などを利用して実現されるものであってもよい。
本実施形態の計算機システム1において、ニューラルネットワーク100によって、例えば、自然言語処理/推定のための各種の計算処理、及び、自然言語処理/推定の機械学習(例えば、ディープラーニング)のための各種の計算処理が、実行される。
例えば、計算機システム1において、音声データに対するニューラルネットワーク100による各種の計算処理に基づいて、音声データが何であるかを計算機システム1によって高い精度で推論(認識)及び分類されたり、音声データが計算機システム1によって高い精度で認識/分類されるように学習されたりすることが可能となる。
本実施形態において、以下のように、ニューラルネットワーク100内の演算デバイス110(110A,110B)は、1以上の処理回路を含む。
図3は、実施形態の演算デバイス110の機能構成を示す機能ブロック図である。図3に示すように、演算デバイス110は、クエリ取得部1101と、キー取得部1102と、近似計算部1103と、選択部1104と、計算部1105と、を備える。
クエリ取得部1101は、供給されたデバイス入力データにかかるクエリとしてベクトルを取得する。キー取得部1102は、供給されたデバイス入力データにかかるn個のキーの配列として行列を取得する。
近似計算部1103は、第1計算部として機能するものであって、クエリとしてのd次元ベクトル(第1ベクトル)と、複数の第2ベクトルであるn個のd次元ベクトル(n個のキーの配列としての行列)それぞれとの間の類似度を近似的に計算する。
選択部1104は、近似計算部1103における類似度の計算の結果、複数の第2ベクトルのうち類似度が閾値以上のベクトル(第3ベクトル)であるキーを複数選択する。
計算部1105は、第2計算部として機能するものであって、クエリと、選択部1104で選択されたk個のキーとの類似度を計算する。
ここで、図4は実施形態の演算デバイス110による各種の処理(データの処理方法)の流れを示すフローチャート、図5は実施形態のベクトル行列積の近似的計算の一例を示す図である。ベクトル行列積は、ベクトルをクエリ、行列をキーの配列として、クエリに対応したキーを探索する処理とみなせる。なお、ここでのキーの配列は、d次元のベクトル(キー)がn個とする。
図4に示すように、クエリ取得部1101は、供給されたデバイス入力データにかかるクエリとしてベクトルを取得する(S1)。
また、キー取得部1102は、供給されたデバイス入力データにかかるn個のキーの配列として行列を取得する(S2)。
次いで、近似計算部1103は、クエリとしてのベクトルとキーの配列としての行列との類似度を近似的に計算する(S3)。すなわち、近似計算部1103は、関連キー(類似度)の順位付けを行う。言い換えると、近似計算部1103は、類似度の計算をクエリとしてのd次元ベクトル(第1ベクトル)及びn個のd次元ベクトル(複数の第2ベクトル)のいずれか又は両方を低精度化し、低精度化したベクトルを用いて内積計算を実行することにより類似度を近似的に計算する。
図5に示すように、まず、近似計算部1103は、クエリとしてのd次元ベクトル(1,d)と、n個のd次元ベクトル(キー)の配列としての行列(n,d)Tとのそれぞれの間の近似内積により、類似度であるベクトル行列積を得る。この際に近似計算部1103は、クエリとキーを低ビットに量子化することで近似する。低ビットに量子化するというのは、例えばもともと単精度浮動小数点の型で表現されえたクエリやキーを、8ビット整数や4ビット整数など低ビットで高速に処理が可能な型に変換するということである。このような近似を行うため、ここで得られるベクトル行列積は、近似的に求めた重み(1,n)である。
次いで、図4に示すように、選択部1104は、類似度が閾値以上に大きくなるk個のキーを選択する(S4)。つまり、図5に示すように、選択部1104は、近似的に求めた重み(1,n)において、内積の値が閾値以上に大きくなった列を少数個(ここでは、k個とする)選択して(k,d)Tとする。
なお、この閾値は、あらかじめ設定した所定の値で合っても良いし、選択される列の数があらかじめ設定した個数kになるように、内積の値に応じて決めても良い。
次いで、図4に示すように、計算部1105は、k個のキーに対する類似度を計算する(S5)。図5に示すように、計算部1105は、元の行列(n,d)Tから選択された列を取り出した小さな行列(k,d)Tに対して、クエリとしてのd次元ベクトル(1,d)とのベクトル行列積を厳密に計算する。ここで得られるベクトル行列積は、重み(1,k)である。
このようにして計算されたベクトル行列積の結果は、加重和をとるための重みとして利用される。
上述のように、本実施形態の演算デバイス110においては、クエリとしてのd次元ベクトル(1,d)に応じて、選択されるd次元のベクトル(キー)が変化することが特徴の一つとなっている。
なお、選択部1104で選択されて計算部1105で利用されるk個のキーについては、近似計算部1103に存在するn個のキーデータそのものの一部が渡されるものに限るものではない。図6は、実施形態の演算デバイス110の機能構成を示す機能ブロック図の変形例である。図6に示すように、キー保存部(保存部)として機能するメモリ70や記憶媒体99にn個のキーに対応するキーデータを保存しておく。このとき、キーデータは、n個のキーを特定可能なインデックスに対応付けて保存されている。選択部1104では、類似度が閾値以上に大きくなる列を示すインデックスがk個選択され、計算部1105では、キー保存部として機能するメモリ70や記憶媒体99から、選択されたk個のインデックスに対応するキーデータを読み出して利用するという実施形態であっても良い。
図7は、比較例のニューラルネットワークにおける処理例を示す図である。図7に示すように、比較例のニューラルネットワークにおいては、ベクトル行列積の結果を重みとして、別の行列の加重和を計算するという処理(注意機構、Attention)を含んでいる。図7に示すように、比較例のニューラルネットワークにおいては、特にnが大きい場合、ベクトル行列積:d×(d,n)の計算量が非常に大きくなってしまう、という課題がある。
しかしながら、比較例のニューラルネットワークにおいては、加重和をとるための重みとして利用されるベクトル行列積の結果の分布は、多くの場合偏り、結果的に無視できる(重みがほぼ0になる)ものが多い。
そこで、本実施形態においては、クエリとしてのベクトルに対応するキー探索とみなせる処理を含むニューラルネットワークにおいて、まず、キー探索計算を近似的に行って候補を絞り込み、その後、絞り込んだ少数のキーを対象に、再度、キー探索計算を行うようにした。これにより、計算を近似的に粗く行うことで、間引き処理を行うことなく近似計算しても高速化できるので、処理時間などのコストを削減することができる。
なお、本実施形態においては、関連キー(類似度)の順位付けを近似内積により求めたが、これに限るものではなく、内積以外の計算法でも良い。例えば、関連キー(類似度)の順位付けを、コサイン類似度、ハミング距離などを用いて行うようにしてもよい。
また、本実施形態においては、近似的に類似度計算を行う専用のプロセッサとしてGPU10を用いるようにしたが、これに限るものではなく、CPU20において近似的な類似度計算を行うようにしてもよい。この場合、CPU20が演算デバイスを実現することになる。また近似の方法として、クエリ及びキーを低ビットに量子化する方法を示したが、その他の近似方法であっても良い。例えばクエリやキーのベクトルの各要素の内値が所定の値よりも小さいものを0として扱うなどの近似によって、内積計算が高速化できる場合にはそのような近似でも効果が得られる。また、抵抗変化型メモリなどを利用したアナログ積和演算器を利用して、近似的な類似度計算を行うようにしてもよい。この場合、抵抗変化型メモリを用いたアナログ積和演算器が演算デバイスを実現することになる。
アナログ積和演算器の例を図8に示す。アナログ積和演算器は、例えば、横方向(行方向)の複数の配線WLと、縦方向(列方向)の複数の配線BLと、それらの交点で端子がWLとBLに接続された抵抗素子と、で構成される。図8ではi-1行目からi+1行目までの3行と、j-1行目からj+1行目までの3列の3行3列を示しているが、これは例えばd行n列の一部分のみを示したものである。ここで、d,nはそれぞれ2以上の整数、iは1以上d-2以下の整数、jは1以上n-2以下の整数である。各WLに入力電圧が印加されると、その電圧値と抵抗素子の抵抗値に応じて電流が生成されて、各BLに電流が流れる。同一BL上に生成された電流は加算され、出力yとなる。これにより、d行の各行に印加される電圧値をd次元ベクトル、d行n列の抵抗素子の抵抗値の逆数(コンダクタンス)を(n,d)Tの行列としたときに、ベクトル行列積に対応する処理が実行される。
なお、本実施形態の演算デバイス、本実施形態の演算デバイスを含む計算機システム、及び、本実施形態の演算方法を記憶する記憶媒体は、スマートフォン、携帯電話、パーソナルコンピュータ、デジタルカメラ、車載カメラ、監視カメラ、セキュリティシステム、AI機器、システムのライブラリ(データベース)、及び、人工衛星などに適用され得る。
上述の説明において、本実施形態の演算デバイス、計算機システム、及び演算方法が、人間の言語(自然言語)を機械で処理する自然言語処理にかかる計算機システム1におけるニューラルネットワークに適用された例が示されている。但し、本実施形態の演算デバイス及び演算方法は、ニューラルネットワークを含む様々な計算機システム、及び、ニューラルネットワークによる計算処理を実行する様々なデータ処理方法に、適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 計算機システム
70 メモリデバイス、保存部
99 メモリデバイス、保存部
100 ニューラルネットワーク
110 演算デバイス
1103 第1計算部
1104 選択部
1105 第2計算部
70 メモリデバイス、保存部
99 メモリデバイス、保存部
100 ニューラルネットワーク
110 演算デバイス
1103 第1計算部
1104 選択部
1105 第2計算部
Claims (7)
- ニューラルネットワークに関する演算を実行する演算デバイスにおいて、
第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算する第1計算部と、
前記第1計算部における前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択する選択部と、
前記第1ベクトルと、前記選択部で選択された複数の第3ベクトルとの類似度を計算する第2計算部と、
を備える演算デバイス。 - 前記第1計算部は、類似度の計算を前記第1ベクトル及び前記複数の第2ベクトルのいずれか又は両方を低精度化し、前記低精度化したベクトルを用いて内積計算を実行することにより前記類似度を近似的に計算する、
請求項1に記載の演算デバイス。 - 前記第1計算部は、抵抗素子に電圧を印加することで、抵抗値と電圧値に応じた電流を生成し、その電流を加算する方法によって積和演算を実行するアナログ積和演算器を利用して、類似度を近似的に計算する、
請求項1に記載の演算デバイス。 - 前記複数の第2ベクトルのデータを保存する保存部を更に備え、
前記選択部は、前記類似度が閾値以上に大きくなる前記第3ベクトルを複数選択し、選択された複数の前記第3ベクトルに対応するデータを保存部から読み出し、
前記第2計算部は、読み出されたキーデータを利用して、前記第1ベクトルとの類似度を計算する、
請求項1ないし3の何れか1項に記載の演算デバイス。 - 請求項1ないし4の何れか一項に記載の演算デバイスと、
前記演算デバイスが演算するデータを記憶するメモリデバイスと、
を備える計算機システム。 - ニューラルネットワークに関する演算を実行する演算デバイスにおける演算方法であって、
第1ベクトルと、複数の第2ベクトルそれぞれとの間の類似度を近似的に計算することと、
前記類似度の計算の結果、前記複数の第2ベクトルのうち前記類似度が閾値以上のベクトルである第3ベクトルを複数選択することと、
前記第1ベクトルと、前記選択された複数の第3ベクトルとの類似度を計算することと、
を含む演算方法。 - 前記計算することは、類似度の計算を前記第1ベクトル及び前記複数の第2ベクトルのいずれか又は両方を低精度化し、前記低精度化したベクトルを用いて内積計算を実行することにより前記類似度を近似的に計算することを含む、
請求項6に記載の演算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020155200A JP2022049141A (ja) | 2020-09-16 | 2020-09-16 | 演算デバイス、計算機システム、及び演算方法 |
US17/195,775 US20220083848A1 (en) | 2020-09-16 | 2021-03-09 | Arithmetic device, computer system, and arithmetic method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020155200A JP2022049141A (ja) | 2020-09-16 | 2020-09-16 | 演算デバイス、計算機システム、及び演算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022049141A true JP2022049141A (ja) | 2022-03-29 |
Family
ID=80627799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020155200A Pending JP2022049141A (ja) | 2020-09-16 | 2020-09-16 | 演算デバイス、計算機システム、及び演算方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220083848A1 (ja) |
JP (1) | JP2022049141A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102023107316A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
DE102023107307A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
DE102023107303A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
-
2020
- 2020-09-16 JP JP2020155200A patent/JP2022049141A/ja active Pending
-
2021
- 2021-03-09 US US17/195,775 patent/US20220083848A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102023107316A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
DE102023107307A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
DE102023107303A1 (de) | 2022-03-24 | 2023-09-28 | Mitutoyo Corporation | Innendurchmesser-messeinheit, schwimmgelenkmechanismuseinheit und messeinheit |
Also Published As
Publication number | Publication date |
---|---|
US20220083848A1 (en) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593658B2 (en) | Processing method and device | |
US20220083848A1 (en) | Arithmetic device, computer system, and arithmetic method | |
CN105719001B (zh) | 使用散列的神经网络中的大规模分类 | |
EP3295381B1 (en) | Augmenting neural networks with sparsely-accessed external memory | |
CN110362723B (zh) | 一种题目特征表示方法、装置及存储介质 | |
US11915129B2 (en) | Method and system for table retrieval using multimodal deep co-learning with helper query-dependent and query-independent relevance labels | |
US9852177B1 (en) | System and method for generating automated response to an input query received from a user in a human-machine interaction environment | |
CN111309878B (zh) | 检索式问答方法、模型训练方法、服务器及存储介质 | |
WO2020005599A1 (en) | Trend prediction based on neural network | |
CN115795065A (zh) | 基于带权哈希码的多媒体数据跨模态检索方法及系统 | |
Rezaei Ravari et al. | ML-CK-ELM: An efficient multi-layer extreme learning machine using combined kernels for multi-label classification | |
KR20190103011A (ko) | 거리 기반 딥 러닝 | |
CN110555099B (zh) | 计算机执行的、利用神经网络进行语言处理的方法及装置 | |
CN109582911B (zh) | 用于实行卷积的计算装置及实行卷积的计算方法 | |
CN116401522A (zh) | 一种金融服务动态化推荐方法和装置 | |
CN111788582A (zh) | 电子设备及其控制方法 | |
CN114819140A (zh) | 模型剪枝方法、装置和计算机设备 | |
CN113569130A (zh) | 内容推荐方法、装置、设备及可读存储介质 | |
WO2021218234A1 (en) | Method and device for image search, electronic device, and non-transitory computer-readable storage medium | |
CN113343666B (zh) | 评分的置信度的确定方法、装置、设备及存储介质 | |
Zeng et al. | Compressing deep neural network for facial landmarks detection | |
CN113761934B (zh) | 一种基于自注意力机制的词向量表示方法及自注意力模型 | |
Dong et al. | An optimization method for pruning rates of each layer in CNN based on the GA-SMSM | |
EP4369258A1 (en) | Systems and methods for finding nearest neighbors | |
US20230161557A1 (en) | Compute-in-memory devices and methods of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240402 |