JP6489295B1 - ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム - Google Patents

ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム Download PDF

Info

Publication number
JP6489295B1
JP6489295B1 JP2018561066A JP2018561066A JP6489295B1 JP 6489295 B1 JP6489295 B1 JP 6489295B1 JP 2018561066 A JP2018561066 A JP 2018561066A JP 2018561066 A JP2018561066 A JP 2018561066A JP 6489295 B1 JP6489295 B1 JP 6489295B1
Authority
JP
Japan
Prior art keywords
signal
array
input
output
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018561066A
Other languages
English (en)
Other versions
JPWO2019087500A1 (ja
Inventor
幸夫 寺▲崎▼
幸夫 寺▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority claimed from PCT/JP2018/029208 external-priority patent/WO2019087500A1/ja
Application granted granted Critical
Publication of JP6489295B1 publication Critical patent/JP6489295B1/ja
Publication of JPWO2019087500A1 publication Critical patent/JPWO2019087500A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

アレイ装置(1)は、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対してニューロモルフィック素子に応じた処理を行った結果の第1の信号を出力する第1のアレイ領域と、第1のアレイ領域から出力された第1の信号または第1の信号が所定の演算部に入力された場合に出力される第2の信号を保持し、保持された第1の信号または第2の信号を第1のアレイ領域に入力させることが可能な保持部(27)と、を備える。

Description

本発明は、ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステムに関する。
本願は、2017年11月2日に、日本に出願された特願2017−213195号に基づき優先権を主張し、その内容をここに援用する。
従来から、ニューラルネットワークの技術が検討されている(例えば、特許文献1−3参照。)。
ニューラルネットワークの技術を用いることで、高度な情報の識別あるいは分類を行うことが可能である。このようなニューラルネットワークの技術は、例えば、深層学習、医療、ヘルスケア、金融、マーケティング、認証、セキュリティなどの広い分野で実用化されている。
また、再帰(Recurrent)型のニューラルネットワークの技術が検討されている。
再帰型のニューラルネットワークでは、多層パーセプトトロンのようなニューラルネットワークの隠れ層が、後段層(例えば、出力層)への結合以外に、隠れ層自体の入力に再帰的に結合する層(再帰層)を有する。再帰層の重みは、例えば、隠れ層のすべてのユニット同士の総当たりの組み合わせになる。
再帰層の重みの学習アルゴリズム等の研究も広範に進められており、例えば、BPTT(Back Propagation Through Time)などが知られている。
ここで、再帰層は、時間的(あるいは、空間的)な遅れの成分を扱うことになり、メモリと同様な機能を実現すると捉えることも可能である。
上述までの単純な再帰層に加えて、メモリ・ゲート機構をもった構成にすると、長短期可塑性の記憶が可能なLSTM(Long Short Term Memory)になる。つまり、再帰層によって、現在の時刻tの情報に加えて、それよりも長い過去の時刻(例えば、時刻(t−1)、時刻(t−2)、・・・)の情報を結び付けた学習機能を実現することができる。
ここで、再帰型のニューラルネットワークとしては、再帰的な様々な構成を有する広い範囲の技術が含まれてもよい。
再帰型のニューラルネットワークの実装手法として、例えば、LSTM以外にも、reservoir、あるいはElmanネットなどが提案されている。
再帰型のニューラルネットワークでは、再帰的な要素を有することから、時間的(あるいは、空間的)な前後関係を使用して識別情報を取得することが可能である。このため、再帰型のニューラルネットワークは、連続的な信号から高度な情報を抽出する場合に有効である。
再帰型のニューラルネットワークは、例えば、時系列的な信号について、識別、予測、異常検知、あるいは他の解析に適しており、具体例として、センサ等の時系列信号の非線形フィルタ、単語の前後関係から文脈の理解あるいは推定を行う技術、ノイズのなかから情報を抽出する技術、翻訳機などの自然言語処理の技術、人工知能(AI:Artificial Intelligence)の技術など、様々な分野で応用が期待されている。
近年、アナログ的にコンダクタンス(抵抗の逆数)が変化するニューロモルフィック(Neuromorphic)素子を利用して、積和演算を低電力で高速に実行することが可能な新たな演算機構が研究されている。このような演算機構は、ニューラルネットワークに応用することができる。
しかしながら、ニューロモルフィック素子を用いて再帰型のニューラルネットワークを構成する場合、ニューロモルフィック素子をアレイ状に接続するとともに、再帰的なメカニズムを導入する必要がある。また、再帰型のニューラルネットワークにおける識別速度を向上させるためには、時間軸の処理に適した物理アレイの構成、および物理アレイへのマッピングを適切に設計する必要がある。
なお、再帰型のニューラルネットワーク自体は、従前から提唱されてきた仕組みであるが、他のニューラルネットワークと同様に、膨大な計算資源を消費することから、数年前までは学術研究の領域を超えることはなかった。しかしながら、CMOS(Complementary Metal Oxide Semiconductor)のスケーリング、GPU(Graphics Processing Unit)などのハードウェアの性能が格段に改善され、昨今GPGPU(General−Purpose Computing on Graphics Processing Units)あるいはCPU(Central Processing Unit)を用いた実用化が主にコンボリューショナルニューラルネットワーク(CNN)あるいはディープニューラルネットワーク(DNN)などの分野で進んでいる。
例えば、特許文献1には、GPGPUなどに、再帰型のニューラルネットワークシステムを実行するための要求資源を最適にマッピングする手法が開示されている。
特許文献1に記載された「マルチコア最適化リカレントニューラルネットワーク用のシステムおよび方法」では、リカレント型(再帰型)のニューラルネットワークを実行するために必要なリソースを現代のプロセッサのリソースにマッピングする手法について開示されている。具体的には、ALU(Arithmetic and Logic Unit)およびメモリなどから構成されるマイクロプロセッサの多並列構成であるマルチバルク同期並列(MBSP)を使用してリカレント型(再帰型)のニューラルネットワークを構成すること、および、結合密度あるいは帯域が異なるハードウェアモジュールで時間的な再帰の信号を効率的にマッピングすることで、ロードバランシング効果を得ることが図られている。
特開2017−107568号公報 特表2017−516192号公報 特開平7−84974号公報
上述のように、従来では、コンピュータを用いて再帰型のニューラルネットワークの計算最適化やロードバランシングなどの研究、応用が進められてきた。しかしながら、膨大な積和演算機構を必要とするため、大規模なプロセッサやGPGPUなどのデバイスを必要とした。また、GPGPUやプロセッサなどは、HW(ハードウェア)的に固定した構造をもつため、ニューラルネットワークの構造を変えて試行するなどの最適化などに用いることは難しかった。
また、再帰型の演算は、例えば、ニューラルネットワーク以外の分野で使用される可能性もあり、この場合においても、改良が期待される。
本発明は、このような事情を考慮してなされたもので、ニューロモルフィック素子を用いて再帰型の演算を行うことができるニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステムを提供することを課題とする。
本発明の一態様は、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対して前記ニューロモルフィック素子に応じた処理を行った結果の第1の信号を出力する第1のアレイ領域と、前記第1のアレイ領域から出力された前記第1の信号または前記第1の信号が所定の演算部に入力された場合に出力される第2の信号を保持し、保持された前記第1の信号または前記第2の信号を前記第1のアレイ領域に入力させることが可能な保持部と、を備えるアレイ装置である。
本発明の一態様は、アレイ装置において、前記保持部は、前記第1の信号または前記第2の信号に応じた電流を蓄積する容量性素子と、前記容量性素子に対する充放電のスイッチングを行うスイッチング回路と、を有する。
本発明の一態様は、アレイ装置において、前記保持部は、前記第1の信号または前記第2の信号に応じた電流をデジタル値に変換した後のデータを保持する。
本発明の一態様は、アレイ装置において、前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号は、前記第1のアレイ領域に入力される他の信号と同期させられる。
本発明の一態様は、アレイ装置において、前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と、前記第1のアレイ領域に入力される前記他の信号は、いずれも、離散時間単位のデータであり、前記他の信号は、前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と比べて、時間的に後の信号である。
本発明の一態様は、アレイ装置において、前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と、前記第1のアレイ領域に入力される前記他の信号は、同一の配線を介して出力される。
本発明の一態様は、アレイ装置において、前記第1のアレイ領域は、共通の配線を含む複数の異なる領域を有し、前記第1の信号として複数の前記領域から信号を出力し、前記保持部は、前記第1のアレイ領域が有する複数の前記領域から出力された信号が前記演算部に入力された場合に出力される前記第2の信号を保持し、保持された前記第2の信号を前記第1のアレイ領域が有する複数の前記領域のうちの1以上に入力させることが可能である。
本発明の一態様は、以上のようないずれかのアレイ装置を含み、ニューラルネットワークの処理を行うニューラルネットワークシステムである。
本発明の一態様によれば、ニューロモルフィック素子を用いて再帰型の演算を行うことができる。
本発明の実施形態(第1実施形態)に係るアレイ装置の概略的な構成を示す図である。 本発明の実施形態(第1実施形態)に係るアレイ装置における概略的な処理を説明するための図である。 本発明の実施形態(第2実施形態)に係るアレイ装置の概略的な構成を示す図である。 本発明の実施形態(第3実施形態)に係るニューラルネットワークシステムの概略的な構成を示す図である。 本発明の実施形態(第4実施形態)に係るアレイ装置の概略的な構成を示す図である。 本発明の実施形態(第5実施形態)に係るニューロモルフィック素子の概略的な構成を示す図である。 本発明の実施形態(第6実施形態)に係る保持機構の概略的な構成を示す図である。 本発明の実施形態(第7実施形態)に係る複数のアレイで共通化された配線の概略的な構成を示す図である。 再帰型のニューラルネットワークシステムにおけるアレイユニットの概念的な構成を示すブロック図である。 再帰型のニューラルネットワークシステムにおけるアレイユニットでの信号の流れの概略を示すブロック図である。
以下、図面を参照し、本発明の実施形態について説明する。
[実施形態における用語の定義]
以下では、説明の便宜上、「アレイ」、「アレイ領域」、「アレイユニット」、「アレイシステム」という用語を使い分ける。
本実施形態では、「アレイ」は、物理的に独立した個々の集積素子群のことを表し、つまり、単体の集積素子群のことを表す。
本実施形態では、「アレイ領域」は、アレイの領域のことを表し、例えば、アレイが有する領域のすべてであってもよく、あるいは、アレイが有する領域の一部であってもよい。例えば、アレイは、当該アレイの領域が複数に分割されて、それぞれの分割領域(分割された領域)ごとに別々に使用されてもよい。また、2個以上のアレイ領域がある場合、例えば、これら2個以上のアレイ領域が同一のアレイの分割領域である場合があってもよく、あるいは、これら2個以上のアレイ領域が異なる2個以上のアレイのそれぞれの領域である場合があってもよい。
本実施形態では、「アレイユニット」は、ニューラルネットワークの一層分を実現するためのアレイと他の回路を含む部分(基本機能単位)のことを表す。当該他の回路は、例えば、入力のための回路、出力のための回路、クロックの回路、活性化関数回路などのうちの1以上を含んでもよい。
本実施形態では、「アレイシステム」は、複数のアレイユニットを含んで構成されたシステムのことを表し、例えば、ニューラルネットワークの識別器などを実現することが可能なシステムの全体を表す。
また、本実施形態では、「アレイ装置」は、アレイを含む任意の装置のことを表し、例えば、アレイであってもよく、アレイユニットであってもよく、あるいは、アレイシステムであってもよい。
また、本実施形態では、信号がアナログ信号であるかデジタル信号であるかが明示されないところでは、アナログ信号が用いられてもよく、あるいは、デジタル信号(デジタル値)が用いられてもよい。
[再帰型のニューラルネットワークシステムの概要]
まず、図9および図10を参照して、再帰型のニューラルネットワークシステムについて説明する。
図9は、再帰型のニューラルネットワークシステムにおけるアレイユニット1001の概念的な構成を示すブロック図である。
図9の例では、3層のパーセプトロンを用いた例を示す。
アレイユニット1001は、n(nは1以上の整数)個の信号を入力し、r(rは1以上の整数)個の信号を出力する。
アレイユニット1001は、入力層に、n個のユニット1011−1〜1011−nと、所定値を出力する1個のバイアス項のユニット1011−0を備える。
アレイユニット1001は、順方向結合に関し、隠れ層に、m(mは1以上の整数)個のユニット1021−1〜1021−mと、所定値を出力する1個のバイアス項のユニット1021−0を備える。
アレイユニット1001は、出力層に、r(rは1以上の整数)個のユニット1031−1〜1031−rを備える。
アレイユニット1001は、再帰結合に関し、隠れ層に、s(sは1以上の整数)個のユニット1111−1〜1111−sと、所定値を出力する1個のバイアス項のユニット1111−0を備える。
アレイユニット1001は、再帰結合に関し、再帰層(記憶層)に、(s+1)個のユニット1121−0〜1121−sを備える。
図9の例では、i=1〜nとして、順方向結合における入力層における入力信号(入力値)xを示してある。また、i=0である場合は、値xは所定値となる。
また、図9の例では、j=1〜mとして、順方向結合における隠れ層における信号(活性化関数に代入する値)uを示してあり、また、j=1〜mとして、当該信号が活性化関数に代入された結果の値yを示してある。なお、活性化関数は、必ずしも用いられなくてもよい。また、j=0である場合は、値yは所定値となる。
また、図9の例では、k=1〜rとして、順方向結合における出力層における信号(活性化関数に代入する値)vを示してあり、また、k=1〜rとして、当該信号が活性化関数に代入された結果の値zを示してある。なお、活性化関数は、必ずしも用いられなくてもよい。
また、図9の例では、d=1〜sとして、再帰結合における隠れ層における信号(活性化関数に代入する値)uを示してあり、また、d=1〜sとして、当該信号が活性化関数に代入された結果の値yを示してある。なお、活性化関数は、必ずしも用いられなくてもよい。また、d=0である場合は、値yは所定値となる。
また、図9の例では、e=0〜sとして、再帰結合における再帰層における信号(活性化関数に代入する値)hを示してあり、また、e=0〜sとして、当該信号が活性化関数に代入された結果の値qを示してある。なお、活性化関数は、必ずしも用いられなくてもよい。
ここで、本実施形態では、順方向結合における隠れ層のユニットの数である(m+1)と、再帰結合における隠れ層のユニットの数である(s+1)とが等しいとし、つまり、s=mである場合を説明する。他の例として、sとmとが等しくない構成が用いられてもよく、例えば、sがmよりも小さい値である構成が用いられてもよい。
入力層におけるそれぞれのユニット1011−1〜1011−nは、n個の入力信号(入力値)のそれぞれを入力して出力する。
また、入力層におけるユニット1011−0は、所定の信号(値)を出力する。
隠れ層におけるそれぞれのユニット1021−1〜1021−mは、入力層における(n+1)個のユニット1011−0〜1011−nからの出力信号(出力値)について所定の重みを用いて積和演算した結果の信号(値)と再帰層におけるs個のユニット1121−1〜1121−sのそれぞれからの出力信号(出力値)とを加算し、その加算結果の信号(値)をユニット1021−1〜1021−mの各々の活性化関数に入力することで得られる出力値を、出力層におけるそれぞれのユニット1031−1〜1031−rに出力する。この積和演算は、入力層の出力から隠れ層の入力までの間で行われる。重みは、例えば、入力層におけるそれぞれのユニット1011−0〜1011−nごとに異なってもよく、また、隠れ層におけるそれぞれのユニット1021−1〜1021−mごとに異なってもよい。
また、隠れ層におけるユニット1021−0は、所定の信号(値)と、再帰層におけるユニット1121−0からの出力信号(出力値)とを加算した結果の信号(値)をユニット1021−0の活性化関数に入力することで得られる出力値を、出力する。
出力層におけるそれぞれのユニット1031−1〜1031−rは、隠れ層における(m+1)個のユニット1021−0〜1021−mからの出力信号(出力値)について所定の重みを用いて積和演算した結果の信号(値)をユニット1031−1〜1031−rの各々の活性化関数に入力することで得られる出力値を、出力する。この積和演算は、隠れ層の出力から出力層の出力までの間で行われる。重みは、例えば、隠れ層におけるそれぞれのユニット1021−0〜1021−mごとに異なってもよく、また、出力層におけるそれぞれのユニット1031−1〜1031−rごとに異なってもよい。
ここで、一例として、再帰結合における隠れ層のユニット1111−0〜1111−sの出力信号(出力値)としては、順方向結合における隠れ層のユニット1021−0〜1021−mの出力信号(出力値)を複製(コピー)したものが用いられてもよい。他の例として、再帰結合における隠れ層のユニット1111−0〜1111−sと、順方向結合における隠れ層のユニット1021−0〜1021−mとが一部または全部で共通化されてもよく、特に、本実施形態のようにs=mであるときは全部のユニットを共通化することが可能である。
再帰層におけるそれぞれのユニット1121−0〜1121−sは、再帰結合における隠れ層における(s+1)個のユニット1111−0〜1111−sからの出力信号(出力値)について所定の重みを用いて積和演算した結果の信号(値)をユニット1121−0〜1121−sの各々の活性化関数に入力することで得られる出力値を、順方向結合における隠れ層におけるユニット1021−0〜1021−sのそれぞれに出力する。この積和演算は、再帰結合における隠れ層の出力から再帰層の出力までの間で行われる。重みは、例えば、再帰結合における隠れ層のそれぞれのユニット1111−0〜1111−sごとに異なってもよく、また、再帰層におけるそれぞれのユニット1121−0〜1121−sごとに異なってもよい。
ここで、再帰層におけるそれぞれのユニット1121−0〜1121−sからの出力信号は、再帰の信号として、順方向結合における隠れ層のそれぞれのユニット1021−0〜1021−mに出力される。
なお、本実施形態では、順方向結合において、前段の層におけるそれぞれのユニットから後段の層におけるすべてのユニット(固定値とされるバイアス項のユニットを除く。)へ信号を出力するニューラルネットワークの構成を示すが、他の構成が用いられてもよい。図9の例では、順方向結合において、入力層におけるそれぞれのユニット1011−0〜1011−nから隠れ層におけるm個のユニット1021−1〜1021−mのすべてへ信号を出力しており、また、隠れ層におけるそれぞれのユニット1021−0〜1021−mから出力層におけるr個のユニット1031−1〜1031−rのすべてへ信号を出力している。
また、本実施形態では、再帰結合において、前段の層におけるそれぞれのユニットから後段の層におけるすべてのユニット(固定値とされるバイアス項のユニットを除く。)へ信号を出力するニューラルネットワークの構成を示すが、他の構成が用いられてもよい。図9の例では、再帰結合における隠れ層におけるそれぞれのユニット1111−0〜1111−sから再帰層における(s+1)個のユニット1121−0〜1121−sのすべてへ信号を出力している。
ここで、ニューラルネットワークのアレイユニット1001では、様々なデータを処理してもよい。
例えば、アレイユニット1001は、画像のデータを入力し、入力された画像のデータの識別結果の情報(識別結果のデータ)を出力してもよい。
一例として、画像は、784個の画素(0番目〜783番目の画素)を有する画像であってもよい。この場合、当該画像に対応する入力層のユニット数(n)は784個となる。
また、図9の例では、識別結果の情報は、出力層から出力されるr個の情報となる。
なお、複数の層を有するニューラルネットワークが構成される場合、それぞれの層間(例えば、1−2層間、2−3層間)に対応する重みは、例えば、それぞれの層間ごとに別々のアレイ(例えば、複数のニューロモルフィック素子の並びを層間ごとに持つアレイ)を用いて構成されてもよく、あるいは、1組のアレイ(例えば、複数のニューロモルフィック素子の並びを持つ1組のアレイ)が、時間差(時分割)などによって仮想的に分割されて、2つ以上の層間に対応する重みを実現する構成が用いられてもよい。さらには、1組のアレイを空間的に複数のサブアレイに分割して2つ以上の層間に対応する重みを実現する構成が用いられてもよい。同様に、1個のニューロモルフィック素子は、例えば、1個の重みに対応して用いられてもよく、あるいは、時間差(時分割)などによって仮想的に分割されて、2個以上の重みに対応して用いられてもよい。
図10は、再帰型のニューラルネットワークシステムにおけるアレイユニット2001での信号の流れの概略を示すブロック図である。
アレイユニット2001は、概略的には、入力層2011と、隠れ層2012と、出力層2013と、再帰層2021を備える。
アレイユニット2001では、順方向結合において、入力値について入力層2011から隠れ層2012までの間に重み付け(1層目の重み付け)および総和が行われ、当該総和の結果と再帰層2021からの出力値とが加算された結果が所定の活性化関数f()に入力され、当該活性化関数f()からの出力値が隠れ層2012から出力される。また、順方向結合において、隠れ層2012からの出力値について隠れ層2012から出力層2013までの間に重み付け(2層目の重み付け)および総和が行われ、当該総和の結果が所定の活性化関数g()に入力され、当該活性化関数g()からの出力値が出力層2013から出力される。また、再帰結合において、順方向結合における隠れ層2012からの出力値に基づいて再帰層2021からの出力値が得られて、当該出力値が順方向結合における隠れ層2012に戻される。
なお、順方向結合における隠れ層2012における各ユニットの活性化関数f()は、例えば、当該各ユニットごとに異なってもよく、あるいは、2個以上のユニットで同一であってもよい。
同様に、出力層2013における各ユニットの活性化関数g()は、例えば、当該各ユニットごとに異なってもよく、2個以上のユニットで同一であってもよい。
ここで、アレイユニット2001において、説明の便宜上、入力層2011および1層目の重み付けの部分を入力重み付け部3021と呼び、再帰層2021の部分を再帰層部3022と呼び、順方向結合における隠れ層2012における活性化関数f()の部分を活性化関数部3023と呼ぶ。
(式1)には、順方向結合における隠れ層2012における各ユニットからの出力値y を示してある。u は、活性化関数部3023における活性化関数f()への入力値であり、順方向結合における入力重み付け部3021からの値Q1と、再帰層部3022からの値Q2との和である。
Figure 0006489295
(式1)において、x は、時刻tにおいて、入力層のi(i=0、1、2、・・・、n)番目のユニット1011−iから出力される値を表す。また、w(L) j,iは、第L層(ここでは、L=1とする。)の重み付けにおいて、入力層のi(i=0、1、2、・・・、n)番目のユニット1011−iから出力される値が隠れ層のj番目のユニット1021−jに入力されるときに乗算される重みの値を表す。また、w(r) j,j’は、再帰層のj’(=e)番目のユニット1121−j’から出力される値が隠れ層のj番目のユニット1021−jに入力されるときに乗算される重みの値を表す。Q1に関し、Σはiについての総和を表す。Q2に関し、Σはj’についての総和を表す。u は、時刻tにおいて、隠れ層のj番目のユニット1021−jにおける積和演算の結果の値の和(Q1+Q2)を表す。f(u )は、u を所定の活性化関数f()に代入したときに得られる結果の値を表す。当該値に相当するy は、時刻tにおいて、隠れ層のj番目のユニット1021−jから出力される値を表す。
ここで、説明の便宜上、時刻tは、1ずつ進んでいくと想定している。この場合、例えば、1ずつ進む時刻tの離散的な間隔がクロックの間隔であると捉えることが可能である。また、このような時刻tごとのデータを、離散時間単位(離散的な時間の単位)のデータと捉えることも可能である。
また、再帰型の構成が用いられる場合、処理される信号としては、例えば、時間的な前後で関係性を有する信号が用いられる。
また、再帰型の構成で用いられる再帰の情報としては、任意の時間だけ遅延した情報が用いられてもよく、例えば、新たな時刻tの信号に対して、任意の時間Td(Td>0)遅延した時刻(t−Td)の情報が、再帰の情報として用いられてもよい。
また、再帰型の構成で用いられる再帰の情報としては、例えば、一定の時間(1種類の時間)遅延した情報が用いられてもよく、あるいは、複数の異なる時間(2種類以上の異なる時間)遅延した情報が用いられてもよい。
(第1実施形態)
図1は、本発明の実施形態(第1実施形態)に係るアレイ装置1の概略的な構成を示す図である。
本実施形態では、アレイ装置1は、ニューラルネットワークにおける第L層のアレイユニットに相当する。本実施形態では、L=1である場合を説明するが、Lが2以上である場合についても同様である。
アレイ装置1は、入力インタフェース(入力IF)21と、変換回路22と、重みアレイ23と、再帰重みアレイ24と、検出回路25と、活性化関数回路(ニューロン回路)26と、保持機構27と、同期回路28と、出力バッファ29を備える。
これらの配置の一例が、図1に示される配置である。
ここでは、説明の便宜上、長方形(正方形でもよい。)の一辺(および対向する辺)の方向を縦方向と呼び、縦方向の2つの方向を上下の方向とし、それに対して垂直な一辺(および対向する辺)の方向を横方向と呼び、横方向の2つの方向を左右の方向として、説明する。
図1の例に係るアレイ装置1では、上側の入力インタフェース21と下側の同期回路28とが縦方向に並んで配置されており、これらに対して変換回路22が横方向の右側に並んで配置されている。また、上側の重みアレイ23と下側の再帰重みアレイ24とが縦方向に並んで配置されており、これらは変換回路22の右側に並んで配置されている。また、同期回路28および変換回路22の下側に保持機構27が並んで配置されている。また、再帰重みアレイ24の下側に、検出回路25、活性化関数回路26、出力バッファ29が順番に並んで配置されている。
なお、図1の例に係る配置は、概略的なものである。また、図1の例に限られず、様々な配置が用いられてもよい。
入力インタフェース21は、外部から信号(例えば、データの値)を入力するインタフェースの回路である。そして、入力インタフェース21は、入力された信号を変換回路22に出力する。第1層においては、入力インタフェース21は、例えば、ニューラルネットワークの外部から当該ニューラルネットワークに入力されるデータの信号を入力する。
なお、第2層以降では、入力インタフェース21は、前段の層から出力されるデータの信号を入力する。
変換回路22は、入力インタフェース21から入力された信号を、重みアレイ23で処理される信号へ変換する。そして、変換回路22は、変換された信号を重みアレイ23に出力する。
また、変換回路22は、同期回路28から入力された信号を、再帰重みアレイ24で処理される信号へ変換する。そして、変換回路22は、変換された信号を再帰重みアレイ24に出力する。
重みアレイ23は、順方向結合における第L層(本実施形態では、L=1)の重みによる積和演算を行うアレイである。重みアレイ23は、変換回路22から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、重みアレイ23は、積和演算の結果の信号を再帰重みアレイ24に出力する。
説明の便宜上、図9の例を用いると、第1層の重みアレイ23は、図9に示される順方向結合における入力層と隠れ層との間における積和演算を行うアレイに相当する。
再帰重みアレイ24は、再帰結合における再帰層の重みによる積和演算を行うアレイである。再帰重みアレイ24は、変換回路22から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行い、さらに、当該積和演算の結果の信号と重みアレイ23から入力された積和演算の結果の信号とを加算する。そして、再帰重みアレイ24は、このような加算の結果の信号を検出回路25に出力する。
説明の便宜上、図9の例を用いると、再帰重みアレイ24は、図9に示される再帰結合における隠れ層と再帰層との間における積和演算、必要な場合には再帰層からの出力信号の演算(例えば、再帰結合において活性化関数が用いられる場合にはその演算)、および上記のような順方向結合における情報と再帰結合における情報との加算を行うアレイに相当する。
ここで、重みアレイ23および再帰重みアレイ24は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、重みアレイ23および再帰重みアレイ24は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みの値とを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
検出回路25は、再帰重みアレイ24から出力された信号を入力し、入力された信号を、活性化関数回路26で処理される信号へ変換する。そして、検出回路25は、変換された信号を活性化関数回路26に出力する。
なお、検出回路25は、一例として、デジタルの信号(デジタルの値)を処理する。
活性化関数回路26は、検出回路25から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を保持機構27と出力バッファ29に出力する。
ここで、本実施形態に係るアレイ装置1では、活性化関数回路26を備える構成を示すが、他の構成例として、活性化関数回路26を備えない構成が用いられてもよく、この場合、検出回路25から出力される信号が保持機構27と出力バッファ29に出力される。
保持機構27は、活性化関数回路26から入力された信号(その値)を保持(記憶)する。そして、保持機構27は、同期回路28により制御されて、保持された信号(その値)を同期回路28に出力する。
ここで、保持機構27は、例えば、信号(その値)を保持(記憶)するレジスタなどのメモリを用いて構成されてもよい。
また、保持機構27は、例えば、保持されてから読み出される信号(その値)について、任意の時間の遅延を与えてもよく、本実施形態では、1単位の時間分の遅延を与える構成となっている。
同期回路28は、保持機構27を制御し、保持機構27により保持された信号(その値)を読み出して変換回路22に出力する。この場合に、同期回路28は、入力インタフェース21から変換回路22に入力される信号のタイミングと、保持機構27から読み出されて変換回路22に入力される信号のタイミングとが所定のタイミング関係となるように制御する。当該所定のタイミング関係としては、本実施形態では、図9に示されるニューラルネットワークにおける再帰層からの再帰の信号のタイミングが、順方向結合における隠れ層において所定の時間だけ後の信号の情報のタイミングと合うタイミング関係が用いられている。
なお、本実施形態では、保持機構27に記憶された信号(その値)が同期回路28を経由して変換回路22に入力される構成を示したが、他の構成例として、保持機構27に記憶された信号(その値)が同期回路28を経由しないで変換回路22に入力される構成が用いられてもよい。
出力バッファ29は、活性化関数回路26から入力された信号をいったん記憶し、記憶された当該信号を外部に出力する。
ここで、時刻tにおける入力データxに対して出力データyが出力されるとすると、保持機構27から変換回路22に入力される信号yt−1は、当該出力データyが遅延させられた信号となる。本実施形態では、時刻tを1だけ遅延させた信号yt−1が再帰するように構成されている。
なお、本実施形態では、アレイ装置1は、図9に示される順方向結合における隠れ層から出力される信号に相当する信号(活性化関数f()の結果の信号)を出力することができるように構成される。
また、例えば、変換回路22、検出回路25、あるいは、出力バッファ29のうちの1以上の回路が省略されてもよい場合には、該当する回路がアレイ装置1に備えられなくてもよい。
図2は、本発明の実施形態(第1実施形態)に係るアレイ装置1における概略的な処理を説明するための図である。
図2には、図1に示されるアレイ装置1を示してあり、さらに、アレイ装置1に関して3個の処理部(入力重み付け部3011、再帰層部3012、活性化関数部3013)を示してある。
入力重み付け部3011は、入力インタフェース21、変換回路22、および重みアレイ23によって入力信号を処理する部分である。入力重み付け部3011は、(式1)における積和Q1を演算する。
再帰層部3012は、同期回路28、変換回路22、および再帰重みアレイ24によって再帰の信号(再帰された出力データ)を処理する部分である。再帰層部3012は、(式1)における積和Q2を演算する。また、本実施形態では、再帰層部3012は、積和Q1と積和Q2とを加算する機能を有する。
活性化関数部3013は、検出回路25および活性化関数回路26によって活性化関数f()の演算を処理する部分である。活性化関数部3013は、(式1)における、活性化関数f()に(Q1+Q2)を代入したときの結果を演算する。
以上のように、本実施形態に係るアレイ装置1では、ニューロモルフィック素子を用いて再帰型の演算を行うことができる。そして、本実施形態に係るアレイ装置1では、ニューロモルフィック素子を用いて再帰型のニューラルネットワークを簡易に構成することができる。
本実施形態に係るアレイ装置1では、入力側の層(本実施形態では、入力層)の重みと再帰層の重みをマッピングし、再入力機構を備えることで、再帰型のニューラルネットワークの構成単位を実現することが可能である。
本実施形態に係るアレイ装置1では、例えば、ある時刻における信号を処理した積和演算の結果と、それよりも前の信号(時間遅れの信号)を処理した積和演算の結果を、1クロックで取得することが可能である。
なお、本実施形態では、重みアレイ23と再帰重みアレイ24とを別々のアレイで構成したが、他の構成例として、同一のアレイにおける領域を2個以上に分割して、重みアレイ23の機能と再帰重みアレイ24の機能とを同一のアレイにおける別々の領域で構成することも可能である。この場合、例えば、1個のアレイに入力側の層(本実施形態では、入力層)の重みと再帰層の重みをマッピングし、再帰入力機構を備えることにより、例えば、小さいサイズで再帰型のニューラルネットワークの構成単位を実現することが可能になる。
このように、本実施形態では、ニューロモルフィック素子を用いて所定の演算を行うアレイ装置1の基本的な構成あるいは信号処理を実現する。
例えば、本実施形態に係るアレイ装置1では、ニューロモルフィック素子を含むアレイ(重みアレイ23、再帰重みアレイ24)、再帰入力機構、制御機構を備えて、アレイの重みの配置を制御することで、周辺回路を削減すること、あるいは、ネットワークの基本的な構造を単純なアレイを用いて実現することができる。
ここで、例えば、ニューロモルフィック素子を含むアレイの利用が想定されるスタティックなネットワークでは、入力部と出力部とアレイで構成される一面をニューラルネットワークの一つの層間の重みに対応させ、当該アレイを活性化関数回路を介して次段のアレイに接続させることが考えられる。このようなアレイを組み合わせて再帰型のニューラルネットワークを構成する場合、アレイの入出力回路等の周辺回路あるいはアレイ間の配線が増加し、これにより、サイズが増大し、制御回路の設計が複雑になる可能性が考えられる。また、このような場合、複数のアレイなどの回路の同期制御を行うことから、高速化には向かない可能性も考えられる。
このため、理想的には、1個のアレイを使用して、再帰型のニューラルネットワークを構成することが可能な基本単位を構成することができることが望ましい。
本実施形態に係るアレイ装置1では、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対してニューロモルフィック素子に応じた処理を行った結果の第1の信号(本実施形態では、再帰重みアレイ24から出力される信号)を出力する第1のアレイ領域(本実施形態では、再帰重みアレイ24の領域)を備える。また、本実施形態に係るアレイ装置1では、第1のアレイ領域から出力された第1の信号(所定の演算部が用いられない場合)または第1の信号が所定の演算部(本実施形態では、活性化関数回路26)に入力された場合に出力される第2の信号(本実施形態では、活性化関数回路26から出力される信号)を保持し、保持された第1の信号または第2の信号を第1のアレイ領域に入力させることが可能な保持部(本実施形態では、保持機構27)を備える。
このような構成により、本実施形態に係るアレイ装置1では、保持機構27と再入力機構(例えば、同期回路28の機構)により、当該アレイ装置1の内部で再帰の処理が可能であり、例えば、制御を行うことが容易で、拡張性の高い再帰型のニューラルネットワークを構築することが可能である。
ここで、本実施形態に係るアレイ装置1では、第1のアレイ領域は、再帰型のアレイ領域である。また、所定の演算部は、所定の活性化関数による演算を行う。
本実施形態に係るアレイ装置1では、保持部から第1のアレイ領域に入力される第1の信号または第2の信号は、第1のアレイ領域に入力される他の信号(本実施形態では、重みアレイ23から入力される信号であり、アレイ装置1への入力信号に応じた信号)と同期させられる。
本実施形態に係るアレイ装置1では、保持部から第1のアレイ領域に入力される第1の信号または第2の信号と、第1のアレイ領域に入力される他の信号は、いずれも、離散時間単位のデータである。また、他の信号は、保持部から第1のアレイ領域に入力される第1の信号または第2の信号と比べて、時間的に後の信号である。
このような構成により、本実施形態に係るアレイ装置1では、例えば、離散的な信号について、サンプリングと同期したシステムを構築することで、外部回路を少なくすること、アレイで時間的な再入力の仕組みを完結することが可能である。離散的な信号は、任意の信号であってもよく、例えば、任意のセンサにより検出される信号であってもよい。
ここで、本実施形態に係るアレイ装置1では、隠れ層におけるすべてのユニットの出力信号(本実施形態では、活性化関数回路26から出力される信号)が再帰の信号として再帰重みアレイ24に入力される構成を示したが、他の構成例として、隠れ層における一部のユニットの出力信号(本実施形態では、活性化関数回路26から出力される一部の信号)が再帰の信号として再帰重みアレイ24に入力される構成が用いられてもよい。また、例えば、隠れ層における複数のユニットのうちで、ユニットからの出力信号を再帰の信号として再帰重みアレイ24に入力するユニットと、このような再帰を行わないユニットとを切り替えることが可能な構成が用いられてもよい。このような切り替えは、例えば、ユーザにより手動で行われてもよく、あるいは、あらかじめ定められた規則にしたがって制御部(図示せず)により自動で行われてもよい。
このような構成により、アレイ装置1では、再帰機構のなかで一部のユニットからの出力信号のみを再帰させることが可能であり、例えば、アプリケーションの識別に特化した動的な再構成が可能となる。
(第2実施形態)
図3は、本発明の実施形態(第2実施形態)に係るアレイ装置101の概略的な構成を示す図である。
本実施形態では、アレイ装置101は、ニューラルネットワークにおける第L層のアレイユニットに相当する。本実施形態では、L=1である場合を説明するが、Lが2以上である場合についても同様である。
アレイ装置101は、入力インタフェース(入力IF)121と、変換回路122と、重みアレイ131と、再帰重みアレイ132と、検出回路133と、活性化関数回路134と、入力ゲート重みアレイ141と、入力ゲート再帰重みアレイ142と、検出回路143と、活性化関数回路144と、忘却ゲート重みアレイ151と、忘却ゲート再帰重みアレイ152と、検出回路153と、活性化関数回路154と、出力ゲート重みアレイ161と、出力ゲート再帰重みアレイ162と、検出回路163と、活性化関数回路164と、保持機構171と、同期回路172と、出力バッファ173を備える。
出力バッファ173は、演算器181と、演算器182と、演算器183を備える。
なお、本実施形態では、出力バッファ173が演算器181〜183を備える構成としたが、他の構成例として、出力バッファ173と演算器181〜183とが別体である構成が用いられてもよい。
これらの配置の一例が、図3に示される配置である。
ここでは、説明の便宜上、長方形(正方形でもよい。)の一辺(および対向する辺)の方向を縦方向と呼び、縦方向の2つの方向を上下の方向とし、それに対して垂直な一辺(および対向する辺)の方向を横方向と呼び、横方向の2つの方向を左右の方向として、説明する。
図3の例に係るアレイ装置101では、上側の入力インタフェース121と下側の同期回路172とが縦方向に並んで配置されており、これらに対して変換回路122が横方向の右側に並んで配置されている。また、上側から下側へ重みアレイ131と再帰重みアレイ132と検出回路133が縦方向に並んで配置されており、上側から下側へ入力ゲート重みアレイ141と入力ゲート再帰重みアレイ142と検出回路143が縦方向に並んで配置されており、上側から下側へ忘却ゲート重みアレイ151と忘却ゲート再帰重みアレイ152と検出回路153が縦方向に並んで配置されており、上側から下側へ出力ゲート重みアレイ161と出力ゲート再帰重みアレイ162と検出回路163が縦方向に並んで配置されており、これらが変換回路122の右側に順番に横方向に並んで配置されている。また、同期回路172および変換回路122の下側に保持機構171が縦方向に並んで配置されている。また、検出回路133の下側に活性化関数回路134が縦方向に並んで配置されており、検出回路143の下側に活性化関数回路144が縦方向に並んで配置されており、検出回路153の下側に活性化関数回路154が縦方向に並んで配置されており、検出回路163の下側に活性化関数回路164が縦方向に並んで配置されており、これらが保持機構171の右側に順番に横方向に並んで配置されている。また、4個の活性化関数回路134、144、154、164の下側に出力バッファ173が縦方向に並んで配置されている。出力バッファ173において、活性化関数回路144の下側に演算器181が配置されており、活性化関数回路154の下側に演算器182が配置されており、活性化関数回路164の下側に演算器183が配置されている。
なお、図3の例に係る配置は、概略的なものである。また、図3の例に限られず、様々な配置が用いられてもよい。
アレイ装置101は、第1実施形態に係るアレイ装置1と比べて、概略的には、重み付けを行うアレイと再帰のアレイとの組み合わせを複数備えた点で相違している。アレイ装置101では、上記のように説明の便宜上、重み付けを行うアレイと再帰のアレイとの組み合わせが並ぶ方向を縦方向と呼び、このような組み合わせが複数並ぶ方向を横方向と呼ぶと、複数のアレイが縦方向と横方向に面的に並ぶものであると捉えることができる(縦方向と横方向とは逆に定義されてもよい。)。
本実施形態では、一例として、LSTMに適用されたアレイ装置101を示す。
入力インタフェース121は、外部から信号(例えば、データの値)を入力するインタフェースの回路である。第1層においては、入力インタフェース121は、例えば、ニューラルネットワークの外部から当該ニューラルネットワークに入力されるデータの信号を入力する。
なお、第2層以降では、入力インタフェース121は、前段の層から出力されるデータの信号を入力する。
変換回路122は、入力インタフェース121から入力された信号を、重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161で処理される信号へ変換する。そして、変換回路122は、変換された信号を重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161に出力する。
ここで、本実施形態では、重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161のそれぞれで処理される信号は同じであるとする。また、本実施形態では、変換回路122から重みアレイ131に供給される信号は、重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161において、共通の配線を介して伝送される構成となっている。
また、変換回路122は、同期回路172から入力された信号を、再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162で処理される信号へ変換する。そして、変換回路122は、変換された信号を再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162に出力する。
ここで、本実施形態では、再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162のそれぞれで処理される信号は同じであるとする。また、本実施形態では、変換回路122から再帰重みアレイ132に供給される信号は、再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162において、共通の配線を介して伝送される構成となっている。
重みアレイ131は、順方向結合における第L層(本実施形態では、L=1)の重みによる積和演算を行うアレイである。重みアレイ131は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、重みアレイ131は、積和演算の結果の信号を再帰重みアレイ132に出力する。
再帰重みアレイ132は、再帰結合における再帰層の重みによる積和演算を行うアレイである。再帰重みアレイ132は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行い、さらに、当該積和演算の結果の信号と重みアレイ131から入力された積和演算の結果の信号とを加算する。そして、再帰重みアレイ132は、このような加算の結果の信号を検出回路133に出力する。
説明の便宜上、図9の例を用いると、再帰重みアレイ132は、図9に示される再帰結合における隠れ層と再帰層との間における積和演算、必要な場合には再帰層からの出力信号の演算(例えば、再帰結合において活性化関数が用いられる場合にはその演算)、および上記のような順方向結合における情報と再帰結合における情報との加算を行うアレイに相当する。
ここで、重みアレイ131および再帰重みアレイ132は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、重みアレイ131および再帰重みアレイ132は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
入力ゲート重みアレイ141は、LSTMにおける入力ゲートの重みによる積和演算を行うアレイである。入力ゲート重みアレイ141は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、入力ゲート重みアレイ141は、積和演算の結果の信号を入力ゲート再帰重みアレイ142に出力する。
入力ゲート再帰重みアレイ142は、LSTMにおける入力ゲートの再帰層の重みによる積和演算を行うアレイである。入力ゲート再帰重みアレイ142は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行い、さらに、当該積和演算の結果の信号と入力ゲート重みアレイ141から入力された積和演算の結果の信号とを加算する。そして、入力ゲート再帰重みアレイ142は、このような加算の結果の信号を検出回路143に出力する。
入力ゲート再帰重みアレイ142は、入力ゲートに関し、再帰結合における隠れ層と再帰層との間における積和演算、必要な場合には再帰層からの出力信号の演算(例えば、再帰結合において活性化関数が用いられる場合にはその演算)、および上記のような順方向結合における情報と再帰結合における情報との加算を行うアレイに相当する。
ここで、入力ゲート重みアレイ141および入力ゲート再帰重みアレイ142は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、入力ゲート重みアレイ141および入力ゲート再帰重みアレイ142は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
忘却ゲート重みアレイ151は、LSTMにおける忘却ゲートの重みによる積和演算を行うアレイである。忘却ゲート重みアレイ151は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、忘却ゲート重みアレイ151は、積和演算の結果の信号を忘却ゲート再帰重みアレイ152に出力する。
忘却ゲート再帰重みアレイ152は、LSTMにおける忘却ゲートの再帰層の重みによる積和演算を行うアレイである。忘却ゲート再帰重みアレイ152は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行い、さらに、当該積和演算の結果の信号と忘却ゲート重みアレイ151から入力された積和演算の結果の信号とを加算する。そして、忘却ゲート再帰重みアレイ152は、このような加算の結果の信号を検出回路153に出力する。
忘却ゲート再帰重みアレイ152は、忘却ゲートに関し、再帰結合における隠れ層と再帰層との間における積和演算、必要な場合には再帰層からの出力信号の演算(例えば、再帰結合において活性化関数が用いられる場合にはその演算)、および上記のような順方向結合における情報と再帰結合における情報との加算を行うアレイに相当する。
ここで、忘却ゲート重みアレイ151および忘却ゲート再帰重みアレイ152は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、忘却ゲート重みアレイ151および忘却ゲート再帰重みアレイ152は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
出力ゲート重みアレイ161は、LSTMにおける出力ゲートの重みによる積和演算を行うアレイである。出力ゲート重みアレイ161は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、出力ゲート重みアレイ161は、積和演算の結果の信号を出力ゲート再帰重みアレイ162に出力する。
出力ゲート再帰重みアレイ162は、LSTMにおける出力ゲートの再帰層の重みによる積和演算を行うアレイである。出力ゲート再帰重みアレイ162は、変換回路122から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行い、さらに、当該積和演算の結果の信号と出力ゲート重みアレイ161から入力された積和演算の結果の信号とを加算する。そして、出力ゲート再帰重みアレイ162は、このような加算の結果の信号を検出回路163に出力する。
出力ゲート再帰重みアレイ162は、出力ゲートに関し、再帰結合における隠れ層と再帰層との間における積和演算、必要な場合には再帰層からの出力信号の演算(例えば、再帰結合において活性化関数が用いられる場合にはその演算)、および上記のような順方向結合における情報と再帰結合における情報との加算を行うアレイに相当する。
ここで、出力ゲート重みアレイ161および出力ゲート再帰重みアレイ162は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、出力ゲート重みアレイ161および出力ゲート再帰重みアレイ162は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
検出回路133は、再帰重みアレイ132から出力された信号を入力し、入力された信号を、活性化関数回路134で処理される信号へ変換する。そして、検出回路133は、変換された信号を活性化関数回路134に出力する。
検出回路143は、入力ゲート再帰重みアレイ142から出力された信号を入力し、入力された信号を、活性化関数回路144で処理される信号へ変換する。そして、検出回路143は、変換された信号を活性化関数回路144に出力する。
検出回路153は、忘却ゲート再帰重みアレイ152から出力された信号を入力し、入力された信号を、活性化関数回路154で処理される信号へ変換する。そして、検出回路153は、変換された信号を活性化関数回路154に出力する。
検出回路163は、出力ゲート再帰重みアレイ162から出力された信号を入力し、入力された信号を、活性化関数回路164で処理される信号へ変換する。そして、検出回路163は、変換された信号を活性化関数回路164に出力する。
なお、それぞれの検出回路133、143、153、163は、一例として、デジタルの信号(デジタルの値)を処理する。
活性化関数回路134は、検出回路133から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力バッファ173に出力する。
活性化関数回路144は、検出回路143から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力バッファ173に出力する。
活性化関数回路154は、検出回路153から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力バッファ173に出力する。
活性化関数回路164は、検出回路163から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力バッファ173に出力する。
なお、活性化関数f()は、それぞれの活性化関数回路134、144、154、164ごとに異なってもよい。
ここで、本実施形態に係るアレイ装置101では、活性化関数回路134、144、154、164を備える構成を示すが、他の構成例として、活性化関数回路134、144、154、164を備えない構成が用いられてもよく、この場合、検出回路133、143、153、163から出力される信号が出力バッファ173に出力される。
保持機構171は、出力バッファ173から入力された信号(その値)を保持(記憶)する。そして、保持機構171は、同期回路172により制御されて、保持された信号(その値)を同期回路172に出力する。
ここで、保持機構171は、例えば、信号(その値)を保持(記憶)するレジスタなどのメモリを用いて構成されてもよい。
また、保持機構171は、例えば、保持されてから読み出される信号(その値)について、任意の時間の遅延を与えてもよく、本実施形態では、1単位の時間分の遅延を与える構成となっている。
同期回路172は、保持機構171を制御し、保持機構171により保持された信号(その値)を読み出して変換回路122に出力する。この場合に、同期回路172は、入力インタフェース121から変換回路122に入力される信号のタイミングと、保持機構171から読み出されて変換回路122に入力される信号のタイミングとが所定のタイミング関係となるように制御する。当該所定のタイミング関係としては、LSTMのニューラルネットワークにおける再帰層からの再帰の信号のタイミングが、順方向結合における隠れ層において所定の時間だけ後の信号の情報のタイミングと合うタイミング関係が用いられている。
なお、本実施形態では、保持機構171に記憶された信号(その値)が同期回路172を経由して変換回路122に入力される構成を示したが、他の構成例として、保持機構171に記憶された信号(その値)が同期回路172を経由しないで変換回路122に入力される構成が用いられてもよい。
出力バッファ173は、4個の活性化関数回路134、144、154、164から入力された信号をいったん記憶し、記憶された当該信号に基づいて演算される信号を外部に出力する。
ここで、時刻tにおける入力データxに対して出力データyが出力されるとすると、保持機構171から変換回路122に入力される信号yt−1は、当該出力データyが遅延させられた信号となる。本実施形態では、時刻tを1だけ遅延させた信号yt−1が再帰するように構成されている。
出力バッファ173では、4個の活性化関数回路134、144、154、164から出力された信号について、3個の演算器181〜183により演算を行い、その演算の結果の信号を出力する。
ここで、それぞれの演算器181は、例えば、乗算、または、加算を行う。
一例として、演算器181は、活性化関数回路134から入力された信号と、活性化関数回路144から入力された信号とを乗算し、その乗算の結果の信号を演算器182に出力する。
また、演算器182は、活性化関数回路154から入力された信号と、演算器181から入力された信号とを加算し、その加算の結果の信号を演算器183に出力する。
また、演算器183は、活性化関数回路164から入力された信号と、演算器182から入力された信号とを乗算し、その乗算の結果の信号を出力する。当該信号が、出力バッファ173から出力される信号となる。
なお、本実施形態では、変換回路122、検出回路133、143、153、163あるいは出力バッファ173(ここでは、3個の演算器181〜183の機能以外の部分)のうちの1以上の回路が省略されてもよい場合には、該当する回路がアレイ装置101に備えられなくてもよい。
以上のように、本実施形態に係るアレイ装置101では、ニューロモルフィック素子を用いて再帰型の演算を行うことができる。そして、本実施形態に係るアレイ装置101では、ニューロモルフィック素子を用いて再帰型のニューラルネットワークを簡易に構成することができる。
本実施形態に係るアレイ装置101では、ニューラルネットワークにおける複数の異なる系統(重みアレイ131の系統、入力ゲート重みアレイ141の系統、忘却ゲート重みアレイ151の系統、出力ゲート重みアレイ161の系統)の結合部を並列的に有しており、これら複数の系統における処理結果の信号を演算器181〜183により演算して再帰させることが可能である。
本実施形態に係るアレイ装置101では、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対してニューロモルフィック素子に応じた処理を行った結果の第1の信号(本実施形態では、再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162から出力される信号)を出力する第1のアレイ領域(本実施形態では、再帰重みアレイ132の領域、入力ゲート再帰重みアレイ142の領域、忘却ゲート再帰重みアレイ152の領域、出力ゲート再帰重みアレイ162の領域)を備える。また、本実施形態に係るアレイ装置101では、第1のアレイ領域から出力された第1の信号(所定の演算部が用いられない場合)または第1の信号が所定の演算部(本実施形態では、活性化関数回路134、144、154、164および演算器181〜183)に入力された場合に出力される第2の信号(本実施形態では、演算器183から出力される信号)を保持し、保持された第1の信号または第2の信号を第1のアレイ領域に入力させることが可能な保持部(本実施形態では、保持機構171)を備える。
このような構成により、本実施形態に係るアレイ装置101では、保持機構171と再入力機構(例えば、同期回路172の機構)により、当該アレイ装置101の内部で再帰の処理が可能であり、例えば、制御を行うことが容易で、拡張性の高い再帰型のニューラルネットワークを構築することが可能である。
本実施形態に係るアレイ装置101では、保持部から第1のアレイ領域に入力される第1の信号または第2の信号は、第1のアレイ領域に入力される他の信号(本実施形態では、重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161から入力される信号であり、アレイ装置101への入力信号に応じた信号)と同期させられる。
本実施形態に係るアレイ装置101では、保持部から第1のアレイ領域に入力される第1の信号または第2の信号と、第1のアレイ領域に入力される他の信号は、いずれも、離散時間単位のデータである。また、他の信号は、保持部から第1のアレイ領域に入力される第1の信号または第2の信号と比べて、時間的に後の信号である。
このような構成により、本実施形態に係るアレイ装置101では、例えば、離散的な信号について、サンプリングと同期したシステムを構築することで、外部回路を少なくすること、アレイで時間的な再入力の仕組みを完結することが可能である。離散的な信号は、例えば、任意の信号であってもよく、任意のセンサにより検出される信号であってもよい。
また、本実施形態に係るアレイ装置101では、第1のアレイ領域は、共通の配線を含む複数の異なる領域(本実施形態では、再帰重みアレイ132の領域、入力ゲート再帰重みアレイ142の領域、忘却ゲート再帰重みアレイ152の領域、出力ゲート再帰重みアレイ162の領域)を有し、第1の信号としてこれら複数の領域から信号を出力する。また、本実施形態に係るアレイ装置101では、保持部は、第1のアレイ領域が有する複数の領域から出力された信号が演算部に入力された場合に出力される第2の信号を保持し、保持された第2の信号を第1のアレイ領域が有する複数の領域のうちの1個以上(本実施形態では、すべて)に入力させることが可能である。
このような構成により、本実施形態に係るアレイ装置101では、複数のアレイの領域を並列に設けることで各ゲートの演算を同時に行うことが可能である。本実施形態に係るアレイ装置101では、例えば、LSTMなどのように、入力信号と再帰信号を複数のゲートで使用する場合に対応することができる。
また、本実施形態では、入力側の層のアレイ(重みアレイ131、入力ゲート重みアレイ141、忘却ゲート重みアレイ151、出力ゲート重みアレイ161)と再帰側のアレイ(再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162)とを別々のアレイで構成したが、他の構成例として、同一のアレイにおける領域を2個以上に分割して、入力側の層のアレイの機能と再帰側のアレイの機能とを同一のアレイの別々の領域で構成することも可能である。この場合、例えば、1個のアレイに入力側の層(本実施形態では、入力層)の重みと再帰層の重みをマッピングし、再帰入力機構を備えることにより、例えば、小さいサイズで再帰型のニューラルネットワークの構成単位を実現することが可能になる。
また、本実施形態では、入力側の層のアレイと再帰側のアレイとの4種類の組み合わせ(重みアレイ131と再帰重みアレイ132との組み合わせ、入力ゲート重みアレイ141と入力ゲート再帰重みアレイ142との組み合わせ、忘却ゲート重みアレイ151と忘却ゲート再帰重みアレイ152との組み合わせ、出力ゲート重みアレイ161と出力ゲート再帰重みアレイ162との組み合わせ)について別々のアレイで構成したが、他の構成例として、同一のアレイにおける領域を2個以上に分割して、2種類以上の組み合わせについて同一のアレイの別々の領域で構成することも可能である。この場合、例えば、1個のアレイに2種類以上の組み合わせに係る重みをマッピングし、再帰入力機構を備えることにより、例えば、小さいサイズで再帰型のニューラルネットワークの構成単位を実現することが可能になる。
ここで、本実施形態に係るアレイ装置101では、隠れ層におけるすべてのユニットの出力信号(本実施形態では、出力バッファ173から出力される信号)が再帰の信号として再帰型のアレイ(再帰重みアレイ132、入力ゲート再帰重みアレイ142、忘却ゲート再帰重みアレイ152、出力ゲート再帰重みアレイ162)に入力される構成を示したが、他の構成例として、隠れ層における一部のユニットの出力信号(本実施形態では、出力バッファ173から出力される一部の信号)が再帰の信号として再帰型のアレイに入力される構成が用いられてもよい。また、例えば、隠れ層における複数のユニットのうちで、ユニットからの出力信号を再帰の信号として再帰型のアレイに入力するユニットと、このような再帰を行わないユニットとを切り替えることが可能な構成が用いられてもよい。
このような切り替えの機構を備えることで、例えば、再帰型のネットワーク層と順方向型のネットワーク層とが混在するようなニューラルネットワークシステムにおいて、同一のモジュールによる階層構造を実現することが容易となり、つまり、同一のモジュールにおいて、再帰型のネットワーク層に対応した部分について再帰型に切り替えるとともに、順方向型のネットワーク層に対応した部分について順方向型(つまり、再帰型ではない型)に切り替えることができる。このような切り替えは、例えば、ユーザにより手動で行われてもよく、あるいは、あらかじめ定められた規則にしたがって制御部(図示せず)により自動で行われてもよい。
このような構成により、アレイ装置101では、再帰機構のなかで一部のユニットからの出力信号のみを再帰させることが可能であり、例えば、アプリケーションの識別に特化した動的な再構成が可能となる。
(第3実施形態)
図4は、本発明の実施形態(第3実施形態)に係るニューラルネットワークシステム201の概略的な構成を示す図である。
本実施形態では、ニューラルネットワークシステム201は、アレイシステムに相当する。
図4には、さらに、イメージセンサ202と、自動運転制御ユニット203を示してある。本実施形態では、イメージセンサ202と自動運転制御ユニット203は、自動車などの車両(同一の車両)に備えられている。
イメージセンサ202は、例えば、カメラなどのセンサであり、バッファメモリ(図示せず)を備える。
イメージセンサ202は、画像のデータを検出(例えば、撮像)し、検出された画像のデータをバッファメモリに記憶する。画像のデータは、例えば、1フレームごとにバッファメモリに記憶される。
イメージセンサ202は、バッファメモリに記憶された画像のデータを各フレームごとにニューラルネットワークシステム201に出力する。
ニューラルネットワークシステム201は、イメージセンサ202から入力された画像のデータについて、特徴抽出処理および識別処理を行い、これらの処理の結果のデータを自動運転制御ユニット203に出力する。
自動運転制御ユニット203は、ニューラルネットワークシステム201から入力されたデータに基づいて、当該自動運転制御ユニット203が備えられた自動車などの車両に関する制御を行う。
ここで、本実施形態では、イメージセンサ202により検出された画像のデータがニューラルネットワークシステム201に入力される場合を示したが、ニューラルネットワークシステム201に入力されるデータは、任意のデータであってもよい。
また、本実施形態では、ニューラルネットワークシステム201から出力されるデータが自動運転制御ユニット203に入力される場合を示したが、ニューラルネットワークシステム201から出力されるデータは、任意の装置に入力されて使用されてもよい。
ニューラルネットワークシステム201は、デバイスインタフェース221と、制御回路222と、出力通信インタフェース223と、特徴抽出部231と、識別部232を備える。
特徴抽出部231は、2個の同期アレイ部(アレイ装置)241〜242を並列に備える。
それぞれの同期アレイ部241〜242は、前段の処理部から出力された信号(データの値)を入力して処理し、処理後の信号を後段の処理部に出力する。
本実施形態では、それぞれの同期アレイ部241〜242の構成および動作は、概略的に、第1実施形態に係る図1に示されるアレイ装置1の構成および動作と同様である。このため、本実施形態では、それぞれの同期アレイ部241〜242の詳しい構成および動作の説明を省略する。
本実施形態では、同期アレイ部241は1層目の処理部であり、同期アレイ部242は2層目の処理部である。
1層目の同期アレイ部241は、デバイスインタフェース221から出力された信号を入力して処理し、処理後の信号を2層目の同期アレイ部242に出力する。
2層目の同期アレイ部242は、1層目の同期アレイ部241から出力された信号を入力して処理し、処理後の信号を識別部232に出力する。
ここで、それぞれの同期アレイ部241〜242は、再帰型の構成を有している。また、それぞれの同期アレイ部241〜242は、処理対象のデータについて特徴を抽出する処理を行っていると捉えることも可能である。
識別部232は、同期アレイ部311と、バッファ321を備える。同期アレイ部311は、重みアレイ322と活性化関数回路323を備える。
これらの配置の一例が、図4に示される配置である。
ここでは、説明の便宜上、長方形(正方形でもよい。)の一辺(および対向する辺)の方向を縦方向と呼び、縦方向の2つの方向を上下の方向とし、それに対して垂直な一辺(および対向する辺)の方向を横方向と呼び、横方向の2つの方向を左右の方向として、説明する。
図4の例に係るニューラルネットワークシステム201では、左側から右側へ横方向に、デバイスインタフェース221、特徴抽出部231、識別部232が並んで配置されている。また、特徴抽出部231および識別部232の上側に制御回路222が縦方向に並んで配置されている。また、識別部232の下側に出力通信インタフェース223が縦方向に並んで配置されている。また、特徴抽出部231では、左側から右側へ2個の同期アレイ部241〜242が横方向に並んで配置されている。また、識別部232では、左側から右側へバッファ321と同期アレイ部311が横方向に並んで配置されている。また、同期アレイ部311では、上側から下側へ重みアレイ322、活性化関数回路323が縦方向に並んで配置されている。
なお、図4の例に係る配置は、概略的なものである。また、図4の例に限られず、様々な配置が用いられてもよい。
バッファ321は、特徴抽出部231の最終段の同期アレイ部242から出力された信号を入力し、入力された信号をいったん記憶し、記憶された当該信号を重みアレイ322に出力する。
重みアレイ322は、順方向結合における出力段の重みによる積和演算を行うアレイである。重みアレイ322は、バッファ321から入力された信号と、外部の制御回路222(制御部の一例)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、重みアレイ322は、積和演算の結果の信号を活性化関数回路323に出力する。
説明の便宜上、図9の例を用いると、重みアレイ322は、図9に示される順方向結合における隠れ層と出力層との間における積和演算を行うアレイに相当する。
ここで、重みアレイ322は、それぞれ、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、重みアレイ322は、それぞれ、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
活性化関数回路323は、重みアレイ322から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力通信インタフェース223に出力する。
ここで、識別部232は、処理対象のデータについて、特徴抽出部231により抽出された特徴に基づいて識別を行っていると捉えることも可能である。
なお、活性化関数f()は、それぞれの同期アレイ部241、242、311ごとに異なってもよい。
ここで、本実施形態に係るニューラルネットワークシステム201では、活性化関数回路323を備える構成を示すが、他の構成例として、活性化関数回路323を備えない構成が用いられてもよく、この場合、重みアレイ322から出力される信号が出力通信インタフェース223に入力される。
出力通信インタフェース223は、識別部232の活性化関数回路323から入力された信号を外部の自動運転制御ユニット203に出力する。
識別部232から出力される信号(識別結果のデータ)としては、本実施形態では、デバイスインタフェース221に入力された画像のデータについて、当該画像に写っている物体に関するデータである。当該物体としては、本実施形態では、例えば、自動車等の車両が走行している道路、標識、白線、歩行者、対向車などであってもよい。
制御回路222は、ニューラルネットワークシステム201における各種の制御を行う。
制御回路222は、例えば、同期の制御を行う回路、パワーマネジメントの制御を行う回路、リセットを行う回路、それぞれの重みアレイおよびそれぞれの再帰重みアレイに重みを設定する回路などを備える。
ここで、制御回路222は、例えば、ニューラルネットワークシステム201において、学習(機械学習)を行う機能を有してもよい。この場合、制御回路222は、ニューラルネットワークシステム201において、取得された識別結果の情報(例えば、学習に関する情報)に基づいて、それぞれのアレイに含まれるニューロモルフィック素子に割り当てる重みの値を更新(演算)する機能を有する。
また、制御回路222は、それぞれのアレイに含まれるニューロモルフィック素子に重み(その値)を設定する。制御回路222は、一例として、それぞれのアレイに含まれるニューロモルフィック素子に対して所定の信号を送信することで、当該信号に応じた重み(その値)を当該ニューロモルフィック素子に設定してもよい。当該所定の信号としては、任意の信号が用いられてもよく、例えば、電圧パルスの信号が用いられてもよい。
ここで、図4の例では、2個の同期アレイ部241〜242を並列に備える特徴抽出部231を示したが、他の構成例として、1個の同期アレイ部を備える特徴抽出部が用いられてもよく、あるいは、3個以上の同期アレイ部を並列に備える特徴抽出部が用いられてもよい。
また、図4の例では、特徴抽出部231に備えられるすべての同期アレイ部241〜242が再帰型の構成を有する場合を示したが、他の構成例として、複数の同期アレイ部のうちの一部が再帰型の構成を有する特徴抽出部が用いられてもよい。
以上のように、本実施形態に係るニューラルネットワークシステム201では、ニューロモルフィック素子を含むアレイ装置(本実施形態では、同期アレイ部241〜242)を用いて、ニューラルネットワークの処理を行うことができる。
(第4実施形態)
図5は、本発明の実施形態(第4実施形態)に係るアレイ装置401の概略的な構成を示す図である。
本実施形態では、アレイ装置401は、ニューラルネットワークにおける第L層のアレイユニットに相当する。本実施形態では、L=1である場合を説明するが、Lが2以上である場合についても同様である。
アレイ装置401は、同期アレイ部421と、同期アレイ部422と、同期回路423と、加算回路424と、活性化関数回路425と、出力バッファ426と、保持機構427を備える。
同期アレイ部421は、入力インタフェース(入力IF)521と、変換回路522と、重みアレイ523と、検出回路524と、出力バッファ525と、同期回路526を備える。
再帰の同期アレイ部422は、入力インタフェース(入力IF)621と、変換回路622と、再帰重みアレイ623と、検出回路624と、出力バッファ625と、同期回路626を備える。
これらの配置の一例が、図5に示される配置である。
ここでは、説明の便宜上、長方形(正方形でもよい。)の一辺(および対向する辺)の方向を縦方向と呼び、縦方向の2つの方向を上下の方向とし、それに対して垂直な一辺(および対向する辺)の方向を横方向と呼び、横方向の2つの方向を左右の方向として、説明する。
図5の例に係るアレイ装置401では、右側から左側へ2個の同期アレイ部421〜422が横方向に並んで配置されている。また、右側から左側へ同期回路423、加算回路424が横方向に並んで配置されており、これらが2個の同期アレイ部421〜422の下側に縦方向に並んで配置されている。また、加算回路424の下側に活性化関数回路425が縦方向に並んで配置されている。また、活性化関数回路425の下側に出力バッファ426が縦方向に並んで配置されている。また、同期アレイ部422の上側に保持機構427が縦方向に並んで配置されている。
また、それぞれの同期アレイ部421〜422では、左側から右側へ入力インタフェース521、621、変換回路522、622、アレイ(重みアレイ523、再帰重みアレイ623)が順番に横方向に並んで配置されている。また、入力インタフェース521、621および変換回路522、622の下側に同期回路526、626が縦方向に並んで配置されている。また、アレイ(重みアレイ523、再帰重みアレイ623)の下側に検出回路524、624が縦方向に並んで配置されている。また、検出回路524、624の下側に出力バッファ525、625が縦方向に並んで配置されている。また、同期回路526、626と検出回路524、624とは横方向に並んで配置されている。
なお、図5の例に係る配置は、概略的なものである。また、図5の例に限られず、様々な配置が用いられてもよい。
同期アレイ部421において行われる処理を説明する。
入力インタフェース521は、外部から信号(例えば、データの値)を入力するインタフェースの回路である。そして、入力インタフェース521は、入力された信号を変換回路522に出力する。第1層においては、入力インタフェース521は、例えば、ニューラルネットワークの外部から当該ニューラルネットワークに入力されるデータの信号を入力する。
なお、第2層以降では、入力インタフェース521は、前段の層から出力されるデータの信号を入力する。
変換回路522は、入力インタフェース521から入力された信号を、重みアレイ523で処理される信号へ変換する。そして、変換回路522は、変換された信号を重みアレイ523に出力する。
重みアレイ523は、順方向結合における第L層(本実施形態では、L=1)の重みによる積和演算を行うアレイである。重みアレイ523は、変換回路522から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、重みアレイ523は、積和演算の結果の信号を検出回路524に出力する。
説明の便宜上、図9の例を用いると、第1層の重みアレイ523は、図9に示される順方向結合における入力層と隠れ層との間における積和演算を行うアレイに相当する。
ここで、重みアレイ523は、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、重みアレイ523は、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
検出回路524は、重みアレイ523から出力された信号を入力し、入力された信号を、後段の処理部(例えば、活性化関数回路425)で処理される信号へ変換する。そして、検出回路524は、変換された信号を出力バッファ525に出力する。
なお、検出回路524は、一例として、デジタルの信号(デジタルの値)を処理する。
出力バッファ525は、検出回路524から入力された信号をいったん記憶し、記憶された当該信号を加算回路424に出力する。
同期回路526は、同期アレイ部421における同期を取るように制御する。
再帰の同期アレイ部422において行われる処理を説明する。
入力インタフェース621は、外部から信号(例えば、データの値)を入力するインタフェースの回路である。そして、入力インタフェース621は、入力された信号を変換回路622に出力する。本実施形態では、入力インタフェース621は、保持機構427から出力されるデータの信号を入力する。
変換回路622は、入力インタフェース621から入力された信号を、再帰重みアレイ623で処理される信号へ変換する。そして、変換回路622は、変換された信号を再帰重みアレイ623に出力する。
再帰重みアレイ623は、再帰結合における再帰層の重みによる積和演算を行うアレイである。再帰重みアレイ623は、変換回路622から入力された信号と、外部の制御部(図示せず)により設定された重みに基づいて、あらかじめ設計された積和演算を行う。そして、再帰重みアレイ623は、積和演算の結果の信号を検出回路624に出力する。
説明の便宜上、図9の例を用いると、再帰重みアレイ623は、図9に示される再帰結合における隠れ層と再帰層との間における積和演算を行うアレイに相当する。
ここで、再帰重みアレイ623は、図9の例に示されるように、複数のユニットに相当する演算を行う。
また、本実施形態では、再帰重みアレイ623は、ニューロモルフィック素子を備え、当該ニューロモルフィック素子により信号に重みを与える。具体的には、当該ニューロモルフィック素子は、入力された信号と設定された重みとを乗算して、乗算の結果の信号を出力する。
また、2個の信号の加算は、例えば、これら2個の信号(その値)をデジタル的に加算する加算器を用いて行われてもよく、あるいは、これら2個の信号の電流などをアナログ的に加算する信号線などを用いて構成されてもよい。
検出回路624は、再帰重みアレイ623から出力された信号を入力し、入力された信号を、後段の処理部(例えば、活性化関数回路425)で処理される信号へ変換する。そして、検出回路624は、変換された信号を出力バッファ625に出力する。
なお、検出回路624は、一例として、デジタルの信号(デジタルの値)を処理する。
出力バッファ625は、検出回路624から入力された信号をいったん記憶し、記憶された当該信号を加算回路424に出力する。
同期回路626は、再帰の同期アレイ部422における同期を取るように制御する。
ここで、図5の例では、再帰の同期アレイ部422において、活性化関数回路を備えない構成を示したが、他の構成例として、活性化関数回路を備えてもよい。一例として、検出回路624と出力バッファ625との間に活性化関数回路を備えてもよく、この場合、活性化関数回路は、検出回路624から出力された信号を入力し、入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を出力バッファ625に出力する。
2個の同期アレイ部421〜422以外の処理部において行われる処理を説明する。
同期回路423は、順方向結合と再帰結合とのタイミングの同期を取る制御を行う。
例えば、同期回路423は、保持機構427を制御し、保持機構427により保持された信号(その値)を読み出して再帰の同期アレイ部422に出力する。この場合に、同期回路423は、同期アレイ部421から加算回路424に入力される信号のタイミングと、再帰の同期アレイ部422から加算回路424に入力される信号のタイミングとが所定のタイミング関係となるように制御する。当該所定のタイミング関係としては、本実施形態では、図9に示されるニューラルネットワークにおける再帰層からの再帰の信号のタイミングが、順方向結合における隠れ層において所定の時間だけ後の信号の情報のタイミングと合うタイミング関係が用いられている。
加算回路424は、同期アレイ部421から入力された信号(本実施形態では、積和演算の結果の信号)と、再帰の同期アレイ部422から入力された信号(本実施形態では、積和演算の結果の信号)とを加算し、その加算の結果の信号を活性化関数回路425に出力する。
活性化関数回路425は、加算回路424から入力された信号を所定の活性化関数f()に代入したときにおける当該活性化関数f()の演算結果の信号を保持機構427と出力バッファ426に出力する。
ここで、本実施形態に係るアレイ装置401では、活性化関数回路425を備える構成を示すが、他の構成例として、活性化関数回路425を備えない構成が用いられてもよく、この場合、加算回路424から出力される信号が保持機構427と出力バッファ426に出力される。
出力バッファ426は、活性化関数回路425から入力された信号をいったん記憶し、記憶された当該信号を外部に出力する。
保持機構427は、活性化関数回路425から入力された信号(その値)を保持(記憶)する。そして、保持機構427は、同期回路423により制御されて、保持された信号(その値)を再帰の同期アレイ部422に出力する。
ここで、保持機構427は、例えば、信号(その値)を保持(記憶)するレジスタなどのメモリを用いて構成されてもよい。
また、保持機構427は、例えば、保持されてから読み出される信号(その値)について、任意の時間の遅延を与えてもよく、本実施形態では、1単位の時間分の遅延を与える構成となっている。
ここで、時刻tにおける入力データxに対して出力データyが出力されるとすると、保持機構427から再帰の同期アレイ部422に入力される信号yt−1は、当該出力データyが遅延させられた信号となる。本実施形態では、時刻tを1だけ遅延させた信号yt−1が再帰するように構成されている。
なお、本実施形態では、アレイ装置401は、図9に示される順方向結合における隠れ層から出力される信号に相当する信号(活性化関数f()の結果の信号)を出力することができるように構成される。
また、例えば、変換回路522、622、検出回路524、624、あるいは、出力バッファ525、625、426のうちの1以上の回路が省略されてもよい場合には、該当する回路がアレイ装置401に備えられなくてもよい。
以上のように、本実施形態に係るアレイ装置401では、ニューロモルフィック素子を用いて再帰型の演算を行うことができる。そして、本実施形態に係るアレイ装置401では、ニューロモルフィック素子を用いて再帰型のニューラルネットワークを簡易に構成することができる。
本実施形態に係るアレイ装置401では、可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対してニューロモルフィック素子に応じた処理を行った結果の第1の信号(本実施形態では、再帰重みアレイ623から出力される信号)を出力する第1のアレイ領域(本実施形態では、再帰重みアレイ623の領域)を備える。また、本実施形態に係るアレイ装置401では、第1のアレイ領域から出力された第1の信号が所定の演算部(本実施形態では、加算回路424および活性化関数回路425)に入力された場合に出力される第2の信号(本実施形態では、活性化関数回路425から出力される信号)を保持し、保持された第2の信号を第1のアレイ領域に入力させることが可能な保持部(本実施形態では、保持機構427)を備える。
このような構成により、本実施形態に係るアレイ装置401では、保持機構427と再入力機構(例えば、同期回路423の機構)により、当該アレイ装置401の内部で再帰の処理が可能であり、例えば、制御を行うことが容易で、拡張性の高い再帰型のニューラルネットワークを構築することが可能である。
ここで、本実施形態に係るアレイ装置401では、第1のアレイ領域は、再帰型のアレイ領域である。また、所定の演算部は、第1のアレイ領域以外の第2のアレイ領域(本実施形態では、重みアレイ523の領域)から出力される信号との加算および所定の活性化関数による演算を行う。
また、本実施形態では、重みアレイ523と再帰重みアレイ623とを別々のアレイで構成したが、他の構成例として、同一のアレイにおける領域を2個以上に分割して、重みアレイ523の機能と再帰重みアレイ623の機能とを同一のアレイの別々の領域で構成することも可能である。この場合、例えば、1個のアレイに入力側の層(本実施形態では、入力層)の重みと再帰層の重みをマッピングし、再帰入力機構を備えることにより、例えば、小さいサイズで再帰型のニューラルネットワークの構成単位を実現することが可能になる。
ここで、本実施形態に係るアレイ装置401では、隠れ層におけるすべてのユニットの出力信号(本実施形態では、活性化関数回路425から出力される信号)が再帰の信号として再帰重みアレイ623に入力される構成を示したが、他の構成例として、隠れ層における一部のユニットの出力信号(本実施形態では、活性化関数回路425から出力される一部の信号)が再帰の信号として再帰重みアレイ623に入力される構成が用いられてもよい。また、例えば、隠れ層における複数のユニットのうちで、ユニットからの出力信号を再帰の信号として再帰重みアレイ623に入力するユニットと、このような再帰を行わないユニットとを切り替えることが可能な構成が用いられてもよい。このような切り替えは、例えば、ユーザにより手動で行われてもよく、あるいは、あらかじめ定められた規則にしたがって制御部(図示せず)により自動で行われてもよい。
このような構成により、アレイ装置401では、再帰機構のなかで一部のユニットからの出力信号のみを再帰させることが可能であり、例えば、アプリケーションの識別に特化した動的な再構成が可能となる。
なお、図1に示されるアレイ装置1と図5に示されるアレイ装置401は、いずれも、同様な処理を行うことが可能であるが、図1に示されるアレイ装置1の方が、簡易な構成とすることが容易であると考えられる。
(第5実施形態)
本実施形態では、第1実施形態〜第4実施形態におけるアレイ(例えば、重みアレイ23、131、322、523、再帰重みアレイ24、132、623、入力ゲート重みアレイ141、入力ゲート再帰重みアレイ142、忘却ゲート重みアレイ151、忘却ゲート再帰重みアレイ152、出力ゲート重みアレイ161、出力ゲート再帰重みアレイ162)で使用されるニューロモルフィック素子について説明する。
図6は、本発明の実施形態(第5実施形態)に係るニューロモルフィック素子711の概略的な構成を示す図である。
ニューロモルフィック素子711では、重みを割り当てる制御部(図示せず)から入力される制御信号により制御されて、当該ニューロモルフィック素子711の特性(例えば、コンダクタンス)が変化することで、重みの値が変化する。そして、ニューロモルフィック素子711では、当該ニューロモルフィック素子711の特性に応じた重み(その値)を入力された信号に乗算し、その乗算の結果の信号を出力する。
具体例として、抵抗Rが変化し得るニューロモルフィック素子711が乗算器の機能として用いられる場合、当該ニューロモルフィック素子711のコンダクタンスG(=1/R)を使用し、当該ニューロモルフィック素子711への入力信号として電圧Vを入力し、そのときに当該ニューロモルフィック素子711を流れる電流I(=G×V)の大きさを乗算結果として使用する。
なお、アレイ(例えば、重みアレイ23、131、322、523、再帰重みアレイ24、132、623、入力ゲート重みアレイ141、入力ゲート再帰重みアレイ142、忘却ゲート重みアレイ151、忘却ゲート再帰重みアレイ152、出力ゲート重みアレイ161、出力ゲート再帰重みアレイ162)に複数のニューロモルフィック素子711が含まれる構成では、例えば、それぞれのニューロモルフィック素子711ごとに制御されてもよく、あるいは、すべてのニューロモルフィック素子711についてまとめて制御されてもよく、あるいは、2個以上の異なるグループに複数のニューロモルフィック素子711が分けられて、それぞれのグループごとにまとめて制御されてもよい。
ここで、特性の変化量が変動するニューロモルフィック素子711が用いられる場合には、その点が考慮されて、当該ニューロモルフィック素子711が制御されることが好ましい。特性の変化量が変動するとは、例えば、特性の変化が非線形的であるような素子のことを言う。
具体例として、コンダクタンスの変化量(ΔG)が変動するニューロモルフィック素子711では、例えば、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子711に与えられる電圧Vの一定変化量に対するコンダクタンスの変化量(ΔG)が増加していく場合がある。この場合、一例として、当該ニューロモルフィック素子711のコンダクタンスの変化量(ΔG)を一定値間隔ごとに切り替えるために、コンダクタンスの値が低い値から高い値へ変化するにしたがって、当該ニューロモルフィック素子711に与えられる電圧Vの変化量(切り替えの段階ごとの変化量)を小さくしていく構成が用いられてもよい。あるいは、コンダクタンスの変化量Δの変動に応じて、割り当てる重みの変化量を変動させるような構成が用いられてもよい。
なお、ニューロモルフィック素子711の特性の変化量が他の態様で変動する場合においても、その態様に合わせて制御が行われればよい。このような制御の仕方は、例えば、あらかじめ設定されて所定の記憶部などに記憶されてもよい。
また、ニューロモルフィック素子711としては、任意の素子が用いられてもよい。また、ニューロモルフィック素子711としては、例えば、1種類のニューロモルフィック素子が複数組み合されて用いられてもよく、あるいは、2種類以上のニューロモルフィック素子が組み合されて用いられてもよい。
一例として、ニューロモルフィック素子711として、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子711として、電気化学的反応により金属析出とイオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge Random Access Memory)を使用する素子が用いられてもよい。
他の例として、ニューロモルフィック素子711として、スピントロニクス(Spintronics)を使用する素子が用いられてもよく、例えば、磁壁の制御による線形的抵抗変化を発生させるドメインウォール型の素子、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子が用いられてもよい。
他の例として、ニューロモルフィック素子711として、TaO等の媒体に金属析出によるフィラメントを形成して抵抗変化を利用するReRAM(Resistive Random Access Memory)を使用する素子が用いられてもよい。
なお、ニューロモルフィック素子711としては、任意の特性を変化させることが可能なものが用いられてもよく、例えば、抵抗、あるいは、光位相などの特性を変化させることが可能なものが用いられてもよい。
以上のように、本実施形態に係るアレイ装置では、様々なニューロモルフィック素子711を利用することができ、アレイによる積和演算などを実現することができる。
(第6実施形態)
本実施形態では、第1実施形態〜第4実施形態における保持機構(例えば、保持機構27、171、427)として使用されることが可能な保持機構について説明する。
図7は、本発明の実施形態(第6実施形態)に係る保持機構801の概略的な構成を示す図である。
保持機構801は、容量性素子811と、入力側のスイッチ821と、出力側のスイッチ822を備える。
本実施形態では、入力側のスイッチ821と出力側のスイッチ822により、容量性素子811に対する充放電のスイッチングを行うスイッチング回路が構成されている。
入力側のスイッチ821は、電気的な信号を導通する閉の状態(閉状態)と、電気的な信号を遮断する開の状態(開状態)とが切り替えられる。
入力側のスイッチ821が閉状態であるとき、外部から保持機構801に入力される信号(例えば、電流)によって容量性素子811に電荷が蓄積される。なお、入力側のスイッチ821が開状態であるときには、入力側の信号(例えば、電流)は流れない。
出力側のスイッチ822は、電気的な信号を導通する閉の状態(閉状態)と、電気的な信号を遮断する開の状態(開状態)とが切り替えられる。
出力側のスイッチ822が閉状態であるとき、容量性素子811に蓄積された電荷が保持機構801の外部に流れることで、それに応じた信号(例えば、電流)が保持機構801の外部に出力される。なお、出力側のスイッチ822が開状態であるときには、出力側の信号(例えば、電流)は流れない。
本実施形態では、保持機構801において、入力側のスイッチ821が閉状態に切り替えられ、出力側のスイッチ822が開状態に切り替えられることで、外部から入力される信号(例えば、電流)の電荷が容量性素子811に蓄積される。その後、保持機構801において、入力側のスイッチ821が開状態に切り替えられ、出力側のスイッチ822が閉状態に切り替えられることで、容量性素子811に蓄積された電荷の信号(例えば、電流)が外部に出力される。
なお、保持機構801から外部に出力される信号(例えば、電流)は、例えば、抵抗などを用いて、電圧の信号へ変換されてもよい。
以上のように、本実施形態に係るアレイ装置では、保持部(本実施形態では、保持機構801)は、信号(前記した第1の信号または第2の信号)に応じた電流を蓄積する容量性素子(本実施形態では、容量性素子811)と、容量性素子に対する充放電のスイッチングを行うスイッチング回路(本実施形態では、入力側のスイッチ821、出力側のスイッチ822)と、を有する。
このような構成により、本実施形態に係るアレイ装置では、信号をアナログ的に保持することで、消費電力性能を高めることができる。
ここで、第1実施形態〜第4実施形態における保持機構(例えば、保持機構27、171、427)として、他の保持機構が用いられてもよい。
一例として、アナログの信号(例えば、アナログの電流)をデジタル値に変換した後のデータを保持する保持機構が用いられてもよい。この場合、当該保持機構は、例えば、当該保持機構の外部において得られたデジタル値(データ)を保持する構成であってもよく、あるいは、当該保持機構にアナログの信号が入力されて、当該アナログ信号をデジタル値に変換して保持する構成であってもよい。当該構成では、当該保持機構は、当該アナログ信号を当該デジタル値に変換するA/D(Analog to Digital)変換器を備えてもよい。
このようなアレイ装置では、保持部は、信号(前記した第1の信号または第2の信号)に応じた電流をデジタル値に変換した後のデータを保持する。
このような構成により、アレイ装置では、信号をデジタル値で保持することで、開発などを容易にすることができる。
(第7実施形態)
本実施形態では、複数のアレイで共通化された配線について説明する。
例えば、第1実施形態に係る図1に示される重みアレイ23と再帰重みアレイ24とで共通化された配線(以下で、説明の便宜上、「縦配線」ともいう(カラムの配線と呼ばれてもよい。)。)が用いられてもよい。
例えば、第2実施形態に係る図3に示される重みアレイ131と再帰重みアレイ132とで共通化された配線(以下の説明では、説明の便宜上、「縦配線」とする。)が用いられてもよい。同様に、入力ゲート重みアレイ141と入力ゲート再帰重みアレイ142とで共通化された配線(以下の説明では、説明の便宜上、「縦配線」とする。)が用いられてもよい。同様に、忘却ゲート重みアレイ151と忘却ゲート再帰重みアレイ152とで共通化された配線(以下の説明では、説明の便宜上、「縦配線」とする。)が用いられてもよい。同様に、出力ゲート重みアレイ161と出力ゲート再帰重みアレイ162とで共通化された配線(以下の説明では、説明の便宜上、「縦配線」とする。)が用いられてもよい。
例えば、第3実施形態に係る図4に示されるそれぞれの同期アレイ部241〜242において、第1実施形態の場合と同様に重みアレイと再帰重みアレイとで共通化された配線(以下の説明では、説明の便宜上、「縦配線」とする。)が用いられてもよい。
また、例えば、第2実施形態に係る図3に示される重みアレイ131と入力ゲート重みアレイ141と忘却ゲート重みアレイ151と出力ゲート重みアレイ161とで共通化された配線(以下で、説明の便宜上、「横配線」ともいう(ロウの配線と呼ばれてもよい。)。)が用いられてもよい。同様に、再帰重みアレイ132と入力ゲート再帰重みアレイ142と忘却ゲート再帰重みアレイ152と出力ゲート再帰重みアレイ162とで共通化された配線(以下の説明では、説明の便宜上、「横配線」とする。)が用いられてもよい。
以下では、図8を参照して、説明の便宜上、共通化された縦配線と、共通化された横配線についてまとめて説明する。なお、共通化された縦配線と、共通化された横配線は、それぞれ、独立に使用されてもよく、あるいは、任意に組み合わされて使用されてもよい。
また、以下では、図8を参照して、2個の異なるアレイについて共通化された縦配線について説明するが、3個以上の異なるアレイについて共通化された縦配線についても同様である。
また、以下では、図8を参照して、説明の便宜上、2個の異なるアレイについて共通化された横配線について説明するが、3個以上の異なるアレイについて共通化された横配線についても同様である。
図8は、本発明の実施形態(第7実施形態)に係る複数のアレイ911、912、921、922で共通化された配線の概略的な構成を示す図である。
アレイ911およびアレイ912に、共通の横配線P1、P2が配置されている。
アレイ921およびアレイ922に、共通の横配線P11、P12が配置されている。
アレイ911およびアレイ921に、共通の縦配線Q1が配置されている。
アレイ912およびアレイ922に、共通の縦配線Q2が配置されている。
アレイ911において、横配線P1には、ニューロモルフィック素子H1の一端が接続されている。
アレイ911において、横配線P2には、ニューロモルフィック素子H2の一端が接続されている。
そして、アレイ911において、ニューロモルフィック素子H1の他端およびニューロモルフィック素子H2の他端が、縦配線Q1に接続されている。
アレイ912において、横配線P1には、ニューロモルフィック素子H11の一端が接続されている。
アレイ912において、横配線P2には、ニューロモルフィック素子H12の一端が接続されている。
そして、アレイ912において、ニューロモルフィック素子H11の他端およびニューロモルフィック素子H12の他端が、縦配線Q2に接続されている。
アレイ921において、横配線P11には、ニューロモルフィック素子H21の一端が接続されている。
アレイ921において、横配線P12には、ニューロモルフィック素子H22の一端が接続されている。
そして、アレイ921において、ニューロモルフィック素子H21の他端およびニューロモルフィック素子H22の他端が、配線Q11に接続されている。配線Q11は配線Q1と接続されている。
アレイ922において、横配線P11には、ニューロモルフィック素子H31の一端が接続されている。
アレイ922において、横配線P12には、ニューロモルフィック素子H32の一端が接続されている。
そして、アレイ922において、ニューロモルフィック素子H31の他端およびニューロモルフィック素子H32の他端が、配線Q12に接続されている。配線Q12は配線Q2と接続されている。
上記のような構成により、アレイ911では、横配線P1を流れる信号がニューロモルフィック素子H1により重み付けされた結果の信号と、横配線P2を流れる信号がニューロモルフィック素子H2により重み付けされた結果の信号とが加算された結果の信号が、縦配線Q1を流れて、アレイ921に伝送される。
また、アレイ921では、横配線P11を流れる信号がニューロモルフィック素子H21により重み付けされた結果の信号と、横配線P12を流れる信号がニューロモルフィック素子H22により重み付けされた結果の信号とが加算された結果の信号が、配線Q11を流れて、縦配線Q1に伝送される。この結果、縦配線Q1には、アレイ911から伝送される信号と、アレイ921の配線Q11から伝送される信号とが加算された結果の信号が、流れる。
このような構成を利用することで、複数のアレイ911、921における積和演算の結果を総和することができる。
また、上記のような構成により、アレイ912では、横配線P1を流れる信号がニューロモルフィック素子H11により重み付けされた結果の信号と、横配線P2を流れる信号がニューロモルフィック素子H12により重み付けされた結果の信号とが加算された結果の信号が、縦配線Q2を流れて、アレイ922に伝送される。
また、アレイ922では、横配線P11を流れる信号がニューロモルフィック素子H31により重み付けされた結果の信号と、横配線P12を流れる信号がニューロモルフィック素子H32により重み付けされた結果の信号とが加算された結果の信号が、配線Q12を流れて、縦配線Q2に伝送される。この結果、縦配線Q2には、アレイ912から伝送される信号と、アレイ922の配線Q12から伝送される信号とが加算された結果の信号が、流れる。
このような構成を利用することで、複数のアレイ912、922における積和演算の結果を総和することができる。
ここで、図8の例では、それぞれのアレイ911、912、921、922において、2本の共通な横配線P1〜P2、P11〜P12を示したが、共通な横配線の数は任意であってもよい。
また、図8の例では、それぞれのアレイ911、912、921、922において、1本の共通な縦配線Q1、Q2を示したが、共通な縦配線の数は任意であってもよい。
本実施形態では、それぞれのアレイ911、912、921、922において、ニューロモルフィック素子を複数使用して、所望のニューラルネットワークに対応する積和演算を行う回路が構成される。それぞれのアレイ911、912、921、922の回路は、一例として、マトリクス状になっている。
以上のように、本実施形態に係るアレイ装置では、保持部から第1のアレイ領域(例えば、アレイ921、922)に入力される信号(前記した第1の信号または第2の信号)と、第1のアレイ領域に入力される他の信号(例えば、アレイ911、912から入力される信号)は、同一の配線(例えば、縦配線Q1、Q2)を介して出力される。
このような構成により、本実施形態に係るアレイ装置では、例えば、アレイの縮小化、周辺回路の共通化などを図ることができる。
このように、少なくとも配線の一部に新たな入力信号(時間的に後の信号)と再帰の信号(時間的に前の情報の信号)が入力される構成とすることで、配線の配置を簡易にすることが可能である。
(以上の実施形態のまとめ)
なお、以上に示した実施形態に係る各装置等(例えば、制御回路222などの制御部)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
本発明に係る実施形態は二値化ニューラルネットに適用することも可能であり、これについて説明する。
一般にニューロモルフィック素子は、所与の範囲でコンダクタンスを多段階に設定させることができる不揮発性素子を意味し、これによって、電圧×コンダクタンス=電流値というオームの法則を利用して積和演算をアナログ的に実行する機能を提供する。例えば、コンダクタンスとして1μS(マイクロジーメンス)、1.25μS、1.5μS、1.75μS、2μSを設定することが可能な素子の場合、1μS〜2μSの間の5段階の量子化分解能で積和演算を実行することが可能である。
しかしながら、近年、ニューラルネットをCMOSデジタル演算素子で実現する分野の研究では、演算語長を縮減する研究が進められている。最も極端なケースにおいては、入力信号や重み、あるいは活性化関数出力を二値化する試みが盛んに研究されている。このような二値化が行われるニューラルネットワークは、例えば、バイナライズドニューラルネット、あるいはバイナリーニューラルネットワークなどと呼ばれる。例えば、重みと入力値がとりえる値が−1と1であるとし、それを0、1の値をとる論理素子で計算する場合、積和演算は下記の4種類のXNOR型論理演算と“1”状態の素子のカウンタで実行可能である。
0(−1)×0(−1)=1(1)
0(−1)×1(1)=0(−1)
1(1)×0(−1)=0(−1)
1(1)×1(1)=1(1)
上記の演算は、例えば、2段階の抵抗変化を持つニューロモルフィック素子を使用する場合においても同様に可能である。バイナライズドニューラルネットは本出願の本質的な内容ではないことから詳しくは述べないが、このような二値化ニューラルネットで、再帰的構成を持たせる場合においても、本出願に係る技術を適用することは可能である。
以上のニューラルネットワークシステムは、各種のセンサやロボットの脳として機能させることができる。例えば、このようなニューラルネットワークシステムを用いた制御装置にセンサから出力された信号(以下、説明の便宜上、センサ信号ともいう。)を入力すると、エッジ(Edge)素子として機能させることができる。センサ信号には一般的に多くのノイズが存在し、一般的なセンサモジュールでは得たいセンサ信号をノイズから取り出すことができる。したがって、センサ信号の時系列信号から、例えば信号処理技術を用いてノイズを除去し、得たい信号を取り出すなどの方法が取られる。この場合、得られた信号以外はエネルギーの消費だけであり、情報を生まない。このようなニューラルネットワークシステムを用いた制御装置にセンサ信号を入力することにより、高精度の認識を行うことができる。従来では源信号にノイズが重畳した観測信号を源信号とノイズに分離することで、初めて意味のある情報として抽出されたが、このようなニューラルネットワークシステムを用いた制御装置を用いるとノイズを含む時系列信号から得たい源信号を予測することができ、源信号の出力強度や統計値が小さくても意味のある信号として取り出すことができる。このようなモジュールはセンサと制御装置とが一体となったモジュールであり、AI(Artificial Intelligence)エッジセンサモジュールとすることができる。
このようなニューラルネットワークシステムを用いた制御装置を用いると、認識精度が高くなるために、従来よりも小さな演算機能で情報を取り出すことができ、低コスト・省電力・省体積化を実現することができる。
このようなニューラルネットワークシステムを用いた制御装置に複数のセンサの信号を同時に入力することも好ましい。
制御装置に複数のセンサの信号が同時に入力することによって、互いのセンサの関連性に関する認識を得ることができる。例えば、ロボットにおいて手、足、胴体にセンサが設置され、当該センサからの信号が同時に制御装置に入力されると、当該信号によって、ロボットが歩いているかあるいは転んだのかなどの情報を複合的に判断することができる。さらに、AIエッジセンサモジュールが複数設置されたロボットや車などにおいて、制御装置に同時に信号が入力されることによって、より省電力化や高機能化が実現されることが期待できる。複数のセンサが異なる種類のセンサであった場合には、それぞれのセンサに対応できる電圧や電流に対応した制御装置を設置する必要がある。この場合、制御装置のインタフェースに変圧器やAD(アナログ デジタル)変換機などが必要となることがあり、エネルギー変換によってエネルギーが消費され得る。AIエッジセンサモジュールでも同様にエネルギーが消費されるが、AIエッジセンサモジュールから中央の制御装置に出力される信号はAIエッジセンサモジュールで一定の認識と識別がされたものであり、例えば、AIエッジセンサモジュールから中央の制御装置に、必要な情報のみを送ることができる。これらの機能によってAIエッジセンサモジュールと中央の制御装置との間の通信量を削減することができるため、システム全体としてのエネルギー消費を減少することができる。
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
なお、再帰型の演算は、例えば、ニューラルネットワークの分野で使用されてもよく、あるいは、ニューラルネットワーク以外の分野で使用されてもよい。
本発明のアレイ装置によれば、ニューロモルフィック素子を用いて再帰型の演算を行うことができる。
1、101、401…アレイ装置、21、121、521、621…入力インタフェース、22、122、522、622…変換回路、23、131、322、523…重みアレイ、24、132、623…再帰重みアレイ、25、133、143、153、163、524、624…検出回路、26、134、144、154、164、323、425…活性化関数回路、27、171、427、801…保持機構、28、172、423,526,626…同期回路、29、173、426、525、625…出力バッファ、141…入力ゲート重みアレイ、142…入力ゲート再帰重みアレイ、151…忘却ゲート重みアレイ、152…忘却ゲート再帰重みアレイ、161…出力ゲート重みアレイ、162…出力ゲート再帰重みアレイ、181〜183…演算器、201…ニューラルネットワークシステム、202…イメージセンサ、203…自動運転制御ユニット、221…デバイスインタフェース、222…制御回路、223…出力通信インタフェース、231…特徴抽出部、232…識別部、241〜242、311、421、422…同期アレイ部、321…バッファ、424…加算回路、711、H1〜H2、H11〜H12、H21〜H22、H31〜H32…ニューロモルフィック素子、811…容量性素子、821〜822…スイッチ、911〜912、921〜922…アレイ、P1〜P2、P11〜P12…横配線、Q1〜Q2…縦配線、Q11〜Q12…配線、1011−0〜1011−n、1021−0〜1021−m、1031−1〜1031−r、1111−0〜1111−s、1121−0〜1121−s…ユニット、2001…アレイユニット、2011…入力層、2012…隠れ層、2013…出力層、3011、3021…入力重み付け部、3
012、3022…再帰層部、3013、3023…活性化関数部

