(57)【要約】      （修正有）【課題】ニューラルネットワークの学習方法を提供する。【解決手段】K階層の中間層を有するニューラルネットワークの学習方法において、あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合におけるデータ信号を0番目の中間層の出力として求める第一のステップと、k番目の中間層の写像及びｋ番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、k番目の中間層の出力を生成し、当該k番目の出力層の出力を評価する第三のステップと、ｋ番目の出力層の出力の評価が所定レベル以上である場合、学習を終了する第四のステップと、ｋ番目の出力層の出力の評価が所定レベル未満である場合、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備える。【選択図】なし【特許請求の範囲】
【請求項１】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法をコンピュータ装置に実行させるコンピュータプログラムにおいて、前記コンピュータ装置に、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力を評価する第三のステップと、
前記k番目の出力層の出力の評価が所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が所定レベル未満である場合、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項２】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価が所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項１に記載のコンピュータプログラム。
【請求項３】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法をコンピュータ装置に実行させるコンピュータプログラムにおいて、前記コンピュータ装置に、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項４】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項３に記載のコンピュータプログラム。
【請求項５】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法をコンピュータ装置に実行させるコンピュータプログラムにおいて、前記コンピュータ装置に、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成し、k番目の出力層の写像を0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項６】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項５に記載のコンピュータプログラム。
【請求項７】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力を評価する第三のステップと、
前記k番目の出力層の出力の評価が所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が所定レベル未満である場合、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項８】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項９】
k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記
データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成し、k番目の出力層の写像を0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項１０】
請求項１乃至６のいずれか記載のコンピュータプログラムを実行する前記コンピュータ装置。
【請求項１１】
前記コンピュータ装置は、ネットワーク上のサーバ装置と、前記サーバ装置と通信回線を通じて接続する端末装置とを備え、前記k階層の中間層は前記サーバ装置に実装され、前記出力層は前記端末装置に実装されることを特徴とする請求項１０に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークの学習方法および当該学習方法をコンピュータ装置に実行させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
多数の階層を持つ階層型ニューラルネットワーク(MLP: multilayer perceptron)に基づく機械学習は、深層学習(deep learning)という。深層学習は、最近のAIブームを引き起こした主なトリガーであるともいえる。実際、一つの中間層（隠れ層）しかないニューラルネットワーク（SHL-MLP: single hidden layer MLP）に比べて、複数の中間層（隠れ層）を有するニューラルネットワーク（DMLP: deep MLP）のほうが、より効率的且つ効果的である。すなわち、与えられた問題に対して、DMLPは、近似精度がより高く、必要とされるニューロンの総数がより少なくなることが知られている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Stephan Trenn, “Multilayer Perceptrons: Approximation Order and Necessary Number of Hidden Units,” IEEE Transactions on Neural Networks, Vol. 19, No. 5, pp. 836 - 844, 2008.
【非特許文献２】Y. Bengio, P. Lamblin, D. Popovici, H. Larochelle, “Greedy layer-wisetraining of deep networks,” J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19, pp. 153-160, MIT Press, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数の中間層（隠れ層）を有するニューラルネットワーク（DMLP）を使用する際に、中間層（隠れ層）の階層数を決める有効な方法がないため、通常、階層数を十分大きい数に固定する。また、一階層ずつ成長させる段階的学習方法(layer-wise training)も提案されているが（非特許文献２）、同様に階層数は十分大きい数にあらかじめ決められている。その結果、DMLPの設計（学習）コストが非常に高くなる。ここでコストは、主に二つの側面がある。一つは、学習データを集める学習コストで、もう一つは、学習に必要とされる計算リソース（メモリ、計算時間など）の量（決断コスト）である。また、このように得られたDMLPを実際に使用するときにも、余計な計算をする必要があるので、決断効率が悪くなる。
【０００５】
そこで、本発明の目的は、中間層の階層数を効率的に決定することができるニューラルネットワークの学習方法及びそのコンピュータプログラム及びコンピュータ装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明におけるニューラルネットワークの第一の学習方法は、k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合におけるデータ信号を0番目の中間層の出力として求める第一のステップと、k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、k番目の中間層の出力を生成し、当該k番目の出力層の出力を評価する第三のステップと、k番目の出力層の出力の評価が所定レベル以上である場合、学習を終了する第四のステップと、k番目の出力層の出力の評価が所定レベル未満である場合、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【０００７】
本発明におけるニューラルネットワークの第二の学習方法は、k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合におけるデータ信号を0番目の中間層の出力として求める第一のステップと、k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【０００８】
本発明におけるニューラルネットワークの第三の学習方法は、k(k=0,1,…,K)階層の中間層（k=0である0番目の中間層に対応する写像は単位写像）を有するニューラルネットワークの学習方法において、あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合におけるデータ信号を0番目の中間層の出力として求める第一のステップと、k>0において、k番目の中間層の写像及びk番目の出力層の写像を、k-1番目の中間層の出力に基づいて生成し、k番目の出力層の写像を0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【０００９】
また、上記第一乃至第三の学習方法をコンピュータ装置に実行させるためのコンピュータプログラム及びそのコンピュータ装置が提供される。コンピュータ装置は、サーバ装置、パーソナルコンピュータや携帯デバイスのような端末装置であり、さらに、サーバ装置及び端末装置を複数台接続した構成である。
【発明の効果】
【００１０】
本発明の学習方法において、複数の中間層を有するニューラルネットワーク（DMLP: deep MLP）は一階層ずつ成長し、与えられた問題を解決できる段階で成長を早期に終了することができる。これにより、必要な数だけの階層数を設定することができ、コストの効率化を図ることができる。また、パターン分類問題を解決する場合、各クラスの難易度は通常異なるので、本発明ではクラス別に階層数を決めることができる。これによって、学習コストも決断コストも低減することができる。さらに、高い階層を生成する際に、それより低いすべての層の情報を使用することによって、より早い段階でよいモデルを求めることができ、早期に学習を終了することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における第一の学習方法によるニューラルネットワークの学習モデルを示す図である。
【図２】本発明の実施の形態における第二の学習方法によるニューラルネットワークの学習モデルを示す図である。
【図３】本発明の実施の形態における第三の学習方法によるニューラルネットワークの学習モデルを示す図である。
【図４】第三の学習方法によるニューラルネットワークの学習モデルの実装例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【００１３】
図１は、本発明の実施の形態における第一の学習方法によるニューラルネットワークの学習モデルを示す図である。図１にある記号は、以下のように定義される。x(k) ∈ RNkはk(k=0,1,…,K)番目の中間層の出力である。ここで、ξkはk番目の中間層に対応する「写像」（あるいは変換、関数）である。ただし、ξ0は単位写像で、x(0)は元の学習データそのものである（すなわち、0番目の中間層は通常のニューロンの層ではなく、バッファである。0番目の中間層を入力層とみなすこともできる）。
【００１４】
Nkはk番目中間層のニューロン数で、N0 = Nfは元の「特徴空間」の次元である。また、φkはk(k=0,1,…,K)番目の出力層に対応する写像で、y(k) ∈ RNcはその出力である。Ncはクラス数である。
【００１５】
図１のモデルの設計（学習）方法について説明する。まず、学習データの集合Ωは以下のように与えられたとする。
【００１６】
Ω = {<xi(0), di>, i = 1,2, … ,Nd}
ここで、xi(0)∈ RNkはi番目のデータ（特徴ベクトル）で、di ∈ RNcはそのラベル（教師信号）である。また、Nfはデータの次元、Ndは学習データの数、Ncはクラスの数である。
【００１７】
本発明の実施の形態においては、バターン分類問題を例とし、ラベル（教師信号）はNc個の値を取る一次元の整数であってもよいし、Nc個の２つの値({-1,1}あるいは{0,1})を取る２進数であってもよい。本実施の形態では、後者である２進数を採用する。したがって、図１のモデルの各出力層のニューロン数はNcとなる。上述の定義において、図１に示す第一の学習方法の各工程（Step)は次のようになる。
（Step 1）
k=0; Ωk= Ω; Ξ = {}; Φ = {}とする。
ここで、Ξは中間層の集合, Φは出力層の集合、 {}は空集合、Ωkはk番目の中間層の出力x(k)で構成されるデータベースである。
（Step 2）
Ω0に基づいて、φ0を生成（学習）し、Φに追加する。
（Step 3）
φkの性能を評価する。評価方法については次の段落で説明する。
φkの性能が所定レベルを超えている場合は学習が成功で終了し、ΞとΦを出力する。
【００１８】
具体的には、φkの性能は認識率と信頼度で評価する。通常、学習データそのものではなく、予め用意した検証データの集合(validation set)で性能を評価する。認識率は、φkの出力と教師信号との差をもとに求められる。また、信頼度はある入力データが与えられた場合ある判断を下す事後確率で求められる。認識率と信頼度が所定の閾値以上になったら、φkの性能が所定レベルを超えていると判断される。φkの性能が所定レベルを超えていない場合は、次の（Step 4）に進む。
（Step 4）
k=k+1とする。すなわち、中間層を一層ずつ増やしていく。
（Step 5）
k>Kならば、学習が終了する（この場合、学習は失敗する）。k>Kでなければ、次の（Step
6）に進む。
（Step 6）
Ωk-1に基づいてξkとφkとを生成し、Ξ = Ξ + {ξk}; Φ = Φ + {φk}とする。ξkとφkを同時に生成するためには、既知の3層MLPの学習方法を使用する（例えば、良く知られている誤差逆伝播法など）。
（Step 7）
Ωk =ξk(Ωk-1)を求め、（Step 3）に戻る。
【００１９】
すなわち、k>Kとならない間において、（Step 3）乃至（Step 7）が繰り返されることで、φkの性能が所定レベルを超えるまで、中間層が一階層ずつ順次生成され、φkの性能が所定レベルを超えたところで中間層の生成は停止され、学習が終了する。
【００２０】
Ωk =ξk(Ωk-1)は、k番目の中間層を利用してすべての学習データをξkによって新しい特徴空間に写像することを意味する。なお、写像によってデータ自体は変わるが、そのラベル（教師信号）は変わらない。
【００２１】
上述した第一の学習方法では、一階層ずつ中間層を増やしていき、（Step 3）における一階層ごとの途中の評価結果をもとに、必要な数だけの階層数を設定することができ、学習を早期に終了できる。また、（Step 3）において、性能評価の結果として階層を増やしていくごとにΞとΦを出力するが、すべての出力層（一階層追加されるごとに生成される出力層すべて）ではなく、最後の出力層（学習が成功して終了した場合に生成された最後の出力層）だけを結果として出力してもよい。
【００２２】
一方、（Step 3）における性能評価は、学習を早期に終了させるために実施される。評価を行うためには、通常、学習データの一部を検証集合(validation set)として保留し、それをベースに出力層の性能を評価する。単純に考えると、もし大部分（例えば、99%）の検証用データに対して、出力が教師信号と同じであれば、将来の新しい観測データに対しても高い確率で正解が得られると期待できる。しかし、認識率あるいは誤差率だけで評価すると、得られたシステムの汎化能力が高くならない場合がありうる。これは周知の不良設定問題である。通常、評価関数の中に、適切な正則化項(regularization factor)を取り入れることにより、この問題を解決することができる。実際、同じ程度の近似精度を達成するために必要とされるシステムの規模（パラメータの数）が小さければ小さいほどシステムの汎化能力がよい。学習の早期終了は、事実上システムの規模を抑える効果があるので、システムの汎化能力を向上することも可能である。
【００２３】
図２は、本発明の実施の形態における第二の学習方法の学習モデルを示す図である。図１に示した第一の学習方法と比較して、φkの出力y(k)の次元だけが異なる。ここで、y(k)の次元Mk ≦ Ncは、φkで十分高い精度で認識できるクラスの数で、φkの出力は十分高い精度で認識できるクラスのインデックスに対応する。学習の途中で、あるクラスの学習（あるいは検証）データが十分高い精度で認識できれば、そのクラスのデータは、それ以降の学習に使用する必要がない。すべてのクラスが高い精度で認識できた時点で、学習を終了すればよい。具体的には、第二の学習方法は以下のようになる。
（Step 1）
k=0; A = {1,2, … , Nc}; Ωk = Ω; Ξ = {}; Φ = {}とする。
ここで、Aは正確に認識されていないクラスのインデックスの集合である。
（Step 2）
Ω0をベースに、φ0を生成し、Φ = Φ + {φ0}とする。
（Step 3）
φkの性能を評価する。
Bk = {};
Aからi を取り出し、クラスiの認識精度が十分高ければ、Bk = Bk + {i};
A = {}になった場合、学習を終了し、ΞとΦを出力する。
ここで、Bkは、φkで正確に認識できるクラスのインデックスである。図２におけるMkは、Bkのサイズ（元の数）である。
（Step 4）
k=k+1とする。
（Step 5）
k>K ならば、学習が終了する。（この場合、学習は失敗する）。k>Kでなければ、次の（Step 6）に進む。
（Step 6）
Ωk-1に基づいてξkとφkを生成し、Ξ = Ξ + {ξk}; Φ = Φ + {φk}とする。
（Step 7）
Ωk =ξk(Ωk-1)を求め、（Step 3）に戻る。
【００２４】
第二の学習方法は、上述の第一の学習方法と同様に、中間層を一階層ずつ増やしていきながら学習を行い、さらに、クラスの難易度が異なることを利用し、クラスごとに学習を早期終了することができる。学習済みのモデルを使って新しいパターンを認識する際に、そのパターンが認識しやすいクラスに属するものであれば、より早期に結果を出すことができる。
【００２５】
図３は、本発明の実施の形態における第三の学習方法の学習モデルを示す図である。第三の学習方法は、上記の第二の学習方法と比較して、各階層がそれより下のすべての階層で検出した特徴を利用するようにしたものである。これによって、有効な情報をより効率に使用でき、より早い段階で学習あるいは決断を終了することができる。
【００２６】
DMLPの中間層ニューロンは、最小の察知エージェントであり、元のデータに含まれていない「特徴」を検出する機能を持つ。しかし、従来のDMLPはパイプラインの形を取るため、最終判断は最後の中間層のニューロンで抽出された特徴だけを利用して行う。第三の学習方法は、これを改善するためのものである。具体的には、第三の学習方法は、以下のようになる。
（Step 1）
k=0; A = {1,2, … , Nc}; Ωk = Ω; Ξ = {}; Φ = {}とする。
（Step 2）
Ω0に基づいて、φ0を生成し、Φ = Φ + {φ0}とする。
（Step 3）
φkの性能を評価する。
Bk = {};
Aからiを取り出し、クラスiの認識精度が十分高ければ、Bk = Bk + {i};
A = {}になった場合、学習を終了し、ΞとΦを出力する。
ここで、Bkは、φkで正確に認識できるクラスのインデックスである。図２におけるMkは、Bkのサイズ（元の数）である。
（Step 4）
k=k+1とする。
（Step 5）
k>K ならば、学習が終了する。（この場合、学習は失敗する）。k>Kでなければ、次の（Step 6）に進む。
（Step 6）
Ωk-1に基づいてξkとφkを生成し、Ξ = Ξ + {ξk}; Φ = Φ + {φk}とする。
（Step 7）
Ωkを求め、（Step 3）に戻る。
ここで、Ωkは、以下のように求める。
Ω0 = Ω = {<xi(0),di>, i = 1,2, … ,Nd}
k>0に対して、xi(k)= xi(k-1) + ξk(xi(k-1)); Ωk = {<xi(k),di>,i = 1,2, … ,Nd}
ただし、演算子+は、二つのベクトルの連結(concatenation)を表す。
例えば、x = (x1 x2)T,y = (y1 y2)Tとして、x + y = (x1 x2 y1 y2)となる。以上の方法で各層の学習データを求めると、k番目のデータの次元はnk = Σj=0k Njとなる。
【００２７】
また、DMLPの実装は、通常、計算コストが高い。上述の学習方法を用いることにより、中間層の層数を必要数に絞ることができるが、その場合でも、比較的に難しい問題を解くためには、多数の階層数を有する深いDMLPを使用する場合がある。このような場合は、１台のコンピュータ装置で中間層と出力層のすべてを実装するのではなく、中間層をネットワーク上のサーバ装置、例えばクラウドサーバに実装し、出力層を端末装置、例えばローカルサーバあるいは携帯端末で実装することができる。具体的には、
・第一の学習方法を利用する場合、クラウドサーバに中間層を実装し、携帯端末に最後の出力層を実装すればよい。
・第二の学習方法を利用する場合、クラウドサーバに中間層を実装し、携帯端末に各階層の出力層が実装される。第二の学習方法では、すべての階層の出力層を実装する必要があるが、出力総数はNcであり、端末装置（携帯端末）での計算量は著しく増えない。
・第三の学習方法を利用する場合は、同様に、クラウドサーバに中間層を実装し、携帯デバイスに各階層の出力層が実装される。出力層をニューラルネットワークで実装するより、決定木（DT: Decision Tree）で実装することもできる。これによって使用する特徴の数を減らし、コストを抑えることができる。ここでコストとは、２つの意味を持つ。一つは、クラウドサーバからもらうデータの量（通信量或は通信料）で、もうひとつは決断するための計算量である。
【００２８】
図４は、第三の学習方法による学習モデルの実装例を示す図である。クラウドサーバに中間層を実装し、携帯端末に最後の出力層が実装される。
【００２９】
中間層をクラウドサーバに実装することにより、ユーザの意図はサーバに不可視となり、プライバシーの保護が可能となる。さらに、ξ0を適切な乱数行列で実装することで、生のユーザデータを守りつつ、正しい決断ができる。
【図１】
2020091813.tif 000002
【図２】
2020091813.tif 000003
【図３】
2020091813.tif 000004
【図４】
2020091813.tif 000005