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

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

▶ 公立大学法人会津大学の特許一覧

特許7230324ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置
<>
  • 特許-ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置 図1
  • 特許-ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置 図2
  • 特許-ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置 図3
  • 特許-ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-20
(45)【発行日】2023-03-01
(54)【発明の名称】ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置
(51)【国際特許分類】
   G06N 3/08 20230101AFI20230221BHJP
【FI】
G06N3/08
【請求項の数】 11
(21)【出願番号】P 2018230323
(22)【出願日】2018-12-07
(65)【公開番号】P2020091813
(43)【公開日】2020-06-11
【審査請求日】2021-10-26
(73)【特許権者】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】趙 強福
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2017-037392(JP,A)
【文献】国際公開第2016/157499(WO,A1)
【文献】特開2018-128942(JP,A)
【文献】特開2015-095215(JP,A)
【文献】佐々木駿也ほか,動的多層化ニューラルネットワーク,電子情報通信学会論文誌D 早期公開論文,日本,電子情報通信学会,2018年11月09日,2018JDP7045
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
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でなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項2】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価が所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項1に記載のコンピュータプログラム。
【請求項3】
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でなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項4】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項3に記載のコンピュータプログラム。
【請求項5】
k(k=0,1,…,K)階層の中間層(k=0である0番目の中間層に対応する写像は単位写像)を有するニューラルネットワークの学習方法をコンピュータ装置に実行させるコンピュータプログラムにおいて、前記コンピュータ装置に、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを実行させることを特徴とするコンピュータプログラム。
【請求項6】
前記第一のステップにおいて、前記0番目の中間層の出力に基づいて、0番目の出力層の写像を生成し、当該0番目の出力層の出力を評価し、前記0番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了し、前記0番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、前記第二のステップに進むことを特徴とする請求項5に記載のコンピュータプログラム。
【請求項7】
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でなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項8】
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でなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項9】
k(k=0,1,…,K)階層の中間層(k=0である0番目の中間層に対応する写像は単位写像)を有するニューラルネットワークの学習方法において、
あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合における前記データ信号を前記0番目の中間層の出力として求める第一のステップと、
k>0において、k番目の中間層の写像及びk番目の出力層の写像を、0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、
前記k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、
前記k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、
前記k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満で
ある場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ前記第二のステップ乃至前記第四のステップを繰り返す第五のステップとを備えることを特徴とする学習方法。
【請求項10】
請求項1乃至6のいずれか記載のコンピュータプログラムを実行する前記コンピュータ装置。
【請求項11】
前記コンピュータ装置は、ネットワーク上のサーバ装置と、前記サーバ装置と通信回線を通じて接続する端末装置とを備え、前記k階層の中間層は前記サーバ装置に実装され、前記出力層は前記端末装置に実装されることを特徴とする請求項10に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークの学習方法および当該学習方法をコンピュータ装置に実行させるためのコンピュータプログラムに関する。
【背景技術】
【0002】
多数の階層を持つ階層型ニューラルネットワーク(MLP: multilayer perceptron)に基づく機械学習は、深層学習(deep learning)という。深層学習は、最近のAIブームを引き起こした主なトリガーであるともいえる。実際、一つの中間層(隠れ層)しかないニューラルネットワーク(SHL-MLP: single hidden layer MLP)に比べて、複数の中間層(隠れ層)を有するニューラルネットワーク(DMLP: deep MLP)のほうが、より効率的且つ効果的である。すなわち、与えられた問題に対して、DMLPは、近似精度がより高く、必要とされるニューロンの総数がより少なくなることが知られている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、複数の中間層(隠れ層)を有するニューラルネットワーク(DMLP)を使用する際に、中間層(隠れ層)の階層数を決める有効な方法がないため、通常、階層数を十分大きい数に固定する。また、一階層ずつ成長させる段階的学習方法(layer-wise training)も提案されているが(非特許文献2)、同様に階層数は十分大きい数にあらかじめ決められている。その結果、DMLPの設計(学習)コストが非常に高くなる。ここでコストは、主に二つの側面がある。一つは、学習データを集める学習コストで、もう一つは、学習に必要とされる計算リソース(メモリ、計算時間など)の量(決断コスト)である。また、このように得られたDMLPを実際に使用するときにも、余計な計算をする必要があるので、決断効率が悪くなる。
【0005】
そこで、本発明の目的は、中間層の階層数を効率的に決定することができるニューラルネットワークの学習方法及びそのコンピュータプログラム及びコンピュータ装置を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するための本発明におけるニューラルネットワークの第一の学習方法は、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でなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【0007】
本発明におけるニューラルネットワークの第二の学習方法は、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でなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【0008】
本発明におけるニューラルネットワークの第三の学習方法は、k(k=0,1,…,K)階層の中間層(k=0である0番目の中間層に対応する写像は単位写像)を有するニューラルネットワークの学習方法において、あらかじめ用意したデータ信号と教師信号の組からなる学習データの集合におけるデータ信号を0番目の中間層の出力として求める第一のステップと、k>0において、k番目の中間層の写像及びk番目の出力層の写像を、0乃至k-1番目の中間層の出力に基づいて生成して学習を行う第二のステップと、k番目の中間層の出力を生成し、当該k番目の出力層の出力をクラスごとに評価する第三のステップと、k番目の出力層の出力の評価がすべてのクラスについて所定レベル以上である場合、学習を終了する第四のステップと、k番目の出力層の出力の評価が少なくとも一つのクラスについて所定レベル未満である場合、評価が当該所定レベル未満のクラスの出力のみを残し、k=k+1とし、k>Kであれば学習を終了し、k>Kでなければ第二のステップ乃至第四のステップを繰り返す第五のステップとを備えることを特徴とする。
【0009】
また、上記第一乃至第三の学習方法をコンピュータ装置に実行させるためのコンピュータプログラム及びそのコンピュータ装置が提供される。コンピュータ装置は、サーバ装置、パーソナルコンピュータや携帯デバイスのような端末装置であり、さらに、サーバ装置及び端末装置を複数台接続した構成である。
【発明の効果】
【0010】
本発明の学習方法において、複数の中間層を有するニューラルネットワーク(DMLP: deep MLP)は一階層ずつ成長し、与えられた問題を解決できる段階で成長を早期に終了することができる。これにより、必要な数だけの階層数を設定することができ、コストの効率化を図ることができる。また、パターン分類問題を解決する場合、各クラスの難易度は通常異なるので、本発明ではクラス別に階層数を決めることができる。これによって、学習コストも決断コストも低減することができる。さらに、高い階層を生成する際に、それより低いすべての層の情報を使用することによって、より早い段階でよいモデルを求めることができ、早期に学習を終了することができる。
【図面の簡単な説明】
【0011】
図1】本発明の実施の形態における第一の学習方法によるニューラルネットワークの学習モデルを示す図である。
図2】本発明の実施の形態における第二の学習方法によるニューラルネットワークの学習モデルを示す図である。
図3】本発明の実施の形態における第三の学習方法によるニューラルネットワークの学習モデルを示す図である。
図4】第三の学習方法によるニューラルネットワークの学習モデルの実装例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【0013】
図1は、本発明の実施の形態における第一の学習方法によるニューラルネットワークの学習モデルを示す図である。図1にある記号は、以下のように定義される。x(k) ∈ RNkはk(k=0,1,…,K)番目の中間層の出力である。ここで、ξkはk番目の中間層に対応する「写像」(あるいは変換、関数)である。ただし、ξ0は単位写像で、x(0)は元の学習データそのものである(すなわち、0番目の中間層は通常のニューロンの層ではなく、バッファである。0番目の中間層を入力層とみなすこともできる)。
【0014】
Nkはk番目中間層のニューロン数で、N0 = Nfは元の「特徴空間」の次元である。また、φkはk(k=0,1,…,K)番目の出力層に対応する写像で、y(k) ∈ RNcはその出力である。Ncはクラス数である。
【0015】
図1のモデルの設計(学習)方法について説明する。まず、学習データの集合Ωは以下のように与えられたとする。
【0016】
Ω = {<xi (0), di>, i = 1,2, … ,Nd}
ここで、xi (0)∈ RNkはi番目のデータ(特徴ベクトル)で、di ∈ RNcはそのラベル(教師信号)である。また、Nfはデータの次元、Ndは学習データの数、Ncはクラスの数である。
【0017】
本発明の実施の形態においては、バターン分類問題を例とし、ラベル(教師信号)はNc個の値を取る一次元の整数であってもよいし、Nc個の2つの値({-1,1}あるいは{0,1})を取る2進数であってもよい。本実施の形態では、後者である2進数を採用する。したがって、図1のモデルの各出力層のニューロン数はNcとなる。上述の定義において、図1に示す第一の学習方法の各工程(Step)は次のようになる。
(Step 1)
k=0; Ωk= Ω; Ξ = {}; Φ = {}とする。
ここで、Ξは中間層の集合, Φは出力層の集合、 {}は空集合、Ωkはk番目の中間層の出力x(k)で構成されるデータベースである。
(Step 2)
Ω0に基づいて、φ0を生成(学習)し、Φに追加する。
(Step 3)
φkの性能を評価する。評価方法については次の段落で説明する。
φkの性能が所定レベルを超えている場合は学習が成功で終了し、ΞとΦを出力する。
【0018】
具体的には、φ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)
Ωkkk-1)を求め、(Step 3)に戻る。
【0019】
すなわち、k>Kとならない間において、(Step 3)乃至(Step 7)が繰り返されることで、φkの性能が所定レベルを超えるまで、中間層が一階層ずつ順次生成され、φkの性能が所定レベルを超えたところで中間層の生成は停止され、学習が終了する。
【0020】
Ωkkk-1)は、k番目の中間層を利用してすべての学習データをξkによって新しい特徴空間に写像することを意味する。なお、写像によってデータ自体は変わるが、そのラベル(教師信号)は変わらない。
【0021】
上述した第一の学習方法では、一階層ずつ中間層を増やしていき、(Step 3)における一階層ごとの途中の評価結果をもとに、必要な数だけの階層数を設定することができ、学習を早期に終了できる。また、(Step 3)において、性能評価の結果として階層を増やしていくごとにΞとΦを出力するが、すべての出力層(一階層追加されるごとに生成される出力層すべて)ではなく、最後の出力層(学習が成功して終了した場合に生成された最後の出力層)だけを結果として出力してもよい。
【0022】
一方、(Step 3)における性能評価は、学習を早期に終了させるために実施される。評価を行うためには、通常、学習データの一部を検証集合(validation set)として保留し、それをベースに出力層の性能を評価する。単純に考えると、もし大部分(例えば、99%)の検証用データに対して、出力が教師信号と同じであれば、将来の新しい観測データに対しても高い確率で正解が得られると期待できる。しかし、認識率あるいは誤差率だけで評価すると、得られたシステムの汎化能力が高くならない場合がありうる。これは周知の不良設定問題である。通常、評価関数の中に、適切な正則化項(regularization factor)を取り入れることにより、この問題を解決することができる。実際、同じ程度の近似精度を達成するために必要とされるシステムの規模(パラメータの数)が小さければ小さいほどシステムの汎化能力がよい。学習の早期終了は、事実上システムの規模を抑える効果があるので、システムの汎化能力を向上することも可能である。
【0023】
図2は、本発明の実施の形態における第二の学習方法の学習モデルを示す図である。図1に示した第一の学習方法と比較して、φ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で正確に認識できるクラスのインデックスである。図2における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)
Ωkkk-1)を求め、(Step 3)に戻る。
【0024】
第二の学習方法は、上述の第一の学習方法と同様に、中間層を一階層ずつ増やしていきながら学習を行い、さらに、クラスの難易度が異なることを利用し、クラスごとに学習を早期終了することができる。学習済みのモデルを使って新しいパターンを認識する際に、そのパターンが認識しやすいクラスに属するものであれば、より早期に結果を出すことができる。
【0025】
図3は、本発明の実施の形態における第三の学習方法の学習モデルを示す図である。第三の学習方法は、上記の第二の学習方法と比較して、各階層がそれより下のすべての階層で検出した特徴を利用するようにしたものである。これによって、有効な情報をより効率に使用でき、より早い段階で学習あるいは決断を終了することができる。
【0026】
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で正確に認識できるクラスのインデックスである。図2における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=0 k Njとなる。
【0027】
また、DMLPの実装は、通常、計算コストが高い。上述の学習方法を用いることにより、中間層の層数を必要数に絞ることができるが、その場合でも、比較的に難しい問題を解くためには、多数の階層数を有する深いDMLPを使用する場合がある。このような場合は、1台のコンピュータ装置で中間層と出力層のすべてを実装するのではなく、中間層をネットワーク上のサーバ装置、例えばクラウドサーバに実装し、出力層を端末装置、例えばローカルサーバあるいは携帯端末で実装することができる。具体的には、
・第一の学習方法を利用する場合、クラウドサーバに中間層を実装し、携帯端末に最後の出力層を実装すればよい。
・第二の学習方法を利用する場合、クラウドサーバに中間層を実装し、携帯端末に各階層の出力層が実装される。第二の学習方法では、すべての階層の出力層を実装する必要があるが、出力総数はNcであり、端末装置(携帯端末)での計算量は著しく増えない。
・第三の学習方法を利用する場合は、同様に、クラウドサーバに中間層を実装し、携帯デバイスに各階層の出力層が実装される。出力層をニューラルネットワークで実装するより、決定木(DT: Decision Tree)で実装することもできる。これによって使用する特徴の数を減らし、コストを抑えることができる。ここでコストとは、2つの意味を持つ。一つは、クラウドサーバからもらうデータの量(通信量或は通信料)で、もうひとつは決断するための計算量である。
【0028】
図4は、第三の学習方法による学習モデルの実装例を示す図である。クラウドサーバに中間層を実装し、携帯端末に最後の出力層が実装される。
【0029】
中間層をクラウドサーバに実装することにより、ユーザの意図はサーバに不可視となり、プライバシーの保護が可能となる。さらに、ξ0を適切な乱数行列で実装することで、生のユーザデータを守りつつ、正しい決断ができる。
図1
図2
図3
図4