Claims (8)

  1. 可変な特性の値に応じた重みを信号に乗算するニューロモルフィック素子を含み、入力信号に対して前記ニューロモルフィック素子に応じた処理を行った結果の第1の信号を出力する第1のアレイ領域と、
    前記第1のアレイ領域から出力された前記第1の信号または前記第1の信号が所定の演算部に入力された場合に出力される第2の信号を保持し、保持された前記第1の信号または前記第2の信号を前記第1のアレイ領域に入力させることが可能な保持部と、
    を備えるアレイ装置。
  2. 前記保持部は、前記第1の信号または前記第2の信号に応じた電流を蓄積する容量性素子と、前記容量性素子に対する充放電のスイッチングを行うスイッチング回路と、を有する、
    請求項1に記載のアレイ装置。
  3. 前記保持部は、前記第1の信号または前記第2の信号に応じた電流をデジタル値に変換した後のデータを保持する、
    請求項1に記載のアレイ装置。
  4. 前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号は、前記第1のアレイ領域に入力される他の信号と同期させられる、
    請求項1から請求項3のいずれか1項に記載のアレイ装置。
  5. 前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と、前記第1のアレイ領域に入力される前記他の信号は、いずれも、離散時間単位のデータであり、
    前記他の信号は、前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と比べて、時間的に後の信号である、
    請求項4に記載のアレイ装置。
  6. 前記保持部から前記第1のアレイ領域に入力される前記第1の信号または前記第2の信号と、前記第1のアレイ領域に入力される前記他の信号は、同一の配線を介して出力される、
    請求項4または請求項5のいずれか1項に記載のアレイ装置。
  7. 前記第1のアレイ領域は、共通の配線を含む複数の異なる領域を有し、前記第1の信号として複数の前記領域から信号を出力し、
    前記保持部は、前記第1のアレイ領域が有する複数の前記領域から出力された信号が前記演算部に入力された場合に出力される前記第2の信号を保持し、保持された前記第2の信号を前記第1のアレイ領域が有する複数の前記領域のうちの1以上に入力させることが可能である、
    請求項1から請求項6のいずれか1項に記載のアレイ装置。
  8. 請求項1から請求項7のいずれか1項に記載のアレイ装置を含み、ニューラルネットワークの処理を行うニューラルネットワークシステム。
