(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-08
(45)【発行日】2023-09-19
(54)【発明の名称】抵抗素子を含む数理問題解法回路
(51)【国際特許分類】
G06G 7/16 20060101AFI20230911BHJP
G11C 11/54 20060101ALI20230911BHJP
G11C 13/00 20060101ALI20230911BHJP
G06G 7/60 20060101ALI20230911BHJP
G06G 7/32 20060101ALI20230911BHJP
【FI】
G06G7/16 510
G11C11/54
G11C13/00 200
G06G7/60
G06G7/32
(21)【出願番号】P 2020517172
(86)(22)【出願日】2018-09-27
(86)【国際出願番号】 IB2018057487
(87)【国際公開番号】W WO2019064215
(87)【国際公開日】2019-04-04
【審査請求日】2021-07-29
(31)【優先権主張番号】102017000108281
(32)【優先日】2017-09-27
(33)【優先権主張国・地域又は機関】IT
(73)【特許権者】
【識別番号】501193001
【氏名又は名称】ポリテクニコ ディ ミラノ
【氏名又は名称原語表記】POLITECNICO DI MILANO
【住所又は居所原語表記】Piazza Leonardo da Vinci,3220133 MILANO-Italy
(74)【代理人】
【識別番号】100091683
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】イエルミニ,ダニエレ
(72)【発明者】
【氏名】サン,ゾン
(72)【発明者】
【氏名】ペドレッティ,ジャコモ
【審査官】豊田 真弓
(56)【参考文献】
【文献】国際公開第2017/052598(WO,A1)
【文献】国際公開第2016/068953(WO,A1)
【文献】米国特許出願公開第2017/0040054(US,A1)
【文献】村野 靖,『オペアンプ回路の「しくみ」と「基本」』,第1版,株式会社技術評論社 片岡 巌,2012年12月10日,第117頁
(58)【調査した分野】(Int.Cl.,DB名)
G06G 7/16
G11C 11/54
G11C 13/00
G06G 7/60
G06G 7/32
(57)【特許請求の範囲】
【請求項1】
数理問題解法回路(100;1000)であって、
複数の行導体(L
i)、複数の列導体(C
j;C
ouj)、及びそれぞれが行導体と列導体との間で接続される複数の抵抗素子(Gij;Xij)を含む、交点行列(M
G;M
Gou)と、
複数の演算増幅器(OA
i;OAouj)であって、それぞれは、対応する行導体(L
i)に接続される第1の入力端子(IN1i;「+」)、アース端子(GR
)に接続される第2の入力端子(IN2i;「-」)
、及び対応する行導体に対応する抵抗素子を介して接続される列導体(C
j;C
ouj)に
、直接的に又は間接的に接続され
る出力端子(OUi;OUPj)を
有し、閉ループを構成し、対応する前記第1の入力端子(IN1i;「+」)を仮想接地に向けるようにする、複数の演算増幅器(OA
i;OAouj)と、を備え、
前記複数の抵抗素子は、対応するコンダクタンス値(Gij;Xij)によって、数理問題の第1の複数の既知の値を表し、
前記数理問題の少なくとも1つの第2の既知の値を表す少なくとも1つの構成可能な電気量(Ii;λG0;Go)は前記回路と関連付けられ、
前記複数の演算増幅器(OAi;OAouj)は、
対応する出力端子(OUi;OUPj)から、前記数理問題の複数の解の値を代表する複数の出力電圧(V
i;wi)を定め
、
前記回路は、前記第1の入力端子(IN1i;「+」)が仮想接地を想定するときに、複数の解の値を表す複数の出力電圧(Vi;wi)が想定されるように構成される、数理問題解法回路(100;1000)。
【請求項2】
前記複数の抵抗素子は、抵抗メモリ、三端子抵抗素子(Dij、TRij)、抵抗メモリ(MRij)及び三端子抵抗素子(TRij)の組合せのグループに属する少なくとも1つのデバイスである、請求項1に記載の回路(100)。
【請求項3】
前記少なくとも1つの第2の既知の値は第2の複数の既知の値を含み、前記回路は、それぞれが、前記複数の行導体の行導体(L
i)に接続され、かつ前記第2の複数の既知の値の既知の値に対応する電流を発生させるように構成される複数の電流発生器(I
i)をさらに備える、請求項1に記載の回路(100、200)。
【請求項4】
それぞれの演算増幅器(OAi)の前記第1の入力端子(IN1i)は反転端子であり、それぞれの演算増幅器(OAi)の前記第2の入力端子(IN2i)は非反転端子である、請求項1~3のうちいずれか一項に記載の回路。
【請求項5】
行列形式で表現できる正方方程式系、実正方行列の反転、固有ベクトルの算出、微分方程式の解のグループに属する数理問題を解くように構成される、請求項
3に記載の回路。
【請求項6】
前記交点行列(MG+)の前記複数の抵抗素子は、
前記対応す
るコンダクタンス値(G
ij+)によって、前記第1の複数の既知の値を表すように構成され、このような前記第1の複数の既知の値は正の値である、請求項1~5のうちいずれか一項に記載の回路(200;300、500)。
【請求項7】
さらなる複数の行導体(L
i-)、それぞれが、前記さらなる複数の行導体の行導体(L
i-)と前記複数の列導体(Cj)の対応する列導体との間で接続されるさらなる複数の抵抗素子(G
ij-)を含む、さらなる交点行列(M
G-)であって、前記対応するコンダクタンス値(G
ij-)によって、前記数理問題に関する第2の複数の既知の負の値の絶対値を表すように構成される、さらなる交点行列(M
G-)と、
それぞれが、対応する列導体(C
i)上に配設され、かつ前記交点行列と前記さらなる交点行列との間に介在している複数の電圧インバータ(Inv1、Inv2、Inv3)と、をさらに含み、
前記さらなる複数の行導体(L
i-)のそれぞれの行導体は、前記仮想接地を想定するために対応する演算増幅器(OAi)の前記第1の入力端子(IN1i)に接続される、請求項6に記載の回路(300、500)。
【請求項8】
前記演算増幅器(OAi)はトランスインピーダンス構成を有し、それぞれは、前記対応する出力端子(OUi)と前記第1の入力端子(INi)との間に配設される帰還抵抗(λG
0)を含み、前記帰還抵抗は前記少なくとも1つの第2の既知の値に関連しているコンダクタンス値を有する、請求項1に記載の回路(400、500)。
【請求項9】
前記回路は、以下の行列形式:
Ax=b
によって表現できる正方方程式系を解くように構成され、
式中、
Aは既知の要素の行列であり、前記交点行列(M
G)の前記コンダクタンス値は前記行列Aの前記既知の要素に関連しており、
bは既知の要素のベクトルであり、前記複数の電流発生器(I
i)は、それぞれの電流発生器が前記ベクトルbの既知の要素に対応する電流を発生させるように構成され、
xは未知の要素のベクトルであり、前記複数の出力電圧(Vi)は前記未知の要素を表す、請求項3または5に記載の回路。
【請求項10】
前記回路は、方程式系:
AA
-1=U
に従って、反転させる正方行列Aの反転行列A
-1を判断するように構成され、
前記反転させる
正方行列Aは既知の要素を含有し、前記交点行列(M
G)の前記コンダクタンス値は前記既知の要素に関連しており、
Uは単位行列であり、前記複数の電流発生器(I
i)は前記単位行列Uのベクトルの値に対応する値の電流を発生させるように構成され、
前記反転行列A
-1は未知の要素の複数のベクトルを含み、前記複数の出力電圧(Vi)は前記反転行列A
-1の未知の要素の前記ベクトルのうちの1つを表す、請求項5に記載の回路。
【請求項11】
前記回路は、関係:
Ax=λx
によって表現できる正方行列の固有ベクトル及び固有値問題を解くように構成され、
Aは、各既知の要素を含有する正方行列であり、前記交点行列(M
G)の前記コンダクタンス値は前記正方行列Aの前記既知の要素に関連しており、
λは、前記
帰還抵抗(λG
0)の前記コンダクタンス値に関連している既知の固有値であり、
xは、未知の固有ベクトルであり、複数の出力電圧(Vi)は前記未知の固有ベクトルを表す、請求
項8に記載の回路。
【請求項12】
前記回路は定電流またはパルス電流によって供給されるように構成される、請求項1~11のうちいずれか一項に記載の回路。
【請求項13】
前記回路は前記複数の出力電圧(Vi)を測定するための少なくとも1つのデバイスを含む、請求項1~12のうちいずれか一項に記載の回路。
【請求項14】
入力計算回路(600)及び出力計算回路(700)を備え、
前記入力計算回路(600)は、
複数の入力行導体(L
i)、複数の入力列導体(C
j)、及びそれぞれが入力行導体と入力列導体との間で接続される複数の入力抵抗素子(Xij)を含む、入力交点行列(M
G)と、
それぞれがトランスインピーダンス構成である複数の入力演算増幅器(OA
i)であって、それぞれは、対応する行導体(L
i)に接続され
る第1の入力端子(IN1i)、アース端子(GR
)に接続され
る第2の入力端子(IN2i)
、及び出力端子(OUi;OUPj)を有し
、対応する
前記第1の入力端子(IN1i)を仮想接地に向けるようにする、複数の入力演算増幅器(OA
i)と、を備え、
前記出力計算回路(700)は、
出力交点行列(M
Gou
)及び複数の出力演算増幅器(OAouj)を備え、
それぞれの入力演算増幅器(OA
i
)は、前記交点行列(M
Gou)の
対応する行導体に接続され
る出力端子(OUi)を有
し、
それぞれの出力演算増幅器(OAouj)は、前記
出力交点行列(M
Gou)の対応する列導体(C
ouj)に接続され
る第1の入力端子(「+」)及び前記入力交点行列(M
G)の対応する入力列導体(Cj)に接続され
る出力端子(OUPj)を有す
る、請求項1に記載の回路(1000)。
【請求項15】
前記回路は、以下のモード:線形回帰アクセラレータ、ロジスティック回帰アクセラレータのうちの1つに従って動作するように構成される、請求項1または14に記載の回路(1000)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、抵抗素子を用いる電子回路によって行われる数学的計算の分野に関する。
【背景技術】
【0002】
抵抗メモリは、数学的計算電子回路において頻繁に応用されていることが見られる。この件に関して、特許文献1には、交点行列で編成された抵抗メモリを備え、かつ、タイプx=Abの行列ベクトル積演算を行うために構築される抵抗メモリを備える回路が記載されており、式中、xは電流ベクトル、Aはコンダクタンス行列、及びbは交点行列のそれぞれの行に印加される電圧のベクトルである。
【0003】
特許文献2には、計算アクセラレータに対する、とりわけ、方程式系を解くためのものであり、反復数値計算技法を用いることによる、抵抗メモリの行列が記載されている。このような解法には、収束を得るためのいくつかの反復が必要とされると考えられる。
【0004】
特許文献2に開示されるものと類似したアプローチが、M.Le Gallo、「Mixed-Precision Memcomputing」、arXiv:1701.04279[cs.ET]において見出される。ここでは、混合精度解法に対する相変化メモリの行列を組み合わせることによって反復アプローチ(クリロフ部分空間法)によって線形系を解くという問題に直面している。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許第9152827号明細書
【文献】米国特許出願公開第2017/0040054号明細書
【非特許文献】
【0006】
【文献】M.Le Gallo、「Mixed-Precision Memcomputing」、arXiv:1701.04279[cs.ET]
【発明の概要】
【発明が解決しようとする課題】
【0007】
出願人は、先行技術の計算処理方法は、実行可能な演算処理のタイプ(すなわち、簡易な乗算)との関連で、及び代数的な問題を解く可能性に対する計算負荷に関して、限界を示していると考えた。
【課題を解決するための手段】
【0008】
本発明の第1の目的は、独立請求項1に記載されるような数理問題解法回路である。詳細な実施形態は、従属請求項2~15に記載されている。
【0009】
本発明について、以下の図面における例証的なやり方でのみ示される非限定的な例を参照して、以下に説明する。これらの図面は、本発明の種々の態様及び実施形態を示しており、適切な場合、種々の図における同様の構造、構成要素、材料、及び/または要素は同じ参照番号で指示される。
【図面の簡単な説明】
【0010】
【
図2】正方方程式系を解くための第1の回路の例を示す図である。
【
図3】例として、正方方程式系を解くための第2の回路を示す図である。
【
図4】固有ベクトルを算出するための第1の回路の例を示す図である。
【
図5】固有ベクトルを算出するための第2の回路の例を示す図である。
【
図6】三端子抵抗素子を使用して一実施形態における正方方程式系を解くための第1の回路を示す図である。
【
図7】抵抗メモリと組み合わせた三端子抵抗素子を使用して一実施形態における正方方程式系を解くための第1の回路を示す図である。
【
図8】開ループ演算増幅器を含む一実施形態における固有ベクトルを算出するための第1の回路を示す図である。
【
図9】線形回帰アクセラレータ回路の例を示す図である。
【
図10】線形回帰アクセラレータ回路を使用することによってトレーニングされるニューラルネットワークの例を示す図である。
【発明を実施するための形態】
【0011】
本発明は種々の修正及び代替的な構成の影響を受けやすいが、いくつかの、対応して例証される実施形態が図面に示され、かつ以下に具体的に説明されるものになる。いずれにしても、本発明を特定の示される実施形態に限定することは意図されておらず、それどころか、本発明は、特許請求の範囲で定められるような本発明の範囲内にある、修正、代替的な構成、及び等価物全てを包含することが意図されていることを述べておく。
【0012】
図1は、数理問題100を解くための回路の例について触れる。解法回路100は、複数の行導体Li、複数の列導体Cj、及びそれぞれが対応する行導体Liと対応する列導体Cjとの間で接続される複数のアナログ抵抗メモリG
ijを含む、交点行列M
Gを含む。
【0013】
本発明の目的で、(メモリスタとしても既知の)抵抗メモリは、可能な新しい構成が得られるまで維持される値にするように構成可能であるコンダクタンスを有する2つの端子(換言すれば、双極子)を有する回路素子である。例えば、以下のデバイスは、抵抗メモリ:抵抗変化型メモリ(RRAM(登録商標))、導電性ブリッジランダムアクセスメモリ(CBRAM)、相変化メモリ(PCM)、種々のタイプの磁気抵抗ランダムアクセスメモリ(MRAM)、種々のタイプの強誘電ランダムアクセスメモリ(FeRAM)、有機体メモリ、または、電気、磁界、熱、光、機械動作、もしくは任意の他のタイプの動作、またはこれらの組合せによるこのコンダクタンスを変更できる他のデバイスである。
【0014】
上述した抵抗メモリGijは、好ましくは、アナログタイプのものであり、これは、これらの抵抗メモリが、動作範囲内で連続したコンダクタンス値にすることができることを意味するが、デジタルタイプの抵抗メモリGijの可能性は除外されず、これは、これらの抵抗メモリが値の有限集合にあるコンダクタンス値にできることを意味する。
【0015】
特定の示される例は、行導体Liの数N=3、列導体Cjの等しい数N=3、及びこれらのコンダクタンスGijによって表されるアナログ抵抗メモリの数N×N=3×3を示す。
【0016】
また、回路100は、閉ループ構成を有する複数の演算増幅器AOiを含み、それぞれは、対応する行導体Liに接続される第1の入力端子IN1i、及び、アース端子GR及び出力端子OUiに接続される第2の入力端子IN2iを有する。とりわけ、第1の入力端子IN1iは、対応する演算増幅器OAiの反転端子であり、第2の入力端子IN2iは、対応する演算増幅器OAiの非反転端子である。
【0017】
それぞれの演算増幅器OAiの出力端子OUiは、対応する列Cjに接続される。具体的には、
図1によると、それぞれの出力端子OUiは、j=iである列Cjの端部に接続される。
図1は、説明される例によると、3つの演算増幅器OAi(OA1、OA2、OA3)を示すことで、3つの第1の入力端子IN1i(IN11、IN12、IN13)、3つの第2の入力端子IN2i(IN21、IN22、IN23)、及び3つの出力端子OUi(OU1、OU2、OU3)が示されている。
【0018】
負帰還により、それぞれの演算増幅器AOiは、対応する第1の入力端子IN1iを仮想接地にするために、換言すれば、第2の入力端子IN2iによって想定されるアースGRのものに近い(理論上は等しい)電圧値にするために、動作できることが分かる。仮想接地は、有限利得を有する演算増幅器によって理論上想定されることが分かる。とりわけ、それぞれの演算増幅器AOiは反転構成を有する。
【0019】
解かれるべき数理問題に関して、複数の抵抗メモリGijは、対応するコンダクタンス値によって(さらにはGijによって指示される)、数理問題の第1の複数の既知の値を表すように構成可能である。
【0020】
また、回路100は、解かれるべき数理問題の第2の既知の値または第2の複数の既知の値を表すように構成可能であるように適応される、回路自体の複数の電気の大きさを検出できるようにする。この第2の複数の既知の値は、例えば、それぞれの行導体において流された電流の値を含む、または、既知の値は、複数の演算増幅器AOiに接続可能な追加の電気部品のコンダクタンス(または別のパラメータ)とすることができる。
【0021】
複数の演算増幅器AOiは、数理問題を解く複数の値を代表する(それぞれの出力端子OUiで測定可能な)複数の出力電圧Viを定める。
【0022】
特定の実施形態によると、解法回路100は、線形代数の問題の近似解に使用可能であり、この中で、以下が例示として挙げられる:
-行列形式で表現できる正方方程式系の解;
-実正方行列の反転;
-固有ベクトルの算出。
【0023】
解法回路100は、(示されない)電圧値Viを測定するための少なくとも1つの装置をさらに備えることができる。このような測定装置は、アナログ(すなわち、電位差計)またはデジタルとすることができ、それによって、アナログからデジタルに電圧値Viを変えることが必要とされる。
【0024】
本明細書において、同一のまたは類似の回路部品は図における同じ特定する記号で指示されることが分かる。
【0025】
正方方程式系の解
図2は、上述される回路100の第1の実施形態に触れており、例として、正方方程式系を解くための第1の回路200を示す。
【0026】
第1系の解法回路200は、以下の行列形式によって表現できる正方方程式系を解くことが可能である。
Ax=b (1)
式中、Aは寸法N×Nを有する実係数の行列であり、xは長さがNである未知のベクトルであり、bは長さがNである実素子のベクトルである。
【0027】
抵抗メモリGijは、最小値Gminと最大値Gmaxとの間の範囲内で(不確定性マージン以外の)所定の値にするように構成可能であることが分かる。
【0028】
行列1の抵抗メモリのそれぞれのコンダクタンス値G
ijは、行列Aの要素A
ijに等しいまたは比例する。とりわけ、
図2に示される、正方方程式系を解くための第1の回路200は、全て正である行列Aの要素A
iJを指す。
【0029】
第1系の解法回路200はまた、それぞれが、例えば、行導体Liの第1の端部に接続される複数の電流発生器Iiを備える。それぞれの演算増幅器AOiは、例えば、電流発生器Iiに接続される第1の端部の反対側の第2の端部で、対応する行導体Liに接続されることが分かる。例によると、抵抗メモリGijは、固有の行導体Liの第1の端部と第2の端部との間に含まれる、ノードnijにおいて対応する行導体に接続される対応する端子を示す。
【0030】
電流発生器Iiは、各行導体において、電流Ii(I1、I2、I3)を流すように構成され、これらの値は、行列系(1)の既知のベクトルbの要素に等しくなるまたは比例するように選択される。電流Iiは定電流またはパルス電流である。
【0031】
演算では、行導体Liに供給する電流Iiは、それぞれの演算増幅器AOiの第1の入力端子INi(換言すれば、仮想接地端子IN1i)に流れる。電圧Viは、対応する出力端子OUiとアースGRとの間で数値が求められる。
【0032】
図2から、オームの法則及びキルヒホッフの法則に基づいて以下の式を書き込むことが可能である:
V
1 G
11+V
2 G
12+V
3 G
13=-I
1
V
1 G
21+V
2 G
22+V
3 G
23=-I
2 (2)
V
1 G
31+V
2 G
32+V
3 G
33=-I
3
【0033】
式(2)は、数式(3):
ΣjVjGij=-Ii (3)
にあるようなコンパクトなやり方で、及びまた、以下の行列方程式(4):
AV=-I (4)
による代数表記法によって、書き換え可能である。式中、既に(1)によって表現されるように、AはコンダクタンスGijの行列であり、Iは既知のベクトル-bであり、電圧Vのベクトルは線形系Ax=bを解く。
【0034】
演算では、上に述べられるように、コンダクタンスGijの値が構成され、第1の回路200は所定の電流値Iiによって供給される。
【0035】
演算増幅器AOiは、対応する第1の入力端子INi(反転端子)にすることで、出力端子OUiにおける、アースへの行導体Li、ひいては電圧Vi全てによって、関係(4)によって表現されるように、最終値が想定される。
【0036】
高利得演算増幅器OAiを選択することによって、仮想接地に非常に迅速に達することが可能になり、電圧はまた、判断される値Viに迅速に収束することが分かる。とりわけ、この実施形態、及び他の実施形態に対して、105を上回る公称利得を有する演算増幅器が選択可能である。
【0037】
第1系の解法回路200において達した電圧値Vi(具体的には、V1、V2、及びV3)を測定することによって、ベクトルxの要素を得ることができ、その結果として、方程式系(1)を解くことが可能になる。
【0038】
図2の第1系の解法回路200は、正の要素のみを含有する係数行列Aを指す。正の要素及び負の要素両方を含有する係数行列A
1を考慮することによって、方程式系の解
A
1x=b (1a)
は、係数行列A
1が寸法N=3を有する具体的な例において、正方方程式系300を解くための第2の回路の例を示す、
図3における実施形態によって得られ得る。
【0039】
第2系の解法回路300は、行列A1が、両方が正の要素のみを含有する第1の行列A+と第2の行列A-との間の差として表され得ると考えることにより構成される。
A1=A+-A- (5)
【0040】
とりわけ、第2の行列A-は、行列A1の負の要素の絶対値を含有する。
【0041】
数式(5)によると、第2系の解法回路300は、
図2の行列M
Gに類似した第1の交点行列M
G+を含み、この抵抗メモリは、第1の行列A+の要素に対応するコンダクタンスGij+を有し、及び(構造的に第1の交点行列と類似した)第2の交点行列M
G-を含み、この抵抗メモリは、第2の行列A-の要素に対応するコンダクタンスGij-を有する。
【0042】
2つの交点行列は、同じ列導体Cjを有し、これらのそれぞれに沿って、(抵抗メモリGij+と抵抗メモリGij-との間に)電圧の符号をこの入力からこの出力まで反転させるように構成され、かつ関係(5)によって指示される差に対応する、対応する反転デバイスInv1(示される例では、Inv1、Inv2、Inv3)が介在している。
【0043】
第1の交点行列MG+はN=3の行導体Li+(L1+、L2+、L3+)を含み、これらのそれぞれは、対応する電流発生器Iiに接続される対応する供給ノードNi(N1、N2、N3)に接続される端部を有する。
【0044】
例の第2の交点行列MG-はN=3の行導体Li-(L1-、L2-、L3-)を含み、これらのそれぞれは、供給ノードNi(N1、N2、N3)のうちの1つに接続される端部を有する。
【0045】
とりわけ、第2系の解法回路300の演算増幅器OAiは、仮想接地に対して上述されるように動作し、かつ、とりわけ、供給ノードN1、N2、及びN3で、ひいては仮想接地ノードとして動作する、それぞれの行導体Li+及びLi-に接続される対応する反転入力端子In1iを有する。
【0046】
既知の電流(I1、I2、及びI3)のそれぞれは、供給ノードN1、N2、及びN3のうちの1つにおいて2つの項、すなわちIi+及びIi-に分けられる。
Ii=Ii++Ii- (6)
【0047】
第1の交点行列MG+に関して、式:
ΣjVjGij+=-Ii+ (7)
は有効である。式中、Vjは電圧ベクトルV1、V2、V3を指示する。
【0048】
第2の交点行列MG-に関して、以下の式:
-ΣjVjGij-=-Ii- (8)
は有効である。
【0049】
式(7)及び(8)をそれぞれ合計すると、
ΣjVj(Gij+-Gij-=-Ii+-Ii-=-I (9)
が得られる。
【0050】
関係(5)に基づいて、
(Gij+-Gij-)=(A+-A)=-A1 (10)
が得られる。
【0051】
従って、以下のように(8)を書き換えることが可能である。
(A+-A-)x=A1x=-I=b (11)
【0052】
電流Iiを既知のベクトルbの値に変更することによって、電圧Vjを測定することによって、負の要素及び正の要素を含む、係数行列A1に対する方程式系(1a)も解くことが可能になる。
【0053】
正方行列の反転
さらに、問題解法回路100は、
図2及び
図3の実施形態においても、正方行列を反転させるために、換言すれば、行列Aの反転行列A
-1を算出するために使用可能であることが分かる。
【0054】
反転行列A-1は関係:
AA-1=U (12)
を満たす。ここで、Uは単位行列であり、この要素は、1に等しい対角線の要素以外は、全てゼロである。
【0055】
反転行列A-1を判断するために、以下の方程式系:
AAi
-1=Ui (13)
を解くことが必要とされることが分かる。ここで、
-Ai
-1は反転行列A-1のi番目の列であり、
-Uiは単位行列Uのi番目の列である。
【0056】
行列Aの寸法がN×Nである場合、(13)に従ってNの系を解くことが必要とされる。この場合、方程式系を解くための第1の回路200は、方程式系(13)のうちの1つに関して構成可能であり、それによって、
-交点行列MGは反転される行列Aの値に等しいコンダクタンスGijを有し、
-電流Iiは単位行列Uのi番目の列の値Uiになる。
【0057】
このような条件の下で、
図2に関して指示されるのと同じやり方で、電圧Vjの値は反転行列A
-1の列A
i
-1を表す。
【0058】
図3に関して説明されるモードを使用することによって、負の要素及び正の要素も含有する行列を反転させることが可能である。
【0059】
固有ベクトルの算出
上で論じられるように、回路100は、例えば、第1の固有ベクトル算出回路400を示す
図4に示されるように、固有ベクトルを算出するために使用可能である。
【0060】
解かれるべき問題は、関係:
Ax=λx (14)
によって表され得る。ここで、
-Aは既知の要素のN×N行列であり、
-xは未知である、行列Aの固有ベクトルであり、
-λは既知である、行列Aの(スカラー)固有値である。
【0061】
第1の固有ベクトル算出回路400では、演算増幅器AOiは、トランスインピーダンス構成を有し、とりわけ、第1の入力端子IN1i(反転するものは「-」)は、λG0に等しいコンダクタンスを有する対応する帰還抵抗によってそれぞれの演算増幅器OAiの出力端子OUiに接続され、ここで、G0は、既知の値であり、かつ基準コンダクタンスである。
【0062】
とりわけ、(抵抗メモリによって実装可能な)それぞれの帰還抵抗λG0は、それぞれの演算増幅器OAiの反転端子にそれぞれ接続される、出力端子OUiと入力ノードINi(例では、IN1、IN2、IN3)との間で接続される。
【0063】
演算増幅器AOiの出力端子OUiは、閉ループ構成を得るために各インバータINV1I、INV2、及びINV3によって行導体Liに接続される。
【0064】
図4の例は、正の要素のみを含有する行列Aに対するN=3の事例を指す。
【0065】
対応する演算増幅器の入力ノードINiに流れる電流I1、I2、及びI3は、
I1=V1G11+V2G12+V3G13
I2=V1G21+V2G22+V3G23
I3=V1G31+V2G32+V3G33 (15)
によって表され得る。
【0066】
一般的な値Nについて、系(15)は以下のやり方:
Ii=ΣjVjGij (16)
または、行列表記法によって、以下のやり方:
I=GV (17)
で書き換え可能である。
【0067】
電流Iのベクトルは、電圧ベクトルVに、トランスインピーダンス構成を有する演算増幅器OAiによって変換される。
V=I/GTIA (18)
【0068】
関係(18)によって表される変換は、トランスインピーダンス増幅器として動作するそれぞれの演算増幅器OAiによって、及び対応するインバータINViによって可能にされる。
【0069】
ここで、GTIAは、帰還抵抗のコンダクタンスである。
GTIA=λG0 (19)
式中、λは固有値であり、G0は基準コンダクタンスである。
【0070】
従って、
GV=G0λV (20)
を書き込むことが可能である。
【0071】
式(20)と関係Ax=λxとの比較によって、
A=G/G0、x=V (21)
を得ることが可能になる。
【0072】
従って、
図4の回路400において、交点行列M
Gの抵抗メモリのコンダクタンスGijは、基準コンダクタンスG
0の値で乗算された行列Aの要素のものに等しい値を有する。
【0073】
帰還抵抗GTIAは、固有値λ及び基準コンダクタンスG0の積によって与えられる。電圧Vi(V1、V2、及びV3)の測定された値は、要求された固有ベクトルxに相当する。固有ベクトルxの完全集合は、固有値、換言すれば、帰還抵抗GTIAの値を修正することによって得られることが分かる。
【0074】
第1の固有ベクトル算出回路400の可能な応用がランキングアルゴリズムの(例えば、Googleの)リンク行列において見出され、ここで、固有値はそれぞれのページの重要性スコアを表現していることが分かる。従って、説明した解法は、インターネットページのランキングを加速させ、かつ一般的に「ビッグデータ」を解析するのに極めて有利であると思われる。
【0075】
第1の固有ベクトル算出回路400はまた、微分方程式の近似数値解に適用可能である。微分方程式が有限微分方程式に変換される時、再び行列形式Ax=λxになる。例えば、シュレーディンガー方程式がこのような形式を取り、ここで、Aは準対角行列であり、λはエネルギーの固有値であり、xは問題の固有関数の解である。
【0076】
固有ベクトルが求められる行列Aが正の要素及び負の要素両方を含有する場合、問題は、(依然N=3として)
図5に例として示される第2の固有ベクトル算出回路500によって解かれ得る。
【0077】
第2の固有ベクトル算出回路500は、それぞれ、表記法に従って正の要素を含有する行列G+及びG-に対応する、第1の交点行列MG+及び第2の交点行列MG-を含む。
A=(G+-G-)/G0 (22)
【0078】
2つの交点行列は、同じ列導体Cjを有し、これらのそれぞれに沿って、(抵抗メモリGij+と抵抗メモリGij-との間に)電圧の符号をこの入力からこの出力まで反転させるように構成される、対応する反転デバイスInvj(Inv4、Inv5、Inv6)が介在している。
【0079】
第1の交点行列MG+はN=3の行導体Li+(L1+、L2+、L3+)を含み、これらのそれぞれは、対応する接続ノードNiA(N1A、N2A、N3A)に接続される端部を有する。例の第2の交点行列MG-はN=3の行導体Li-(L1-、L2-、L3-)を含み、これらのそれぞれは、接続ノードNiA(N1A、N2A、N3A)のうちの1つに接続される端部を有する。
【0080】
とりわけ、第2系の解法回路300の演算増幅器OAiは、仮想接地に対して上記のように動作し、かつ、とりわけ、コンタクトノードN1A、N2A、及びN3Aで、それぞれの行導体Li+及びLi-に接続される対応する入力ノードINiを有するため、仮想接地ノードとして動作する。
【0081】
図5における回路について、第1の交点行列M
G+の行導体にある電流I
i+(I
1+、I
2+、I
3+)に関して、コンパクトな形式の以下の式が有効である。
I
i+=Σ
jV
jG
ij+ (23)
【0082】
第2の交点行列MG-の行導体において流れる電流Ii+(I1+、I2+、I3+)に関して、コンパクトな形式の以下の式が有効である。
Ii-=-ΣjVjGij- (24)
【0083】
電流Ii+及びIi-は、
Ii=Ii++Ii (25)
を得るために、キルヒホッフの法則に従って、各接続ノードN1A、N2A、及びN3Aにおいてそれぞれを合計する。
【0084】
その結果、電流ベクトルIは、
I=GV (26)、
ここで、
Gij=Gij+ - Gij- (27)
として代数表記法によって表現できる。
【0085】
電流ベクトルIはトランスインピーダンス演算増幅器OAiによって、及び対応するインバータInviによって電圧ベクトルVにおいて変換される。
V=I/G
TIA (28)
ここで、
図4の上述される回路に関して、G
TIAは帰還抵抗のコンダクタンスである。
G
TIA=λG
0 (29)
【0086】
関係Ax=λxを考慮すること、及びこの関係を関係(29)と比較することによって、
図4における回路の式(21)と類似した、
A=G/G
0、x=V (30)
が得られる。
【0087】
第1の固有ベクトル算出回路400のそれぞれの演算増幅器AOiはこれ自体の正の供給源及び負の供給源を有する能動回路であることが分かる。第1の固有ベクトル算出回路400の行導体及び列導体において、電流/電圧は、問題の解法を判断するオームの法則及びキルヒホッフの法則を満たすように生成される。他で示される図の回路にも類似の検討が有効である。
【0088】
さらなる実施形態
上述した回路全てのコンダクタンス値Gijは、抵抗メモリ(換言すれば、メモリスタ)を使用することによってだけでなく、必要とされるコンダクタンスGijのそれぞれの値に対して、例えば、電界効果トランジスタ、フローティングゲートトランジスタ、フラッシュメモリ、電荷トラップメモリなどの3つ以上の端子を有する抵抗素子(好ましくは、再構成可能なもの)を使用することによって、得られ得ることが分かる。例えば、電荷トラップメモリとして、metal-oxide-nitride-oxide-semiconductor(MONOS)構造を有するデバイスが使用可能である。
【0089】
この目的で、
図6は、
図2に関して上述される正方方程式系を解くための第1の回路200の第1の実施形態(200A)を示す。ここで、コンダクタンスGijは対応するMONOS型デバイスDijによって得られる。
【0090】
それぞれのデバイスDijのゲート電圧Vg、ijは、(示されない)各張力発生器によって制御され、かつ、例えば、列または行のゲート端子全てを電圧発生器自体に接続することによって、接続数を限定するために部分的に互いに短絡可能である。
図6における同じ回路は、フローティングゲートトランジスタで、簡易な電界効果トランジスタで、または他のタイプの三端子素子で使用可能である。
【0091】
さらに、三端子抵抗素子はまた、二端子素子(例えば、メモリスタ)及び三端子素子の適した組合せを含むことができることが分かる。
図7は、正方方程式系を解くための第1の回路200の第2の実施形態(200B)を例示的に示し、ここで、それぞれのコンダクタンスGijは、トランジスタデバイスTRij及びメモリスタデバイスMRijを含む三端子素子を適当に構成することによって得られる。
【0092】
コンダクタンス値Gijを得るために使用可能である可能な抵抗素子に関して説明されるものは、第1の固有ベクトル算出回路400に関して説明されるコンダクタンス値G0に依然有効であることが分かることは、有用である。
【0093】
さらに、説明した実施形態全ては一定のコンダクタンス抵抗素子、換言すれば、非再構成可能素子を使用することによって動作可能であることが分かる。
【0094】
ここで、上述される種々の実施形態における演算増幅器OAiの閉ループ構成を参照する。さらなる実施形態によると、演算増幅器OAiのうちの1つが、出力端子OUiが列導体Ciに接続されない開ループ構成であることも企図される。
【0095】
例えば、
図8は、第1の固有ベクトル算出回路400の異なる実施形態(400B)を示す。ここで、演算増幅器OA1の出力端子OU1は、第1の列導体C1に接続されないため、(求められる固有ベクトルVの要素として)測定される電圧V1’は、演算増幅器OA1によって(対応する反転デバイスInv1によって)駆動される端子TOU1で利用可能である。
図8の例によると、第1の列C1は、電圧発生器GENによって発生させる電圧V1によって供給される。また、交点行列M
G内の他の点で、
図8に示されるものの代替策としてまたはこれに加えて、第1の列導体C1が開放される可能性がある。
【0096】
既に述べたように、数理問題解法回路100及びこの上述される実施形態の応用は、ビッグデータを解析する、例えば、ウェブページのランクページを算出することから成ることが分かる。他の応用は、例えば、シュレーディンガー方程式、及び他の気象学、金融、生物学問題など、微分方程式の近似解を含む。
【0097】
数理問題解法回路100及びこの上述される実施形態は、近似解を伝えるが、これは、抵抗メモリの構成可能な値について一部不確定であるからである。このような近似は、回路自体の応用のより大きい部分には許容できる。
【0098】
数理問題解法回路100及びこの上述される実施形態は、計算が簡易であるという利点を有し、計算は、乗算及び加算を必要とせずに1つのクロックだけで行われる。従って、説明した回路は代数的計算アクセラレータとして動作する。
【0099】
図9は、線形回帰アクセラレータ回路1000として数理問題解法回路の別の例に触れている。
【0100】
線形回帰アクセラレータ回路1000は、第2の回路700(または出力回路)に接続される第1の回路600(または入力回路)を含む。第1の回路600は、複数のアナログ抵抗メモリがGijの代わりに参照記号Xijによって指示されること以外、
図1に説明される数理問題解法回路100に類似している。第2の入力回路700はまた、
図1に説明される数理問題解法回路100に類似している。
【0101】
より詳細には、第1の回路600の演算増幅器OAiは、トランスインピーダンス構成を有し、具体的には、第1の入力端子IN1i(反転するものは「-」)は、G0に等しいコンダクタンスを有する対応する帰還抵抗によってそれぞれの演算増幅器OAiの出力端子OUiに接続され、ここで、G0は、既知の値であり、かつ基準コンダクタンスである。
【0102】
それぞれの演算増幅器OAiの出力端子OUiは、出力交点行列MGouを含む第2の回路700に接続される。出力交点行列MGouは、交点行列MGと同じ寸法を有し、かつ第1の回路600の交点行列MGのものと同一の値及び回路位置を有するアナログ抵抗メモリXijを含む。
【0103】
図9の例において、交点行列M
G及び出力交点行列M
Gouは矩形行列である。とりわけ、列数は行数より(例えば、単位として)少ない。
【0104】
第1の回路600のそれぞれの演算増幅器OAiの出力端子OUiは、出力交点行列MGouの対応する行導体Liに接続される。出力交点行列MGouのそれぞれの列導体Coujは対応する出力演算増幅器OAouiに接続される。それぞれの出力演算増幅器OAouiは、対応する列導体Coujに接続される対応する非反転入力端子「+」、及び、アースGRに接続される対応する反転入力端子「-」を有する。
【0105】
それぞれの出力演算増幅器OAouiは、第1の回路600の交点行列MGの対応する列導体Cjに接続される対応する出力端子OUPjを備える。それぞれの出力演算増幅器OAouiは閉ループ回路1000において接続される。
【0106】
また、線形回帰アクセラレータ回路1000は、この例において、それぞれが、交点行列MGの行導体Liに接続され、かつコンダクタンスG0が接続される対応する端子における電圧-yiを有する電圧発生器VGiによって供給される。それぞれの演算増幅器AOiの出力端子OUiにおける電圧は、参照記号Viで指示される。出力演算増幅器OAouiの出力端子OUPjにおける電圧は、記号wj(例では、w1及びw2)によって指示される。
【0107】
線形回帰問題に関して、回帰が、無限の仮説母集団から抽出されるサンプリング日に基づいて測定される変数の間の関数関係の問題を正式なものにしかつ解くことに留意されたい。例えば、これは、mの点(入力/出力の対が考慮される)であり、それぞれがnの入力変数:
(x1、x2、…、xn) (31)
を有し、出力座標はyである。
【0108】
i番目の入力/出力の対に対して、線形回帰関係がある。
yi=w0+w1x1
i+w2x2
i+…+wnxn
i+εi (32)
ここで、iは1からmまでの整数全てを包含する。
【0109】
行列形式において全体を表現することによって、
y=X・w+ε (33)
が得られる。式中、Wは(判断される)係数の行列であり、εは近似誤差である。
【0110】
【0111】
近似誤差εを最小化するために、ベクトルεのノルムは最小化されるため、
【0112】
【0113】
最低ノルムは、変数wに対して数式(34)の導関数をゼロに設定することによって判断可能である。
【0114】
【0115】
従って、
XT×w=XTy (35)
になる。
【0116】
従って、係数行列wは、
w=(XTX)-1XTy (36)
によって示され、式中、(XTX)-1XTは行列Xの疑似逆である。
【0117】
再び、線形回帰回路1000に言及すると、数式(36)を解くことによって二次誤差(34)を最小化するのに有用である。
【0118】
実際には、(トランスインピーダンス構成において動作させる)演算増幅器OAiの出力電圧Vi(ベクトルV)は以下の関係によって表現できる。
V=-(X・w-G0y)/G0 (37)
式中、Xはコンダクタンスの行列Xijであり、G0は前に定められたものである。
【0119】
演算増幅器OAiに関して説明されるものと類似した出力演算増幅器OAoujは、対応する非反転入力端子を仮想接地に接続するように構成されるため、以下になる。
XT・V=-XT・(X・w-G0y)/G0=0 (38)
【0120】
行列G0はコンダクタンスの行列Xに対する単位であるため、数式(38)は、
XTX・w-XTy=0 (39)
の形式を取る。これは数式(36)と同等である。
【0121】
既知の値に基づいて回路1000を正確に寸法合わせした後、電圧発生器VGiによって供給電圧が印加されると、回路1000は、出力演算増幅器OAoujの出力端子が(数式(36)からのように)求めた解を表す対応する電圧wjを有するように動作することになる。先の実施形態に対して行われたものと類似して、線形回帰アクセラレータ回路1000に対しても、計算は乗算及び加算を必要とすることなく1つのクロックのみで行われる。従って、説明した線形回帰回路1000は代数的計算アクセラレータとして動作する。
【0122】
前述される線形回帰アクセラレータ回路1000の配置はまた、ロジスティック回帰アクセラレータとして使用されるように適応可能である。知られているように、ロジスティック回帰は、y依存変数が、2つの値(例えば、真または偽)のみにできる変数全てのように、低値(例えば、-1)及び高値(例えば、+1)に関係している二値型である事例に関する特定の事例である。
【0123】
ロジスティック回帰アクセラレータを実装するために、(低値として)-1及び(高値として)1の二値を表す電圧(または電流)供給発生器を有する
図9の回路1000のレイアウトを修正することが企図される。得られたベクトルwは、高い及び低いyを有する点の2つのクラスを線形に分けることを可能にする式(32)の係数を特定する。
【0124】
また、線形回帰アクセラレータ回路1000は、ニューラルネットワークの係数wjを算出するために使用可能であり、これによって、例えば、逆伝搬法に従って、反復トレーニングを行うことが防止される。
【0125】
例えば、
図10は、入口層801、隠れ層802、及び出口層803を含むニューラルネットワーク800を概略的に示す。
【0126】
図10の例では、入口層はN
1=14×14=196のニューロンを含み、隠れ層はN
2=784のニューロンを含み、最後に、出力または分類層はN
3=10のニューロンを含む。
【0127】
入力層801に関連しているニューラルネットワーク800の重みは、行列W(1)(例えば、寸法N1×N2=196×784のW(1))によって表され得、隠れ層804に関連している重みは行列W(2)(例えば、寸法N2×N3=784×10のW(2))によって表され得る。
【0128】
ニューラルネットワーク800は、例えば、入力量を承認する/分類するのに使用可能である。特定の例によると、上述したもののようなネットワークは、手書きの数字(0から9まで)を承認するために使用可能である。例えば、N1の入力値(画素)の行列において表されるMNISTデータセット標準における1桁の数字は、シナプス荷重の値を設定するためにネットワーク800を適当にトレーニングすることによって0から9までの数字としてニューラルネットワークによって分類可能である。
【0129】
ニューラルネットワーク800をトレーニングする演算はロジスティック回帰演算であり、この場合、重みは、ニューロンの二値出力をより良く線形に分離する係数を表すことが分かる。
【0130】
結果として、ネットワークは、先述されるロジスティック回帰アルゴリズムに従って動作させる、
図9における線形回帰回路1000によってトレーニング可能である。この目的で、第1のニューロン層801と隠れニューロン層802との間のシナプス荷重W
(1)は、例えば、重みのランダムな分布に従って、任意に設定される。また、第1の層801のニューロンに提示されるN
1の入力値の集合の判断された数Mによって形成されるトレーニングデータセットが使用される。回路1000内で使用される行列Xは、さらにまた、種々のMの提示で隠れネットワークの出力値によって形成されることになる。
【0131】
M*Nの提示される入力値全てを含有する行列Iを定めることによって、行列Iは例えば、
X=sigmoid(I*W
(1)) (40)
として得られる。ここで、シグモイド関数は、一般的なニューロンに関連している可能な非線形関数である。行列は寸法M*N
2を有することが分かる。
図9におけるベクトルy
iは、それとは逆に、(iが1からN
3まで変化するとして)i番目の分類ニューロンを指す、ラベルの行列(「真」というラベルが+1、「偽」というラベルが-1)として得られる。i番目のニューロンを指すシナプス荷重は従って、線形回帰:
W
i
(2)=(X
TX)
-1X
Ty (41)
によって得られる。
【0132】
従って、隠れ層802の重みW(2)の値は、行列表現(41)が上で論じた行列表現(36)に類似していることが分かることで、線形回帰アクセラレータ回路1000を使用することによって得られ得る。動作はN3回、それぞれの分類ニューロンにつき1回、繰り返されなければならないことが分かる。それぞれの動作によって、i番目の出力ニューロンを指すN2のシナプス荷重を得ることが可能になる。このように、繰り返し演算によって、隠れ層と出力層との間のN2×N3のシナプス荷重W(2)全てを得ることが可能になる。
【0133】
線形回帰アクセラレータ1000及びこの上述した特定の実施形態は、データサイエンスにおいて非常に有用であり、かつ、例えば、経済、金融、生物学、物理学、自動トレーニング、ロボット工学などにおける種々の科学及び工学分野において可能な応用を見出すことが分かる。