(57)【要約】      （修正有）【課題】１個のリザバ演算装置で動作可能な高性能な機械学習装置を提供する。【解決手段】機械学習装置は、データを演算する一般演算装置９００２と、データに対して学習を行うリザバ演算装置１０００と、データを記憶する記憶装置と、記憶装置と一般演算装置との間及び記憶装置とリザバ演算装置との間で行うデータのやり取りを制御する制御装置９００３とを有する。リザバ演算装置は、少なくとも一つの振動子と、入力部１００と、出力部３００とを有し、入力部から入力されたデータを振動子により演算して、出力部から出力する【選択図】図１
2020087189.tif 000002
【特許請求の範囲】
【請求項１】
データを演算する一般演算装置と、
前記データに対して学習を行うリザバ演算装置と、
前記データを記憶する記憶装置と、
前記記憶装置と前記一般演算装置との間及び前記記憶装置と前記リザバ演算装置との間で行う前記データのやり取りを制御する制御装置と、を有し、
前記リザバ演算装置は、
少なくとも一つの振動子と、
入力部と、
出力部と、を有し、
前記入力部から入力された前記データを前記振動子により演算して前記出力部から出力することを特徴とする機械学習装置。
【請求項２】
前記少なくとも一つの振動子は、複数の振動子で構成され、
前記リザバ演算装置は、
前記入力部から入力された前記データを、前記振動子自身のダイナミクス及び前記振動子間の相互作用により演算して前記出力部から出力することを特徴とする請求項１に記載の機械学習装置。
【請求項３】
前記記憶装置は、
第１の訓練データと第２の訓練データの対を記憶し、
前記制御装置は、
前記記憶装置に記憶された前記第１の訓練データを前記入力部を介して前記振動子に送り、
前記リザバ演算装置は、
前記振動子により前記第１の訓練データを演算し、
前記制御装置は、
前記第１の訓練データの演算結果を前記出力部を介して前記記憶装置に送り、
前記一般演算装置は、
前記第１の訓練データの前記演算結果を、前記第２の訓練データが再現されるように加工し、
前記記憶装置は、
前記第２の訓練データの再現の際に得られた前記加工の規則を記憶し、
前記リザバ演算装置は、
一般のデータを演算して、前記一般のデータの演算結果を前記加工の規則に基づいて加工して前記出力部から出力することを特徴とする請求項１に記載の機械学習装置。
【請求項４】
前記一般演算装置は、
前記第２の訓練データが再現されるように前記第１の訓練データの前記演算結果を加工する際に、前記第１の訓練データを組み込んで実行することを特徴とする請求項３に記載の機械学習装置。
【請求項５】
前記一般演算装置は、
前記第２の訓練データが再現されるように前記第１の訓練データの前記演算結果を加工する際に、前記第１の訓練データを複数の時刻に亘って組み込んで実行することを特徴とする請求項３に記載の機械学習装置。
【請求項６】
前記第１の訓練データを複数の時刻点間に亘って相互作用させる局所場応答演算装置を更に有することを特徴とする請求項３に記載の機械学習装置。
【請求項７】
前記振動子は、線形素子で構成されることを特徴とする請求項２に記載の機械学習装置。
【請求項８】
前記線形素子は、ＬＣＲ回路で構成されることを特徴とする請求項７に記載の機械学習装置。
【請求項９】
前記振動子間の相互作用は、一対のコイルのカップリングにより実現されることを特徴とする請求項８に記載の機械学習装置。
【請求項１０】
前記振動子間の相互作用は、振動子間で単一のコイルを共有することにより実現されることを特徴とする請求項８に記載の機械学習装置。
【請求項１１】
前記振動子間の相互作用は、振動子間で単一のコンデンサを共有することにより実現されることを特徴とする請求項８に記載の機械学習装置。
【請求項１２】
前記振動子は、前記線形素子としての前記ＬＣＲ回路に非線形素子を付加して構成されることを特徴とする請求項８に記載の機械学習装置。
【請求項１３】
前記非線形素子は、ジョセフソン接合で構成されることを特徴とする請求項１２に記載の機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習装置に関する。
【背景技術】
【０００２】
近年、機械学習や人工知能への期待が大きく、その中核を担っているのが深層学習である。しかし、機械学習や人工知能を担っているのは深層学習だけではなく、他の技術もある。そのひとつがリザバ・コンピューティングである。
【０００３】
リザバ・コンピューティングは学習時間が比較的短いのが特徴で、深層学習の課題のひとつである学習時間の長さを解決できる可能性がある。リザバ・コンピューティングの内部構成はニューラルネットワークと類似しており、構成だけを見れば深層学習と大きな差はない。
【０００４】
しかし、深層学習が各ノードで行う演算の係数を学習させていくのに対して、リザバ・コンピューティングでは各ノードにおける係数を固定化し、出力値に対して行う演算の係数のみを学習させる。言い換えると、深層学習が係数を多層に亘って学習させるのに対して、リザバ・コンピューティングでは１層のみを学習させる。これにより学習時間が短くなる。
【０００５】
リザバ・コンピューティングでは、特許文献１に記載のように、リザバ演算装置に量子系を利用する方法も提案されている。量子力学には線形重ね合わせの性質があり、その量子力学的性質はリザバ演算装置内のノード数を実効的に指数関数的に増加させることに対応し、リザバ演算装置の特性を大きく向上させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２０１７／１３１０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１のリザバ演算装置に量子系を利用する方法では、リザバ演算装置を量子ビットで構成すれば出力としての測定値は０あるいは１になる。また、測定結果に依存してリザバ演算装置の内部状態も変化する。
【０００８】
しかし、リザバ演算装置の出力として得たい値は［０，１］の連続量であり、また、測定に伴う状態変化も無くす必要がある。その対応策として現状知られている手法は、同じ仕様のリザバ演算装置を多数用意し、全てのリザバ演算装置を一括測定して平均量としての出力値を得るものである。これにより［０，１］の連続量となり、また多数のリザバ演算装置からなる系に対してひとつの測定値を得るだけなので測定に伴う状態変化も無視できるレベルになる。
【０００９】
しかし、ここで必要となるリザバ演算装置の数はアボガドロ数個のレベルである。よって、量子リザバ・コンピューティングの実現は容易なことではなく、またコストに見合うだけの性能が得られるかどうかも課題である。
【００１０】
このように量子リザバ・コンピューティングでは多数の量子リザバ演算装置を用意しなければならない。しかし、実用的な観点からは、１個のリザバ演算装置だけで動作する必要がある。
【００１１】
よって、本発明の目的は１個のリザバ演算装置で動作可能な高性能な機械学習装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一態様の機械学習装置は、データを演算する一般演算装置と、前記データに対して学習を行うリザバ演算装置と、前記データを記憶する記憶装置と、前記記憶装置と前記一般演算装置との間及び前記記憶装置と前記リザバ演算装置との間で行う前記データのやり取りを制御する制御装置とを有し、前記リザバ演算装置は、少なくとも一つの振動子と、入力部と、出力部とを有し、前記入力部から入力された前記データを前記振動子により演算して前記出力部から出力することを特徴とする。
【発明の効果】
【００１３】
本発明の一態様によれば、１個のリザバ演算装置で動作可能な高性能な機械学習装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１の機械学習装置の構成を示す図である。
【図２】機械学習装置の処理を規定したフローチャートである。
【図３Ａ】実施例２の機械学習装置に配置されるリザバ演算装置の構成を示す図である。
【図３Ｂ】実施例２の機械学習装置に配置されるリザバ演算装置の構成を示す図である。
【図３Ｃ】実施例２の機械学習装置に配置されるリザバ演算装置の構成を示す図である。
【図４】実施例３の機械学習装置の動作例を示すためのタスクを示す図である。
【図５】図３Ａに示すリザバ演算装置の動作例を示す図である。
【図６】リザバ演算装置における訓練後の推定出力例を示す図である。
【図７】実施例４の機械学習装置において振動子にジョセフソン接合を含む例を示す図である。
【図８】ジョセフソン接合の等価回路を示す図である。
【図９】振動子にジョセフソン接合を含む他の例を示す図である。
【図１０】量子ビットをスピンモデルで表し、そのダイナミクスを示した図である。
【図１１】実施例５の機械学習装置においてリザバ演算装置の入力情報を出力情報の一部として利用する場合を示した図である。
【図１２】実施例５の機械学習装置においてリザバ演算装置の入力情報を緩和時間τに渡って出力情報の一部として利用する場合を示した図である。
【図１３】実施例５の機械学習装置においてリザバ演算装置の入力情報を局所場応答演算させた上で出力情報の一部として利用する場合を示した図である。
【発明を実施するための形態】
【００１５】
リザバ演算装置に量子系を利用する方法においては、量子系はシュレディンガー方程式に従い時間発展する。時間発展を表すユニタリ演算子は三角関数により記述される。量子リザバ・コンピューティングが優れた特性を示すのは時間発展がユニタリ、即ち三角関数で記述されるところにある。
【００１６】
実施形態では、この三角関数による時間発展に着目し、ＬＣＲ回路等の振動子によりリザバ演算装置を構成する。ＬＣＲ回路等の振動子の時間変化も三角関数で記述されるために、ＬＣＲ回路等の振動子でリザバ演算装置を構成すれば量子リザバ演算装置と同様に優れた性能が得られる。
【００１７】
ＬＣＲ回路等の振動子は出力値が連続量となる。また、リザバ・コンピューティングで必要とされる記憶性、再帰性及び忘却性の性質を具備する。よって、リザバ・コンピューティングで必要とされるすべての要件を満たしており、リザバ演算装置は１個だけで動作する。
【００１８】
１個のリザバ演算装置だけでコンピューティングが可能になれば実現が容易になると共に、コスト的にも有利になる。さらに、上述のように時間発展が量子リザバ・コンピューティングと同様に三角関数で記述されるので優れた性能が得られる。
【００１９】
実施形態によれば、１個のリザバ演算装置で所望の動作が可能な高性能な機械学習装置を提供することができる。
以下、図面を用いて実施例について説明する。
【実施例１】
【００２０】
図１を参照して、実施例１の機械学習装置について説明する。
実施例１の機械学習装置は、通常の計算機とほぼ同様の構成を有するが、一般演算装置９００２に加えてリザバ演算装置１０００を有する点が通常の計算機とは異なる。演算の手順も通常の計算機と同様で、制御装置９００３の制御の下で主記憶装置９００１と一般演算装置９００２との間で、また主記憶装置９００１とリザバ演算装置１０００との間でデータをやり取りして行う。
【００２１】
主記憶装置９００１の容量が足りない場合は補助記憶装置９００４を利用する。主記憶装置９００１へのデータ入力は入力装置９００５を通して行い、主記憶装置９００１からのデータ出力は出力装置９００６を通して行う。これらの操作は制御装置９００３の制御の下で行う。
【００２２】
リザバ演算装置１０００は、教師あり学習を専門に行う専用演算部である。リザバ演算装置１０００は、複数の振動子２０１〜２０８、入力部１００及び出力部３００を有する。
【００２３】
訓練データとして（ｘｖ，ｙｖ０）を与えるものとする。ここで添え字のｖはｘｖ及びｙｖ０がベクトルであることを表し、それらを成分で表せばｘｖ＝（ｘ１，ｘ２，…，ｘｎｘ）Ｔ、ｙｖ０＝（ｙ１０，ｙ２０，…，ｙｎｙ０）Ｔである。ここでｘｖとｙｖ０は縦ベクトルであり、Ｔは転置を表す。また、ｘｖを第１の訓練データ、ｙｖ０を第２の訓練データと呼ぶことにする。（ｘｖ，ｙｖ０）は入力装置９００５を通して主記憶装置９００１に保存される。
【００２４】
第１の訓練データｘｖはリザバ演算装置１０００内の入力部１００を通して振動子２０１にｘ１，ｘ２，…，ｘｎｘの順番で入力される。よって添え字は時刻点を表す。そのことを明確に表すためにｘｋ＝ｘ（ｔｋ）と書くことにする。同様にｙｋ０＝ｙ０（ｔｋ）である。振動子２０１〜２０８は矢印でつながったもの同士に相互作用がある。ここでは紙面の都合で８個の振動子のみを書いたが、数が多くなるほどリザバ演算装置１０００としての性能は向上する。
【００２５】
また、どの振動子間で相互作用があるかの設定は任意でその大きさも任意である。振動子２０１に入力された第１の訓練データｘｖは振動子２０１自身のダイナミクス、振動子２０１〜２０８間の相互作用に基づくダイナミクス、２０１以外の振動子のダイナミクスにより時間発展する。ある時刻ｔｋにおける振動子ｉ（ｉ＝２０２，２０３，…，２０７）に関する測定量の値をｚｉ（ｔｋ）とする。ここで、ｚｉ（ｔｋ）は電位や誘導起電力等である。ｚｉ（ｔｋ）は出力部３００を通して主記憶装置９００１に送られて保存される。
【００２６】
出力信号は係数ｗｉを用いてｙ（ｔｋ）＝Σｉｗｉｚｉ（ｔｋ）で与えられるとする。教師あり学習で行うことはｙｖ＝（ｙ（ｔ１），ｙ（ｔ２），…，ｙ（ｔｎｙ））がｙｖ０に一致するようにｗｉを決定することである。そのためにはΣｋ（ｙ（ｔｋ）−ｙ０（ｔｋ））２を最小にするｗｉを見つければよい。ｗｉを成分とするベクトルをｗｖ、ｚｉ（ｔｋ）を（ｋ，ｉ）成分とする行列をＺとすればｙｖ＝Ｚｗｖと書ける。
【００２７】
出力がｙｖ０となるｗｖ＝ｗｖ０が存在するならばｙｖ０＝Ｚｗｖ０である。Ｚは一般に正方行列ではないので逆行列は存在しないが、擬逆行列（Ｍｏｏｒｅ−Ｐｅｎｒｏｓｅ  ｐｓｅｕｄｏ−ｉｎｖｅｒｓｅ  ｍａｔｒｉｘ）は定義できる。Ｚをｍ×ｎ行列、ｒａｎｋ（Ｚ）＝ｎとすればＺ−１＝（ＺＴＺ）−１ＺＴである。擬逆行列Ｚ−１を用いればｗｖ０＝Ｚ−１ｙｖ０となってｗｖ０が求められる。このようにして求まったｗｖ０はΣｋ（ｙ（ｔｋ）−ｙ０（ｔｋ））２を最小にするｗｖになっている。
【００２８】
以上の計算を主記憶装置９００１と一般演算装置９００２の間でデータをやり取りして行い、最終的に求まったｗｖ０を主記憶装置９００１に保存する。
【００２９】
以上の訓練は「第２の訓練データｙｖ０が再現されるように係数ｗｖ０を決定する」過程とまとめることができる。また、振動子ｉ（ｉ＝２０２，２０３，…，２０７）の出力値ｚｉ（ｔｋ）から第２の訓練データｙｖ０を再現する過程は出力値ｚｉ（ｔｋ）を加工しているわけであり、係数ｗｖ０を決定する過程は出力値ｚｉ（ｔｋ）の加工の規則を決定する過程とも捉えられる。さらに、係数ｗｖ０を決定できたことは第２の訓練データｙｖ０を再現するための出力値ｚｉ（ｔｋ）の加工の規則が決定できたと言える。
【００３０】
訓練後は得られたｗｖ０を用いて入力データｘｖｓから出力信号を推定でき、ｙｖｓを得る。即ち、ｘｖｓが入力部１００を通して振動子２０１に送られ、振動子２０１自身のダイナミクス、振動子２０１〜２０８間の相互作用に基づくダイナミクス、２０１以外の振動子のダイナミクスにより時間発展し、その結果であるｚｉｓ（ｔｋ）が出力部３００を通して主記憶装置９００１に送られて保存される。このｚｉｓ（ｔｋ）即ちＺｓを用いてｙｖｓ＝Ｚｓｗｖ０の関係式によりｙｖｓが求まる。
【００３１】
この推定処理をまとめると「一般の入力データｘｖｓがリザバ演算装置１０００において演算され、その演算結果が訓練で得た規則に基づいて加工されて出力になる」になる。
【００３２】
以上の処理をまとめたものが図２のフローチャートである。上記推定は予測とも言えるし、タスクによっては判断や認識とも言える。
【００３３】
図２に示すように、最初に、訓練においてｗｖ０を決定する。即ち、加工の規則を決定する（Ｓ２００）。
次に、推定（予測、判断、認識）において、ｗｖ０を使ってｘｖｓからｙｖｓを決定する（Ｓ２１０）。
【００３４】
実施例１では、時刻ｔｋで信号が入力され、出力も時刻ｔｋごとに行った。即ち、入力と出力は同じ頻度で処理された。しかし、出力の頻度を上げて処理しても良い。このようにすれば出力数を増やすことが可能であり、これを利用して出力部３００にカップルしている振動子の数を減らし、装置の構成を簡略化することも可能である。言い換えれば、出力の頻度を上げることは出力部３００にカップルしている振動子の数を実効的に増やすことになる。
【００３５】
このように、実施例１の機械学習装置は、一般演算装置９００２、リザバ演算装置１０００、主記憶装置９００１及び制御装置９００３を有し、制御装置９００３の制御により主記憶装置９００１と一般演算装置９００２との間で、また主記憶装置９００１とリザバ演算装置１０００との間でデータをやり取りする。
【００３６】
リザバ演算装置１０００は、１個以上の振動子２０１〜２０８と入力部１００及び出力部３００で構成される。主記憶装置９００１には訓練データが保存され、訓練データは第１の訓練データ及び第２の訓練データの対になっている。第１の訓練データは入力部１００を通してリザバ演算装置１０００に送られ、リザバ演算装置１０００内の振動子２０１自身のダイナミクス及び振動子２０１〜２０８間の相互作用により演算される。演算結果は出力部３００を通して主記憶装置９００１に送られ、第２の訓練データが再現されるように一般演算装置９００２において加工される。その際に得られた加工の規則は主記憶装置９００１に保存される。以上の学習後、一般の入力データがリザバ演算装置１０００において演算され、その演算結果が前記加工の規則に基づき加工されて出力となる。
【実施例２】
【００３７】
図３Ａ〜図３Ｃを参照して、実施例２の機械学習装置について説明する。
実施例１ではリザバ演算装置１０００が振動子２０１〜２０８で構成されることを述べた。振動子２０１〜２０８はＬＣＲ回路で実現することが可能である。
【００３８】
図３Ａに示すように、リザバ演算装置１０００は６振動子から構成される。振動子２０１〜２０８間の相互作用はコイルのカップリング、即ち相互インダクタンスＭで実現される。ここでＬはコイル、Ｃはコンデンサ、Ｒは抵抗を意味する。
【００３９】
図３Ａで相互作用があるのは、振動子２０１と振動子２０２、振動子２０２と振動子２０３、振動子２０３と振動子２０４、振動子２０４と振動子２０５、振動子２０５と振動子２０６である。
【００４０】
入力部１００とカップルしているのは振動子２０１であり、出力部３００とカップルしているのは振動子２０２、振動子２０４、振動子２０６である。入力部１００はカップリング用のＬに加えて、１個のＲと３個のＣから構成される。これは入力を終端するための所謂マッチング回路である。出力部３００も同様にカップリング相手ごとにカップリング用のＬ、１個のＲと３個のＣから構成される。
【００４１】
リザバ・コンピューティングにおいてリザバ演算装置１０００に要求される機能は、記憶性、再帰性及び忘却性である。記憶性はＬＣ回路が共振回路であることにより保証される。再帰性は振動子間の相互作用により実現される。即ち、振動子２０１の情報は相互インダクタンスを通して振動子２０２に伝わる。
【００４２】
同様にして、振動子２０２から振動子２０３へ、振動子２０３から振動子２０４へ、振動子２０４から振動子２０５へ、振動子２０５から振動子２０６へ伝わる。その逆に、振動子２０６から振動子２０５へ、振動子２０５から振動子２０４へ、振動子２０４から振動子２０３へ、振動子２０３から振動子２０２へ、振動子２０２から振動子２０１へ情報は伝わる。
【００４３】
このようにして元々振動子２０１にあった情報は多くのプロセスを経て振動子２０１に戻る。これが再帰性である。忘却性はＲにより実現される。ＬＣ共振回路ではＲが加われば減衰振動となり忘却性が得られる。リザバ演算装置１０００が適切に動作するためには記憶性、再帰性及び忘却性が適切にバランスしている必要がある。このバランスはＬ，Ｃ，Ｒ，Ｍの値を適切に設定することにより可能である。
【００４４】
図３Ａでは相互インダクタンスを通して各振動子をカップルさせた。振動子をカップルさせる方法は色々と有り得る。その一つが相互インダクタンスをひとつのコイルで置き換えることであり、図３Ｂにその例を示す。
【００４５】
また、コイルによるカップリングをコンデンサによるカップリングに置き換えることも可能である。その例を示したのが図３Ｃである。
【００４６】
このように多くの変形が可能であり、実際の回路設計では制約条件等も考慮して回路を設計すればよい。
【実施例３】
【００４７】
図４〜図６を参照して、実施例３の機械学習装置について説明する。
実施例２ではＬＣＲ回路によりリザバ演算装置１０００が実現できることを示した。実施例３ではリザバ演算装置１０００として、図３ＡのＬＣＲ回路を動作させた例（計算機シミュレーション）を示す。
【００４８】
タスクは図４に示すタイマータスクとする。
【００４９】
入力信号はｔ＝−４００からｔ＝−１までが０あるいは１の乱数、ｔ＝０からｔ＝９９までが０、ｔ＝１００以降が１である。即ち、入力信号はｔ＝１００におけるステップ関数でｔ≧０に対してのみ意味のある信号である。ｔ＜０においてランダムな入力としたのは、リザバがどのような初期状態にあっても適切に動作する必要があるからである。
【００５０】
実施例１の記法に従えば、０≦ｔｋ≦９９に対してｘ（ｔｋ）＝０、１００≦ｔｋに対してｘ（ｔｋ）＝１である。
【００５１】
訓練データの出力値ｙ０（ｔｋ）は任意のある時刻ｔｉにおいてｙ０（ｔｉ）＝１でそれ以外の時刻ｔｋ（≠ｔｉ）でｙ０（ｔｋ）＝０とする。即ち、ある時刻ｔｉにおけるパルスとする。
【００５２】
振動子２０２，振動子２０４，振動子２０６の出力ｚｉ（ｔｋ）を示したのが図５である。時刻は９８≦ｔｋ≦１２２のみを示した。尚、出力間隔は入力の１／１０とし、ひとつの入力ごとに１０回出力を得ている。出力部３００にカップルしているリザバ演算装置１０００の振動子数が３個で、各振動子からの出力が１入力に対して１０出力なので合計で１入力当たり３０出力になる。
【００５３】
ｚｉ（ｔｋ）の値を０≦ｋ≦２９９の範囲で利用すればＺは３００×３０の行列となる。擬逆行列Ｚ−１を求め、ｗｖ０＝Ｚ−１ｙｖ０を計算すれば訓練は終了である。このｗｖ０を利用して新たな入力信号ｘｖｓからｙｖｓを推定した結果が図６である。訓練データｙｖ０の位置に対応してピークが見られる。
【００５４】
リザバ演算装置１０００の忘却効果のためにパルス位置がｔ＝１００からｔ＝１２０に進むにつれてピークの高さが縮小するが、ｔ＝１２０においてもまだピークが見られる。振動子は６個使用しただけであるが、ｔ＝１２０においてもピークを再現できるのは振動子リザバの優れた特性に基づく。
【００５５】
実施例３では、最も分かり易い例としてタイマータスクの実行例を示したが、音声認識等、多くの問題に適用可能である。
【実施例４】
【００５６】
図７〜図９を参照して、実施例４の機械学習装置について説明する。
【００５７】
リザバ演算装置１０００が高い性能を発揮するためにはダイナミクスがリッチなほど良い。リッチにするための一つの方法は振動子に非線形効果を持たせることである。例えば、ＬＣＲ回路にジョセフソン接合を加えればよい。図７にその例を示す。
【００５８】
×印がジョセフソン接合を表す。ジョセフソン接合の交流特性は等価的にＲ及びＣ成分を含み、等価回路は図８のようになる。等価回路にＲを含むので図７の振動子ではＲを明示的に書いていないが、明確にＲとＣを加えてパラメタ選択の幅を広げることもできる。その場合の例が図９である。
【００５９】
図７及び図９は、図３Ａを基にジョセフソン接合を加えた例を示すものであるが、図３Ａを図３Ｂや図３Ｃに変形したように図７や図９を変形することも可能である。
【実施例５】
【００６０】
図１０〜図１３を参照して、実施例５の機械学習装置について説明する。
上述のように、本発明は量子リザバ演算装置の課題を解決すべく考案されたものである。実施例５では、量子リザバ演算装置との関連に触れながら、本発明の性能をさらに高める方法を述べる。
【００６１】
量子リザバ演算装置の構成要素としてスピンを考えることにする。スピンは大きさ１の３次元ベクトルでモデル化できる。図１０にひとつのスピンを示す。
【００６２】
量子リザバは複数のスピンで構成されると共にそれらが相互作用している。スピン間相互作用がｚ軸方向であるとする。また、スピンのダイナミクスを生むためにｙ軸方向に磁場が印加されているとする。スピンはこの磁場により歳差運動と呼ばれる動きをすることになり、スピンを矢印で表すことにすれば図１０の実線の矢印が示すようにｙ軸を中心に矢先が回転運動することになる。本発明の振動子はこの回転運動に対応する。
【００６３】
各スピンにはｙ軸方向の磁場に加えてｚ軸方向のスピン間相互作用が掛かるので各スピンはｚ軸の正方向あるいは負方向に向かって回転運動の軸を変化させようとする。本発明の振動子ではこの軸の変化分が取り入れられていない。即ち、軸変化に対応するダイナミクスをさらに加える余地が残されている。
【００６４】
そこで、図１１に示すようにリザバ演算装置１０００とは別に演算装置２０００を加えて本発明の性能をさらに向上させる。演算装置２０００の狙いをリザバ演算装置１０００の観点で言えば、記憶性と再帰性を強化することにある。
【００６５】
演算装置２０００に関する最も簡単な設定は入力信号をそのまま出力の一つとする方法である。演算装置２０００における関数をｆとすればｘ＝ｆ（ｘ）になる。単純な方法であるが、使用する出力データ数が増えるのでリザバ・コンピューティングの特性を改善できる。
【００６６】
実施例１では係数ｗｖ０決定の過程をリザバからの出力値ｚｉ（ｔｋ）の加工と表現した。この表現に合わせると、入力信号をそのまま出力の一つとする方法は「演算結果が加工される際に第１の訓練データも組み込んで加工する」と言える。
【００６７】
演算装置２０００に関する上記の単純な使用法では、ある時刻ｔｋの入力ｘ（ｔｋ）はその時刻ｔｋのみで利用される。しかし、前述のようにリザバ演算装置１０００には記憶性と再帰性があるので入力ｘ（ｔｋ）はｔｋ以降の時刻においても出力の一部に利用されることが好ましい。それを実現するひとつの方法はある時定数τで入力情報を継続させることである。
【００６８】
図１２に示すように、例えば、時刻ｔｉの入力情報をｘ（ｔｉ）、時刻ｔｋにおける出力情報をｚ０（ｔｋ）とすれば、ｚ０（ｔｋ）＝Σｉ≦ｋｘ（ｔｉ）ｅｘｐ［−（ｔｋ−ｔｉ）／τ］とする。これにより入力情報がτ時間程度継続的に利用される。この継続的利用を言い換えれば「第１の訓練データが複数の時刻に亘って利用される」になる。
【００６９】
以上のように時定数τを利用すれば特性改善が見込めるが、このような手法では必ずしもスピンのダイナミクスを十分に反映していない。リザバ・コンピューティングの特性改善には演算装置２０００からの出力を、スピンのダイナミクスを直接反映した量にすることが好ましい。
【００７０】
それを実現するひとつの方法としては局所場応答法と呼ばれる手法を利用することが挙げられる（例えば、ＷＯ２０１５／１１８６３９号公報、ＷＯ２０１６／１５７３３３号公報、ＷＯ２０１６／１９４２２１号公報、ＷＯ２０１７／１８３１７２号公報参照）。図１３が演算装置２０００に局所場応答法を利用した場合である。
【００７１】
局所場応答法の動作原理は以下に示す通りである。図１３の振動子数６個に合わせて６個の２次元スピン変数（ｓｊｙ，ｓｊｚ）と６個の有効磁場変数（Ｂｊｙ，Ｂｊｚ）を定義する。
【００７２】
ここで、ｊ＝１，２，．．，６である。Ｂｊｙは図１０における横磁場Ｂに対応する。Ｂｊｚは、サイトｉ−ｊ間のスピン間相互作用Ｊｉｊ、サイトｊに作用する局所磁場ｇｊを用いて、Ｂｊｚ（ｔｋ）＝ΣｉＪｉｊｓｉｚ（ｔｋ−１）＋ｇｊ（ｔｋ）で与えることにする。ここで、サイト１が振動子２０１に対応し、ｇ１（ｔｋ）＝Σｉ≦ｋｘ（ｔｉ）ｅｘｐ［−（ｔｋ−ｔｉ）／τ］とする。その他のサイトに対してはｇｊ（ｔｋ）＝０とする。
【００７３】
またＪｉｊは振動子２０１，２０２，…，２０６間の相互インダクタンスＭに連動させて決定する。以上で定まった有効磁場変数（Ｂｊｙ，Ｂｊｚ）を用いて各サイトのスピンをｓｊｚ（ｔｋ）／ｓｊｙ（ｔｋ）＝Ｂｊｚ（ｔｋ）／Ｂｊｙ（ｔｋ）として定める。時刻ｔｋのＢｊｚ（ｔｋ）は時刻ｔｋ−１のｓｉｚ（ｔｋ−１）を用いて計算し、時刻ｔｋのｓｊｚ（ｔｋ）は時刻ｔｋのＢｊｚ（ｔｋ）を用いて計算することを繰り返すことになり、全サイトのｓｊｚ（ｔｋ）が各時刻で求まる。ここで、時刻ｔｋは出力値を取り出す時刻を表す。前述のように入力の間隔よりも出力の間隔を小さく設定することが可能である。
【００７４】
この局所場応答法によるダイナミクスは、スピンモデルで考えたときの歳差運動の軸変化に関するダイナミクスに対応しており、本発明における振動子を用いたリザバ演算装置１０００の性能改善に大きく寄与する。局所場応答法はスピン間の相互作用を元に時間発展させる手法であり、演算装置２０００の立場で表現すれば「第１の訓練データを複数の時刻点間で相互作用させてから利用する」と言える。
【００７５】
以上の局所場応答演算は、演算装置２０００として動作させることが可能である（例えば、ＷＯ２０１５／１１８６３９号公報、ＷＯ２０１６／１５７３３３号公報、ＷＯ２０１６／１９４２２１号公報、ＷＯ２０１７／１８３１７２号公報に記載されている構成を用いる）。しかし、局所場応答演算は、主記憶装置９００１と一般演算装置９００２間でデータをやり取りする一般演算として処理することも可能である。
【００７６】
また、局所場応答法に関してはその骨子のみを実施例５に記載したが、多くの改変が可能である（例えば、ＷＯ２０１５／１１８６３９号公報、ＷＯ２０１６／１５７３３３号公報、ＷＯ２０１６／１９４２２１号公報、ＷＯ２０１７／１８３１７２号公報参照）。
【００７７】
また、図１１〜図１３は図３Ａを基にしているが、図３Ｂや図３Ｃを基にすることも可能である。その際の変形は図３Ａから図３Ｂや図３Ｃへの変形と同様である。
【００７８】
本発明ではリザバ演算装置１０００に振動子を利用することにより優れた性能が得られることを述べてきた。これは量子リザバ・コンピューティングの問題点を解決すべく発明されたものである。最後に、本発明と量子力学の基本方程式との関連に言及する。
【００７９】
量子力学は、シュレディンガー方程式である以下の数１に従い時間発展する。
【００８０】
【数１】
2020087189.tif 000003
数１の形式解は、以下の数２である。
【００８１】
【数２】
2020087189.tif 000004
数２の指数関数の部分をオイラーの公式で書き換えれば、以下の数３になる。
【００８２】
【数３】
2020087189.tif 000005
【００８３】
即ち、量子系は三角関数により時間発展する。本発明で着目したのはこの三角関数で時間発展することである。三角関数の時間発展は振動系で実現できる。量子系には確率的性質がありその性質を排除するために量子リザバ・コンピューティングではアボガドロ数個のリザバを用意しなければならなかったが、振動系を利用すれば１個のリザバだけで動作可能である。
【００８４】
実施例５では量子系をスピンモデルで考えた場合の本発明との関連性を述べた。これらの関連性及び数３に基づく議論から明らかなように、振動子からなるリザバ演算装置１０００は量子リザバ演算装置と類似の動作をする。そのために、本発明は量子リザバ・コンピューティングと類似の特性を与えると共に、量子リザバ演算装置の課題を解決する。
【符号の説明】
【００８５】
１００  入力部
２０１〜２０８  振動子
３００  出力部
１０００  リザバ演算装置
２０００  演算装置
９００１  主記憶装置
９００２  一般演算装置
９００３  制御装置
９００４  補助記憶装置
９００５  入力装置
９００６  出力装置
【図１】
2020087189.tif 000006
【図２】
2020087189.tif 000007
【図３Ａ】
2020087189.tif 000008
【図３Ｂ】
2020087189.tif 000009
【図３Ｃ】
2020087189.tif 000010
【図４】
2020087189.tif 000011
【図５】
2020087189.tif 000012
【図６】
2020087189.tif 000013
【図７】
2020087189.tif 000014
【図８】
2020087189.tif 000015
【図９】
2020087189.tif 000016
【図１０】
2020087189.tif 000017
【図１１】
2020087189.tif 000018
【図１２】
2020087189.tif 000019
【図１３】
2020087189.tif 000020