(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024034088
(43)【公開日】2024-03-13
(54)【発明の名称】機械学習装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240306BHJP
G06N 3/04 20230101ALI20240306BHJP
【FI】
G06N20/00
G06N3/04
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022138099
(22)【出願日】2022-08-31
(71)【出願人】
【識別番号】598163064
【氏名又は名称】学校法人千葉工業大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100152272
【弁理士】
【氏名又は名称】川越 雄一郎
(74)【代理人】
【識別番号】100181722
【弁理士】
【氏名又は名称】春田 洋孝
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】合原 一幸
(57)【要約】
【課題】レザバーコンピューターのハードウェア実装性を維持したまま、予測性能を向上させること。
【解決手段】機械学習装置は、時系列データである入力データを取得する入力部と、第1時刻における入力データに対する重み付けの第1結果と、時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算部と、中間演算部からの出力に対して重み付けをした結果に基づく出力データを出力する出力部と、中間演算部からの出力に対する重み付けの重みの学習を行う出力学習部と、中間演算部からの出力に基づいて中間演算部による演算において行われる変調の値を算出する変調部と、を備え、中間演算部は、変調部によって算出された変調の値に基づいて第1結果と第2結果とのうち少なくとも一方を変調して演算を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
時系列データである入力データを取得する入力部と、
第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算部と、
前記中間演算部からの出力に対して重み付けをした結果に基づく出力データを出力する出力部と、
前記中間演算部からの出力に対する重み付けの重みの学習を行う出力学習部と、
前記中間演算部からの出力に基づいて前記中間演算部による前記演算において行われる変調の値を算出する変調部と、
を備え、
前記中間演算部は、前記変調部によって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行う
機械学習装置。
【請求項2】
前記変調部は、前記中間演算部による前記演算において前記中間演算部からの出力に対して変調重みによって重み付けをした結果に基づいて前記変調の値を算出し、
前記変調重みを学習する変調重み学習部をさらに備える
請求項1に記載の機械学習装置。
【請求項3】
前記出力学習部による学習と、前記変調重み学習部による学習とはそれぞれ個別に行われる
請求項2に記載の機械学習装置。
【請求項4】
前記変調重み学習部は、予め用意された入力データと出力データとの組である教師データに含まれる入力データが前記入力データとして取得される場合の前記出力データの前記教師データに含まれる出力データに対する誤差の前記変調重みについての勾配に基づいて前記変調重みの学習を行う
請求項3に記載の機械学習装置。
【請求項5】
前記入力データは複数の成分からなり、
前記変調部が算出する前記第1結果に対する変調の値は前記入力データの複数の成分について共通である
請求項1に記載の機械学習装置。
【請求項6】
前記中間演算部による演算結果は複数の成分からなり、
前記変調部が算出する前記第2結果に対する変調の値は前記中間演算部による演算結果の複数の成分について共通である
請求項1に記載の機械学習装置。
【請求項7】
時系列データである入力データを取得する入力ステップと、
第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算ステップと、
前記中間演算ステップからの出力に対して重み付けをした結果に基づく出力データを出力する出力ステップと、
前記中間演算ステップからの出力に対する重み付けの重みの学習を行う出力学習ステップと、
前記中間演算ステップからの出力に基づいて前記中間演算ステップによる前記演算において行われる変調の値を算出する変調ステップと、
を有し、
前記中間演算ステップは、前記変調ステップによって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行う
情報処理方法。
【請求項8】
コンピュータに、
時系列データである入力データを取得する入力ステップと、
第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算ステップと、
前記中間演算ステップからの出力に対して重み付けをした結果に基づく出力データを出力する出力ステップと、
前記中間演算ステップからの出力に対する重み付けの重みの学習を行う出力学習ステップと、
前記中間演算ステップからの出力に基づいて前記中間演算ステップによる前記演算において行われる変調の値を算出する変調ステップと、
を実行させるためのプログラムであって、
前記中間演算ステップは、前記変調ステップによって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行う
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
レザバーコンピューターは、レザバーと呼ばれる力学系システムに情報を入力し、出力層のみを学習する人工知能モデルである。さらに、レザバーは、アナログ回路、光学系、及びスピントロニクスなど様々な形で実装が可能であり、高い演算効率を実現することができる。しかしながら、レザバーコンピューターは出力層のみを学習するという性質のため、深層学習などの出力層以外も学習するモデルに対して予測性能が劣る傾向があった。予測性能が比較的低精度であるために、レザバーコンピューターは深層学習に比べ、実用化が進んでいない。
【0003】
レザバーコンピューターにおいて出力層以外の学習を行うモデルが知られている(非特許文献1)。非特許文献1に記載のモデルによれば、複数のレザバーによる多層構造を形成し、レザバー層の間の結合強度を学習させている。非特許文献1に記載のモデルでは、レザバー層の間の結合強度を学習することによって、従来のレザバーコンピューターに比べ高い予測性能を実現した。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】“Physical Deep Learning with Biologically Plausible Training Method”、[online]、Mitsumasa Nakajima, Katsuma Inoue, Kenji Tanaka, Yasuo Kuniyoshi, Toshikazu Hashimoto, Kohei Nakajima、[2022年7月11日検索]、インターネット〈URL:https://arxiv.org/abs/2204.13991〉
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載のモデルでは、多層構造に伴ってハードウェア規模が増大してしまう。レザバーコンピューターのハードウェア実装性を維持したまま、予測性能を向上させることが求められている。
【0006】
本発明は上記の点に鑑みてなされたものであり、レザバーコンピューターのハードウェア実装性を維持したまま、予測性能を向上させることができる機械学習装置、情報処理方法、及びプログラムを提供する。
【課題を解決するための手段】
【0007】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、時系列データである入力データを取得する入力部と、第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算部と、前記中間演算部からの出力に対して重み付けをした結果に基づく出力データを出力する出力部と、前記中間演算部からの出力に対する重み付けの重みの学習を行う出力学習部と、前記中間演算部からの出力に基づいて前記中間演算部による前記演算において行われる変調の値を算出する変調部と、を備え、前記中間演算部は、前記変調部によって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行う機械学習装置である。
【0008】
また、本発明の一態様は、上記の機械学習装置において、前記変調部は、前記中間演算部による前記演算において前記中間演算部からの出力に対して変調重みによって重み付けをした結果に基づいて前記変調の値を算出し、前記変調重みを学習する変調重み学習部をさらに備える。
【0009】
また、本発明の一態様は、上記の機械学習装置において、前記出力学習部による学習と、前記変調重み学習部による学習とはそれぞれ個別に行われる。
【0010】
また、本発明の一態様は、上記の機械学習装置において、前記変調重み学習部は、予め用意された入力データと出力データとの組である教師データに含まれる入力データが前記入力データとして取得される場合の前記出力データの前記教師データに含まれる出力データに対する誤差の前記変調重みについての勾配に基づいて前記変調重みの学習を行う。
【0011】
また、本発明の一態様は、上記の機械学習装置において、前記入力データは複数の成分からなり、前記変調部が算出する前記第1結果に対する変調の値は前記入力データの複数の成分について共通である。
【0012】
また、本発明の一態様は、上記の機械学習装置において、前記中間演算部による演算結果は複数の成分からなり、前記変調部が算出する前記第2結果に対する変調の値は前記中間演算部による演算結果の複数の成分について共通である。
【0013】
また、本発明の一態様は、時系列データである入力データを取得する入力ステップと、第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算ステップと、前記中間演算ステップからの出力に対して重み付けをした結果に基づく出力データを出力する出力ステップと、前記中間演算ステップからの出力に対する重み付けの重みの学習を行う出力学習ステップと、前記中間演算ステップからの出力に基づいて前記中間演算ステップによる前記演算において行われる変調の値を算出する変調ステップと、を有し、前記中間演算ステップは、前記変調ステップによって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行う情報処理方法である。
【0014】
また、本発明の一態様は、コンピュータに、時系列データである入力データを取得する入力ステップと、第1時刻における前記入力データに対する重み付けの第1結果と、前記時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う中間演算ステップと、前記中間演算ステップからの出力に対して重み付けをした結果に基づく出力データを出力する出力ステップと、前記中間演算ステップからの出力に対する重み付けの重みの学習を行う出力学習ステップと、前記中間演算ステップからの出力に基づいて前記中間演算ステップによる前記演算において行われる変調の値を算出する変調ステップと、を実行させるためのプログラムであって、前記中間演算ステップは、前記変調ステップによって算出された変調の値に基づいて前記第1結果と前記第2結果とのうち少なくとも一方を変調して前記演算を行うプログラムである。
【発明の効果】
【0015】
本発明によれば、レザバーコンピューターのハードウェア実装性を維持したまま、予測性能を向上させることができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態に係る自己変調型レザバーコンピューティングシステムの概略構成の一例を示す図である。
【
図2】本発明の実施形態に係る機械学習装置の機能構成の一例を示す図である。
【
図3】本発明の実施形態に係る機械学習装置による学習処理の一例を示す図である。
【
図4】本発明の実施形態に係る機械学習装置による予測処理の一例を示す図である。
【
図5】本発明の第1実施例に係るメモリタスクの実行結果を示す図である。
【
図6】本発明の第1実施例の比較例に係るメモリタスクの実行結果を示す図である。
【
図7】本発明の第2実施例に係るカオス時系列予測の実行結果を示す図である。
【
図8】本発明の第2実施例の比較例に係るカオス時系列予測の実行結果を示す図である。
【
図9】本発明の第2実施例の比較例に係るレザバー層のサイズと平均自乗誤差との関係を示す図である。
【
図10】本発明の第1変形例に係る自己変調型レザバーコンピューティングシステムの概略構成の一例を示す図である。
【
図11】本発明の第2実施例に係る自己変調型レザバーコンピューティングシステムの概略構成の一例を示す図である。
【
図12】本発明の実施形態に係るコンピュータの構成を示す概略ブロック図である。
【
図13】従来のレザバーコンピューティングシステムの概略構成を示す図である。
【発明を実施するための形態】
【0017】
(実施形態)
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
(レザバーコンピューティングについて)
本実施形態に係るレザバーコンピューティングについて説明する前に従来のレザバーコンピューティングシステムについて説明する。
図13は、従来のレザバーコンピューティングシステム900の概略構成を示す図である。レザバーコンピューティングシステム900は、入力層911と、レザバー層913と、出力層915と、入力層911からレザバー層913への結合912と、レザバー層913から出力層915への結合914とを備える。
【0018】
入力層911、出力層915は、それぞれ1つ以上のノードを含んで構成される。例えば、レザバーコンピューティングシステム900がニューラルネットワークとして構成される場合、ノードは、ニューロンとして構成される。
レザバー層913は、ノードと、レザバー層913のノード間でデータに重み係数を乗算して伝達する単方向のエッジとを含んで構成される。
【0019】
レザバーコンピューティングシステム900では、データは、入力層911のノードへ入力される。
入力層911からレザバー層913への結合912は、入力層911のノードとレザバー層913のノードとを結合するエッジの集合として構成される。結合912は、入力層911のノードの値に重み係数を乗算した値を、レザバー層913のノードへ伝達する。
レザバー層913から出力層915への結合914は、レザバー層913のノードと出力層のノードとを結合するエッジの集合として構成される。結合914は、レザバー層913のノードの値に重み係数を乗算した値を、出力層915のノードへ伝達する。
【0020】
図13では、入力層911からレザバー層913への結合912およびレザバー層913から出力層915への結合914が矢印で示されている。
レザバーコンピューティングシステム900は、レザバー層913から出力層915への結合914の重み(重み係数の値)のみを学習する。一方、入力層911からレザバー層913への結合912の重み、および、レザバー層のノード間のエッジの重みは学習の対象外であり、一定の値をとる。レザバーコンピューティングシステム900では、レザバー層913から出力層915への結合914の重みのみが学習されるため、深層学習などの出力層以外も学習するモデルに比べて高速な学習が実現される。
【0021】
レザバーコンピューティングシステム900は、ニューラルネットワークとして構成されていてもよいが、これに限定されない。例えば、レザバーコンピューティングシステム900が、任意の力学系を表すモデルとして構成されていてもよい。
【0022】
力学系として、ニューラルネットワークを用いる場合(echo state network)、レザバーコンピューティングシステム900は、式(1)及び式(2)で示されるモデルとして構成される。
【0023】
【0024】
【0025】
ここで、u(t)={u1(t),u2(t),…,uK(t)}は、入力層911を構成する入力ベクトルである。Kは、入力層911のノードの個数を示す正の整数である。すなわち、u(t)は、レザバーコンピューティングシステム900への入力時系列データを示すベクトルである。入力層911のノードは入力データの値をとるので、u(t)は、入力層911のノードの値を示すベクトルでもある。
【0026】
x(t)={x1(t),x2(t),…,xN(t)}は、レザバー層913を構成する力学系のベクトル表現である。Nは、レザバー層913のノードの個数を示す正の整数である。すなわち、x(t)は、レザバー層913のノードの値を示すベクトルである。
【0027】
y(t)={y1(t),y2(t),…,yM(t)}は、出力ベクトルである。Mは、出力層915のノードの個数を示す正の整数である。すなわち、y(t)は、出力層915のノードの値を示すベクトルである。レザバーコンピューティングシステム900は出力層915のノードの値を出力するので、y(t)は、レザバーコンピューティングシステム900の出力データを示すベクトルでもある。
【0028】
f(・)は、レザバー層913の状態の時間発展を表す関数である。f(・)は、例えば、tanh(・)である。ここでtanh(・)は、双曲線正接関数(Hyperbolic Tangent Function)を示す。なお上述したように、式(1)の左辺のx(t)はベクトルであり、右辺のf(・)は、関数の値を成分にもつベクトルを意味している。
レザバーコンピューティングシステム900は、予測時間ステップΔt毎に、予測および学習する対象からの入力を受け付ける。予測時間ステップΔtは、予測および学習する対象の状態変化の速さに応じて十分小さい値をとる。式(1)及び式(2)では、予測時間ステップΔtの値を1としている。
【0029】
f(・)には、時刻tにおける入力層911のノードの値(つまり、u(t))とともに、時刻t-1におけるレザバー層913のノードの値(つまり、x(t-1))が入力される。ここでf(・)に入力される際、レザバー層913のノードの値には、レザバー層913のノード間の個々のエッジにおける重み係数が乗じられる。また、f(・)に入力される際、入力層911のノードの値には、結合912を構成する個々のエッジにおける重み係数が乗じられる。
【0030】
Wresは、レザバー層913のノード間の結合強度を示す行列である。Wresの要素は、上述したレザバー層913のノード間の個々のエッジにおける重み係数を示す。RNxNをN行N列の実数行列の集合とすると、Wres∈RNxNと示される。Wresを、レザバーの結合行列とも称する。
Winは、入力層911からレザバー層913への結合強度を示す行列である。Winの要素は、上述した結合912を構成する個々のエッジにおける重み係数を示す。RNxKをN行K列の実数行列の集合とすると、Win∈RNxKと示される。
【0031】
Woutは、レザバー層913から出力層915への結合強度を示す行列である。Woutの要素は、結合914を構成する個々のエッジにおける重み係数を示す。RMxNをM行N列の実数行列の集合とすると、Wout∈RMxNと示される。Woutを、出力の結合行列、または、出力行列とも称する。
【0032】
(レザバーコンピューティングのハードウェア実装)
上述したようにレザバーコンピューティングシステム900は、多様な力学系によって構築が可能である。ここで力学系とは、一定の規則に従って時間の経過とともに状態が変化するシステムをいう。力学系の例としては、ニューラルネットワーク、または物理現象(ボールの運動など)などが挙げられる。レザバーコンピューティングシステム900は、多様な力学系によって構築が可能であるためハードウェア実装が容易である。
【0033】
レザバーコンピューティングをハードウェア実装することで、CPU(Central Processing Unit、中央処理装置)を用いてレザバーコンピューティングをソフトウェア的に実行する場合よりも高速、また低消費電力に演算することが可能になる。そのため、実社会への応用を考える場合は、レザバーコンピューティングのアルゴリズムだけでなく、ハードウェア実装も考えることが重要である。
【0034】
レザバーコンピューティングのハードウェア実装の例として、Field Programmable Gate Array(FPGA)、Graphical Processing Unit(GPU)、または、Application Specific Integrated Circuit(ASIC)などを用いた電子回路による実装が挙げられる。レザバーコンピューティングシステム900についても、これらのいずれかによって実装するようにしてもよい。
さらに、電子回路以外によるレザバーコンピューティングの実装として、物理レザバーと呼ばれる、物理的なハードウェアによる実装の報告がある。例えば、スピントロニクス(Spintronics)による実装や、光学系による実装などが知られている。レザバーコンピューティングシステム900についても、これらのいずれかによって実装するようにしてもよい。
【0035】
(自己変調型レザバーコンピューティングについて)
次に、本実施形態に係るレザバーコンピューティングである自己変調型レザバーコンピューティングについて説明する。
図1は、本実施形態に係る自己変調型レザバーコンピューティングシステム200の概略構成の一例を示す図である。自己変調型レザバーコンピューティングシステム200は、入力層211と、レザバー層213と、出力層215とを備える。なお、
図1では符号を付していないが、自己変調型レザバーコンピューティングシステム200は、入力層211からレザバー層213への結合と、レザバー層213から出力層215への結合とを備える。
【0036】
自己変調型レザバーコンピューティングシステム200は、従来のレザバーコンピューティングシステム900と比べて、レザバー層213の働き(または処理)に対して動的に自己変調を行う点が異なる。動的な自己変調とは、時刻毎のレザバー層213からの出力に基づいて、入力信号の強度、及びレザバー層213の内部結合強度を変調(変化)させることである。
【0037】
自己変調型レザバーコンピューティングシステム200は、式(3)、式(4)、式(5)、及び式(6)で示されるモデルとして構成される。
【0038】
【0039】
【0040】
【0041】
【0042】
式(3)と、上述した式(1)とを比較すると、レザバー層213の状態の時間発展を表す関数がtanh(・)、つまり双曲線正接関数として具体的な形で示されている点と、当該関数に入力される値に結合変調ゲートgres、及び入力ゲートginによって変調が与えられている点が異なる。なお、式(1)と同様に左辺のx(t)はベクトルであり、右辺のtanh(・)は、双曲線正接関数の値を成分にもつベクトルを意味している。
【0043】
式(3)において、結合変調ゲートgresは、レザバー層213の内部結合強度に対する変調の値を示す。入力ゲートginは、入力信号の強度に対する変調の値を示す。結合変調ゲートgres
、及び入力ゲートginはそれぞれ、時刻に依存する値をもつ実数である。結合変調ゲートgresは、レザバー層213のノード間の結合強度の全てについて共通である。入力ゲートginは、入力層211のノードの全てについて共通である。
【0044】
式(4)は、結合変調ゲートgresの具体的な形を示す。つまり、結合変調ゲートgresは、時刻tにおけるレザバー層213からの出力x(t)に、変調重みWfb
resが乗じられた値にバイアスbfb
resが加算された値がシグモイド関数に入力された値として与えられる。
【0045】
式(5)は、入力ゲートginの具体的な形を示す。つまり、入力ゲートginは、時刻tにおけるレザバー層213からの出力x(t)に、変調重みWfb
inが乗じられた値にバイアスbfb
inが加算された値がシグモイド関数に入力された値として与えられる。
なお、シグモイド関数は、式(7)によって示される。
【0046】
【0047】
以下の説明では、変調重みWfb
in、及び変調重みWfb
resをそれぞれ、または変調重みWfb
in、及び変調重みWfb
resをまとめてフィードバック結合ともいう。
【0048】
式(3)に示すとおり、時刻tにおけるレザバー層213からの出力x(t)は、第1の値と第2の値とが加算された値が双曲線正接関数に入力されて得られる。ここで第1の値とは、時刻t-1におけるレザバー層913のノードの値を示すベクトルx(t-1)にレザバー層913の結合行列Wresが乗じられた値に、さらに時刻t-1における結合変調ゲートgres(t-1)が乗じられた値である。第2の値とは、時刻t1における入力層911のノードの値を示すベクトルu(t)に入力層211からレザバー層213への結合強度を示す行列Winが乗じられた値に、さらに時刻t-1における入力ゲートgin(t-1)が乗じられた値である。
【0049】
また、式(6)に示すように、レザバーコンピューティングシステム900の出力データを示すベクトルy(t)は、出力の結合行列Woutが時刻tにおけるレザバー層213からの出力x(t)に乗じられて得られるベクトルに、バイアスboutが加算されたベクトルである。
【0050】
上述したように入力ゲートginは、入力層211のノードの全てについて共通であり、入力信号の強度に乗算するだけで自己変調が行われる。そのため、自己変調型レザバーコンピューティングシステム200は、入力信号の強度に対する変調のために従来のレザバーコンピューティングシステム900からのハードウェアから変更する点は少なく、ハードウェア実装が容易である。また、実用において入力信号はデジタル信号である場合が多い。入力信号がデジタル信号である場合、自己変調型レザバーコンピューティングシステム200の一部は、デジタル回路として実装されてもよい。
【0051】
上述したように結合変調ゲートgresは、レザバー層213のノード間の結合強度の全てについて共通である。そのため、自己変調型レザバーコンピューティングシステム200は、レザバー層213の内部結合強度に対する変調のために従来のレザバーコンピューティングシステム900からのハードウェアから変更する点は少なく、ハードウェア実装が容易である。
【0052】
なお、式(4)及び式(5)において、活性化関数は、シグモイド関数以外の関数であってもよい。例えば、当該活性化関数は、指数関数であってもよい。
【0053】
(機械学習装置の構成について)
図2は、本実施形態に係る機械学習装置100の機能構成の一例を示す図である。機械学習装置100は、入力部110と、中間演算部120と、出力部130と、出力学習部140と、変調部150と、変調重み学習部160と、記憶部170とを備える。機械学習装置100は、自己変調型レザバーコンピューティングシステム200に基づいて情報処理を行う。
【0054】
入力部110は、時系列データである入力データを取得する。入力データは、例えば、上述したu(t)を用いて{u(t),u(t+1),…,u(t+T)}と表される。ここでTは、時系列データの個数を示す正の整数である。入力部110は、入力データを逐次的に取得する。例えば、入力部110は、u(t),u(t+1),…,u(t+T)をこの順に逐次的に取得する。入力部110は、入力層211に相当する。
【0055】
中間演算部120は、入力部110によって取得された各時刻の入力データに対して演算を行う。中間演算部120は、第1結果と、第2結果とに基づいて演算を行う。第1結果は、第1時刻(例えば、時刻t)における入力データに対する重み付けの結果である。第2結果は、時系列データにおいて第1時刻の直前の時刻である第2時刻(例えば、時刻t-1)における中間演算部120による演算結果に対する重み付けの結果である。
【0056】
ここで中間演算部120は、入力ゲートginの値に基づいて第1結果を変調して当該演算を行う。また、中間演算部120は、gresの値に基づいて第2結果を変調して当該演算を行う。中間演算部120は、例えば、上述した式(3)に基づいて演算を行う。中間演算部120は、レザバー層213に相当する。
【0057】
出力部130は、出力データを出力する。出力データは、中間演算部120からの出力に対して重み付けをした結果に基づいている。出力データは、例えば、上述したy(t)を用いて{y(t),y(t+1),…,y(t+T)}と表される。ここでTは、入力データの時系列データの個数を示す正の整数である。したがって、出力データの個数と、入力データの個数と同じである。出力部130は、出力層215に相当する。
【0058】
出力学習部140は、中間演算部120からの出力x(t)に対する重み付けの重みの学習を行う。当該重みは、出力行列Woutに相当する。
【0059】
変調部150は、中間演算部120からの出力x(t)に基づいて中間演算部120による演算において行われる変調の値を算出する。変調部150は、中間演算部120による演算において中間演算部120からの出力に対して変調重みによって重み付けをした結果に基づいて当該変調の値を算出する。当該変調は、入力ゲートgin、及び結合変調ゲートgresである。
【0060】
変調重み学習部160は、変調重みを学習する。変調重みとは、上述したフィードバック結合(変調重みWfb
in、及び変調重みWfb
res)である。
【0061】
記憶部170は、各種のデータを記憶する。記憶部170は、例えば、レザバーコンピューティング情報A1を記憶する。レザバーコンピューティング情報A1は、自己変調型レザバーコンピューティングシステム200の構成、及び状態を示す情報である。
【0062】
自己変調型レザバーコンピューティングシステム200の構成には、ノード、ノード間の結合、及びノード間の結合の重み(Win、Wres、及びWout)が含まれる。自己変調型レザバーコンピューティングシステム200の状態には、中間演算部120(つまり、レザバー層213)の状態が含まれる。中間演算部120の状態は、中間演算部120による演算結果であるレザバー層213からの出力x(t)によって示される。
【0063】
なお、中間演算部120の状態は、中間演算部120が行う各時刻における演算結果による中間演算部120の状態(その時刻の演算を完了したときの中間演算部120の状態)である。なお、ここでいう時刻とは、何回目の演算かを示すものであり、必ずしも実際の(物理的な)時間を示すものでない。
また、レザバーコンピューティング情報A1には、変調部150が変調の値を算出するために用いるフィードバック結合(変調重みWfb
in、及び変調重みWfb
res)が含まれる。
【0064】
(学習処理について)
自己変調型レザバーコンピューティングシステム200における学習について説明する。自己変調型レザバーコンピューティングシステム200では、式(3)によって示したように、時刻t-1におけるレザバー層913のノードの値(つまり、x(t-1))が時刻tにおけるレザバー層213による演算に用いられる。つまり、自己変調型レザバーコンピューティングシステム200は、再帰結合を有するネットワークである。そのような再帰結合を有するネットワークの学習は困難である。そこで、自己変調型レザバーコンピューティングシステム200では、出力行列Woutの学習と、フィードバック結合(変調重みWfb
in、及び変調重みWfb
res)の学習とはそれぞれ個別に行われる。
【0065】
図3は、本実施形態に係る機械学習装置100による学習処理の一例を示す図である。
図3に示す学習処理は、機械学習装置100によって予測処理が行われる前の時期に予め行われる。予測処理とは、入力データに基づく予測を行う処理をいう。
【0066】
ステップS10:出力学習部140は、出力層215の学習を行う。出力学習部140は、教師データを用いて出力行列Woutの学習を行う。教師データは、予め用意された入力データと出力データとの組である。例えば、教師データは、入力ベクトルの値と、当該入力ベクトルの値に対してとるべき出力ベクトルの値とのペア{uTe(t),yTe(t)},(t=0,Δt,2Δt,…,TΔt)で構成される。uTe(t)における上付きのTeは、学習用の入力ベクトルであることを示す。yTe(t)における上付きのTeは、学習用の出力ベクトルであることを示す。
【0067】
この教師データの入力ベクトルuTe(t)によってレザバー層913を時間発展させると、レザバー層913の内部状態を示すベクトルx(0)、x(Δt)、x(2Δt)、…、x(TΔt)が得られる。
出力行列Woutの学習は、レザバー層913の内部状態を用いて、出力ベクトルy(t)と出力ベクトルの教師データyTe(t)との差を小さくすることで行われる。
出力ベクトルy(t)と出力ベクトルの教師データyTe(t)との差を小さくする手法として、例えば、リッジ回帰を用いることができる。
その後、機械学習装置100は、ステップS20の処理を実行する。
【0068】
ステップS20:変調重み学習部160は、フィードバック結合(変調重みWfb
in、及び変調重みWfb
res)の学習を行う。変調重み学習部160は、フィードバック結合の学習において、ミニバッチと、勾配法とを用いる。
【0069】
変調重み学習部160は、ランダムに並べ変えた教師データの中から、未使用のものを、昇順にB個(Bは自然数)ずつ取り出す。ただし、未使用の教師データがない場合、変調重み学習部160は、教師データを再びランダムに並べ変え、未使用の教師データとする。取り出されたB個の教師データを、ミニバッチと呼ぶ。ここでフィードバック結合の学習に用いられる教師データには、上述した出力行列Woutの学習に用いられる教師データが用いられてよい。
【0070】
変調重み学習部160は、ミニバッチに含まれる入力データが入力層211に入力された場合の出力層215から出力される出力データを取得する。変調重み学習部160は、取得した出力データと、当該ミニバッチに含まれる出力データとから勾配法を用いてフィードバック結合(変調重みWfb
in、及び変調重みWfb
res)の更新を行う。勾配法とは、誤差(目的関数)が小さくなるような勾配の方向にパラメータを変化させるように、パラメータを算出する方法のことである。ここでは、フィードバック結合(変調重みWfb
in、及び変調重みWfb
res)がパラメータに相当する。つまり、変調重み学習部160は、教師データに含まれる入力データが当該入力データとして取得される場合の出力データの教師データに含まれる出力データに対する誤差の前記変調重みについての勾配に基づいて変調重みの学習を行う。
【0071】
変調重み学習部160は、ミニバッチを単位として、上述したフィードバック結合の更新を所定回数だけ繰り返す。なお、変調重み学習部160は、上述したフィードバック結合の更新を誤差(目的関数)が収束するまで繰り返してもよい。
その後、機械学習装置100は、ステップS30の処理を実行する。
【0072】
ステップS30:出力学習部140は、学習終了条件が満たされたか否かを判定する。学習終了条件とは、例えば、ステップS10及びステップS20の各処理が所定回数だけ繰り返し実行されることである。出力学習部140が学習終了条件が満たされたと判定した場合(ステップS30;YES)、機械学習装置100は、学習処理を終了する。一方、出力学習部140が学習終了条件が満たされていないと判定した場合(ステップS30;NO)、機械学習装置100は、ステップS10の処理を再度実行する。
なお、ステップS30の処理は、変調重み学習部160によって行われてもよい。
以上で、機械学習装置100は、学習処理を終了する。
【0073】
上述したように、出力学習部140による学習と、変調重み学習部160による学習とはそれぞれ個別に行われる。
なお、本実施形態では、出力行列Woutの学習と、フィードバック結合の学習とが交互に繰り返し行われる場合の一例について説明したが、これに限られない。フィードバック結合の学習は、変調重みWfb
inの学習と、変調重みWfb
resの学習とが個別に行われてもよい。その場合、例えば、出力行列Woutの学習、変調重みWfb
inの学習、出力行列Woutの学習、及び変調重みWfb
resの学習がこの順に繰り返し行われてもよい。
【0074】
また、変調重みWfb
inの学習と、変調重みWfb
resの学習とのうち一方のみが行われてもよい。変調重みWfb
inの学習と、変調重みWfb
resの学習とは行われなくてもよい。つまり、フィードバック結合の学習が行われなくてもよい。変調重みWfb
inの学習が行われない場合、変調重みWfb
inの値は所定の一定の値である。変調重みWfb
resの学習が行われない場合、変調重みWfb
resの値は所定の一定の値である。なお、フィードバック結合の学習が行われない場合には、機械学習装置100の構成から変調重み学習部160は省略されてよい。
なお、フィードバック結合の学習は行われた方が、フィードバック結合の学習が行われない場合に比べて、予測性能を向上させることができる。
【0075】
(予測処理について)
図4は、本実施形態に係る機械学習装置100による予測処理の一例を示す図である。予測処理は、上述した学習処理が予め行われた後に行われる。
【0076】
ステップS110:入力部110は、時系列データである入力データを取得する。
その後、機械学習装置100は、ステップS120の処理を実行する。
【0077】
ステップS120:変調部150は、中間演算部120からの出力に基づいて中間演算部120による演算において行われる変調の値を算出する。変調部150は、中間演算部120による演算において中間演算部120からの出力に対して変調重みによって重み付けをした結果に基づいて当該変調の値を算出する。
その後、機械学習装置100は、ステップS130の処理を実行する。
【0078】
ステップS130:中間演算部120は、変調部150によって算出された変調の値に基づいて第1結果と第2結果とをそれぞれ変調して演算を行う。第1結果は、第1時刻における入力データに対する重み付けの結果である。第2結果は、時系列データにおいて第1時刻の直前の時刻である第2時刻における中間演算部120による演算結果に対する重み付けの結果である。
その後、機械学習装置100は、ステップS140の処理を実行する。
【0079】
ステップS140:出力部130は、中間演算部120からの出力に対して重み付けをした結果に基づく出力データを出力する。例えば、出力部130は、出力データを機械学習装置100とは別体のサーバ、または表示装置などに出力する。
その後、機械学習装置100は、ステップS130の処理を実行する。
以上で、機械学習装置100は、予測処理を終了する。
【0080】
なお、本実施形態では、中間演算部120は、変調部150によって算出された変調の値に基づいて第1結果(第1時刻における入力データに対する重み付けの結果)と第2結果(時系列データにおいて第1時刻の直前の時刻である第2時刻における中間演算部120による演算結果に対する重み付けの結果)とをそれぞれ変調して演算を行う場合の一例について説明したが、これに限られない。中間演算部120は、変調部150によって算出された変調の値に基づいて第1結果と第2結果とのうち少なくとも一方を変調して演算を行ってもよい。例えば、中間演算部120は、第1結果と第2結果とのうち第1結果のみを変調して演算を行ってもよい。また、中間演算部120は、第1結果と第2結果とのうち第2結果のみを変調して演算を行ってもよい。
【0081】
また、本実施形態では、入力ゲートginが入力層211のノードの全てについて共通である場合の一例について説明した。つまり、入力データは複数の成分からなり、変調部150が算出する第1結果(第1時刻における入力データに対する重み付けの結果)に対する変調の値は入力データの複数の成分について共通である場合の一例について説明したが、これに限られない。入力ゲートginは、入力層211のノード毎に異なっていてもよい。その場合、例えば、入力層211のノード毎に入力ゲートginを算出するための活性化関数の形を異ならせてよい。その場合、例えば、あるノードでは、入力ゲートginを算出するための活性化関数を、式(5)に示したようなシグモイド関数として、別のノードでは、指数関数とする。
【0082】
また、入力ゲートginは、入力層211のノードをグループにした場合に、当該グループ毎に異なっていてもよい。各グループには、入力層211のノードが1以上含まれる。グループに含まれる入力層211のノードの数が多くなる(グループの大きさが大きくなる)ほど、入力信号の強度に対する変調の自由度は下がるが、ハードウェア実装は容易になる。
【0083】
また、本実施形態では、結合変調ゲートgresがレザバー層213のノード間の結合強度の全てについて共通である場合の一例について説明した。つまり、中間演算部120による演算結果は複数の成分からなり、変調部150が算出する第2結果(時系列データにおいて第1時刻の直前の時刻である第2時刻における中間演算部120による演算結果に対する重み付けの結果)に対する変調の値は中間演算部120による演算結果の複数の成分について共通である場合の一例について説明したが、これに限られない。結合変調ゲートgresは、レザバー層213のノード間の結合強度毎に異なっていてもよい。その場合、例えば、レザバー層213のノード間の結合強度毎に結合変調ゲートgresを算出するための活性化関数の形を異ならせてよい。その場合、例えば、ある結合強度では、結合変調ゲートgresを算出するための活性化関数を、式(4)に示したようなシグモイド関数として、別の結合強度では、指数関数とする。
【0084】
また、結合変調ゲートgresは、レザバー層213のノード間の結合強度をグループにした場合に、当該グループ毎に異なっていてもよい。各グループには、レザバー層213のノードが1以上含まれる。グループに含まれるレザバー層213のノード間の結合強度の数が多くなる(グループの大きさが大きくなる)ほど、レザバー層213の内部結合強度に対する変調の自由度は下がるが、ハードウェア実装は容易になる。
【0085】
変調部150は、中間演算部120による演算において中間演算部120からの出力に対して変調重みによって重み付けをした結果に基づいて当該変調の値を算出する場合の一例について説明したが、これに限られない。変調部150は、中間演算部120からの出力を所定の関数に入力した場合の当該所定の関数の値を変調の値として算出してもよい。例えば、多層ニューラルネットワークであってもよい。
【0086】
本実施形態では、レザバー層がニューラルネットワークで構成されている場合の一例について説明したが、これに限定されない。レザバー層は、例えば、以下の式(8)に示すように、変調可能な力学系f_gres(・)を用いて自己変調可能なレザバー層とすることができる。
【0087】
【0088】
(第1実施例)
本実施形態に係る第1実施例について説明する。第1実施例では、機械学習装置100にメモリタスクを実行させた場合の結果について説明する。入力データとして用いる時系列データは、矩形波を示すデータである。ここで当該時系列データには、矩形波が発生していない時刻は、ノイズが含まれている。第1実施例のメモリタスクでは、ノイズが含まれる矩形波の入力データが入力された場合に、一定時間後に当該矩形波と同じ波形の矩形波を出力データとして出力することを目的とする。
【0089】
図5は、本実施例に係るメモリタスクの実行結果を示す図である。
図5では、時刻が50から60までの区間に矩形波を含む入力データが示されている。当該入力データでは、時刻が50から60までの区間以外の区間ではノイズを含む。
図5では、レザバー層213からのノード毎の出力x(t)が示されている。
図5では、出力層215から出力される出力データが、教師データに含まれる出力データとともに示されている。出力層215から出力される出力データの波形は、教師データに含まれる出力データの波形を再現している。
【0090】
また、
図5では、入力ゲートg
inの値、及び結合変調ゲートg
resの値がそれぞれ時刻毎に示されている。入力データの波形と、それらのフィードバック結合の時刻毎の値とを比較すると、入力データにおいて矩形波が入力されると、入力ゲートが大きくなり、矩形波の信号が消えると、入力ゲートが小さくなる。すなわち、入力ゲートは、矩形波の信号のみをレザバー層に入力させ、ノイズ信号をレザバー層に入力させない働きをしていることがわかる。さらに、矩形波の入力後は結合変調ゲートの値が大きくなる。すなわち、結合変調ゲートは、情報がレザバー層内に保持される働きをしていることがわかる。つまり、自己変調型レザバーコンピューティングシステム200に基づく機械学習装置100では、ゲーティングによってシグナル(矩形波)の情報がレザバー層内に効率的に保持されている。
【0091】
本実施例との比較のために従来のレザバーコンピューティングシステム900によるメモリタスクの実行結果を示す。
図6は、本実施例の比較例に係るメモリタスクの実行結果を示す図である。
図6では、
図5に示した入力データと同じ入力データを用いた場合の出力データと、レザバー層913からのノード毎の出力x(t)が示されている。
図6に示す出力データによれば、従来のレザバーコンピューティングシステム900では、入力データに含まれる矩形波は、出力データにおいて再現できていない。
【0092】
(第2実施例)
本実施形態に係る第2実施例について説明する。第2実施例では、機械学習装置100にカオス時系列予測を実行させた場合の結果について説明する。第2実施例のカオス時系列予測では、ローレンツモデルにおいて、入力データにノイズを加えた。ここで入力データとして、各時刻において3次元直交座標を示すx、y、zのうちxにノイズを加えた値を選んだ。出力データとして、入力データに対して所定ステップ先のzを選んだ。
【0093】
図7は、本実施例に係るカオス時系列予測の実行結果を示す図である。
図7では、入力データ、レザバー層213からのノード毎の出力、及び出力層215から出力される出力データが、教師データに含まれる出力データとともに示されている。また、
図7では、入力ゲートg
inの値、及び結合変調ゲートg
resの値がそれぞれ時刻毎に示されている。
【0094】
また、本実施例との比較のために従来のレザバーコンピューティングシステム900によるカオス時系列予測の実行結果を示す。
図8は、本実施例の比較例に係るカオス時系列予測の実行結果を示す図である。
図8では、入力データ、レザバー層913からのノード毎の出力、及び出力層915から出力される出力データが、教師データに含まれる出力データとともに示されている。
【0095】
ここで自己変調型レザバーコンピューティングシステム200による予測精度を、レザバーコンピューティングシステム900による予測精度と比較するために、平均自乗誤差(MSE:Mean Square Error)を算出した。MSEは、値が低いほど予測精度が高いことを意味する。
図7に示す結果では、MSEの値は0.0140となった。
図8に示す結果では、MSEの値は0.101となった。つまり、本実施例によればカオス時系列予測において、自己変調型レザバーコンピューティングシステム200による予測精度は、レザバーコンピューティングシステム900による予測精度に比べてMSEの値にして10倍高い結果が得られた。
【0096】
また、本実施例では、比較のために従来のレザバーコンピューティングシステム900に含まれるレザバー層913のサイズと予測精度との関係を調べた。レザバー層913のサイズは、レザバー層913に含まれるノードの数である。予測精度はMSEに基づいて評価した。
図9は、本実施例の比較例に係るレザバー層のサイズとMSEとの関係を示す図である。
図9では、レザバーコンピューティングシステム900による予測結果に対するMSEの値が、入力データに加えられるノイズの値毎に示されている。また、
図9では、レザバー層213のサイズを100に固定した場合の自己変調型レザバーコンピューティングシステム200による予測結果に対するMSEの値がノイズの値毎に示されている。
【0097】
「RC,noise:0.1」、「RC,noise:0.01」、及び「RC,noise:0.001」それぞれのグラフは、ノイズの値が0.1、0.01、0.001それぞれの場合のレザバー層913のサイズとレザバーコンピューティングシステム900による予測結果に対するMSEの値との関係を示す。「proposed,noise:0.1」、「proposed,noise:0.01」、及び「proposed,noise:0.001」それぞれのグラフは、ノイズの値が0.1、0.01、0.001それぞれの場合の自己変調型レザバーコンピューティングシステム200による予測結果に対するMSEの値を示す。
ノイズの値が大きいほど予測は困難になるため、予測精度は下がる。つまり、ノイズの値が大きいほどMSEの値は大きくなる。
【0098】
従来のレザバーコンピューティングシステム900では、レザバー層913のサイズが大きくなるほど予測精度が向上することがわかる。一方、レザバー層213のサイズを100に固定した場合の自己変調型レザバーコンピューティングシステム200では、各ノイズの値について、レザバー層のサイズが8倍大きい場合(レザバー層のサイズが800の場合)のレザバーコンピューティングシステム900による予測精度よりも高い予測精度が実現されている。
【0099】
(第1変形例)
図10は、本変形例に係る自己変調型レザバーコンピューティングシステム300の概略構成の一例を示す図である。自己変調型レザバーコンピューティングシステム300は、入力層311と、並列レザバー層313と、出力層315とを備える。並列レザバー層313は、並列に備えられた複数のレザバー層から構成される。
図10では、当該複数のレザバー層のうち、レザバー層313-1と、レザバー層313-2とが示されている。
【0100】
並列レザバー層313を構成する複数のレザバー層それぞれには、入力層311のノードに対する重み付けの結果が共通して入力される。並列レザバー層313を構成する複数のレザバー層それぞれが出力する演算結果は、当該演算結果が結合された値が並列レザバー層313からの出力として出力層315に出力される。ここで複数のレザバー層それぞれが出力する演算結果が結合された値とは、例えば、当該演算結果の複数のレザバー層についてベクトルの連結、平均、または加重平均などである。
【0101】
並列レザバー層313では、並列レザバー層313を構成する複数のレザバー層それぞれにおいて、当該レザバー層の内部結合強度と、入力信号の強度とのうち少なくとも一方が変調される点は、上述した実施形態に係るレザバー層213と同様である。並列レザバー層313では、並列レザバー層313を構成する複数のレザバー層それぞれの内部結合強度の変調、及び入力信号の強度の変調はそれぞれ、当該レザバー層からの出力ではなく、並列レザバー層313からの出力に基づいて行われる点がレザバー層213とは異なる。
【0102】
(第2変形例)
図11は、本変形例に係る自己変調型レザバーコンピューティングシステム400の概略構成の一例を示す図である。自己変調型レザバーコンピューティングシステム400は、入力層411と、多層レザバー層413と、出力層415とを備える。多層レザバー層413は、直列に備えられた複数のレザバー層から構成される。
図11では、一例として、多層レザバー層413は、2つのレザバー層(レザバー層413-1、及びレザバー層413-2)から構成される。
【0103】
自己変調型レザバーコンピューティングシステム400では、入力層411からレザバー層413-1への結合と、レザバー層413-1からレザバー層413-2への結合と、レザバー層413-2から出力層415への結合とが備えられる。
【0104】
レザバー層413-1には、入力層411のノードに対する重み付けの結果が入力される。レザバー層413-1が出力する演算結果は、レザバー層413-2に出力される。
レザバー層413-2には、レザバー層413-2のノードに対する重み付けの結果が入力される。レザバー層413-2が出力する演算結果は、出力層415に出力される。
【0105】
レザバー層413-1では、レザバー層413-1の内部結合強度と、入力信号の強度とのうち少なくとも一方が変調される点は、上述した実施形態に係るレザバー層213と同様である。レザバー層413-1では、レザバー層413-1の内部結合強度の変調、及び入力信号の強度の変調はそれぞれ、レザバー層413-1からの出力ではなく、レザバー層413-1からの出力とレザバー層413-2からの出力とが結合された値に基づいて行われる点がレザバー層213とは異なる。ここでレザバー層413-1からの出力とレザバー層413-2からの出力とが結合された値とは、例えば、レザバー層413-1からの出力とレザバー層413-2からの出力とが連結したベクトルである。
【0106】
レザバー層413-2では、レザバー層413-2の内部結合強度と、レザバー層413-1が出力する演算結果とのうち少なくとも一方が変調される。レザバー層413-2の内部結合強度の変調、及びレザバー層413-1が出力する演算結果の変調はそれぞれ、レザバー層413-2からの出力に基づいて行われる。
【0107】
以上に説明したように、本実施形態に係る機械学習装置100は、入力部110と、中間演算部120と、出力部130と、出力学習部140と、変調部150とを備える。
入力部110は、時系列データである入力データを取得する。
中間演算部120は、第1時刻における入力データに対する重み付けの第1結果と、時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とに基づいて演算を行う。
出力部130は、中間演算部120からの出力に対して重み付けをした結果に基づく出力データを出力する。
出力学習部140は、中間演算部120からの出力に対する重み付けの重みの学習を行う。
変調部150は、中間演算部120からの出力に基づいて中間演算部120による演算において行われる変調の値を算出する。
中間演算部120は、変調部150によって算出された変調の値に基づいて第1結果と第2結果とのうち少なくとも一方を変調して演算を行う。
【0108】
この構成により、本実施形態に係る機械学習装置100は、入力データに対する重み付けの第1結果と時系列データにおいて第1時刻の直前の時刻である第2時刻における自身による演算結果に対する重み付けの第2結果とのうち少なくとも一方を変調することができるため、レザバーコンピューターのハードウェア実装性を維持したまま、予測性能を向上させることができる。レザバーコンピューターのハードウェア実装性とは、例えば、従来のレザバーコンピューティングシステム900のハードウェア実装性をいう。
【0109】
図12は、実施形態に係るコンピュータの構成を示す概略ブロック図である。
図12に示す構成で、コンピュータ700は、CPU(Central Processing Unit)710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0110】
上記の機械学習装置100が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。
【0111】
機械学習装置100がコンピュータ700に実装される場合、入力部110と、中間演算部120と、出力部130と、出力学習部140と、変調部150と、変調重み学習部160との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0112】
入力部110によるデータの取得は、インタフェース740が、例えば通信機能を備え、CPU710の制御に従って他の装置からデータを受信することで実行される。出力部130によるデータの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。また、CPU710は、記憶部170に対応する記憶領域を主記憶装置720に確保する。
【0113】
なお、機械学習装置100の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0114】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【0115】
100…機械学習装置、110…入力部、120…中間演算部、130…出力部、140…出力学習部、150…変調部