JP2018561066A 2017-11-02 2018-08-03 ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム Active JP6489295B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017213195 2017-11-02
JP2017213195 2017-11-02
PCT/JP2018/029208 WO2019087500A1 (ja) 2017-11-02 2018-08-03 ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム

Publications (2)

Publication Number Publication Date
JP6489295B1 true JP6489295B1 (ja) 2019-03-27
JPWO2019087500A1 JPWO2019087500A1 (ja) 2019-11-14

Family

ID=65895299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561066A Active JP6489295B1 (ja) 2017-11-02 2018-08-03 ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム

Country Status (1)

Country Link
JP (1) JP6489295B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832715A (zh) * 2019-04-18 2020-10-27 爱思开海力士有限公司 处理元件和处理系统
WO2022185153A1 (ja) * 2021-03-05 2022-09-09 株式会社半導体エネルギー研究所 半導体装置および電子装置
CN116566048A (zh) * 2023-05-06 2023-08-08 浙江鲲游科技有限公司 一种智慧用电安全监测系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628331A (ja) * 1990-12-28 1994-02-04 Intel Corp マルチプレクスされる出力ニューロンを採用する多層ニューロンネットワーク
US20170116513A1 (en) * 2015-10-21 2017-04-27 International Business Machines Corporation Short-term memory using neuromorphic hardware

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628331A (ja) * 1990-12-28 1994-02-04 Intel Corp マルチプレクスされる出力ニューロンを採用する多層ニューロンネットワーク
US20170116513A1 (en) * 2015-10-21 2017-04-27 International Business Machines Corporation Short-term memory using neuromorphic hardware

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832715A (zh) * 2019-04-18 2020-10-27 爱思开海力士有限公司 处理元件和处理系统
WO2022185153A1 (ja) * 2021-03-05 2022-09-09 株式会社半導体エネルギー研究所 半導体装置および電子装置
CN116566048A (zh) * 2023-05-06 2023-08-08 浙江鲲游科技有限公司 一种智慧用电安全监测系统

