IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特許7398625機械学習装置、情報処理方法およびプログラム
<>
  • 特許-機械学習装置、情報処理方法およびプログラム 図1
  • 特許-機械学習装置、情報処理方法およびプログラム 図2
  • 特許-機械学習装置、情報処理方法およびプログラム 図3
  • 特許-機械学習装置、情報処理方法およびプログラム 図4
  • 特許-機械学習装置、情報処理方法およびプログラム 図5
  • 特許-機械学習装置、情報処理方法およびプログラム 図6
  • 特許-機械学習装置、情報処理方法およびプログラム 図7
  • 特許-機械学習装置、情報処理方法およびプログラム 図8
  • 特許-機械学習装置、情報処理方法およびプログラム 図9
  • 特許-機械学習装置、情報処理方法およびプログラム 図10
  • 特許-機械学習装置、情報処理方法およびプログラム 図11
  • 特許-機械学習装置、情報処理方法およびプログラム 図12
  • 特許-機械学習装置、情報処理方法およびプログラム 図13
  • 特許-機械学習装置、情報処理方法およびプログラム 図14
  • 特許-機械学習装置、情報処理方法およびプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-07
(45)【発行日】2023-12-15
(54)【発明の名称】機械学習装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06N 3/04 20230101AFI20231208BHJP
【FI】
G06N3/04
【請求項の数】 7
(21)【出願番号】P 2021555988
(86)(22)【出願日】2020-10-27
(86)【国際出願番号】 JP2020040247
(87)【国際公開番号】W WO2021095512
(87)【国際公開日】2021-05-20
【審査請求日】2022-05-12
(31)【優先権主張番号】P 2019206438
(32)【優先日】2019-11-14
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】森野 佳生
(72)【発明者】
【氏名】合原 一幸
【審査官】松平 英
(56)【参考文献】
【文献】特開平4-21156(JP,A)
【文献】KATAGIRI, Hideki et al.,Multiobjective Evolutionary Optimization of Training and Topology of Recurrent Neural Networks for T,2010 International Conference on Information Science and Applications,IEEE,2010年,ISSN 2162-9048
【文献】SAKEMI, Yusuke et al.,Model-Size Reduction for Reservoir Computing by Concatenating Internal States Through Time,arXiv [online],2020年06月11日,[検索日 2020.12.01],pp. 1-17,インターネット <URL: https://arxiv.org/pdf/2006.06218v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
入力データを取得する入力手段と、
前記入力データに対して複数回の演算を行う中間演算手段と、
前記複数回の各々における前記中間演算手段の出力に対して重み付けを行う重み付け手段と、
前記重み付け手段による重み付けの結果に基づく出力データを出力する出力手段と、
前記中間演算手段の出力に対する重みのみを学習の対象として、前記重み付け手段による重み付けの重みの学習を行う学習手段と、
を備える機械学習装置。
【請求項2】
前記中間演算手段は、前記入力手段が入力データを取得してから次の入力データを取得するまでの時間に、1回演算を行う、
請求項1に記載の機械学習装置。
【請求項3】
前記中間演算手段は、前記入力手段が入力データを取得してから次の入力データを取得するまでの時間に、複数回演算を行う、
請求項1に記載の機械学習装置。
【請求項4】
前記中間演算手段は、前記入力手段が入力データを取得してから次の入力データを取得するまでの時間に、複数回演算を行い、前記入力手段が前記次の入力データを取得すると、前記複数回の演算のうち少なくとも一部の回数の演算を行う前の状態から、前記次の入力データに対する演算を開始する、
請求項3に記載の機械学習装置。
【請求項5】
前記複数回の演算の各々における前記中間演算手段の出力に対する前記重み付け手段による重み付けの結果を記憶する重み付け結果記憶手段
をさらに備える、請求項1から4の何れか一項に記載の機械学習装置。
【請求項6】
コンピュータが、
入力データを取得し、
前記入力データに対して複数回の演算を行い、
前記複数回の各々の時刻における演算結果に対して重み付けを行い、
前記重み付けの結果に基づく出力データを出力し、
前記演算結果から出力データを算出するために行われる重み付けの重みのみを学習の対象として、前記重み付けの重みの学習を行う、
ことを含む情報処理方法。
【請求項7】
コンピュータに、
入力データを取得し、
前記入力データに対して複数回の演算を行い、
前記複数回の各々の時刻における演算結果に対して重み付けを行い、
前記重み付けの結果に基づく出力データを出力し、
前記演算結果から出力データを算出するために行われる重み付けの重みのみを学習の対象として、前記重み付けの重みの学習を行う、
ことを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
機械学習の一つにリザバーコンピューティング(Reservoir Computing;RC)がある(非特許文献1参照)。リザバーコンピューティングは、特に、時系列データの学習、および、処理が可能である。時系列データとは、ある量の時間的な変化を表すデータであり、例として、音声データ、および、気候変動データなどがある。
リザバーコンピューティングは、典型的に、ニューラルネットワークによって構成され、入力層、リザバー層および出力層を備える。リザバーコンピューティングでは、入力層からリザバー層への結合の重み、リザバー層中の結合の重みは学習されず、リザバー層から出力層への結合の重み(出力層の重みとも称する)のみを学習対象とすることで、高速な学習が実現される。
【0003】
なお、リザバーコンピューティングは、典型的にはニューラルネットワークの一種として構成されるが、これに限定されない。例えば、一次元の遅延フィードバック力学系を用いてリザバーコンピューティングを構築するようにしてもよい(非特許文献2参照)。
また、リザバーコンピューティングのハードウェア実装については、例えば非特許文献3に記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】M. Lukosevicius、外1名、“Reservoir computing approaches to recurrent neural network training” 、Computer Science Review 3、pp.127-149、2009年
【文献】L. Appeltant、外8名、“Information processing using a single dynamical node as complex system”、Nature Communications、2:468、2011年
【文献】G. Tanaka、外8名、“Recent advances in physical reservoir computing: A review”、Neural Networks 115、pp.100-123、2019年
【発明の概要】
【発明が解決しようとする課題】
【0005】
リザバーコンピューティングでは、出力層の重みのみを学習するため、出力層以外も学習する他のモデルと比較して、同じ性能を引き出すには、より大きなモデルサイズを必要とする。
モデルサイズが大きいと、予測の実行時の演算速度および電力効率が低くなり、また、ハードウェア実装時の回路サイズが大きくなる。このため、モデルサイズを比較的小さくできることが好ましい。
【0006】
本発明の目的の一例は、上述の課題を解決することのできる機械学習装置、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、機械学習装置は、入力データを取得する入力手段と、前記入力データに対して複数回の演算を行う中間演算手段と、前記複数回の各々における前記中間演算手段の出力に対して重み付けを行う重み付け手段と、前記重み付け手段による重み付けの結果に基づく出力データを出力する出力手段と、前記中間演算手段の出力に対する重みのみを学習の対象として、前記重み付け手段による重み付けの重みの学習を行う学習手段と、を備える。
【0008】
本発明の第2の態様によれば、情報処理方法は、コンピュータが、入力データを取得し、前記入力データに対して複数回の演算を行い、前記複数回の各々の時刻における演算結果に対して重み付けを行い、前記重み付けの結果に基づく出力データを出力し、前記演算結果から出力データを算出するために行われる重み付けの重みのみを学習の対象として、前記重み付けの重みの学習を行う、ことを含む。
【0009】
本発明の第3の態様によれば、記録媒体は、コンピュータに、入力データを取得し、前記入力データに対して複数回の演算を行い、前記複数回の各々の時刻における演算結果に対して重み付けを行い、前記重み付けの結果に基づく出力データを出力し、前記演算結果から出力データを算出するために行われる重み付けの重みのみを学習の対象として、前記重み付けの重みの学習を行う、ことを実行させるためのプログラムを記録する。
【発明の効果】
【0010】
この発明の実施形態によれば、モデルのサイズを大きくする必要なしに、比較的高い学習性能を示すことができる。また逆に、学習性能を維持したまま、モデルのサイズを小さくすることができる。
【図面の簡単な説明】
【0011】
図1】第一実施形態に係るリザバーコンピューティングシステムの概略構成を示す図である。
図2】第一実施形態に係る機械学習装置の機能構成の例を示す概略ブロック図である。
図3】第二実施形態の機械学習装置におけるデータの流れの例を示す図である。
図4】第二実施形態における中間層の状態遷移の例を示す図である。
図5】第三実施形態における中間層の状態遷移の例を示す図である。
図6】第四実施形態の機械学習装置におけるデータの流れの例を示す図である。
図7】第四実施形態における中間層の状態遷移の例を示す図である。
図8】実施形態に係る機械学習装置のシミュレーション結果を示す第1の図である。
図9】実施形態に係る機械学習装置のシミュレーション結果を示す第2の図である。
図10】第五実施形態に係る機械学習装置の機能構成の例を示す図である。
図11】第五実施形態に係る機械学習装置におけるデータの流れの例を示す図である。
図12】第五実施形態に係る重み付け部が時刻毎に行う計算の例を示す図である。
図13】実施形態に係る機械学習装置の構成例を示す図である。
図14】実施形態に係る情報処理方法における処理手順の例を示す図である。
図15】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
<第一実施形態>
(リザバーコンピューティングについて)
実施形態の基となるリザバーコンピューティングについて説明する。
図1は、第一実施形態に係るリザバーコンピューティングシステムの概略構成を示す図である。図1に示す構成で、リザバーコンピューティングシステム900は、入力層911と、リザバー層913と、出力層915と、入力層911からリザバー層913への結合912と、リザバー層913から出力層915への結合914とを備える。
【0014】
入力層911、出力層915は、それぞれ1つ以上のノード(Node)を含んで構成される。例えば、リザバーコンピューティングシステム900がニューラルネットワークとして構成される場合、ノードは、ニューロンとして構成される。
リザバー層913は、ノードと、リザバー層913のノード間でデータに重み係数を乗算して伝達する単方向のエッジ(Edge)とを含んで構成される。
【0015】
リザバーコンピューティングシステム900では、データは、入力層911のノードへ入力される。
入力層911からリザバー層913への結合912は、入力層911のノードとリザバー層913のノードとを結合するエッジの集合として構成される。結合912は、入力層911のノードの値に重み係数を乗算した値を、リザバー層913のノードへ伝達する。
リザバー層913から出力層915への結合914は、リザバー層913のノードと出力層のノードとを結合するエッジの集合として構成される。結合914は、リザバー層913のノードの値に重み係数を乗算した値を、出力層915のノードへ伝達する。
【0016】
図1では、入力層911からリザバー層913への結合912およびリザバー層913から出力層915への結合914を矢印で示している。
リザバーコンピューティングシステム900は、リザバー層913から出力層915への結合914の重み(重み係数の値)のみを学習する。一方、入力層911からリザバー層913への結合912の重み、および、リザバー層のノード間のエッジの重みは学習の対象外であり、一定の値をとる。
【0017】
リザバーコンピューティングシステム900は、ニューラルネットワークとして構成されていてもよいが、これに限定されない。例えば、リザバーコンピューティングシステム900が、式(1)で示される任意の力学系を表すモデルとして構成されていてもよい。
【0018】
【数1】
【0019】
ここで、u(t)={u(t),u(t),…,u(t)}は、入力層911を構成する入力ベクトルである。Kは、入力層911のノードの個数を示す正の整数である。すなわち、u(t)は、リザバーコンピューティングシステム900への入力時系列データを示すベクトルである。入力層911のノードは入力データの値をとるので、u(t)は、入力層911のノードの値を示すベクトルでもある。
【0020】
x(t)={x(t),x(t),…,x(t)}は、リザバー層913を構成する力学系のベクトル表現である。Nは、リザバー層913のノードの個数を示す正の整数である。すなわち、x(t)は、リザバー層913のノードの値を示すベクトルである。
y(t)={y(t),y(t),…,y(t)}は、出力ベクトルである。Mは、出力層915のノードの個数を示す正の整数である。すなわち、y(t)は、出力層915のノードの値を示すベクトルである。リザバーコンピューティングシステム900は出力層915のノードの値を出力するので、y(t)は、リザバーコンピューティングシステム900の出力データを示すベクトルでもある。
【0021】
f(・)は、リザバー層913の状態の時間発展を表す関数である。
Δtは、予測時間ステップであり、予測および学習する対象の状態変化の速さに応じて十分小さい値をとる。リザバーコンピューティングシステム900は、予測時間ステップΔt毎に、予測および学習する対象からの入力を受け付ける。
outは、リザバー層913から出力層915への結合強度を示す行列である。Woutの要素は、結合914を構成する個々のエッジにおける重み係数を示す。RMxNをM行N列の実数行列の集合とすると、Wout∈RMxNと示される。Woutを、出力の結合行列、または、出力行列とも称する。
力学系として、ニューラルネットワークを用いる場合(echo state network)、式(1)は、式(2)のように示される。
【0022】
【数2】
【0023】
tanh(・)は、双曲線正接関数(Hyperbolic Tangent Function)を示す。
resは、リザバー層913のニューロン間の結合強度を示す行列である。Wresの要素は、リザバー層913のノード間の個々のエッジにおける重み係数を示す。RNxNをN行N列の実数行列の集合とすると、Wres∈RNxNと示される。Wresを、リザバーの結合行列とも称する。
inは、入力層911からリザバー層913への結合強度を示す行列である。Winの要素は、結合912を構成する個々のエッジにおける重み係数を示す。RNxKをN行K列の実数行列の集合とすると、Win∈RNxKと示される。
【0024】
(学習則について)
リザバーコンピューティングシステム900では、入力ベクトルの値と、とるべき出力ベクトルの値とのペアで構成される教師データ{uTe(t),yTe(t)},(t=0,Δt,2Δt,…,TΔt)を用いて、出力行列Woutの学習を行う。uTe(t)における上付きのTeは、学習用の入力ベクトルであることを示す。yTe(t)における上付きのTeは、学習用の出力ベクトルであることを示す。
【0025】
この教師データの入力ベクトルuTe(t)によってリザバー層913を時間発展させると、リザバー層913の内部状態を示すベクトルx(0)、x(Δt)、x(2Δt)、…、x(TΔt)が得られる。
リザバーコンピューティングシステム900における学習は、リザバー層913の内部状態を用いて、出力ベクトルy(t)と出力ベクトルの教師データyTe(t)との差を小さくすることで行われる。
出力ベクトルy(t)と出力ベクトルの教師データyTe(t)との差を小さくする手法として、例えば、リッジ回帰を用いることができる。リッジ回帰を用いる場合、式(3)に示される量を最小化することで、出力行列Woutの学習を行う。
【0026】
【数3】
【0027】
ここで、βは正則化パラメータとよばれる正実数定数のパラメータである。
||・|| における下付きの「2」は、L2ノルムを示す。上付きの「2」は、2乗を示す。
【0028】
(リザバーコンピューティングのハードウェア実装)
リザバーコンピューティングをハードウェア実装することで、CPU(Central Processing Unit、中央処理装置)を用いてリザバーコンピューティングをソフトウェア的に実行する場合よりも高速、また低消費電力に演算することが可能になる。そのため、実社会への応用を考える場合は、リザバーコンピューティングのアルゴリズムだけでなく、ハードウェア実装も考えることが重要である。
【0029】
リザバーコンピューティングのハードウェア実装の例として、Field Programmable Gate Array(FPGA)、Graphical Processing Unit(GPU)、または、Application Specific Integrated Circuit(ASIC)などを用いた電子回路による実装が挙げられる。リザバーコンピューティングシステム900についても、これらのいずれかによって実装するようにしてもよい。
さらに、電子回路以外によるリザバーコンピューティングの実装として、物理リザバーと呼ばれる、物理的なハードウェアによる実装の報告がある。例えば、スピントロニクス(Spintronics)による実装や、光学系による実装などが知られている。リザバーコンピューティングシステム900についても、これらのいずれかによって実装するようにしてもよい。
【0030】
(機械学習装置の構成について)
図2は、第一実施形態に係る機械学習装置の機能構成の例を示す概略ブロック図である。図2に示す構成で、機械学習装置100は、入力層110と、中間演算部120と、重み付け部130と、出力層140と、中間層データ複写部150と、記憶部160と、学習部170とを備える。中間演算部120は、第一結合121と、中間層122とを備える。重み付け部130は、第二結合131を備える。記憶部160は、中間層データ記憶部161を備える。
【0031】
入力層110は、リザバーコンピューティングシステム900の入力層911(図1)と同様、1つ以上のノードを含んで構成され、機械学習装置100への入力データを取得する。入力層110は、入力部の例に該当する。
中間演算部120は、入力層110が入力データを取得する度に、演算を行う。特に、中間演算部120は、同じ演算を、入力層110が入力データを取得する毎に1回または複数回繰り返す。中間演算部120が行う繰り返しの単位となる演算を1回分の演算と称する。中間演算部120が同じ演算を繰り返す際、入力データの値または中間演算部120の内部状態(特に、中間層122の内部状態)、あるいはそれら両方が異なることで、1回分の演算毎に異なる結果を得られる。
【0032】
中間層122は、ノードと、中間層122のノード間でデータに重み係数を乗算して伝達するエッジとを含んで構成される。
第一結合121は、入力層110のノードと中間層122のノードとを結合するエッジの集合として構成される。第一結合121は、入力層110のノードの値に重み係数を乗算した値を、中間層122のノードへ伝達する。
【0033】
機械学習装置100は、中間演算部120が行う演算毎に中間演算部120の状態を記憶しておく。具体的には、機械学習装置100は、中間演算部120が演算を行う毎に、中間層122のノードの値を記憶しておく。そして、機械学習装置100は、中間演算部120の記憶された状態を含む、複数の状態の各々について、中間演算部120からの出力に重み係数を乗算した値を出力層140へ伝達する。これにより、機械学習装置100は、複数の時刻における中間演算部120から出力層140への結合を用いて機械学習装置100の出力(出力層140の各ノードの値)を算出することができる。したがって、機械学習装置100は、中間演算部120のサイズ(特に、中間層122の次元数)を大きくする必要なしに、比較的多くのデータを用いて機械学習装置100の出力を算出することができ、この点で、出力をより高精度に算出することができる。ここでいう層の次元数は、その層のノードの個数である。
【0034】
記憶部160は、データを記憶する。特に、記憶部160は、中間演算部120が行う演算毎に中間演算部120の状態を記憶する。
中間層データ記憶部161は、中間演算部120が行う各時刻における演算結果による中間演算部120の状態(その時刻の演算を完了したときの中間演算部120の状態)を記憶する。なお、ここでいう時刻とは、何回目の演算かを示すものであり、必ずしも実際の(物理的な)時間を示すものでない。中間層データ記憶部161が、中間演算部120の状態として、中間層122の各ノードの値を記憶するようにしてもよい。あるいは、中間層122のノードのうち一部のノードのみが出力層140のノードとエッジで結合されている場合、中間層データ記憶部161が、中間層122のノードのうち出力層140のノードとエッジで結合されているノードの値を記憶するようにしてもよい。
【0035】
記憶部160は、中間層データ記憶部161の個数の分だけ中間演算部120の状態を記憶することができる。
【0036】
中間層データ複写部150は、中間演算部120の状態の履歴を記憶部160に記憶させる。具体的には、中間層データ複写部150は、中間演算部120が1回分の演算を行う毎に、その演算を行った後の中間演算部120の状態を中間層データ記憶部161に記憶させる。
【0037】
重み付け部130は、中間演算部120が行う演算の各々における中間演算部120の出力に対して重み付けを行う。具体的には、重み付け部130は、現在の中間演算部120の出力、および、中間層データ記憶部161が記憶する中間演算部120の状態における中間演算部120の出力の各々に対して重み付けを行い、重み付けの結果を出力層140へ出力する。
【0038】
第二結合131は、中間演算部120の1状態分について、中間演算部120の出力に対する重み付けを行う。すなわち、個々の第二結合131は、中間演算部120の現在の出力、または、1つの中間層データ記憶部161が記憶する中間演算部120の状態における中間演算部120の出力の何れかに対して重み付けを行う。第二結合131は、重み付けの結果を出力層140へ出力する。
重み付け部130は、中間層データ記憶部161が記憶する中間演算部120の状態の個数よりも一つ多い個数の第二結合131を備える。
【0039】
出力層140は、リザバーコンピューティングシステム900の出力層915(図1)と同様、1つ以上のノードを含んで構成され、重み付け部130による重み付けの結果に基づく出力データを出力する。
学習部170は、重み付け部130による重み付けの重みの学習を行う。一方、第一結合121における重み、および、中間層122のノード間のエッジにおける重みは、学習の対象外であり、一定の値をとる。
学習済みの機械学習装置100は、処理システムの例に該当する。
【0040】
機械学習装置100は、中間演算部120から出力層140への出力に対する重みのみを学習の対象とする点では、リザバーコンピューティングの一種といえる。中間層122と、中間層データ複写部150と、中間層データ記憶部161との組み合わせをリザバーコンピューティングシステム900の例と見做した場合、機械学習装置100はリザバーコンピューティングシステム900の例に該当する。
一方、機械学習装置100は、中間層データ複写部150および中間層データ記憶部161を備える点、および、中間層データ記憶部161が記憶する中間層122の状態における中間層122の出力に対して重み付け部130が重み付けを行う点で、一般的なリザバーコンピューティングとは異なる。
【0041】
以上のように、入力層110は、入力データを取得する。具体的には、入力層110は、入力時系列データを逐次的に取得する。中間演算部120は、取得された各時刻の入力時系列データに対して演算を行う。重み付け部130は、複数時刻の各々における中間演算部の出力に対して重み付けを行う。出力層140は、重み付け部130による重み付けの結果に基づく出力データを出力する。学習部170は、重み付け部130による重み付けの重みの学習を行う。
【0042】
このように、複数の時刻における中間層122から出力層140への出力に対して重み付けを行って出力の算出に用いることで、出力結合数を増やすことができる。ここでいう出力結合数は、中間層122の全ノードから出力層140の全ノードへの出力の個数であり、過去の時刻における中間層122から出力層140への出力を含む。ここでいう中間層122の次元数は、中間層122のノード数である。
【0043】
過去の時刻における中間層122からの出力を用いることで、中間層122のノード数を増やす必要なしに、出力結合数を比較的多くすることができる。また、逆に、中間層122の次元数を小さくしても過去の時刻からの結合を追加することで、出力結合数を一定にすることができるようになる。
このように、機械学習装置100によれば、モデルのサイズ(特に、中間層122のノード数)を大きくする必要なしに、比較的多数の出力結合数を用いて比較的高精度に演算を行うことができる。
【0044】
<第二実施形態>
第二実施形態では、第一実施形態の機械学習装置100が行う処理の例について説明する。第二実施形態にかかる処理では、中間層122の過去の状態を再利用する。
図3は、機械学習装置100におけるデータの流れの第一例を示す図である。図3の例で、入力層110が入力データを取得し、第一結合121が入力データに対する重み付けを行う。
中間層122は、第一結合121による重み付けの結果(第一結合121が重み付けを行った入力データ)に対する演算を行う。第二実施形態では、中間層122は、入力層110が入力データを取得する毎に、同じ演算を繰り返す。中間層122が繰り返し行う演算の1回分(入力層110の1回の入力データ取得に対応して中間層122が行う演算)が、1回分の演算の例に該当する。
【0045】
中間層データ複写部150は、中間演算部120が1回分の演算を行う毎に、中間層122の状態を中間層データ記憶部161に記憶させる。重み付け部130は、中間層122の出力、および、中間層データ記憶部161が記憶する中間層122の状態における中間層122の出力の各々に対して重み付けを行う。
出力層140は、重み付け部130による重み付けの結果に基づいて出力データを算出し出力する。
学習部170は、出力層140における重みの学習を行う。
【0046】
第二実施形態における機械学習装置100の処理で、ある時刻t(t=0,1,2,...,T)における中間層122の内部状態をx(t)とする。Tは、正の整数である。
時刻tは、中間層122が1回分の演算を行う時間ステップに付された通番で示される。
第二実施形態では、中間層122が1回分の演算を行う時間ステップは、入力層110が入力データを取得してから次の入力データを取得するまでの時間ステップに設定される。
式(1)を参照して説明したように、x(t)は、例えば式(4)のように示される。
【0047】
【数4】
【0048】
f(・)は、中間層122の状態の時間発展を表す関数であり、ここでは、中間層122が行う1回分の演算を示す。Δtは、予測時間ステップである。
出力層140の状態を示す出力ベクトルy(t)は、式(5)のように示される。
【0049】
【数5】
【0050】
(t)は、時刻tにおける中間層122の状態を示す状態ベクトルに加えて、時刻t以外の時刻における中間層122の状態を示す状態ベクトルも含むベクトルである。x(t)は、式(6)のように示される。
【0051】
【数6】
【0052】
ここで、[・,・,…,・]は、ベクトルの連結を表す。また、xやxは縦ベクトルであることに注意されたい。xはxの転置を表す。
(t)を、時刻tにおける混合時刻状態ベクトルと称する。
また、Pは、いくつ前までの過去の状態を用いるかを決める定数である。Qは、いくつの予測時間ステップ分、スキップして過去の状態を用いるかを決める定数である。Qを拡大数と称する。
【0053】
また、式(5)のWoutは、混合状態ベクトルx(t)に対する重み付けを示す出力行列であり、Wout∈RM×(P+1)Nと示される。ここでのRM×(P+1)Nは、M行(P+1)N列の実数行列の集合を示す。
なお、ここでは、混合時刻状態ベクトルx(t)の要素の値の線形結合により、出力ベクトルy(t)を計算できる場合の例を示している。ただし、出力ベクトルy(t)の算出方法は、これに限定されない。例えば、出力層140が、混合時刻状態ベクトルx(t)の一部の要素の値を二乗したうえで線形結合して計算するようにしてもよい。
【0054】
図4は、第二実施形態における中間層122の状態遷移の例を示す図である。図4は、時刻t=0から時刻t=3までの中間層122の状態の時間発展を示している。図4では、P=Q=Δt=1の場合の例を表している。
図4の例で、入力層110が、u(0)、u(1)、・・・、と、入力データを取得する毎に、中間層122の状態が、x(0)、x(1)、・・・と遷移している。また、ある時刻tにおける出力(出力ベクトルy(t))は、時刻tにおける中間層122の状態(x(t))と、時刻t-1における中間層122の状態(x(t-1))との線形結合によって求まる。
【0055】
したがって、図4の例では、重み付け部130は、中間演算部120が行う2つの時刻分の演算の結果を用いて出力を算出する。例えば、中間演算部120が、x(0)とu(1)とに基づいてx(1)を算出し、x(1)とu(2)とに基づいてx(2)を算出すると、重み付け部130は、x(1)とx(2)とを用いてy(2)を算出する。
【0056】
中間層122が時刻tにおける状態(ベクトルx(t))を算出すると、中間層データ複写部150が時刻tにおける中間層122の状態を中間層データ記憶部161に記憶させる。その後、中間層122は、時刻t+1における状態(ベクトルx(t+1))を算出する。これにより、重み付け部130は、時刻tにおける中間層122の出力と、時刻t+1における中間層122の出力との両方を用いて出力(出力ベクトルy(t+1))を算出することができる。
【0057】
以上のように、中間演算部120は、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、1回分の演算を行う。
記憶部160が中間演算部120の状態の履歴を記憶しておくことで、過去の時刻における中間層122からの出力を用いることができ、中間層122のノード数を増やす必要なしに、出力結合数を比較的多くすることができる。
【0058】
<第三実施形態>
第三実施形態では、第一実施形態の機械学習装置100が行う処理の、もう1つの例について説明する。第三実施形態にかかる処理では、中間層122の中間状態を設ける。
第三実施形態の処理での機械学習装置100におけるデータの流れは、図3を参照して説明したのと同様である。
【0059】
ただし、第三実施形態の処理では、入力層110が入力データを取得するタイミングと、中間演算部120が演算を行うタイミングとの関係が、第二実施形態の場合と異なる。
第二実施形態では、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、中間演算部120が1回演算を行う。これに対し、第三実施形態では、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、中間演算部120が複数回の演算を行う。この場合の、中間演算部120が1回演算を行う毎の中間演算部120の状態を、中間演算部120の中間状態と称する。
【0060】
このように、中間演算部120が、入力データおよび中間層122の初期状態に基づいて1回分の演算を行うことで、中間層122の中間状態(第1の中間状態)が得られる。
中間演算部120が、入力データおよび中間層122の中間状態に基づいて1回分の演算を行うことで、中間層122の、次の中間状態(第2、第3、・・・の中間状態)が得られる。中間演算部120が、演算(1回分の演算)を2回以上繰り返して得られた複数の中間状態に基づいて、重み付け部130および出力層140が、機械学習装置100の処理結果としての出力を生成し出力する。
【0061】
第三実施形態の処理では、中間層122の状態に、中間状態がNtran個挿入される。Ntranは、正の整数である。個々の中間状態は、中間層データ記憶部161が記憶する中間層122の状態である。
中間層122の中間状態が設けられる第三実施形態では、中間層122が同じ入力信号を(1+Ntran)回用いて時間発展を行った後、重み付け部130が出力層の計算を行う。この場合の中間層122の内部状態(ベクトルx(t))は、例えば式(7)のように示される。
【0062】
【数7】
【0063】
ここで、floor(・)は下床関数と呼ばれ、式(8)のように定義される。
【0064】
【数8】
【0065】
ここで、Zは整数の集合である。
f(・)は、中間層122の状態の時間発展を表す関数であり、式(4)の場合と同様、中間層122が行う1回分の演算を示す。
出力層140の状態を示す出力ベクトルy(t)は、式(9)のように示される。
【0066】
【数9】
【0067】
混合時刻状態ベクトルx(t)は、上記の式(6)のように示される。
式(9)のWoutは、混合状態ベクトルx(t)に対する重み付けを示す出力行列であり、Wout∈RM×(1+Ntran)Nと示される。ここでのRM×(1+Ntran)Nは、M行(1+Ntran)N列の実数行列の集合を示す。
【0068】
図5は、第三実施形態における中間層122の状態遷移の例を示す図である。図5は、時刻t=0から時刻t=3までの中間層122の状態の時間発展を示している。図5では、中間状態を一個挿入する場合(すなわちNtran=1の場合)、かつ、P=Q=Δt=1の場合の例を表している。x(・)は、中間層122の中間状態を示すベクトルである。
【0069】
図5の例で、入力層110が、u(0)、u(1)、・・・、と、入力データを取得する毎に、中間層122の状態が、x(0)、x(1)、x(2)、・・・のように、中間状態を経て、入力データに対する最終的な状態へと遷移している。また、ある時刻tにおける出力(出力ベクトルy(t))は、中間層122の中間状態(x((1+Ntran)t+Ntran))と、その一つ前の時刻の状態(x((1+Ntran)t+Ntran-1))との線形結合によって求まる。
【0070】
したがって、図5の例では、重み付け部130は、中間演算部120が行う2回分の演算の結果を用いて出力を算出する。例えば、中間演算部120が、x(1)とu(1)とに基づいてx(2)を算出し、x(2)とu(1)とに基づいてx(3)を算出すると、重み付け部130は、x(2)とx(3)とを用いてy(1)を算出する。
【0071】
中間層122が中間状態を算出すると、中間層データ複写部150が中間層122の中間状態を中間層データ記憶部161に記憶させる。その後、中間層122は、次の中間状態、または、入力データに対する最終的な状態を算出する。これにより、重み付け部130は、中間状態における中間層122の出力と、入力データに対する最終的な状態における中間層122の出力との両方を用いて出力(出力ベクトルy(t))を算出することができる。
【0072】
以上のように、中間演算部120は、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、複数回演算を行う。例えば、中間演算部120は、複数回の演算を逐次的に行う。
記憶部160が中間演算部120の状態の履歴を中間状態として記憶しておくことで、中間状態における中間層122からの出力を用いることができ、中間層122のノード数を増やす必要なしに、出力結合数を多くすることができる。
【0073】
<第四実施形態>
第四実施形態では、第一実施形態の機械学習装置100が行う、さらにもう1つの処理の例について説明する。第四実施形態にかかる処理では、中間層122の補助状態を設ける。
図6は、機械学習装置100におけるデータの流れの第二例を示す図である。図6の例では、中間層データ複写部150が中間層データ記憶部161から中間層122の状態を読み出して中間層122に設定する点で、図3の場合と異なる。それ以外の点では、図6の例は図3の場合と同様である。
【0074】
第四実施形態でも第三実施形態の場合と同様、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、中間演算部120が複数回分の演算を行う。この場合の、中間演算部120が1回分の演算を行う毎の中間演算部120の状態を、中間演算部120の補助状態と称する。
【0075】
中間層122の中間状態と補助状態との違いは、状態遷移の戻りが生じるか否かの違いである。第三実施形態で説明したように、中間状態の場合は、中間層122の状態は、1つ以上の中間状態を経て入力データに対する最終的な状態に遷移する。そして、中間層122は、入力データに対する最終的な状態に基づいて、次の入力データに対する状態計算を行う。このように、中間状態の場合は、中間層122の状態遷移の戻りは生じない。
一方、補助状態の場合、中間層122の状態は、1つ以上の補助状態に遷移した後、元の状態に戻ってから、次の入力データに対する状態へ遷移する。このように、補助状態の場合は、中間層122の状態遷移の戻りが生じる。
【0076】
第四実施形態における機械学習装置100では、各時刻の中間層122の状態(入力層110が入力データを取得する時間ステップ毎の中間層122の状態)に対して、Naux個の補助状態が追加される。Nauxは、正の整数である。各時刻の中間層122の状態は、例えば上記の式(4)のように示される。
また、補助状態x(t;i)は、式(10)のように示される。
【0077】
【数10】
【0078】
ここで、g(・)はf(・)と同じ関数であってもよいし、異なる関数であってもよい。
また、第四実施形態では、混合時刻状態ベクトルx(t)は、式(11)のように示される。
【0079】
【数11】
【0080】
第四実施形態では、出力層140の状態を示す出力ベクトルy(t)は、式(12)のように示される。
【0081】
【数12】
【0082】
式(12)のWoutは、混合状態ベクトルx(t)に対する重み付けを示す出力行列であり、Wout∈RM×(1+Naux)Nと示される。ここでのRM×(1+Naux)Nは、M行(1+Naux)N列の実数行列の集合を示す。
【0083】
図7は、第四実施形態における中間層122の状態遷移の例を示す図である。図7は、時刻t=0から時刻t=3までの中間層122の状態の時間発展を示している。図7では、補助を2個挿入する場合(すなわちNaux=2の場合)、かつ、Δt=1の場合の例を表している。x(・)は、中間層122の中間状態を示すベクトルである。
【0084】
図7の例で、入力層110が、u(0)、u(1)、・・・、と、入力データを取得する毎に、中間層122の状態が、x(0)からx(0;1)およびx(0:2)へ遷移しx(0)へ戻る、x(1)からx(1;1)およびx(1:2)へ遷移しx(1)へ戻る、というように、補助状態に遷移した後、元の状態に戻ってから、次の入力データに対する状態へ遷移する。
また、ある時刻tにおける出力(出力ベクトルy(t))は、時刻tにおける中間層122の状態(x(t))と、時刻tにおける中間層122の補助状態(x(t;i))との線形結合によって求まる。
【0085】
したがって、図7の例では、重み付け部130は、中間演算部120が行う2回分の演算の結果を用いて出力を算出する。例えば、中間演算部120が、x(0)とu(0)とに基づいてx(0;1)を算出し、x(0;1)に基づいてx(0;2)を算出すると、重み付け部130は、x(0)とx(0;1)とx(0;2)とを用いてy(0)を算出する。
【0086】
中間層データ複写部150は、中間層122が補助状態を算出する前の状態を中間層データ記憶部161に記憶させる。その後、中間層122は、補助状態を算出する。中間層122が補助状態を算出する毎に、中間層データ複写部150は補助状態を中間層データ記憶部161に記憶させる。これにより、重み付け部130は、補助状態における中間層122の出力と、元の状態における中間層122の出力との両方を用いて出力(出力ベクトルy(t))を算出することができる。
また、中間層122がNaux個の補助状態の算出を完了すると、中間層データ複写部150は、中間層122の元の状態を中間層データ記憶部161から読み出して中間層122に設定する。
【0087】
以上のように、中間演算部120は、入力層110が入力データを取得してから次の入力データを取得するまでの時間に、複数回演算を行う。例えば、中間演算部120は、複数回の演算を逐次的に行う。入力層110が次の入力データを取得すると、中間演算部120は、複数回の演算のうち少なくとも一部の回数分の演算を行う前の状態から、次の入力データに対する演算を開始する。
記憶部160が中間演算部120の状態の履歴を補助状態として記憶しておくことで、補助状態における中間層122からの出力を用いることができ、中間層122のノード数を増やす必要なしに、出力結合数を多くすることができる。
【0088】
機械学習装置100が、第二実施形態の処理および第三実施形態の処理のうち何れか一方または両方と、第四実施形態の処理とを併用するようにしてもよい。
例えば、図4の例で、入力層110が入力データを取得してから次の入力データを取得するまでの時間ステップが複数のサブステップに分割され、中間層122が、サブステップ毎に補助状態を算出するようにしてもよい。
【0089】
また、図5の例で、入力層110が、x(0)、x(1)等の状態から補助状態を算出し、元の状態に戻った後、次の入力データに対する中間状態を算出するようにしてもよい。
なお、ニューラルネットワークを用いて機械学習装置100を構成する場合、いろいろなニューロンモデルおよびいろいろなネットワーク結合を用いて中間層122を構成することができる。例えば、中間層122が、全結合ニューラルネットワークとして構成されていてもよい。あるいは、中間層122が、円環型の結合をもつニューラルネットワークとして構成されていてもよい。
【0090】
(シミュレーション例)
機械学習装置100の動作のシミュレーション結果について説明する。
シミュレーションでは、ニューラルネットワークを用いて機械学習装置100を構成し、入力層110のノード数、出力層140のノード数を何れも1としている。また、Q=Δt=1とした。シミュレーションにおける中間層122の状態は、式(13)のベクトルx(t)のように示される。
【0091】
【数13】
【0092】
混合時刻状態ベクトルx(t)は、式(14)のように示される。
【0093】
【数14】
【0094】
出力ベクトルy(t)は、上記の式(5)のように示される。
また、中間状態を導入する場合、中間層122の状態は、式(15)のベクトルx(t)のように示される。
【0095】
【数15】
【0096】
中間状態を導入する場合、混合時刻状態ベクトルx(t)は、上記の式(6)のように示される。中間状態を導入する場合、出力ベクトルy(t)は、上記の式(9)のように示される。
また、補助状態を導入する場合、中間層122の状態は、式(16)のベクトルx(t)のように示される。
【0097】
【数16】
【0098】
中間層122の補助状態は、式(17)のベクトルx(t;i)のように示される。
【0099】
【数17】
【0100】
補助状態を導入する場合、混合時刻状態ベクトルx(t)は、上記の式(11)のように示される。補助状態を導入する場合、出力ベクトルy(t)は、上記の式(12)のように示される。
シミュレーションでは、NARMA10の出力を予測するタスクを行った。NARMA10は、式(18)のように示される。
【0101】
【数18】
【0102】
ここで、u[t]は0から0.5までの値をとる一様乱数である。ネットワークの学習はTtrain(=2000)個のデータで行い、その出力の回帰性能を異なる乱数を用いてTtest(=2000)個のデータに対して調べる。
回帰性能はnormalized mean square error(NMSE)で評価した。NMSEは、式(19)のように示される。
【0103】
【数19】
【0104】
meanは、式(20)のように示される。
【0105】
【数20】
【0106】
ここで、yTeはNARMA10の出力値(教師データ)であり、y(t)はネットワークの予測値である。なお、NMSEが小さいほど性能が高い。
図8は、NP=200のときのシミュレーション結果を示す第1の図である。なお、Nはリザバー層のニューロン数であり、Pは、結合を許す過去の状態数である。図8の横軸はPの大きさを表す。Pが大きくなるほど、中間層122のノード数(ニューロン数)が少ないモデルである。図8は、中間状態の個数が0個、1個、2個のときの結果を示している。いずれの個数の場合もP=0、1、2、3、4のときは、性能値としてのNMSEは同じような値をとっていることがわかる。P=4のときのノード数は40個であり、中間層122のノード数を削減できている。
さらに、中間状態を挿入した場合は、P=7程度まで性能の低下は小さく、より少ない中間層122のノード数を実現できる。
【0107】
図9は、NP=200のときのシミュレーション結果を示す第2の図である。図9の横軸はPの大きさを表す。図9は、上記の条件において、中間状態が一個の場合と、補助状態を用いた場合との比較を示している。補助状態を用いた場合は、P=10ぐらいまで性能の低下が小さく、中間状態を導入するよりもさらに中間層122ニューロン数を削減できる。
【0108】
<第五実施形態>
図10は、第五実施形態に係る機械学習装置の機能構成の例を示す図である。図10に示す構成で、機械学習装置200は、入力層110と、中間演算部120と、重み付け部130と、出力層140と、重み付け結果複写部250と、記憶部260と、学習部170とを備える。中間演算部120は、第一結合121と、中間層122とを備える。重み付け部130は、第二結合131を備える。記憶部260は、重み付け結果記憶部261を備える。
【0109】
図10の各部のうち図2の各部に対応して同様の機能を有する部分に同一の符号(110、120,121、122、130、131、140、170)を付して説明を省略する。機械学習装置200は、中間層データ複写部150に代えて重み付け結果複写部250を備える点、および、中間層データ記憶部161を備える記憶部160に代えて重み付け結果記憶部261を備える記憶部260を備える点で、機械学習装置100の場合と異なる。それ以外の点では、機械学習装置200は機械学習装置100と同様である。
【0110】
機械学習装置100では、中間層データ記憶部161が中間層122の状態を記憶するのに対し、機械学習装置200では、重み付け結果記憶部261が、中間層122の出力に対して第二結合131が重み付けを行った結果を記憶する。機械学習装置100では、中間層データ複写部150が中間層データ記憶部161に中間層122の状態を記憶させるのに対し、機械学習装置200では、重み付け結果複写部250が重み付け結果記憶部261に、中間層122の出力に対する第二結合131の重み付けの結果を記憶させる。
【0111】
機械学習装置200では、記憶部260が中間層122の状態を記憶しないで済むように、中間層122が状態を算出する毎に、重み付け部130が中間層122の出力に対して重み付けを行う。この重み付けは、出力ベクトルy(t)の計算式の分解にて示される。
分解前の計算式は、式(21)のように示される。
【0112】
【数21】
【0113】
これを式(22)のように分解する。
【0114】
【数22】
【0115】
ここでは、Wout∈RM×(P+1)Nであり、W out∈RM×N(i=0,1,・・・,P)である。
中間層122の状態の保存を不要にするために、中間層122が時刻tにおける中間層122自らの状態x(t)を計算すると、重み付け部130が中間層122の出力に対する重み付けを行う。この重み付けは、式(23)のように示される。
【0116】
【数23】
【0117】
これにより、保持するメモリのサイズがM/N倍に削減される。Nは、中間層122のノード数を示し、Mは、出力層140のノード数を示す。一般に、中間層122のノード数のほうが、出力層140のノード数よりも多い。
【0118】
図11は、機械学習装置200におけるデータの流れの例を示す図である。図11の例で、入力層110が入力データを取得し、第一結合121が入力データに対する重み付けを行う。
中間層122は、第一結合121による重み付けの結果(第一結合121が重み付けを行った入力データ)に対する演算を行う。
【0119】
重み付け部130は、中間演算部120が1回分の演算を行う毎に、中間演算部120の出力(中間層122の出力)に対して重み付けを行う。重み付け結果複写部250は、重み付け部130による重み付けの結果を重み付け結果記憶部261に記憶させる。
出力層140は、中間層122の出力に対する重み付け部130による重み付けの結果、および、重み付け結果記憶部261が記憶する重み付けの結果に基づいて、出力データを算出し出力する。
学習部170は、出力層140における重みの学習を行う。
【0120】
図12は、重み付け部130が時刻毎に行う計算の例を示す図である。図12に示す式の項のうち、重み付け部130が各時刻で計算を行う項を下線で示している。
このように、重み付け部130は、中間層122の出力に対する重み付けを、時刻で分割して行う。
【0121】
以上のように、重み付け結果記憶部261は、複数の時刻の各々における中間層122の出力に対する重み付け部130による重み付けの結果を記憶する。
これにより、記憶部260が保持するメモリのサイズが比較的小さくて済む。
第五実施形態は、第二実施形態~第四実施形態の何れにも適用可能である。なお、第五実施形態を第四実施形態に適用する場合、中間層122の状態を元の状態に戻すための元の状態を、記憶部260が記憶しておく。
【0122】
上述した機械学習装置100または機械学習装置200をソフトウェア的に効率的にすることができる。さらに、機械学習装置100または機械学習装置200をハードウェア的に効率的に演算することができる。この場合のハードウェアとして、例えば、GPUやFPGA、ASICSなどの電子回路によるハードウェアのみでなく、レーザーや、スピントロニクスなどを用いたハードウェアを用いるようにしてもよい。またそれらのハードウェアを組み合わせて用いることも可能である。
【0123】
<第六実施形態>
第六実施形態では、実施形態に係る機械学習装置の構成の例について説明する。
図13は、実施形態に係る機械学習装置の構成例を示す図である。図13に示す機械学習装置300は、入力部301と、中間演算部302と、重み付け部303と、出力部304と、学習部305とを備える。
【0124】
かかる構成にて、入力部301は、入力データを取得する。中間演算部302は、入力部301が取得する入力データに対して複数回演算を行う。例えば、中間演算部302は、複数回の演算を逐次的に行う。重み付け部303は、複数の時刻の各々における中間演算部の出力に対して重み付けを行う。出力部304は、重み付け部303による重み付けの結果に基づく出力データを出力する。学習部305は、重み付け部303による重み付けの重みの学習を行う。
【0125】
機械学習装置300によれば、複数のタイミングの各々における中間演算部302の状態を用いて出力部304からの出力を計算することができ、出力結合数を中間演算部302の次元数よりも多くすることができる。機械学習装置300によれば、この点で、モデルのサイズ(特に、中間演算部302のノード数)を大きくする必要なしに、比較的多数の出力結合数を用いて比較的高精度に演算を行うことができる。
【0126】
<第七実施形態>
第七実施形態では、実施形態に係る情報処理方法の例について説明する。
図14は、実施形態に係る情報処理方法における処理手順の例を示す図である。例えば、図13の機械学習装置300が図14の処理を行う。
図14の処理は、入力データを取得する工程(ステップS101)と、入力データに対して複数回演算を、例えば逐次的に行う工程(ステップS102)と、複数の時刻の各々における演算結果に対して重み付けを行う工程(ステップS103)と、重み付けの結果に基づく出力データを出力する工程(ステップS104)と、重み付けの重みの学習を行う工程(ステップS105)とを含む。
【0127】
図14の情報処理方法によれば、ステップS102での複数の時刻の各々における演算結果を用いて、ステップS104における出力を計算することができる。図14の情報処理方法によれば、モデルのサイズを大きくする必要なしに、比較的多数のデータを用いて比較的高精度に出力を計算することができる。
【0128】
図15は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図15に示す構成で、コンピュータ700は、CPU(Central Processing Unit)710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0129】
上記の機械学習装置100、200、または、300のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。
【0130】
機械学習装置100がコンピュータ700に実装される場合、中間演算部120と、重み付け部130と、中間層データ複写部150と、学習部170との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
入力層110によるデータの取得は、インタフェース740が、例えば通信機能を備え、CPU710の制御に従って他の装置からデータを受信することで実行される。出力層140によるデータの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。また、CPU710は、記憶部160に対応する記憶領域を主記憶装置720に確保する。
【0131】
機械学習装置200がコンピュータ700に実装される場合、中間演算部120と、重み付け部130と、重み付け結果複写部250と、学習部170との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
入力層110によるデータの取得は、インタフェース740が、例えば通信機能を備え、CPU710の制御に従って他の装置からデータを受信することで実行される。出力層140によるデータの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。また、CPU710は、記憶部260に対応する記憶領域を主記憶装置720に確保する。
【0132】
機械学習装置300がコンピュータ700に実装される場合、中間演算部302と、重み付け部303と、学習部305との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
入力部301によるデータの取得は、インタフェース740が、例えば通信機能を備え、CPU710の制御に従って他の装置からデータを受信することで実行される。出力部304によるデータの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。また、CPU710は、記憶部260に対応する記憶領域を主記憶装置720に確保する。
【0133】
なお、機械学習装置100、200、および、300の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0134】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0135】
この出願は、2019年11月14日に出願された日本国特願2019-206438を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0136】
本発明は、機械学習装置、情報処理方法および記録媒体に適用してもよい。
【符号の説明】
【0137】
100、200、300 機械学習装置
110 入力層
120、302 中間演算部(中間演算手段)
121 第一結合
122 中間層
130、303 重み付け部(重み付け手段)
131 第二結合
140 出力層
150 中間層データ複写部(中間層データ複写手段)
160、260 記憶部(記憶手段)
161 中間層データ記憶部(中間層データ記憶手段)
170、305 学習部(学習手段)
200 機械学習装置
250 重み付け結果複写部(重み付け結果複写手段)
261 重み付け結果記憶部(重み付け結果記憶手段)
301 入力部(入力手段)
304 出力部(出力手段)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15