(57)【要約】【課題】ディープニューラルネットワークにおいて、順伝播の際にパラメータ及び出力信号を離散化しつつ、学習の精度を高くする。【解決手段】第１の計算部１２１は、パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する。また、第２の計算部１２２は、ステップ関数を近似した連続関数を用いて、ニューラルネットワークの各層について、パラメータに対する出力信号の誤差関数の勾配を計算する。また、更新部１２３は、第２の計算部１２２によって計算された勾配を基にパラメータを更新する。【選択図】図１
2019191899.tif 000002
【特許請求の範囲】
【請求項１】
パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する第１の計算部と、
前記ステップ関数を近似した連続関数を用いて、前記ニューラルネットワークの各層について、前記パラメータに対する前記出力信号の誤差関数の勾配を計算する第２の計算部と、
前記第２の計算部によって計算された勾配を基に前記パラメータを更新する更新部と、
を有することを特徴とする学習装置。
【請求項２】
前記第１の計算部は、前記パラメータの平均偏差を上限とし、前記平均偏差を負にした値を下限とするステップ関数によって離散化を行い、
前記第２の計算部は、前記ステップ関数を、前記パラメータの平均偏差を上限とし、前記平均偏差を負にした値を下限とする連続関数に近似することを特徴とする請求項１に記載の学習装置。
【請求項３】
前記第２の計算部は、前記ステップ関数を、１から−１までを出力値の区間とする連続関数に前記パラメータの平均偏差を掛けた関数に近似することを特徴とする請求項２に記載の学習装置。
【請求項４】
コンピュータによって実行される学習方法であって、
パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する第１の計算工程と、
前記ステップ関数を近似した連続関数を用いて、前記ニューラルネットワークの各層について、前記パラメータに対する前記出力信号の誤差関数の勾配を計算する第２の計算工程と、
前記第２の計算工程によって計算された勾配を基に前記パラメータを更新する更新工程と、
を含むことを特徴とする学習方法。
【請求項５】
コンピュータを、請求項１から３のいずれか１項に記載の学習装置として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
ディープニューラルネットワークは画像や音声認識をはじめ様々な分野で用いられるモデルである。モデルは多層のニューラルネットワークで構成され、ニューラルネットワークは複数のパーセプトロンで構成される。このパーセプトロンは複数の入力信号に対しそれぞれ重みと呼ばれるパラメータと積和することで１つの値を得る。
【０００３】
さらに、パーセプトロンは次の層の入力信号を与えるために、活性化関数と呼ばれる非線形な関数で得られた値を射影し、その信号値を出力する。この計算を入力層から出力層に掛けて順に行い、信号を伝えることで予測値を得ることができる。これが順伝播である。
【０００４】
高い予測性能を得るためには最適な重み値を用意する必要がある。そこで、ディープニューラルネットワークは、重みをパラメータとした最適化問題として解くことができる。具体的には、解きたい問題の誤差関数を最小化するようにモデルを観測データから学習する。この最小化には確率的勾配降下法が用いられる。この確率的勾配降下法は、あるパラメータに対する誤差の勾配（傾き）を求めることで、パラメータがどちらの方向に更新すれば誤差が小さくなるのかが分かる。これが誤差逆伝播である。
【０００５】
従来、ディープニューラルネットワークのパラメータ及び信号の値を、＋１又は−１の符号情報に二値化し、計算機のメモリ消費量を圧縮する手法が知られている（例えば、非特許文献１を参照）。
【０００６】
また、順伝播の際にステップ関数を用いて二値化を行うと、パラメータに対する誤差関数の勾配が０になってしまうため、誤差逆伝播を用いたパラメータの更新を行うことができなくなる場合がある。これに対し、順伝播の際に用いられたステップ関数とは異なる別の関数を用いたものとみなして、誤差逆伝播を行う手法が知られている（例えば、非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】I.  Hubara,  M.  Courbariaux,  D.  Soudry,  R.  El-Yaniv,  and  Y.  Bengio,  Binarized  Neural  Networks,  "Advances  in  Neural  Information  Processing  Systems",  pp.4107-4115,  2016.
【非特許文献２】Y.  Bengio,  N.  Leonard,  and  A.  Courville,  Estimating  or  propagating  gradients  through  stochastic  neurons  for  conditional  computation,  "arXiv  preprint  arXiv:1308.3432",  2013.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の手法には、ディープニューラルネットワークにおいて、順伝播の際にパラメータ及び出力信号を離散化しつつ、学習の精度を高くすることが困難な場合があるという問題がある。
【０００９】
例えば、引用文献２の手法では、順伝播時にはステップ関数が用いられているが、逆伝播の際には、順伝播時に当該ステップ関数とは異なる別の関数を用いたものとみなして勾配の計算を行っているため、パラメータの最適化が適切に行えず、学習の精度を高めることができない場合がある。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明の学習装置は、パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する第１の計算部と、前記ステップ関数を近似した連続関数を用いて、前記ニューラルネットワークの各層について、前記パラメータに対する前記出力信号の誤差関数の勾配を計算する第２の計算部と、前記第２の計算部によって計算された勾配を基に前記パラメータを更新する更新部と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ディープニューラルネットワークにおいて、順伝播の際にパラメータ及び出力信号を離散化しつつ、学習の精度を高くすることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施形態に係る学習装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る学習処理のアルゴリズムを説明するための図である。
【図３】図３は、第１の実施形態に係る学習処理の流れを示すフローチャートである。
【図４】図４は、第１の実施形態に係る順伝播処理の流れを示すフローチャートである。
【図５】図５は、第１の実施形態に係る逆伝播処理の流れを示すフローチャートである。
【図６】図６は、学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願に係る学習装置、学習方法及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１４】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る学習装置の構成について説明する。図１は、第１の実施形態に係る学習装置の構成の一例を示す図である。図１に示すように、学習装置１０は、記憶部１１及び制御部１２を有する。
【００１５】
記憶部１１は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１１は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１１は、学習装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１１は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１１は、学習処理に用いられるパラメータの情報であるパラメータ情報１１１を記憶する。
【００１６】
パラメータ情報１１１には、ニューラルネットワークの各層の重みを決定するためのパラメータ、後述するステップ関数や連続関数のパラメータ、及び学習の際に用いられるハイパーパラメータ等が含まれる。
【００１７】
制御部１２は、学習装置１０全体を制御する。制御部１２は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１２は、第１の計算部１２１、第２の計算部１２２及び更新部１２３を有する。
【００１８】
第１の計算部１２１は、ニューラルネットワークの順伝播部分の計算を行う。第１の計算部１２１は、パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する。また、第１の計算部１２１は、パラメータの平均偏差を上限とし、平均偏差を負にした値を下限とするステップ関数によって離散化を行うことができる。なお、以降の説明では、第１の計算部１２１によって離散化されたパラメータを重みと呼ぶ場合がある。
【００１９】
第２の計算部１２２は、ニューラルネットワークの逆伝播部分の処理を行う。第２の計算部１２２は、ステップ関数を近似した連続関数を用いて、ニューラルネットワークの各層について、パラメータに対する出力信号の誤差関数の勾配を計算する。また、第２の計算部１２２は、ステップ関数を、１から−１までを出力値の区間とする連続関数にパラメータの平均偏差を掛けた関数に近似することができる。さらに、第２の計算部は、ステップ関数を、パラメータの平均偏差を上限とし、平均偏差を負にした値を下限とする連続関数に近似する。
【００２０】
更新部１２３は、第２の計算部１２２によって計算された勾配を基にパラメータを更新する。このように、学習装置１０は、順伝播処理、逆伝播処理及びパラメータの更新処理を行うことによって、ニューラルネットワークの学習を行う。
【００２１】
ここで、順伝播処理、逆伝播処理及びパラメータの更新処理について詳細に説明する。まず、順伝播処理において、第１の計算部１２１は、第（ｌ−１）層から入力された信号ｚ（ｌ−１）に対して、重みとの積和を計算する。その際、第１の計算部１２１は、第ｌ層のパラメータｗ（ｌ）を、ステップ関数ｆ（・）で離散化することで、第ｌ層の重みｂ（ｌ）を計算する。つまり、第１の計算部１２１は、ｂ（ｌ）＝ｆ（ｗ（ｌ））により重みを計算する。また、順伝播処理で用いられるステップ関数は、＋１及び−１のような二値化を行うものであってもよいし、３以上の複数の値を出力値とするものであってもよい。
【００２２】
第１の計算部１２１は、式（１−１）及び式（１−２）により第ｌ層の出力信号ｚ（ｌ）を計算する。
【００２３】
【数１】
2019191899.tif 000003
【００２４】
なお、ｈ（ｌ）は、ニューラルネットワークの内部状態である。また、ｉ及びｊは、それぞれ第ｌ−１層のユニット及び第ｌ層のユニットを識別する値である。つまり、ｂｊｉ（ｌ）は、第ｌ−１層のｉ番目のユニットと第ｌ層のｊ番目のユニットとの間の重みである。また、ｚｊ（ｌ）は、第ｌ層のｊ番目のユニットの出力信号である。
【００２５】
次に、逆伝播処理において、第２の計算部１２２は、式（２−１）及び式（２−２）により、ニューラルネットワークの各層について、パラメータｗ（ｌ）に対する誤差関数Ｅの勾配を計算する。
【００２６】
【数２】
2019191899.tif 000004
【００２７】
このとき、第２の計算部１２２は、順伝播で用いられたステップ関数ｆ（・）を、式（３）のような連続関数に近似した上で勾配を計算する。
【００２８】
【数３】
2019191899.tif 000005
【００２９】
ここで、式（３）の定数ａは、１近傍値をａｒｃｔａｎｈ関数に与えた時のハイパーパラメータである。また、ｍ（ｌ）は、第ｌ層内のパラメータｗ（ｌ）の平均偏差である。なお、平均偏差とは、パラメータに絶対値を取った時の平均値である。また、連続関数は、式（３）のものに限られない。
【００３０】
ここで、非特許文献１に記載されているように、パラメータ等を離散化することで計算機メモリの消費量を抑えることができる。しかしながら、パラメータ等を離散化した場合、本来のパラメータ等を離散化せずに連続値のまま用いた場合と比べて内部状態に差が生じるため、精度の低下が起きてしまう。
【００３１】
そこで、本実施形態の学習装置１０は、式（３）のように、ステップ関数を連続関数に近似することにより、パラメータを離散化した場合の内部状態Σｉ（ｂｊｉ（ｌ）ｚｉ（ｌ−１））と、パラメータを離散化しなかった場合のΣｉ（ｗｊｉ（ｌ）ｚｉ（ｌ−１））との差を小さくすることができる。
【００３２】
また、第１の計算部１２１は、スパース正則化を導入し、平均偏差が０に漸近するように、ステップ関数を式（４）のように設定する。このとき、第１の計算部１２１は、ｂ（ｌ）＝ｇ（ｗ（ｌ））により重みを計算する。
【００３３】
【数４】
2019191899.tif 000006
【００３４】
［第１の実施形態のアルゴリズム］
図２を用いて、学習装置１０によって行われる各処理のアルゴリズムを説明する。図２は、第１の実施形態に係る学習処理のアルゴリズムを説明するための図である。
【００３５】
図２に示すように、学習装置１０には、観測データＸ、正解ベクトルＤ、学習率λ、層の数Ｌ、更新前のパラメータＷｔ、任意の定数ａ（ただし、ａは１近傍かつ１より小さい）が入力され、更新後のパラメータＷｔ＋１が出力される。なお、図２では、ｉは各層を識別する値であるものとする。
【００３６】
まず、第１の計算部１２１は、第１層から第Ｌ層までの出力信号を計算する（１．順伝播部分、１行目−６行目）。ここで、第１の計算部１２１は、第１層の出力信号を観測データＸとする（１行目）。また、第１の計算部１２１は、ステップ関数ｔｗｏ＿ｓｔｅｐ（・）により、各層の更新前のパラメータＷｔ（ｉ）を離散化する（３行目）。
【００３７】
ステップ関数ｔｗｏ＿ｓｔｅｐ（・）は、式（４）のｇ（・）であってよい。また、第１の計算部１２１は、内部状態Ｈ（ｉ）をステップ関数ｓｉｇｎ（・）で離散化した値を出力信号Ｚ（ｉ）とする（５行目）。
【００３８】
次に、第２の計算部１２２は、第Ｌ層から第１層までの誤差関数を計算する（２．逆伝播部分、７行目−１６行目）。ここで、第２の計算部１２２は、第Ｌ層、すなわち最終層の誤差関数を、正解ベクトルＤ及び最終層の出力信号Ｚ（Ｌ）から計算する（７行目）。
【００３９】
そして、第２の計算部１２２は、ステップ関数ｔｗｏ＿ｓｔｅｐ（・）を連続関数に近似して置き換えた上で、各層の∂Ｂ（ｉ）／∂Ｗｔ（ｉ）の計算を行う（１３行目−１４行目）。このとき、連続関数は、式（３）のｆ（・）であってよい。さらに、第２の計算部１２２は、パラメータに対する誤差関数の勾配∇Ｗｔ（ｉ）を計算する（１５行目）。
【００４０】
そして、更新部１２３は、第１層から第Ｌ層までのパラメータを更新する（３．更新部分、１７行目−１９行目）。具体的には、更新部１２３は、更新前のパラメータＷｔ（ｉ）から、更新量λ∇Ｗｔ（ｉ）を引くことで更新後のパラメータＷｔ＋１（ｉ）を計算する。
【００４１】
［第１の実施形態の処理］
図３を用いて、学習装置１０の処理の流れについて説明する。図３は、第１の実施形態に係る学習処理の流れを示すフローチャートである。図３に示すように、まず、学習装置１０は、ステップ関数を用いた順伝播処理（後に、図４を用いて詳述）を行う（ステップＳ１０）。次に、学習装置１０は、ステップ関数を近似した連続関数を用いた逆伝播処理（後に、図５を用いて詳述）を行う（ステップＳ２０）。そして、学習装置１０は、逆伝播処理の結果得られる誤差関数の勾配を基に、パラメータの更新を行う（ステップＳ３０）。
【００４２】
図４を用いて、順伝播処理の流れについて説明する。図４は、第１の実施形態に係る順伝播処理の流れを示すフローチャートである。図４に示すように、まず、第１の計算部１２１は、第１層に観測データを入力する（ステップＳ１０１）。次に、第１の計算部１２１は、ｉに２を代入する（ステップＳ１０２）。
【００４３】
そして、第１の計算部１２１は、ステップ関数を用いて、第ｉ−１層の出力信号を基に第ｉ層の出力信号を計算する（ステップＳ１０３）。ここで、第１の計算部１２１は、ｉを１だけ増加させる（ステップＳ１０４）。
【００４４】
ここで、ｉが層の数より大きい場合（ステップＳ１０５、Ｙｅｓ）、第１の計算部１２１は、順伝播処理を終了する。一方、ｉが層の数より大きくない場合（ステップＳ１０５、Ｎｏ）、第１の計算部１２１は、ステップＳ１０３に戻り処理を繰り返す。
【００４５】
図５を用いて、逆伝播処理の流れについて説明する。図５は、第１の実施形態に係る逆伝播処理の流れを示すフローチャートである。図５に示すように、まず、第２の計算部１２２は、ｉに層の数を代入する（ステップＳ２０１）。
【００４６】
ここで、ｉが層の数である場合（ステップＳ２０２、Ｙｅｓ）、第２の計算部１２２は、正解ベクトルを基に第ｉ層の誤差関数を更新する（ステップＳ２０３）。なお、この場合の第ｉ層は最終層である。一方、ｉが層の数でない場合（ステップＳ２０２、Ｎｏ）、第２の計算部１２２は、更新された第ｉ＋１層の誤差関数を基に第ｉ層の誤差関数を更新する（ステップＳ２０４）。
【００４７】
そして、第２の計算部１２２は、ステップ関数を近似した連続関数を用いて、第ｉ層の誤差関数の勾配を計算する（ステップＳ２０５）。さらに、第２の計算部１２２は、ｉを１だけ減少させる（ステップＳ２０６）。
【００４８】
ここで、ｉが２より小さい場合（ステップＳ２０７、Ｙｅｓ）、第２の計算部１２２は、逆伝播処理を終了する。一方、ｉが２より小さくない場合（ステップＳ２０７、Ｎｏ）、第２の計算部１２２は、ステップＳ２０２に戻り処理を繰り返す。
【００４９】
［第１の実施形態の効果］
本実施形態において、第１の計算部１２１は、パラメータをステップ関数によって離散化させた後、ニューラルネットワークの各層の出力信号を計算する。また、第２の計算部１２２は、ステップ関数を近似した連続関数を用いて、ニューラルネットワークの各層について、パラメータに対する出力信号の誤差関数の勾配を計算する。また、更新部１２３は、第２の計算部１２２によって計算された勾配を基にパラメータを更新する。このように、順伝播で用いられたステップ関数を近似した連続関数に置き換えた上で誤差逆伝播を行うことで、順伝播の際にパラメータ及び出力信号を離散化しつつ、学習の精度を高くすることができる。
【００５０】
第１の計算部１２１は、パラメータの平均偏差を上限とし、平均偏差を負にした値を下限とするステップ関数によって離散化を行うことができる。また、このとき、第２の計算部は、ステップ関数を、パラメータの平均偏差を上限とし、平均偏差を負にした値を下限とする連続関数に近似することができる。これにより、連続関数のスケールを、パラメータの範囲に合わせたものとすることができるようになる。
【００５１】
また、この場合、パラメータの初期値を微小値に設定しておくことで、連続関数を用いる場合と、離散関数を用いる場合と、及びいずれの関数も用いない場合とで、出力信号の差を極力小さくすることができる。なお、いずれの関数も用いない場合とは、パラメータをそのまま重みとして用いる場合である。また、これにより、順伝播時にはｇ（・）を、誤差逆伝播時にはｆ（・）を用いるStraight-through  estimator（非特許文献２を参照）について、最適化への影響を小さくすることができる。
【００５２】
また、このとき、第２の計算部１２２は、ステップ関数を、１から−１までを出力値の区間とする連続関数にパラメータの平均偏差を掛けた関数に近似することができる。これにより、近似関数として有用なｔａｎｈ等を利用して連続関数を設定することができるようになる。
【００５３】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５４】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５５】
［プログラム］
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００５６】
また、学習装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供する学習サーバ装置として実装することもできる。例えば、学習サーバ装置は、更新前のパラメータを入力とし、更新後のパラメータを出力とする学習サービスを提供するサーバ装置として実装される。この場合、学習サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００５７】
図６は、学習プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５８】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５９】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６０】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００６１】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６２】
１０  学習装置
１１  記憶部
１１１  パラメータ情報
１２  制御部
１２１  第１の計算部
１２２  第２の計算部
１２３  更新部
【図１】
2019191899.tif 000007
【図２】
2019191899.tif 000008
【図３】
2019191899.tif 000009
【図４】
2019191899.tif 000010
【図５】
2019191899.tif 000011
【図６】
2019191899.tif 000012