Also Published As

Publication number Publication date
JPWO2019087500A1 (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
WO2019087500A1 (ja) ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム
Li et al. Long short-term memory networks in memristor crossbar arrays
Hinz et al. Speeding up the hyperparameter optimization of deep convolutional neural networks
JP6489295B1 (ja) ニューロモルフィック素子を含むアレイ装置およびニューラルネットワークシステム
Farabet et al. Comparison between frame-constrained fix-pixel-value and frame-free spiking-dynamic-pixel convnets for visual processing
Yousefzadeh et al. On practical issues for stochastic STDP hardware with 1-bit synaptic weights
US7028271B2 (en) Hierarchical processing apparatus
US20130236048A1 (en) Image processor for feature detection
US12001945B2 (en) Event driven mathematical engine and method
Hasan et al. A fast training method for memristor crossbar based multi-layer neural networks
Deng et al. SemiMap: A semi-folded convolution mapping for speed-overhead balance on crossbars
CN111914989A (zh) 神经网络系统及其学习方法、以及迁移学习方法
Mukhopadhyay et al. Systematic realization of a fully connected deep and convolutional neural network architecture on a field programmable gate array
CN114626503A (zh) 模型的训练方法、目标检测方法、装置、电子设备及介质
Goyal et al. Neural ordinary differential equations with irregular and noisy data
JP4579798B2 (ja) 演算装置
Seng et al. Embedded intelligence: State-of-the-art and research challenges
Laiho et al. MIPA4k: Mixed-mode cellular processor array
Carpegna et al. Spiker+: a framework for the generation of efficient Spiking Neural Networks FPGA accelerators for inference at the edge
Wang et al. Architectural design exploration for neuromorphic processors with memristive synapses
KR20200062014A (ko) 다이어딕 매트릭스 형태의 웨이트를 이용해 뉴럴 네트워크를 가속하는 장치 및 그것의 동작 방법
Wilson et al. An efficient non-parametric background modeling technique with cuda heterogeneous parallel architecture
Ye et al. LaCERA: Layer-centric event-routing architecture
Ghani et al. Step forward to map fully parallel energy efficient cortical columns on field programmable gate arrays
Dawwd et al. A reconfigurable interconnected filter for face recognition based on convolution neural network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181120

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181120

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181204

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: 20190129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190211

R150 Certificate of patent or registration of utility model

Ref document number: 6489295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150