【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、総務省、戦略的情報通信研究開発推進委託事業、産業技術力強化法第19条の適用を受ける特許出願
【文献】
市村匠 ほか,格子構造ニューラルネットワークによる学習法の提案,日本ファジィ学会誌,日本,日本ファジィ学会,2002年02月15日,第14巻, 第1号,pp. 28-42,ISSN 0915-647X
【文献】
林田智弘 ほか,データ分類のためのDeep Belief Networkに対する構造最適化手法の提案,第60回システム制御情報学会 研究発表講演会講演論文集,日本,一般社団法人システム制御情報学会,2016年05月24日
(58)【調査した分野】(Int.Cl.,DB名)
前記第1種類のデータは、複数の画像ブロックからなる画像データであり、前記第2種類のデータは、複数のCSVブロックからなるCSVデータであることを特徴とする請求項1に記載の異種データ深層学習装置。
前記候補ブロック位置変更部は、前記バイアスbに関する学習中振動が最も高い第2種類候補ブロックの位置を、当該所定の第1種類候補ブロックの隣の位置に変更することを特徴とする請求項1〜4のいずれかに記載の異種データ深層学習装置。
前記候補ブロック位置変更部は、前記バイアスbに関する学習中振動が二番目に高い第2種類候補ブロックの位置を、前記第2の距離範囲内の位置に変更することを特徴とする請求項1〜5のいずれかに記載の異種データ深層学習装置。
前記候補ブロック位置変更部は、前記バイアスbに関する学習中振動が二番目に高い第2種類候補ブロックの位置を、前記バイアスbに関する学習中振動が最も高い第2種類候補ブロックの隣の位置に変更することを特徴とする請求項6に記載の異種データ深層学習装置。
前記候補ブロック位置変更部による前記第2種類候補ブロックの位置変更結果に基づいて、前記第2種類ブロックの位置を変更するための位置変更情報を格納したルックアップテーブルを更新するルックアップテーブル更新部をさらに備えることを特徴とする請求項1〜8のいずれかに記載の異種データ深層学習装置。
前記ルックアップテーブルに基づいて学習用の入力データの配置を変更し、前記変更された入力データを学習済みのニューラルネットワークに与え、推論を行う推論部をさらに備えることを特徴とする請求項9に記載の異種データ深層学習装置。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】G.E.Hinton, A Practical Guide to Training Restricted Boltzmann Machines, Neural Networks, Tricks of the Trade, Lecture notes in Computer Science, vol.7700, pp.599-619, 2012.
【非特許文献2】G.E.Hinton, Training products of experts by minimizing contrastive divergence, Neural Computation, vol.14, pp.1771-1800, 2002.
【非特許文献3】G.E.Hinton, S.Osindero and Y.Teh, A fast learning algorithm for deep belief nets, Neural Computation, vol.18, no.7, pp.1527-1554, 2006.
【非特許文献4】S.Kamada and T.Ichimura, An Adaptive Learning Method of Restricted Boltzmann Machine by Neuron Generation and Annihilation Algorithm, Proc. of IEEE SMC 2016, pp.1273-1278, 2016.
【非特許文献5】S.Kamada and T.Ichimura, A Structural Learning Method of Restricted Boltzmann Machine by Neuron Generation and Annihilation Algorithm, Neural Information Processing, vol.9950 of the series Lecture notes in Computer Science, pp.372-380, 2016.
【非特許文献6】T.Ichimura and K.Yoshida Eds., Knowledge-Based Intelligent Systems for Health Care, Advanced Knowledge International, ISBN 0-9751004-4-0, 2004.
【非特許文献7】S.Kamada and T.Ichimura, An Adaptive Learning Method of Deep Belief Network by Layer Generation Algorithm, Proc. of IEEE TENCON 2016, pp.2971-2974, 2016.
【非特許文献8】T.Ichimura, S.Kamada, Adaptive Learning Method of Recurrent Temporal Deep Belief Network to Analyze Time Series Data, Proc. of IEEE IJCNN 2017, pp.2346-2353, 2017.
【非特許文献9】I.Sutskever, G.E.Hinton, and G.Taylor, The Recurrent Temporal Restricted Boltzmann Machine, Advances in Neural Information Processing Systems, Vol.21 (NIPS 2008), pp.1601-1608, 2008.
【非特許文献10】N.Boulanger-Lewandowski, Y.Bengio, and P.Vincent, Modeling Temporal Dependencies in High-Dimensional Sequences: Application to Polyphonic Music Generation and Transcription, Proc. of the 29th International Conference on Machine Learning (ICML2012), pp.1159-1166, 2012.
【発明を実施するための形態】
【0025】
以下、本発明に係る実施形態について図面を参照しながら説明する。
【0026】
まず、
図1を参照して、本発明の実施形態に係る異種データ深層学習装置1について説明する。
【0027】
異種データ深層学習装置1は、制限付きボルツマンマシン(RBM)を用いて、異種データの深層学習を行うための情報処理装置である。異種データ深層学習装置1は、パソコン、タブレット端末またはスマートフォン等の情報処理端末として構成される。なお、異種データ深層学習装置1は、クライアント側の端末ないし機器から学習用データを受信し、学習完了後、学習結果を返すサーバ装置として構成されてもよい。
【0028】
異種データ深層学習装置1は、
図1に示すように、制御部10と、通信部30と、操作入力部40と、表示部50と、記憶部60と、を備えている。なお、異種データ深層学習装置1は、学習データを入力するために、光学ドライブやメモリカードスロットなどの情報取込部(図示せず)を備えてもよい。
【0029】
制御部10は、異種データ深層学習装置1の動作を制御するものであり、ハードウェアとしてはCPU(中央処理装置)等のプロセッサにより構成される。本実施形態では、制御部10は、異種データ深層学習装置1内のプロセッサが所定のプログラムを実行することにより実現される。なお、制御部10の少なくとも一部がASIC等のハードウェアにより構成されてもよい。制御部10の詳細については後ほど詳しく説明する。
【0030】
通信部30は、異種データ深層学習装置1と外部の情報処理装置(図示せず)との間で情報を送受信する。例えば、通信部30は、外部の情報処理装置から、学習用データ(後述の画像データやCSVデータなど)を受信する。なお、通信部30は、インターネット経由で通信接続されたIOT機器から直接、データを受信してもよい。なお、通信部30による通信は、有線・無線の別を問わず、また通信プロトコルも限定されない。
【0031】
操作入力部40は、ユーザが異種データ深層学習装置1に情報を入力するためのインターフェースであり、例えば、キーボード、マウス、タッチパネル、ボタン等である。
【0032】
表示部50は、ユーザへ各種情報(例えば学習結果、推定結果など)を出力するインターフェースである。この表示部50は、例えば、映像を表示するディスプレイ(液晶ディスプレイ、有機ELディスプレイ等)である。
【0033】
記憶部60は、ハードディスクまたは半導体メモリなどから構成される記憶装置である。この記憶部60には、制御部10による情報処理に必要なデータ(学習用データなど)が記憶されるとともに、制御部10により生成された情報(学習結果など)が記憶される。なお、制御部10により実行されるプログラムが記憶部60に記憶されていてもよい。
【0034】
次に、
図2を参照して、制御部10について詳しく説明する。
【0035】
制御部10は、
図2に示すように、初期データ生成部11と、パラメタ初期化部12と、RBM学習実行部13と、パラメタ更新部14と、WD算出部15と、ニューロン生成消滅部16と、安定特徴ニューロン抽出部17と、可視ニューロン値算出部18と、候補ブロック抽出部19と、候補ブロック位置変更部20と、ルックアップテーブル更新部21と、推論部22と、を備えている。
【0036】
なお、符号11〜符号22で示される各機能部は、通信接続された複数の情報処理装置に分散して設けられ、これら複数の情報処理装置が協働することにより制御部10の機能が実現されてもよい。また、推論部22は、それ単体で別の情報処理装置(推論実行装置)に設けられてもよい。
【0037】
制御部10の各機能部について詳しく説明する。
【0038】
初期データ生成部11は、第1種類のデータを構成する複数の第1種類ブロックと、第2種類のデータを構成する複数の第2種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成する。
【0039】
本実施形態では、第1種類のデータは画像データであり、第2種類のデータはCSVデータ(CSV:Comma−Sepatated Values)である。画像データは、例えば、医療画像データ(X線、CT、MRI、PET、超音波等)である。CSVデータは、数値、テキストおよびシンタックスのうち少なくともいずれか一つを含むデータである。CSVデータは、例えば、血液検査などの数値データ、IOTセンサーデバイスからの計測データ、問診結果などの文字データである。なお、音声や動画のような時系列データを学習データとしても用いてもよい。本発明では、任意の異なる種類のデータを深層学習の学習用データとしてもよい。
【0040】
第1種ブロックおよび第2種類ブロックの配置ルールは、特に限定されないが、本実施形態における配置方法(初期データの生成方法)について、
図3〜
図7を参照して説明する。
【0041】
図3は、画像データのデータ構造を示している。縦横Xピクセルの画像データが、画像ブロックIB
11,IB
12,・・・,IB
NNにより構成されている。各画像ブロックには、1または複数のピクセルのデータが含まれる。本実施形態では、各ピクセルは、1ビットのデータ(すなわち、白または黒)を有する。なお、各画像ブロックの大きさは、本実施形態では同じ(例えば3ビット)であるが、互いに異なってもよい。また、ピクセルが複数ビットのデータを有する場合、当該ピクセルを複数の白黒ピクセルの並びとみなす。例えば、“101”の情報を有するピクセルの場合、3個の白黒ピクセル(“1”,“0”,“1”)の並びとみなす。
【0042】
図3に示すように、画像データは、N個のイメージラインIL
1,IL
2,・・・,IL
Nにより構成されている。例えば、イメージラインIL
1は、N個の画像ブロックIB
11,IB
12,・・・,IB
1Nを含んでいる。このように画像データは、複数の画像ブロックを含む複数のイメージラインから構成されている。
図5(a)は、N個のイメージラインで表された画像データを示している。
【0043】
図4は、CSVデータのデータ構造を示している。Mビットのデータが、Q個のCSVブロックCB
1,CB
2,・・・,CB
Qにより構成されている。
図4に示すように、CSVブロックCB
1は3ビットであり、CSVブロックCB
2は2ビットである。このように、各CSVブロックの大きさは異なっている。なお、各CSVブロックの大きさは同じであってもよい。
図5(b)は、Q個のCSVブロックで表されたCSVデータを示している。
【0044】
本実施形態では、各CSVブロックは、複数の検査項目を含む検査の各項目にそれぞれ対応している。
図4の例では、Q個のCSVブロックがそれぞれ別の検査項目の結果に関する情報を有している。CSVデータが血液検査の結果を示す場合、各CSVブロックは、検査項目ごとの血液検査結果を含んでいる。例えば、CSVブロックCB
1は、ある項目についての検査結果(例えばγ−GTP)が正常値、異常値(下)または異常値(上)を示す、3ビットのone−hotベクトルである。この場合、CSVブロックCB
1の値は、検査値が基準範囲内であれば“100”であり、基準範囲より下であれば“010”であり、基準範囲より上であれば“001”である。
【0045】
初期データ生成部11は、各イメージラインの前または後にCSVブロックを少なくとも一つ配置することにより初期データを生成する。例えば、初期データ生成部11は、
図6に示すように、イメージラインIL
kの後にCSVブロックCB
k(k=1,2,・・・,N)を配置する。Q>Nの場合はCSVブロックが余ることになるが、余ったCSVブロックは例えば
図6に示すように、CSVブロックCB
Nの後に配置する。
図7は、このような配置ルールにより生成された初期データを示している。
【0046】
なお、初期データ生成部11は、各イメージラインの後に複数のCSVブロックを配置してもよい。例えば、イメージラインIL
1の後にCSVブロックCB
1とCSVブロックCB
2を配置してもよい。
【0047】
初期データ生成部11による初期データの生成方法は上記に限られない。例えば、より単純な形態として、N個のイメージラインIL
1,IL
2,・・・,IL
Nの後に、Q個のCSVブロックCB
1,CB
2,・・・,CB
Qを配置してもよい。あるいは、画像ブロックとCSVブロックを交互に配置することにより初期データを生成してもよい。このように初期データ生成部11による初期データの生成方法は、特に限定されない。
【0048】
ここで、制限付きボルツマンマシン(RBM)の構造について説明する。RBMは、
図8に示すように、可視層と隠れ層から構成される。可視層はI個の可視ニューロンv
0,v
1,・・・,v
Iからなり、隠れ層はJ個の隠れニューロンh
0,h
1,・・・,h
Jからなる。
図3〜
図7で説明した例の場合、可視層には、X
2+M個の可視ニューロンが必要である。隠れ層には、分類に必要な十分な数の隠れニューロンがあればよい。隠れニューロンの数は、例えば、学習前に予め決定された値を用いる。
【0049】
RBMの可視層は、式(1)に示すベクトルvで表され、RBMの隠れ層は、式(2)に示すベクトルhで表される。ベクトルv,hの各成分は、0または1の値をとる。
【数1】
【数2】
【0050】
パラメタ初期化部12は、制限付きボルツマンマシンのパラメタ(ベクトルθ)を初期化する。ベクトルθは、式(3)に示すように、ベクトルb、ベクトルcおよびベクトルWを含む。
【数3】
【数4】
【数5】
【数6】
【0051】
ベクトルbの成分b
iは可視ニューロンv
iのバイアスであり、ベクトルcの成分c
jは隠れニューロンh
jのバイアスである。ベクトルWの成分W
ijは可視ニューロンv
iと隠れニューロンh
jの間の結合加重を示す重みである。
【0052】
RBM学習実行部13は、制限付きボルツマンマシンの可視層に、初期データ生成部11により生成された初期データ(ベクトルv)をセットし、学習を行うことによって、隠れ層を構成する隠れニューロンの出力値を求める。具体的には、セットされた初期データに対する隠れニューロンの発火確率を式(7)により計算する。RBM学習実行部13は、計算された発火確率により隠れニューロンの出力値(0または1)を求める。
【0053】
なお、DBNを適用する場合、RBM学習実行部13は、第l層(l>1)RBMの可視層に、第l−1層RBMの出力データをセットし、学習を行うことによって、第l層RBMの隠れ層を構成する隠れニューロンの出力値を求める。
【数7】
【0054】
式(7)の左辺は、入力データ(ベクトルv)が与えられた場合にj番目の隠れニューロン(h
j)の出力値が1になる(すなわち発火する)確率を示している。なお、式(7)の右辺の関数sigmはシグモイド関数である。なお、出力関数は、シグモイド関数以外の関数(ランプ関数など)であってもよい。
【0055】
すべての隠れニューロンの出力値が求められた後、RBM学習実行部13は、求められた出力値に基づいて、コントラスティブダイバージェンス法(CD法)による学習を行うことによって初期データに対する誤差を求める。具体的には、まず、RBM学習実行部13は、隠れニューロンの出力値に対する可視ニューロンの発火確率を式(8)により計算する。
【数8】
【0056】
式(8)の左辺は、隠れニューロンの出力データ(ベクトルh)が与えられた場合における、i番目の可視ニューロン(v
i)の出力値が1になる(すなわち発火する)確率である。RBM学習実行部13は、計算された確率により可視ニューロンの出力値(0または1)を求める。なお、CD法として、例えばCD−1法を用いる。
【0057】
RBM学習実行部13は、入力データ(ベクトルv)と、求められた可視ニューロンのデータ(ベクトルv’)とを用いて誤差を計算する。誤差として、例えば、ベクトルvとベクトルv’の二乗和誤差を求める。
【0058】
パラメタ更新部14は、RBM学習実行部13により求められた誤差を用いてパラメタ(ベクトルθ)を更新する。より具体的には、パラメタ更新部14は、誤差が最小になるようにパラメタ(ベクトルθ)を更新する。
【0059】
WD算出部15は、制限付きボルツマンマシンの変数に関する学習中振動を算出する。「学習中振動」とは、対象の変数が学習中にどれくらい振動しているのかを測るための指標である。以下の説明では、学習中振動を単にWD(Walking Distance)とも呼ぶ。変数には、制限付きボルツマンマシンのパラメタb
j,c
j,W
jおよび隠れニューロンの状態変数h
jがある。
【0060】
WD算出部15は、パラメタ更新部14により更新されたパラメタ(ベクトルθ)に基づいて、制限付きボルツマンマシンのパラメタb,c,Wに関する学習中振動と、制限付きボルツマンマシンの隠れニューロンの状態変数hに関する学習中振動を算出する。具体的には、WD算出部15は、式(9)、(10)、(11)、(12)を用いて変数W
j,c
j,b
j,h
jに関するWDをそれぞれ、各j(=1,2,...,J)について算出する。
【0061】
なお、ニューロンの生成消滅を行わない場合は、パラメタc,Wに関する学習中振動を算出する必要はない。よって、WD算出部15は、少なくとも、制限付きボルツマンマシンのパラメタbに関する学習中振動と、制限付きボルツマンマシンの隠れニューロンの状態変数hに関する学習中振動を算出する。
【数9】
【数10】
【数11】
【数12】
【0062】
上記の式(9)〜式(12)から分かるように、学習中振動WDは、T−1回目までの学習による対象変数のWDと、T回目の学習による対象変数の変化量との和を計算することにより得られる。
【0063】
式(9)のγ
Wは、右辺第一項と右辺第二項の影響度を調整するパラメタであり、0より大きく、1より小さい値をとる。式(10)のγ
c、式(11)のγ
b、式(12)のγ
hについても同様である。
【0064】
式(9)の変分ベクトルW
j[T]は、T回目の学習における、j番目の隠れニューロンに関連する重みの変化量を示す変分ベクトルである。式(10)のc
j[T]、式(10)のb
j[T]、式(11)のh
j[T]についても同様である。なお、W
j[0],c
j[0],b
j[0]は、パラメタ初期化部12により初期化された値をとり、h
j[0]は、すべてのjについて零である。
【0065】
式(9)〜式(12)の関数Metは、ベクトル間の距離を計算するための距離関数であり、本実施形態では、引数のベクトル間のユークリッド距離を返す関数である。
【0066】
ニューロン生成消滅部16は、制限付きボルツマンマシンに対して、隠れニューロンの生成消滅アルゴリズムを実行する。より詳しくは、ニューロン生成消滅部16は、制限付きボルツマンマシンの隠れニューロンが所定の生成条件を満たす場合、隠れニューロンを生成する。例えば、生成条件を満たす隠れニューロンの隣に新たな隠れニューロンを追加する。一方、隠れニューロンが所定の消滅条件を満たす場合、ニューロン生成消滅部16は、その隠れニューロンを消滅させる。なお、隠れニューロンの生成・消滅は、例えば、安定特徴ニューロン抽出部17が安定特徴ニューロン(後述)を抽出する前に行われる。
【0067】
ここで、隠れニューロンの生成・消滅について、より詳しく説明する。
【0068】
ニューロン生成消滅部16は、j番目の隠れニューロンが式(13)の生成条件を満たす場合、新しい隠れニューロンを生成し、j+1番目の隠れニューロンとして隠れ層に挿入する。
【数13】
ここで、α
cはdc
jに対するパラメタの定数であり、正の値をとる。dc
jはバイアスc
jに関するWDである。α
WはdW
jに対するパラメタの定数であり、正の値をとる。dW
jは重みW
jに関するWDである。θ
Gはニューロン生成に関わる閾値であり、正の値をとる。式(13)から分かるように、隠れニューロンの生成条件は、重みWに関する学習中振動およびバイアスcに関する学習中振動に基づく。
【0069】
一方、ニューロン生成消滅部16は、j番目の隠れニューロンが式(14)の消滅条件を満たす場合、その隠れニューロンを除去する。
【数14】
ここで、Nは入力データのサンプル数(ベクトルvのサンプル数)であり、θ
Aはニューロン消滅に関わる閾値であり、0より大きく、1より小さい値をとる。
【0070】
なお、ニューロン生成消滅部16は、必須の構成ではない。後述の異種データ学習アルゴリズムを実行するために、ある程度の数の隠れニューロンが得られれば、隠れニューロンの生成・消滅を行なわくてもよい。あるいは、他の手法(例えば、手動による試行錯誤により隠れニューロン数の最適値を見つける等)により、必要な数の隠れニューロンを確保してもよい。
【0071】
安定特徴ニューロン抽出部17は、隠れ層の隠れニューロンから、安定特徴ニューロンを抽出する。本願において、安定特徴ニューロンとは、発火しており(すなわち、出力値“1”)、且つ状態変数hに関する学習中振動(WD)が所定の閾値以下である隠れニューロンをいう。つまり、安定特徴ニューロンは、特徴有りとの出力を行っている隠れニューロンのうち、学習中の振動が比較的小さく、安定している隠れニューロンのことである。安定特徴ニューロン抽出部17は、隠れ層を構成する複数の隠れニューロンから、1または複数の安定特徴ニューロンを抽出する。
【0072】
可視ニューロン値算出部18は、安定特徴ニューロン抽出部17により抽出された安定特徴ニューロンの一つからCD法により、可視層を構成する可視ニューロンの出力値を求める。具体的には、可視ニューロン値算出部18は、式(15)を用いて可視ニューロンの出力値を算出する。式(15)は、抽出されたP個の安定特徴ニューロンの中のp番目の安定特徴ニューロンから可視ニューロンv
i(i=1,2,・・・,I)の出力値を求めるための計算式である。
【数15】
【0073】
候補ブロック抽出部19は、可視層にセットされた初期データ(より一般には入力データ)における複数の画像ブロックから、発火した可視ニューロンが所定の比率以上を占める画像ブロックを画像候補ブロック(IB_Cand)として少なくとも1つ抽出する。所定の比率は、例えば50%である。
【0074】
また、候補ブロック抽出部19は、可視層にセットされた初期データ(より一般には入力データ)における複数のCSVブロックから、発火した可視ニューロンが所定の比率以上を占めるCSVブロックをCSV候補ブロック(CB_Cand)として抽出する。所定の比率は、例えば50%である。
【0075】
候補ブロック位置変更部20は、学習中振動が高いCSV候補ブロックを所定の画像候補ブロックの近傍に移動させる。これにより、CSV候補ブロックに含まれる可視ニューロンの出力値(可視ニューロン値算出部18により算出された値)は画像候補ブロックの近傍に移動される。すなわち、CSV候補ブロックの移動により、移動前の状態においてCSV候補ブロックに包含される可視ニューロンの出力値が、移動後のCSV候補ブロックに包含される可視ニューロンの値となる。
【0076】
より詳しくは、候補ブロック位置変更部20は、まだ位置変更されていないCSV候補ブロックの中でバイアスbに関する学習中振動が最も高いCSV候補ブロックが、所定の画像候補ブロックから第1の距離範囲内にない場合、当該CSV候補ブロックの位置を第1の距離範囲よりも短い第2の距離範囲内の位置に変更する。第1の距離範囲は、例えば、画像候補ブロックから±50ブロックの範囲である。第2の距離範囲は、例えば、画像候補ブロックから±10ブロックの範囲である。
【0077】
複数のCSV候補ブロック間で、バイアスbに関する学習中振動の値を比較するために、候補ブロック位置変更部20は、“CSV候補ブロックの”バイアスbに関する学習中振動を算出する。例えば、CSV候補ブロックが可視層に占める位置に含まれる可視ニューロンの、バイアスb
jに関する学習中振動の平均値を計算し、その平均値を当該CSV候補ブロックの、バイアスbに関する学習中振動とする。例えば、CSV候補ブロックが可視層に占める位置に、2個の可視ニューロンが含まれ、一方の可視ニューロンの、バイアスbに関する学習中振動の値がxであり、他方の可視ニューロンの、バイアスbに関する学習中振動の値がyである場合、そのCSV候補ブロックの、バイアスbに関する学習中振動は、(x+y)/2となる。なお、その他の計算手法を用いて、CSV候補ブロックの学習中振動の値を計算してもよい。
【0078】
ルックアップテーブル更新部21は、候補ブロック位置変更部20によるCSV候補ブロックの位置変更結果に基づいて、ルックアップテーブルを更新する。このルックアップテーブルは、CSVブロックの位置を変更するための位置変更情報を格納したテーブルである。
【0079】
推論部22は、学習後のニューラルネットワークを用いた推論を行う。この推論部22は、ルックアップテーブル更新部21により作成されたルックアップテーブルに基づいて学習用の入力データの配置を変更し、変更された入力データを学習済みのニューラルネットワークに与え、推論を行う。
【0080】
以上説明したように、異種データ深層学習装置1では、異種データを構成するブロック(第1種ブロック、第2種類ブロック)を所定の配置ルールに従って組み合わせることにより初期データを生成する。これにより、異種データを一連の入力データとして取り扱うことができる。例えば、様々なIOTデバイスから収集された異種データを1つのデータとして処理することができる。また、1つの学習プロセスにより学習を進めることができるようになるので、従来の多段的な学習方法に比べて学習速度の向上を図ることができる。
【0081】
そして、異種データ深層学習装置1では、学習中振動が比較的高い(すなわち、学習がそれほど進んでいない)第2種類候補ブロックを、関連性の高い第1種類候補ブロックの近傍に位置変更する。これにより、異種データの深層学習に要する時間を短縮することができる。すなわち、第1種類のデータと第2種類のデータ間でデータの分布が均一でないために深層学習が収束しにくいところ、本実施形態では、特徴を有し且つ学習の進んだ安定特徴ニューロンに着目し、安定特徴ニューロンを基点としたCD法による計算結果に基づいて、特徴が類似する異種のブロック(第1種類候補ブロック、第2種類候補ブロック)を抽出し、抽出された異種ブロックを近接配置する。これにより、本実施形態によれば、深層学習の収束速度が向上し、異種データの学習時間を短縮することができる。また、第2種類候補ブロックの中でも比較的学習の進んでいないブロックから優先して第1種類候補ブロックの近傍に位置変更することで、深層学習の収束速度をさらに向上させている。
【0082】
また、本実施形態によれば、深層学習を行う際のニューラルネットワークの設計や、パラメタの設定を容易に行うこともできる。
【0083】
なお、候補ブロック位置変更部20は、バイアスbに関する学習中振動が最も高いCSV候補ブロックの位置を、所定の画像候補ブロックの隣の位置に変更することが好ましい。つまり、第2の距離範囲を1としてもよい。これにより、学習効率が向上し、計算時間をさらに短縮することができる。
【0084】
また、候補ブロック位置変更部20は、バイアスbに関する学習中振動が二番目に高いCSV候補ブロックの位置を第2の距離範囲内の位置に変更してもよい。これにより、学習効率が向上し、計算時間をさらに短縮することができる。
【0085】
また、候補ブロック位置変更部20は、バイアスbに関する学習中振動が二番目に高いCSV候補ブロックの位置を、バイアスbに関する学習中振動が最も高いCSV候補ブロックの隣の位置に変更してもよい。
【0086】
一般的に言えば、候補ブロック位置変更部20は、バイアスbに関する学習中振動がx番目(xは2以上の整数)に高い複数のCSV候補ブロックの位置を第2の距離範囲内の位置に変更してもよい。これにより、適切な数の隠れニューロンが存在する条件下においては、学習精度を向上させ、計算時間をさらに短縮することができる。
【0087】
また、異種データ深層学習装置1は、一つの情報処理装置ではなく、互いに通信接続された複数の情報処理装置から構成されてもよい。例えば、ニューロン生成・消滅アルゴリズム、CD法による学習アルゴリズム、異種データ学習アルゴリズム等の各種アルゴリズムをそれぞれ別の情報処理装置が実行するようにしてもよい。
【0088】
<異種データ深層学習方法>
上記の異種データ深層学習装置1による異種データ深層学習方法について、
図9〜
図12のフローチャートに沿って説明する。
図9は、異種データ深層学習に係る処理フローの全体を示す。
図10は、
図9のステップS4(CD法による学習アルゴリズム)に係る処理フローを示す。
図11は、
図9のステップS6(ニューロン生成・消滅アルゴリズム)に係る処理フローを示す。
図12は、
図9のステップS8(異種データ学習アルゴリズム)に係る処理フローを示す。
【0089】
まず、初期データ生成部11は、異なる2つのデータ(第1種類のデータと第2種類のデータ)に基づいて、学習用の初期データを生成する(ステップS1)。本実施形態では、画像データとCSVデータを所定の配置ルールに従って配置することにより初期データを生成する。
【0090】
次に、制御部10は、DBNの層数を示す変数(l)を初期化する(ステップS2)。具体的には、変数lに1を代入する。
【0091】
次に、パラメタ初期化部12は、第l層RBMのパラメタ(ベクトルθ)を初期化する(ステップS3)。具体的には、パラメタを構成する、2つのバイアス(ベクトルbおよびベクトルc)と重み(ベクトルW)の各成分の初期値を与える。なお、l=1の場合、初期値はランダム値でもよいし、固定値(例えば零)でもよい。l>1の場合、前回の学習で得られたパラメタ値を初期値とする。
【0092】
次に、RBM学習実行部13は、CD法による学習アルゴリズムを実行する(ステップS4)。本アルゴリズムの詳細について、
図10を参照して説明する。
【0093】
まず、RBM学習実行部13は、第l層RBMの可視層(ベクトルv)に入力データをセットする(ステップS41)。l=1の場合は、入力データとして、初期データ生成部11により生成された初期データをセットする。l>1の場合は、前回の学習で得られた、l−1層RBMの隠れ層のデータを初期値とする。
【0094】
次に、RBM学習実行部13は、第l層RBMの可視層(ベクトルv)から隠れ層(ベクトルh)を求める(ステップS42)。具体的には、隠れ層を構成するすべての隠れニューロンについて、可視層にセットされた入力データに対する発火確率を前述の式(7)により計算する。これにより、隠れニューロンの状態変数の値(0または1)が求められる。
【0095】
次に、RBM学習実行部13は、ステップS42で求められた隠れ層から、可視層(ベクトルv’)を求める(ステップS43)。具体的には、可視層を構成するすべての可視ニューロンについて、ステップS42で求められた隠れ層(ベクトルh)に対する発火確率を前述の式(8)により計算する。これにより、可視ニューロンの状態変数の値(0または1)が求められる。
【0096】
次に、RBM学習実行部13は、元の入力データ(ベクトルv)と、ステップS43で得られたデータ(ベクトルv’)から誤差を求める(ステップS44)。誤差は、例えば、ベクトルvとベクトルv’の二乗和誤差を計算することにより得られる。
【0097】
図9に戻って、ステップS5以降の説明を続ける。
【0098】
パラメタ更新部14は、ステップS4で得られた誤差を用いて第l層RBMのパラメタを更新する(ステップS5)。例えば、パラメタ更新部14は、誤差が最小になるようにパラメタ(ベクトルθ)を更新する。
【0099】
次に、WD算出部15は、第l層RBMのパラメタおよび隠れニューロンの状態変数(h)に関する学習中振動(WD)を算出する(ステップS6)。本実施形態では、WD算出部15は、前述の式(9),(10),(11),(12)を用いて変数W
j,c
j,b
j,h
jに関するWDを、各j(=1,2,...,J)について算出する。
【0100】
次に、ニューロン生成消滅部16は、ニューロン生成・消滅アルゴリズムを実行する(ステップS7)。本アルゴリズムの詳細について、
図11を参照して説明する。
【0101】
まず、ニューロン生成消滅部16は、隠れニューロンの番号を示す変数(j)を初期化する(ステップS71)。次に、ニューロン生成消滅部16は、変数jが隠れニューロンの総数Jよりも大きいか否かを判定する(ステップS72)。そして、変数jが総数Jよりも大きい場合(S72:Yes)、ニューロン生成・消滅アルゴリズムを終了し、
図9の全体フローに戻る。一方、変数jが総数J以下である場合(S72:No)、ニューロン生成消滅部16は、j番目の隠れニューロンがニューロン生成条件を満たすか否かを判定する(ステップS73)。生成条件を満たすか否かは、前述の式(13)を用いて判定される。この判定を行う際に、ステップS6で算出されたバイアスc
jおよび重みW
jに関する学習中振動(dc
j,dW
j)が用いられる。
【0102】
j番目の隠れニューロンがニューロン生成条件を満たす場合(S73:Yes)、ニューロン生成消滅部16は、隠れニューロンを生成する(ステップS74)。本ステップで生成された隠れニューロンは、j+1番目の隠れニューロンとして第l層RBMの隠れ層に挿入される。
【0103】
一方、j番目の隠れニューロンがニューロン生成条件を満たさない場合(S73:No)、ニューロン生成消滅部16は、j番目の隠れニューロンがニューロン消滅条件を満たすか否かを判定する(ステップS75)。消滅条件を満たすか否かは、前述の式(14)を用いて判定される。
【0104】
j番目の隠れニューロンがニューロン消滅条件を満たす場合(S75:Yes)、ニューロン生成消滅部16は、j番目の隠れニューロンを除去する(ステップS76)。一方、j番目の隠れニューロンがニューロン消滅条件を満たさない場合(S75:No)、変数jの値を一つ増やし(ステップS77)、ステップS72に戻る。
【0105】
図9に戻って、ステップS8以降の説明を続ける。
【0106】
制御部10は、異種データ学習アルゴリズムを実行する(ステップS8)。本アルゴリズムの詳細について、
図12を参照して説明する。
【0107】
まず、安定特徴ニューロン抽出部17は、第l層RBMの隠れ層の隠れニューロンから、前述の安定特徴ニューロンを抽出する(ステップS81)。ここでは、P個の安定特徴ニューロンが抽出されたとする。
【0108】
次に、制御部10は、安定特徴ニューロンの番号を示す変数(p)を初期化する(ステップS82)。そして、制御部10は、変数pが安定特徴ニューロンの総数Pよりも大きいか否かを判定する(ステップS83)。そして、変数pが総数Pよりも大きい場合(S83:Yes)、異種データ学習アルゴリズムを終了し、
図9の全体フローに戻る。一方、変数pが総数P以下である場合(S83:No)、可視ニューロン値算出部18は、p番目の安定特徴ニューロンからCD法により、可視層の可視ニューロンの値を求める(ステップS84)。具体的には、可視ニューロン値算出部18は、前述の式(15)を用いて、可視層を構成する可視ニューロンの出力値をすべて計算する。
図13は、p番目の安定特徴ニューロン(h
Sp)から可視層の各可視ニューロンの値を求める様子を示している。
【0109】
次に、候補ブロック抽出部19は、l層RBMの可視層にセットされた入力データにおける複数の画像ブロックから、発火した可視ニューロンが所定の比率以上を占める画像ブロックを画像候補ブロック(IB_Cand)として抽出する(ステップS85)。ここでは、K個の画像候補ブロックが抽出されたとする。この抽出方法について、
図14を参照して説明する。なお、
図14において、内部に斜線が施された円は、発火したニューロンを示している。
【0110】
図14では、画像ブロックは3ビット(3つの可視ニューロン)からなり、CSVブロックは2ビット(2つの可視ニューロン)からなる。ここでは、所定の比率は50%とする。
図14に示すように、左から2つ目の画像ブロックは、発火した可視ニューロンが2個あり、半分以上の可視ニューロンが発火したため、画像候補ブロックとして抽出される。一方、左から3つ目の画像候補ブロックは、発火した可視ニューロンが1個なので、画像候補ブロックとして抽出されない。また、右から2つ目のCSVブロックは、発火した可視ニューロンが1個であり、半分の可視ニューロンが発火したため、CSV候補ブロックとして抽出される。
【0111】
次に、制御部10は、ステップS85で抽出された画像候補ブロックの番号を示す変数(k)を初期化する(ステップS86)。そして、制御部10は、変数kが画像候補ブロックの総数Kよりも大きいか否かを判定する(ステップS87)。そして、変数kが総数Kよりも大きい場合(S87:Yes)、変数pの値を一つ増やし(ステップS88)、ステップS83に戻る。
【0112】
一方、変数kが総数K以下である場合(S87:No)、候補ブロック位置変更部20は、ステップS85で抽出されたCSV候補ブロックのうち、まだ位置変更されていないCSV候補ブロックの中でバイアスbに関する学習中振動(WD)が最も高いCSV候補ブロックが、k番目の画像候補ブロックの近傍にあるか否かを判定する(ステップS89)。そして、当該CSV候補ブロックがk番目の画像候補ブロックの近傍にある場合(S89:Yes)、変数kの値を一つ増やし(ステップS92)、ステップS87に戻る。
【0113】
一方、バイアスbに関する学習中振動が最も高いCSV候補ブロックがk番目の画像候補ブロックの近傍にない場合(S89:No)、候補ブロック位置変更部20は、当該CSV候補ブロックの位置をk番目の画像候補ブロックの近傍に変更する(ステップS90)。より一般的には、前述のように、当該CSV候補ブロックがk番目の画像候補ブロックから第1の距離範囲内にない場合、当該CSV候補ブロックの位置を第1の距離範囲よりも短い第2の距離範囲内の位置に変更する。ステップS90の処理の後、変数kの値を一つ増やし(ステップS92)、ステップS87に戻る。
【0114】
CSV候補ブロックの位置変更とは、移動前の状態においてCSV候補ブロックに包含される可視ニューロンの出力値を移動後のCSV候補ブロックに包含される可視ニューロンの値とすることである。
【0115】
CSV候補ブロックの位置変更について、
図15を参照して説明する。なお、
図15において、内部に斜線が施された円は、発火したニューロンを示している。
【0116】
図15では、符号IB_Cand
kで示されるブロックがk番目の画像候補ブロックであり、符号CB_Cand
iで示されるブロックがi番目のCSV候補ブロックである。ここでは、第1の距離範囲を±10とする。画像候補ブロックIB_Cand
kから距離10の範囲には、3つのCSV候補ブロック(CB_Cand
i,CB_Cand
i+1,CB_Cand
i+2)が含まれる。CSV候補ブロックCB_Cand
iは既に位置変更済みであり、CSV候補ブロックCB_Cand
i+1のバイアスbに関する学習中振動がCB_Cand
i+2のそれよりも低い場合、CSV候補ブロックCB_Cand
i+2が位置変更すべきブロックとなる。よって、候補ブロック位置変更部20は、CSV候補ブロックCB_Cand
i+2の位置を第2の距離範囲内の位置に変更する。例えば、CSV候補ブロックCB_Cand
i+2を画像候補ブロックIB_Cand
kの隣に移動する。
図16は、CSV候補ブロックCB_Cand
i+2を画像候補ブロックIB_Cand
kの隣に移動した状態を示している。
図16に示すように、CSV候補ブロックCB_Cand
i+2の移動によって、移動前の状態においてCSV候補ブロックCB_Cand
i+2に包含される可視ニューロンの出力値が移動後のCSV候補ブロックCB_Cand
i+2に包含される可視ニューロンの値となっている。
【0117】
なお、上の例では、画像候補ブロックIB_Cand
kの右側(正の方向)のみを見たが、左側(負の方向)にあるCSV候補ブロックを位置変更対象としてもよい。また、上の例では、CSV候補ブロックに含まれる可視ニューロンのうち一つでも第1の距離範囲内にあれば、位置変更対象のブロックとしたが、CSV候補ブロックに含まれる可視ニューロンの全てが第1の距離範囲内にあるブロックを位置変更対象のブロックとしてもよい。
【0118】
次に、ルックアップテーブル更新部21は、ステップS90におけるCSV候補ブロックの位置変更結果に基づいて、ルックアップテーブルを更新する(ステップS91)。
図17は、ルックアップテーブル更新部21により更新されたルックアップテーブルの一例を示している。このルックアップテーブルは、CSVブロックCB22が画像ブロックIB101の隣に位置変更されることを示している。
図16との関係で言えば、画像ブロックIB101は画像候補ブロックIB_Cand
kであり、CSVブロックCB22はCSV候補ブロックCB_Cand
i+2である。
【0119】
なお、ステップ90として説明したCSVブロックの位置を変更する処理は、ステップS92を経た後、ステップS87とステップS89の間で行ってもよい。すなわち、k+1番目の画像候補ブロックに関する処理フローにおいて、CSV候補ブロックを移動させてもよい。この場合、例えば、k番目の画像候補ブロックに関する処理フローのステップS91で更新されたルックアップテーブルを参照してCSV候補ブロックの移動を行う。
【0120】
図9に戻って、ステップS9以降の説明を続ける。
【0121】
制御部10は、第l層RBMの終了条件を満たすか否かを判定する(ステップS9)。終了条件として、例えば、(A)ステップS4で求められた誤差が所定の値以下になる、(B)ステップS4〜ステップS8の処理が所定の回数(最大訓練回数)行われた、(C)ステップS7においてニューロンの生成・消滅が所定の反復回数のあいだ行われていない、(D)ステップS8においてCSVブロックの位置変更が所定の反復回数のあいだ行われていない、などが挙げられる。条件(C)は最適な隠れニューロンの数が決まったことを示し、条件(D)は最適な入力データの並びが決まったことを示す。
【0122】
上記の条件(A)〜(D)を論理和や論理積で結んだものを終了条件としてよい。本実施形態では、{条件(A)and条件(C)and条件(D)}or条件(B)を終了条件とする。
【0123】
次に、制御部10は、変数lが最大層数L未満であり、かつ層の生成条件が満たされるか否かを判定する(ステップS10)。最大層数Lは、事前に決められた定数である。制御部10は、式(16)と式(17)の両方が満たされる場合に、層の生成条件を満たすと判定する。
【数16】
ここで、α
WDはスケールを調整するためのパラメタであり、WD
lは第l層RBMにおける学習中振動(すなわち、パラメタの変化量)である。WD
lは式(13)の左辺により計算される。θ
L1は閾値である。
【数17】
ここで、α
Eはスケールを調整するためのパラメタであり、E
lは第l層RBMにおけるエネルギー関数であり、式(18)により計算される。θ
L2は閾値である。
【数18】
【0124】
変数lが最大層数L未満であり、かつ層の生成条件が満たされる場合(S10:Yes)、制御部10は、l+1層を生成する(ステップS11)。そして、変数lの値を一つ増やし(ステップS12)、ステップS3に戻る。なお、l+1層のRBMのパラメタ(ベクトルθ)の初期値は、第l層のRBMから承継される。一方、変数lが最大層数Lに達したか、または層の生成条件が満たされない場合(S10:No)、異種データ深層学習を終了する。
【0125】
上記の異種データ深層学習方法では、異種データを構成するブロック(第1種ブロック、第2種類ブロック)を所定の配置ルールに従って組み合わせることにより初期データを生成した後、パラメタの初期化、CD法による学習アルゴリズムの実行、パラメタの更新、学習中振動の算出などを行う。その後、異種データ学習アルゴリズムの実行において、学習中振動が比較的高い(すなわち、学習がそれほど進んでいない)第2種類候補ブロックを、ステップS85において当該第2種類候補ブロックとともに抽出された(すなわち、関連性の高い)第1種類候補ブロックの近傍に位置変更する。これにより、異種データの深層学習に要する時間を短縮することができる。
【0126】
また、本実施形態に係る異種データ深層学習方法では、DBNによる層数の最適化、および隠れニューロンを学習状態に応じて増減する手法も組み込まれている。
【0127】
<学習後のニューラルネットワークを用いた推論>
上記の異種データ深層学習により構成されたニューラルネットワークによる推論について、
図18〜
図21を参照して説明する。
図18は、学習後のニューラルネットワークを用いた推論に係る処理フローを示すフローチャートを示す。
図19は、学習用のデータ(画像データとCSVデータ)の一例を示している。
図20は、ルックアップテーブルの一例を示している。
図21は、ルックアップテーブルを用いてCSVブロックの位置を変更した後の状態を示している。
【0128】
本例では、画像データは、
図19に示すように、6個の画像ブロックIB
1〜IB
6により構成され、CSVデータは6個のCSVブロックCB
1〜CB
6により構成されている。CSVブロックCB
1は、画像ブロックIB
1とIB
2からなるイメージラインの後ろに配置されている。同様に、CSVブロックCB
2は、画像ブロックIB
3とIB
4からなるイメージラインの後ろに配置され、CSVブロックCB
3は、画像ブロックIB
5とIB
6からなるイメージラインの後ろに配置されている。CSVブロックCB
4〜CB
6は、CSVブロックCB
3の後ろに配置されている。すなわち、学習済みニューラルネットワークに与えられる学習用データのブロックの並びは、{IB
1,IB
2,CB
1,IB
3,IB
4,CB
2,IB
5,IB
6,CB
3,CB
4,CB
5,CB
6}である。
【0129】
推論部22は、この学習用データ(初期データ)のCSVブロックの位置を、ルックアップテーブルを参照して変更する。
図20に示すルックアップテーブルの場合、9番目のCSVブロックCB
3を画像ブロックIB
3の後ろに移動する。すなわち、
図21に示すように、位置変更後における学習用データのブロックの並びは、{IB
1,IB
2,CB
1,IB
3,CB
3,IB
4,CB
2,IB
5,IB
6,CB
4,CB
5,CB
6}となる。この位置変更後のデータが学習済みニューラルネットワークの入力層に与えられ、推論が行われる。
【0130】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態に限定されるものではない。異なる実施形態にわたる構成要素を適宜組み合わせてもよい。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。
【0131】
上述した実施形態で説明した異種データ深層学習装置の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、異種データ深層学習装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0132】
また、異種データ深層学習装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。