(57)【要約】【課題】深層学習による異種データの学習時間を短縮する。【解決手段】異種データ深層学習装置１は、隠れ層の隠れニューロンから安定特徴ニューロンを抽出する安定特徴ニューロン抽出部１７と、安定特徴ニューロンの一つからＣＤ法により可視ニューロンの出力値を求める可視ニューロン値算出部１８と、複数の第１種類ブロックから第１種類候補ブロックを抽出し、複数の第２種類ブロックから第２種類候補ブロックを抽出する候補ブロック抽出部１９と、まだ位置変更されていない第２種類候補ブロックの中でバイアスｂに関する学習中振動が最も高いブロックが所定の第１種類候補ブロックから第１の距離範囲内にない場合、当該ブロックの位置を第１の距離範囲よりも短い第２の距離範囲内の位置に変更する候補ブロック位置変更部２０と、を備える。【選択図】図２
2019074946.tif 000002
【特許請求の範囲】
【請求項１】
可視層と隠れ層から構成される制限付きボルツマンマシンを用いて、異種データの深層学習を行う異種データ深層学習装置であって、
第１種類のデータを構成する複数の第１種類ブロックと、第２種類のデータを構成する複数の第２種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成する初期データ生成部と、
前記制限付きボルツマンマシンのパラメタを初期化するパラメタ初期化部と、
前記可視層に前記初期データをセットし学習を行うことによって前記隠れ層を構成する隠れニューロンの出力値を求め、前記出力値に基づいてＣＤ法による学習を行うことによって前記初期データに対する誤差を求めるＲＢＭ学習実行部と、
前記誤差を用いて前記パラメタを更新するパラメタ更新部と、
前記更新されたパラメタに基づいて、少なくとも、前記制限付きボルツマンマシンのバイアスｂに関する学習中振動および前記隠れニューロンの状態変数ｈに関する学習中振動を算出するＷＤ算出部と、
前記隠れ層の隠れニューロンから、発火しており且つ前記状態変数ｈに関する学習中振動が所定の閾値以下である安定特徴ニューロンを抽出する安定特徴ニューロン抽出部と、
前記抽出された安定特徴ニューロンの一つからＣＤ法により、前記可視層を構成する可視ニューロンの出力値を求める可視ニューロン値算出部と、
前記複数の第１種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第１種類ブロックを第１種類候補ブロックとして抽出し、前記複数の第２種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第２種類ブロックを第２種類候補ブロックとして抽出する候補ブロック抽出部と、
まだ位置変更されていない前記第２種類候補ブロックの中でバイアスｂに関する学習中振動が最も高い第２種類候補ブロックが所定の第１種類候補ブロックから第１の距離範囲内にない場合、当該第２種類候補ブロックの位置を前記第１の距離範囲よりも短い第２の距離範囲内の位置に変更する候補ブロック位置変更部と、
を備えることを特徴とする異種データ深層学習装置。
【請求項２】
前記第１種類のデータは、複数の画像ブロックからなる画像データであり、前記第２種類のデータは、複数のＣＳＶブロックからなるＣＳＶデータであることを特徴とする請求項１に記載の異種データ深層学習装置。
【請求項３】
前記各ＣＳＶブロックは、複数の検査項目を含む検査の各項目にそれぞれ対応していることを特徴とする請求項２に記載の異種データ深層学習装置。
【請求項４】
前記画像データは、複数の前記画像ブロックを含む複数のイメージラインから構成されており、
前記初期データ生成部は、前記各イメージラインの前または後に前記ＣＳＶブロックを配置することにより前記初期データを生成することを特徴とする請求項２または３に記載の異種データ深層学習装置。
【請求項５】
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が最も高い第２種類候補ブロックの位置を、当該所定の第１種類候補ブロックの隣の位置に変更することを特徴とする請求項１〜４のいずれかに記載の異種データ深層学習装置。
【請求項６】
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が二番目に高い第２種類候補ブロックの位置を、前記第２の距離範囲内の位置に変更することを特徴とする請求項１〜５のいずれかに記載の異種データ深層学習装置。
【請求項７】
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が二番目に高い第２種類候補ブロックの位置を、前記バイアスｂに関する学習中振動が最も高い第２種類候補ブロックの隣の位置に変更することを特徴とする請求項６に記載の異種データ深層学習装置。
【請求項８】
前記ＷＤ算出部は、前記制限付きボルツマンマシンの重みＷに関する学習中振動およびバイアスｃに関する学習中振動を算出し、
前記隠れニューロンが前記重みＷに関する学習中振動および前記バイアスｃに関する学習中振動に基づく生成条件を満たす場合、前記制限付きボルツマンマシンの隠れニューロンを生成し、前記隠れニューロンが所定の消滅条件を満たす場合、当該隠れニューロンを消滅させるニューロン生成消滅部をさらに備えることを特徴とする請求項１〜７のいずれかに記載の異種データ深層学習装置。
【請求項９】
前記候補ブロック位置変更部による前記第２種類候補ブロックの位置変更結果に基づいて、前記第２種類ブロックの位置を変更するための位置変更情報を格納したルックアップテーブルを更新するルックアップテーブル更新部をさらに備えることを特徴とする請求項１〜８のいずれかに記載の異種データ深層学習装置。
【請求項１０】
前記ルックアップテーブルに基づいて学習用の入力データの配置を変更し、前記変更された入力データを学習済みのニューラルネットワークに与え、推論を行う推論部をさらに備えることを特徴とする請求項９に記載の異種データ深層学習装置。
【請求項１１】
可視層と隠れ層から構成される制限付きボルツマンマシンを用いて、異種データの深層学習を行う異種データ深層学習方法であって、
第１種類のデータを構成する複数の第１種類ブロックと、第２種類のデータを構成する複数の第２種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成するステップと、
前記制限付きボルツマンマシンのパラメタを初期化するステップと、
前記可視層に前記初期データをセットし学習を行うことによって前記隠れ層を構成する隠れニューロンの出力値を求め、前記出力値に基づいてＣＤ法による学習を行うことによって前記初期データに対する誤差を求めるステップと、
前記誤差を用いて前記パラメタを更新するステップと、
前記更新されたパラメタに基づいて、前記制限付きボルツマンマシンのバイアスｂに関する学習中振動および前記隠れニューロンの状態変数ｈに関する学習中振動を算出するステップと、
前記隠れ層の隠れニューロンから、発火しており且つ前記状態変数ｈに関する学習中振動が所定の閾値以下である安定特徴ニューロンを抽出するステップと、
前記抽出された安定特徴ニューロンの一つからＣＤ法により、前記可視層を構成する可視ニューロンの出力値を求めるステップと、
前記複数の第１種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第１種類ブロックを第１種類候補ブロックとして抽出し、前記複数の第２種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第２種類ブロックを第２種類候補ブロックとして抽出するステップと、
まだ位置変更されていない前記第２種類候補ブロックの中でバイアスｂに関する学習中振動が最も高い第２種類候補ブロックが所定の第１種類候補ブロックから第１の距離範囲内にない場合、当該第２種類候補ブロックの位置を前記第１の距離範囲よりも短い第２の距離範囲内の位置に変更するステップと、
を備えることを特徴とする異種データ深層学習方法。
【請求項１２】
可視層と隠れ層から構成される制限付きボルツマンマシンを用いて、異種データの深層学習を行うための異種データ深層学習プログラムであって、
第１種類のデータを構成する複数の第１種類ブロックと、第２種類のデータを構成する複数の第２種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成するステップと、
前記制限付きボルツマンマシンのパラメタを初期化するステップと、
前記可視層に前記初期データをセットし学習を行うことによって前記隠れ層を構成する隠れニューロンの出力値を求め、前記出力値に基づいてＣＤ法による学習を行うことによって前記初期データに対する誤差を求めるステップと、
前記誤差を用いて前記パラメタを更新するステップと、
前記更新されたパラメタに基づいて、少なくとも、前記制限付きボルツマンマシンのバイアスｂに関する学習中振動および前記隠れニューロンの状態変数ｈに関する学習中振動を算出するステップと、
前記隠れ層の隠れニューロンから、発火しており且つ前記状態変数ｈに関する学習中振動が所定の閾値以下である安定特徴ニューロンを抽出するステップと、
前記抽出された安定特徴ニューロンの一つからＣＤ法により、前記可視層を構成する可視ニューロンの出力値を求めるステップと、
前記複数の第１種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第１種類ブロックを第１種類候補ブロックとして抽出し、前記複数の第２種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第２種類ブロックを第２種類候補ブロックとして抽出するステップと、
まだ位置変更されていない前記第２種類候補ブロックの中でバイアスｂに関する学習中振動が最も高い第２種類候補ブロックが所定の第１種類候補ブロックから第１の距離範囲内にない場合、当該第２種類候補ブロックの位置を前記第１の距離範囲よりも短い第２の距離範囲内の位置に変更するステップと、
をコンピュータに実行させる異種データ深層学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異種データ深層学習装置、異種データ深層学習方法、および異種データ深層学習プログラムに関し、より詳しくは、異種データの深層学習を比較的短時間で実行することが可能な異種データ深層学習装置、異種データ深層学習方法、および異種データ深層学習プログラムに関する。
【背景技術】
【０００２】
従来、深層学習が取り扱う主なデータは画像データであったが、数値、テキスト、シンタックスなどの異なる種類のデータを同時に一つの情報として処理することが求められている。すなわち、異なる種類のデータを含むデータを学習データとして深層学習を行うことが求められている。異種データとして、例えば医療検診データが挙げられる。医療検診データは、Ｘ線撮影の画像データと血液検査データのように、異なる種類のデータを含む。
【０００３】
一般に、ビッグデータの深層学習（Ｄｅｅｐ  ｌｅａｒｎｉｎｇ）には長時間の計算が必要である。リアルタイム性が求められる分野（ＩＯＴ機器の制御、リアルタイム予測システム等）への応用などに向けて、より短時間で学習を終了することが望まれている。
【０００４】
なお、深層学習については、下記の非特許文献の技術が知られている。
【０００５】
非特許文献１には、制限付きボルツマンマシン（Ｒｅｓｔｒｉｃｔｅｄ  Ｂｏｌｔｚｍａｎｎ  Ｍａｃｈｉｎｅ：ＲＢＭ）（以下、単に「ＲＢＭ」ともいう。）について記載されている。ＲＢＭは、可視層と隠れ層の２層から構成されるネットワーク構造を持っており、確率分布に基づいて入力データに含まれる特徴を隠れニューロン上で学習可能な学習モデルである。ＲＢＭでは、同じ層のニューロン間の結合が無いため、計算量を削減できるとともに、隠れ層のニューロンごとに独立した確率分布を学習することが可能である。
【０００６】
非特許文献２には、コントラスティブダイバージェンス（Ｃｏｎｔｒａｓｔｉｖｅ  Ｄｉｖｅｒｇｅｎｃｅ：ＣＤ）法について記載されている。このＣＤ法により、ＲＢＭのパラメタを比較的少ない計算量で更新することが可能になる。
【０００７】
非特許文献３には、ディープビリーフネットワーク（Ｄｅｅｐ  Ｂｒｉｅｆ  Ｎｅｔｗｏｒｋ：ＤＢＮ）について記載されている。ＤＢＮは、深層学習の一つの手法であり、学習済みのＲＢＭを複数積み重ねて層数を増やすことで、入力データの特徴を階層的に学習することが可能である。
【０００８】
非特許文献４および５には、ＲＢＭにおけるニューロン生成・消滅アルゴリズムが記載されている。ＲＢＭのパラメタ（具体的には、重みとバイアスc）の変化をモニタリングすることによって、隠れニューロンの生成や消滅が行われる。
【０００９】
非特許文献６には、重みの変分ベクトルを用いて隠れニューロンの数を適応的に変更する手法が記載されている。また、学習中における重みの変分ベクトルの変化量をＷａｌｋｉｎｇ  Ｄｉｓｔａｎｃｅ（ＷＤ）と定義することが記載されている。
【００１０】
非特許文献７には、ＤＢＮにおける階層化条件などが記載されている。非特許文献８および９には、Ｒｅｃｕｒｒｅｎｔ  Ｔｅｍｐｏｒａｌ  ＲＢＭ（ＲＴＲＢＭ）について記載されている。非特許文献１０には、ＲＴＲＢＭを改良したＲＮＮ−ＲＢＭが記載されている。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】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.
【非特許文献２】G.E.Hinton, Training products of experts by minimizing contrastive divergence, Neural Computation, vol.14, pp.1771-1800, 2002.
【非特許文献３】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.
【非特許文献４】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.
【非特許文献５】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.
【非特許文献６】T.Ichimura and K.Yoshida Eds., Knowledge-Based Intelligent Systems for Health Care, Advanced Knowledge International, ISBN 0-9751004-4-0, 2004.
【非特許文献７】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.
【非特許文献８】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.
【非特許文献９】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.
【非特許文献１０】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.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来、異種データの深層学習を行う場合、各データの深層学習を個別に行い、その後、データごとの学習結果を統合するという多段的な学習方法が採られている。その他、異種データが構成する複素空間を幾何的な特徴により表現する方法が提案されている。しかしながら、いずれの方法も学習時間を短縮することが難しいという課題がある。
【００１３】
本発明は、上記の認識に基づいてなされたものであり、深層学習による異種データの学習時間を短縮することができる異種データ深層学習装置、異種データ深層学習方法、および異種データ深層学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る異種データ深層学習装置は、
可視層と隠れ層から構成される制限付きボルツマンマシンを用いて、異種データの深層学習を行う異種データ深層学習装置であって、
第１種類のデータを構成する複数の第１種類ブロックと、第２種類のデータを構成する複数の第２種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成する初期データ生成部と、
前記制限付きボルツマンマシンのパラメタを初期化するパラメタ初期化部と、
前記可視層に前記初期データをセットし学習を行うことによって前記隠れ層を構成する隠れニューロンの出力値を求め、前記出力値に基づいてＣＤ法による学習を行うことによって前記初期データに対する誤差を求めるＲＢＭ学習実行部と、
前記誤差を用いて前記パラメタを更新するパラメタ更新部と、
前記更新されたパラメタに基づいて、少なくとも、前記制限付きボルツマンマシンのバイアスｂに関する学習中振動および前記隠れニューロンの状態変数ｈに関する学習中振動を算出するＷＤ算出部と、
前記隠れ層の隠れニューロンから、発火しており且つ前記状態変数ｈに関する学習中振動が所定の閾値以下である安定特徴ニューロンを抽出する安定特徴ニューロン抽出部と、
前記抽出された安定特徴ニューロンの一つからＣＤ法により、前記可視層を構成する可視ニューロンの出力値を求める可視ニューロン値算出部と、
前記複数の第１種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第１種類ブロックを第１種類候補ブロックとして抽出し、前記複数の第２種類ブロックから、発火した可視ニューロンが所定の比率以上を占める第２種類ブロックを第２種類候補ブロックとして抽出する候補ブロック抽出部と、
まだ位置変更されていない前記第２種類候補ブロックの中でバイアスｂに関する学習中振動が最も高い第２種類候補ブロックが所定の第１種類候補ブロックから第１の距離範囲内にない場合、当該第２種類候補ブロックの位置を前記第１の距離範囲よりも短い第２の距離範囲内の位置に変更する候補ブロック位置変更部と、
を備えることを特徴とする。
【００１５】
また、前記異種データ深層学習装置において、
前記第１種類のデータは、複数の画像ブロックからなる画像データであり、前記第２種類のデータは、複数のＣＳＶブロックからなるＣＳＶデータであってもよい
また、前記異種データ深層学習装置において、
前記各ＣＳＶブロックは、複数の検査項目を含む検査の各項目にそれぞれ対応していてもよい。
【００１６】
また、前記異種データ深層学習装置において、
前記画像データは、複数の前記画像ブロックを含む複数のイメージラインから構成されており、
前記初期データ生成部は、前記各イメージラインの前または後に前記ＣＳＶブロックを配置することにより前記初期データを生成してもよい。
【００１７】
また、前記異種データ深層学習装置において、
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が最も高い第２種類候補ブロックの位置を、当該所定の第１種類候補ブロックの隣の位置に変更してもよい。
【００１８】
また、前記異種データ深層学習装置において、
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が二番目に高い第２種類候補ブロックの位置を、前記第２の距離範囲内の位置に変更してもよい。
【００１９】
また、前記異種データ深層学習装置において、
前記候補ブロック位置変更部は、前記バイアスｂに関する学習中振動が二番目に高い第２種類候補ブロックの位置を、前記バイアスｂに関する学習中振動が最も高い第２種類候補ブロックの隣の位置に変更してもよい。
【００２０】
また、前記異種データ深層学習装置において、
前記ＷＤ算出部は、前記制限付きボルツマンマシンの重みＷに関する学習中振動およびバイアスｃに関する学習中振動を算出し、
前記隠れニューロンが前記重みＷに関する学習中振動および前記バイアスｃに関する学習中振動に基づく生成条件を満たす場合、前記制限付きボルツマンマシンの隠れニューロンを生成し、前記隠れニューロンが所定の消滅条件を満たす場合、当該隠れニューロンを消滅させるニューロン生成消滅部をさらに備えてもよい。
【００２１】
また、前記異種データ深層学習装置において、
前記候補ブロック位置変更部による前記第２種類候補ブロックの位置変更結果に基づいて、前記第２種類ブロックの位置を変更するための位置変更情報を格納したルックアップテーブルを更新するルックアップテーブル更新部をさらに備えてもよい。
【００２２】
また、前記異種データ深層学習装置において、
前記ルックアップテーブルに基づいて学習用の入力データの配置を変更し、前記変更された入力データを学習済みのニューラルネットワークに与え、推論を行う推論部をさらに備えてもよい。
【発明の効果】
【００２３】
本発明によれば、深層学習による異種データの学習時間を短縮することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る異種データ深層学習装置１の概略的な機能ブロック図である。
【図２】異種データ深層学習装置１に設けられる制御部１０の概略的な機能ブロック図である。
【図３】第１種類のデータとしての画像データのデータ構造を示す図である。
【図４】第２種類のデータとしてのＣＳＶデータのデータ構造を示す図である。
【図５】（ａ）は複数の画像ブロックの並びとして表された画像データを示す図であり、（ｂ）は複数のＣＳＶブロックの並びとして表されたＣＳＶデータを示す図である。
【図６】画像データを構成する複数のイメージラインと、ＣＳＶデータを構成する複数のＣＳＶブロックとの配置関係の一例を示す図である。
【図７】初期データの一例を示す図である。
【図８】制限付きボルツマンマシンの構造を示す図である。
【図９】異種データ深層学習に係る処理フロー（全体）を示すフローチャートである。
【図１０】ＣＤ法による学習アルゴリズムに係る処理フローを示すフローチャートである。
【図１１】ニューロン生成・消滅に係る処理フローを示すフローチャートである。
【図１２】異種データ学習アルゴリズムに係る処理フローを示すフローチャートである。
【図１３】安定特徴ニューロンから可視層の可視ニューロンの出力値を算出するステップを説明するための図である。
【図１４】画像候補ブロックおよびＣＳＶ候補ブロックを抽出するステップを説明するための図である。
【図１５】ＣＳＶ候補ブロックを移動させるか否かを判定するステップを説明するための図である。
【図１６】ＣＳＶ候補ブロックの位置を変更するステップを説明するための図である。
【図１７】位置変更結果に基づいて更新されたルックアップテーブルの一例を示す図である。
【図１８】学習後のニューラルネットワークを用いた推論に係る処理フローを示すフローチャートである。
【図１９】推論に用いる画像データとＣＳＶデータの一例を示す図である。
【図２０】ルックアップテーブルの一例を示す図である。
【図２１】ルックアップテーブルを用いてＣＳＶブロックの位置を変更した後の状態を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明に係る実施形態について図面を参照しながら説明する。
【００２６】
まず、図１を参照して、本発明の実施形態に係る異種データ深層学習装置１について説明する。
【００２７】
異種データ深層学習装置１は、制限付きボルツマンマシン（ＲＢＭ）を用いて、異種データの深層学習を行うための情報処理装置である。異種データ深層学習装置１は、パソコン、タブレット端末またはスマートフォン等の情報処理端末として構成される。なお、異種データ深層学習装置１は、クライアント側の端末ないし機器から学習用データを受信し、学習完了後、学習結果を返すサーバ装置として構成されてもよい。
【００２８】
異種データ深層学習装置１は、図１に示すように、制御部１０と、通信部３０と、操作入力部４０と、表示部５０と、記憶部６０と、を備えている。なお、異種データ深層学習装置１は、学習データを入力するために、光学ドライブやメモリカードスロットなどの情報取込部（図示せず）を備えてもよい。
【００２９】
制御部１０は、異種データ深層学習装置１の動作を制御するものであり、ハードウェアとしてはＣＰＵ（中央処理装置）等のプロセッサにより構成される。本実施形態では、制御部１０は、異種データ深層学習装置１内のプロセッサが所定のプログラムを実行することにより実現される。なお、制御部１０の少なくとも一部がＡＳＩＣ等のハードウェアにより構成されてもよい。制御部１０の詳細については後ほど詳しく説明する。
【００３０】
通信部３０は、異種データ深層学習装置１と外部の情報処理装置（図示せず）との間で情報を送受信する。例えば、通信部３０は、外部の情報処理装置から、学習用データ（後述の画像データやＣＳＶデータなど）を受信する。なお、通信部３０は、インターネット経由で通信接続されたＩＯＴ機器から直接、データを受信してもよい。なお、通信部３０による通信は、有線・無線の別を問わず、また通信プロトコルも限定されない。
【００３１】
操作入力部４０は、ユーザが異種データ深層学習装置１に情報を入力するためのインターフェースであり、例えば、キーボード、マウス、タッチパネル、ボタン等である。
【００３２】
表示部５０は、ユーザへ各種情報（例えば学習結果、推定結果など）を出力するインターフェースである。この表示部５０は、例えば、映像を表示するディスプレイ（液晶ディスプレイ、有機ＥＬディスプレイ等）である。
【００３３】
記憶部６０は、ハードディスクまたは半導体メモリなどから構成される記憶装置である。この記憶部６０には、制御部１０による情報処理に必要なデータ（学習用データなど）が記憶されるとともに、制御部１０により生成された情報（学習結果など）が記憶される。なお、制御部１０により実行されるプログラムが記憶部６０に記憶されていてもよい。
【００３４】
次に、図２を参照して、制御部１０について詳しく説明する。
【００３５】
制御部１０は、図２に示すように、初期データ生成部１１と、パラメタ初期化部１２と、ＲＢＭ学習実行部１３と、パラメタ更新部１４と、ＷＤ算出部１５と、ニューロン生成消滅部１６と、安定特徴ニューロン抽出部１７と、可視ニューロン値算出部１８と、候補ブロック抽出部１９と、候補ブロック位置変更部２０と、ルックアップテーブル更新部２１と、推論部２２と、を備えている。
【００３６】
なお、符号１１〜符号２２で示される各機能部は、通信接続された複数の情報処理装置に分散して設けられ、これら複数の情報処理装置が協働することにより制御部１０の機能が実現されてもよい。また、推論部２２は、それ単体で別の情報処理装置（推論実行装置）に設けられてもよい。
【００３７】
制御部１０の各機能部について詳しく説明する。
【００３８】
初期データ生成部１１は、第１種類のデータを構成する複数の第１種類ブロックと、第２種類のデータを構成する複数の第２種類ブロックとを所定の配置ルールに従って配置することにより初期データを生成する。
【００３９】
本実施形態では、第１種類のデータは画像データであり、第２種類のデータはＣＳＶデータ（ＣＳＶ：Ｃｏｍｍａ−Ｓｅｐａｔａｔｅｄ  Ｖａｌｕｅｓ）である。画像データは、例えば、医療画像データ（Ｘ線、ＣＴ、ＭＲＩ、ＰＥＴ、超音波等）である。ＣＳＶデータは、数値、テキストおよびシンタックスのうち少なくともいずれか一つを含むデータである。ＣＳＶデータは、例えば、血液検査などの数値データ、ＩＯＴセンサーデバイスからの計測データ、問診結果などの文字データである。なお、音声や動画のような時系列データを学習データとしても用いてもよい。本発明では、任意の異なる種類のデータを深層学習の学習用データとしてもよい。
【００４０】
第１種ブロックおよび第２種類ブロックの配置ルールは、特に限定されないが、本実施形態における配置方法（初期データの生成方法）について、図３〜図７を参照して説明する。
【００４１】
図３は、画像データのデータ構造を示している。縦横Ｘピクセルの画像データが、画像ブロックＩＢ１１，ＩＢ１２，・・・，ＩＢＮＮにより構成されている。各画像ブロックには、１または複数のピクセルのデータが含まれる。本実施形態では、各ピクセルは、１ビットのデータ（すなわち、白または黒）を有する。なお、各画像ブロックの大きさは、本実施形態では同じ（例えば３ビット）であるが、互いに異なってもよい。また、ピクセルが複数ビットのデータを有する場合、当該ピクセルを複数の白黒ピクセルの並びとみなす。例えば、“１０１”の情報を有するピクセルの場合、３個の白黒ピクセル（“１”，“０”，“１”）の並びとみなす。
【００４２】
図３に示すように、画像データは、Ｎ個のイメージラインＩＬ１，ＩＬ２，・・・，ＩＬＮにより構成されている。例えば、イメージラインＩＬ１は、Ｎ個の画像ブロックＩＢ１１，ＩＢ１２，・・・，ＩＢ１Ｎを含んでいる。このように画像データは、複数の画像ブロックを含む複数のイメージラインから構成されている。図５（ａ）は、Ｎ個のイメージラインで表された画像データを示している。
【００４３】
図４は、ＣＳＶデータのデータ構造を示している。Ｍビットのデータが、Ｑ個のＣＳＶブロックＣＢ１，ＣＢ２，・・・，ＣＢＱにより構成されている。図４に示すように、ＣＳＶブロックＣＢ１は３ビットであり、ＣＳＶブロックＣＢ２は２ビットである。このように、各ＣＳＶブロックの大きさは異なっている。なお、各ＣＳＶブロックの大きさは同じであってもよい。図５（ｂ）は、Ｑ個のＣＳＶブロックで表されたＣＳＶデータを示している。
【００４４】
本実施形態では、各ＣＳＶブロックは、複数の検査項目を含む検査の各項目にそれぞれ対応している。図４の例では、Ｑ個のＣＳＶブロックがそれぞれ別の検査項目の結果に関する情報を有している。ＣＳＶデータが血液検査の結果を示す場合、各ＣＳＶブロックは、検査項目ごとの血液検査結果を含んでいる。例えば、ＣＳＶブロックＣＢ１は、ある項目についての検査結果（例えばγ−ＧＴＰ）が正常値、異常値（下）または異常値（上）を示す、３ビットのｏｎｅ−ｈｏｔベクトルである。この場合、ＣＳＶブロックＣＢ１の値は、検査値が基準範囲内であれば“１００”であり、基準範囲より下であれば“０１０”であり、基準範囲より上であれば“００１”である。
【００４５】
初期データ生成部１１は、各イメージラインの前または後にＣＳＶブロックを少なくとも一つ配置することにより初期データを生成する。例えば、初期データ生成部１１は、図６に示すように、イメージラインＩＬｋの後にＣＳＶブロックＣＢｋ（ｋ＝１，２，・・・，Ｎ）を配置する。Ｑ＞Ｎの場合はＣＳＶブロックが余ることになるが、余ったＣＳＶブロックは例えば図６に示すように、ＣＳＶブロックＣＢＮの後に配置する。図７は、このような配置ルールにより生成された初期データを示している。
【００４６】
なお、初期データ生成部１１は、各イメージラインの後に複数のＣＳＶブロックを配置してもよい。例えば、イメージラインＩＬ１の後にＣＳＶブロックＣＢ１とＣＳＶブロックＣＢ２を配置してもよい。
【００４７】
初期データ生成部１１による初期データの生成方法は上記に限られない。例えば、より単純な形態として、Ｎ個のイメージラインＩＬ１，ＩＬ２，・・・，ＩＬＮの後に、Ｑ個のＣＳＶブロックＣＢ１，ＣＢ２，・・・，ＣＢＱを配置してもよい。あるいは、画像ブロックとＣＳＶブロックを交互に配置することにより初期データを生成してもよい。このように初期データ生成部１１による初期データの生成方法は、特に限定されない。
【００４８】
ここで、制限付きボルツマンマシン（ＲＢＭ）の構造について説明する。ＲＢＭは、図８に示すように、可視層と隠れ層から構成される。可視層はＩ個の可視ニューロンｖ０，ｖ１，・・・，ｖＩからなり、隠れ層はＪ個の隠れニューロンｈ０，ｈ１，・・・，ｈＪからなる。図３〜図７で説明した例の場合、可視層には、Ｘ２＋Ｍ個の可視ニューロンが必要である。隠れ層には、分類に必要な十分な数の隠れニューロンがあればよい。隠れニューロンの数は、例えば、学習前に予め決定された値を用いる。
【００４９】
ＲＢＭの可視層は、式（１）に示すベクトルｖで表され、ＲＢＭの隠れ層は、式（２）に示すベクトルｈで表される。ベクトルｖ，ｈの各成分は、０または１の値をとる。
【数１】
2019074946.tif 000003
【数２】
2019074946.tif 000004
【００５０】
パラメタ初期化部１２は、制限付きボルツマンマシンのパラメタ（ベクトルθ）を初期化する。ベクトルθは、式（３）に示すように、ベクトルｂ、ベクトルｃおよびベクトルＷを含む。
【数３】
2019074946.tif 000005
【数４】
2019074946.tif 000006
【数５】
2019074946.tif 000007
【数６】
2019074946.tif 000008
【００５１】
ベクトルｂの成分ｂｉは可視ニューロンｖｉのバイアスであり、ベクトルｃの成分ｃｊは隠れニューロンｈｊのバイアスである。ベクトルＷの成分Ｗｉｊは可視ニューロンｖｉと隠れニューロンｈｊの間の結合加重を示す重みである。
【００５２】
ＲＢＭ学習実行部１３は、制限付きボルツマンマシンの可視層に、初期データ生成部１１により生成された初期データ（ベクトルｖ）をセットし、学習を行うことによって、隠れ層を構成する隠れニューロンの出力値を求める。具体的には、セットされた初期データに対する隠れニューロンの発火確率を式（７）により計算する。ＲＢＭ学習実行部１３は、計算された発火確率により隠れニューロンの出力値（０または１）を求める。
【００５３】
なお、ＤＢＮを適用する場合、ＲＢＭ学習実行部１３は、第ｌ層（ｌ＞１）ＲＢＭの可視層に、第ｌ−１層ＲＢＭの出力データをセットし、学習を行うことによって、第ｌ層ＲＢＭの隠れ層を構成する隠れニューロンの出力値を求める。
【数７】
2019074946.tif 000009
【００５４】
式（７）の左辺は、入力データ（ベクトルｖ）が与えられた場合にｊ番目の隠れニューロン（ｈｊ）の出力値が１になる（すなわち発火する）確率を示している。なお、式（７）の右辺の関数ｓｉｇｍはシグモイド関数である。なお、出力関数は、シグモイド関数以外の関数（ランプ関数など）であってもよい。
【００５５】
すべての隠れニューロンの出力値が求められた後、ＲＢＭ学習実行部１３は、求められた出力値に基づいて、コントラスティブダイバージェンス法（ＣＤ法）による学習を行うことによって初期データに対する誤差を求める。具体的には、まず、ＲＢＭ学習実行部１３は、隠れニューロンの出力値に対する可視ニューロンの発火確率を式（８）により計算する。
【数８】
2019074946.tif 000010
【００５６】
式（８）の左辺は、隠れニューロンの出力データ（ベクトルｈ）が与えられた場合における、ｉ番目の可視ニューロン（ｖｉ）の出力値が１になる（すなわち発火する）確率である。ＲＢＭ学習実行部１３は、計算された確率により可視ニューロンの出力値（０または１）を求める。なお、ＣＤ法として、例えばＣＤ−１法を用いる。
【００５７】
ＲＢＭ学習実行部１３は、入力データ（ベクトルｖ）と、求められた可視ニューロンのデータ（ベクトルｖ’）とを用いて誤差を計算する。誤差として、例えば、ベクトルｖとベクトルｖ’の二乗和誤差を求める。
【００５８】
パラメタ更新部１４は、ＲＢＭ学習実行部１３により求められた誤差を用いてパラメタ（ベクトルθ）を更新する。より具体的には、パラメタ更新部１４は、誤差が最小になるようにパラメタ（ベクトルθ）を更新する。
【００５９】
ＷＤ算出部１５は、制限付きボルツマンマシンの変数に関する学習中振動を算出する。「学習中振動」とは、対象の変数が学習中にどれくらい振動しているのかを測るための指標である。以下の説明では、学習中振動を単にＷＤ（Ｗａｌｋｉｎｇ  Ｄｉｓｔａｎｃｅ）とも呼ぶ。変数には、制限付きボルツマンマシンのパラメタｂｊ，ｃｊ，Ｗｊおよび隠れニューロンの状態変数ｈｊがある。
【００６０】
ＷＤ算出部１５は、パラメタ更新部１４により更新されたパラメタ（ベクトルθ）に基づいて、制限付きボルツマンマシンのパラメタｂ，ｃ，Ｗに関する学習中振動と、制限付きボルツマンマシンの隠れニューロンの状態変数ｈに関する学習中振動を算出する。具体的には、ＷＤ算出部１５は、式（９）、（１０）、（１１）、（１２）を用いて変数Ｗｊ，ｃｊ，ｂｊ，ｈｊに関するＷＤをそれぞれ、各ｊ（＝１，２，．．．，Ｊ）について算出する。
【００６１】
なお、ニューロンの生成消滅を行わない場合は、パラメタｃ，Ｗに関する学習中振動を算出する必要はない。よって、ＷＤ算出部１５は、少なくとも、制限付きボルツマンマシンのパラメタｂに関する学習中振動と、制限付きボルツマンマシンの隠れニューロンの状態変数ｈに関する学習中振動を算出する。
【数９】
2019074946.tif 000011
【数１０】
2019074946.tif 000012
【数１１】
2019074946.tif 000013
【数１２】
2019074946.tif 000014
【００６２】
上記の式（９）〜式（１２）から分かるように、学習中振動ＷＤは、Ｔ−１回目までの学習による対象変数のＷＤと、Ｔ回目の学習による対象変数の変化量との和を計算することにより得られる。
【００６３】
式（９）のγＷは、右辺第一項と右辺第二項の影響度を調整するパラメタであり、０より大きく、１より小さい値をとる。式（１０）のγｃ、式（１１）のγｂ、式（１２）のγｈについても同様である。
【００６４】
式（９）の変分ベクトルＷｊ［Ｔ］は、Ｔ回目の学習における、ｊ番目の隠れニューロンに関連する重みの変化量を示す変分ベクトルである。式（１０）のｃｊ［Ｔ］、式（１０）のｂｊ［Ｔ］、式（１１）のｈｊ［Ｔ］についても同様である。なお、Ｗｊ［０］，ｃｊ［０］，ｂｊ［０］は、パラメタ初期化部１２により初期化された値をとり、ｈｊ［０］は、すべてのｊについて零である。
【００６５】
式（９）〜式（１２）の関数Ｍｅｔは、ベクトル間の距離を計算するための距離関数であり、本実施形態では、引数のベクトル間のユークリッド距離を返す関数である。
【００６６】
ニューロン生成消滅部１６は、制限付きボルツマンマシンに対して、隠れニューロンの生成消滅アルゴリズムを実行する。より詳しくは、ニューロン生成消滅部１６は、制限付きボルツマンマシンの隠れニューロンが所定の生成条件を満たす場合、隠れニューロンを生成する。例えば、生成条件を満たす隠れニューロンの隣に新たな隠れニューロンを追加する。一方、隠れニューロンが所定の消滅条件を満たす場合、ニューロン生成消滅部１６は、その隠れニューロンを消滅させる。なお、隠れニューロンの生成・消滅は、例えば、安定特徴ニューロン抽出部１７が安定特徴ニューロン（後述）を抽出する前に行われる。
【００６７】
ここで、隠れニューロンの生成・消滅について、より詳しく説明する。
【００６８】
ニューロン生成消滅部１６は、ｊ番目の隠れニューロンが式（１３）の生成条件を満たす場合、新しい隠れニューロンを生成し、ｊ＋１番目の隠れニューロンとして隠れ層に挿入する。
【数１３】
2019074946.tif 000015
ここで、αｃはｄｃｊに対するパラメタの定数であり、正の値をとる。ｄｃｊはバイアスｃｊに関するＷＤである。αＷはｄＷｊに対するパラメタの定数であり、正の値をとる。ｄＷｊは重みＷｊに関するＷＤである。θＧはニューロン生成に関わる閾値であり、正の値をとる。式（１３）から分かるように、隠れニューロンの生成条件は、重みＷに関する学習中振動およびバイアスｃに関する学習中振動に基づく。
【００６９】
一方、ニューロン生成消滅部１６は、ｊ番目の隠れニューロンが式（１４）の消滅条件を満たす場合、その隠れニューロンを除去する。
【数１４】
2019074946.tif 000016
ここで、Ｎは入力データのサンプル数（ベクトルｖのサンプル数）であり、θＡはニューロン消滅に関わる閾値であり、０より大きく、１より小さい値をとる。
【００７０】
なお、ニューロン生成消滅部１６は、必須の構成ではない。後述の異種データ学習アルゴリズムを実行するために、ある程度の数の隠れニューロンが得られれば、隠れニューロンの生成・消滅を行なわくてもよい。あるいは、他の手法（例えば、手動による試行錯誤により隠れニューロン数の最適値を見つける等）により、必要な数の隠れニューロンを確保してもよい。
【００７１】
安定特徴ニューロン抽出部１７は、隠れ層の隠れニューロンから、安定特徴ニューロンを抽出する。本願において、安定特徴ニューロンとは、発火しており（すなわち、出力値“１”）、且つ状態変数ｈに関する学習中振動（ＷＤ）が所定の閾値以下である隠れニューロンをいう。つまり、安定特徴ニューロンは、特徴有りとの出力を行っている隠れニューロンのうち、学習中の振動が比較的小さく、安定している隠れニューロンのことである。安定特徴ニューロン抽出部１７は、隠れ層を構成する複数の隠れニューロンから、１または複数の安定特徴ニューロンを抽出する。
【００７２】
可視ニューロン値算出部１８は、安定特徴ニューロン抽出部１７により抽出された安定特徴ニューロンの一つからＣＤ法により、可視層を構成する可視ニューロンの出力値を求める。具体的には、可視ニューロン値算出部１８は、式（１５）を用いて可視ニューロンの出力値を算出する。式（１５）は、抽出されたＰ個の安定特徴ニューロンの中のｐ番目の安定特徴ニューロンから可視ニューロンｖｉ（ｉ＝１，２，・・・，Ｉ）の出力値を求めるための計算式である。
【数１５】
2019074946.tif 000017
【００７３】
候補ブロック抽出部１９は、可視層にセットされた初期データ（より一般には入力データ）における複数の画像ブロックから、発火した可視ニューロンが所定の比率以上を占める画像ブロックを画像候補ブロック（ＩＢ＿Ｃａｎｄ）として少なくとも１つ抽出する。所定の比率は、例えば５０％である。
【００７４】
また、候補ブロック抽出部１９は、可視層にセットされた初期データ（より一般には入力データ）における複数のＣＳＶブロックから、発火した可視ニューロンが所定の比率以上を占めるＣＳＶブロックをＣＳＶ候補ブロック（ＣＢ＿Ｃａｎｄ）として抽出する。所定の比率は、例えば５０％である。
【００７５】
候補ブロック位置変更部２０は、学習中振動が高いＣＳＶ候補ブロックを所定の画像候補ブロックの近傍に移動させる。これにより、ＣＳＶ候補ブロックに含まれる可視ニューロンの出力値（可視ニューロン値算出部１８により算出された値）は画像候補ブロックの近傍に移動される。すなわち、ＣＳＶ候補ブロックの移動により、移動前の状態においてＣＳＶ候補ブロックに包含される可視ニューロンの出力値が、移動後のＣＳＶ候補ブロックに包含される可視ニューロンの値となる。
【００７６】
より詳しくは、候補ブロック位置変更部２０は、まだ位置変更されていないＣＳＶ候補ブロックの中でバイアスｂに関する学習中振動が最も高いＣＳＶ候補ブロックが、所定の画像候補ブロックから第１の距離範囲内にない場合、当該ＣＳＶ候補ブロックの位置を第１の距離範囲よりも短い第２の距離範囲内の位置に変更する。第１の距離範囲は、例えば、画像候補ブロックから±５０ブロックの範囲である。第２の距離範囲は、例えば、画像候補ブロックから±１０ブロックの範囲である。
【００７７】
複数のＣＳＶ候補ブロック間で、バイアスｂに関する学習中振動の値を比較するために、候補ブロック位置変更部２０は、“ＣＳＶ候補ブロックの”バイアスｂに関する学習中振動を算出する。例えば、ＣＳＶ候補ブロックが可視層に占める位置に含まれる可視ニューロンの、バイアスｂｊに関する学習中振動の平均値を計算し、その平均値を当該ＣＳＶ候補ブロックの、バイアスｂに関する学習中振動とする。例えば、ＣＳＶ候補ブロックが可視層に占める位置に、２個の可視ニューロンが含まれ、一方の可視ニューロンの、バイアスｂに関する学習中振動の値がｘであり、他方の可視ニューロンの、バイアスｂに関する学習中振動の値がｙである場合、そのＣＳＶ候補ブロックの、バイアスｂに関する学習中振動は、（ｘ＋ｙ）／２となる。なお、その他の計算手法を用いて、ＣＳＶ候補ブロックの学習中振動の値を計算してもよい。
【００７８】
ルックアップテーブル更新部２１は、候補ブロック位置変更部２０によるＣＳＶ候補ブロックの位置変更結果に基づいて、ルックアップテーブルを更新する。このルックアップテーブルは、ＣＳＶブロックの位置を変更するための位置変更情報を格納したテーブルである。
【００７９】
推論部２２は、学習後のニューラルネットワークを用いた推論を行う。この推論部２２は、ルックアップテーブル更新部２１により作成されたルックアップテーブルに基づいて学習用の入力データの配置を変更し、変更された入力データを学習済みのニューラルネットワークに与え、推論を行う。
【００８０】
以上説明したように、異種データ深層学習装置１では、異種データを構成するブロック（第１種ブロック、第２種類ブロック）を所定の配置ルールに従って組み合わせることにより初期データを生成する。これにより、異種データを一連の入力データとして取り扱うことができる。例えば、様々なＩＯＴデバイスから収集された異種データを１つのデータとして処理することができる。また、１つの学習プロセスにより学習を進めることができるようになるので、従来の多段的な学習方法に比べて学習速度の向上を図ることができる。
【００８１】
そして、異種データ深層学習装置１では、学習中振動が比較的高い（すなわち、学習がそれほど進んでいない）第２種類候補ブロックを、関連性の高い第１種類候補ブロックの近傍に位置変更する。これにより、異種データの深層学習に要する時間を短縮することができる。すなわち、第１種類のデータと第２種類のデータ間でデータの分布が均一でないために深層学習が収束しにくいところ、本実施形態では、特徴を有し且つ学習の進んだ安定特徴ニューロンに着目し、安定特徴ニューロンを基点としたＣＤ法による計算結果に基づいて、特徴が類似する異種のブロック（第１種類候補ブロック、第２種類候補ブロック）を抽出し、抽出された異種ブロックを近接配置する。これにより、本実施形態によれば、深層学習の収束速度が向上し、異種データの学習時間を短縮することができる。また、第２種類候補ブロックの中でも比較的学習の進んでいないブロックから優先して第１種類候補ブロックの近傍に位置変更することで、深層学習の収束速度をさらに向上させている。
【００８２】
また、本実施形態によれば、深層学習を行う際のニューラルネットワークの設計や、パラメタの設定を容易に行うこともできる。
【００８３】
なお、候補ブロック位置変更部２０は、バイアスｂに関する学習中振動が最も高いＣＳＶ候補ブロックの位置を、所定の画像候補ブロックの隣の位置に変更することが好ましい。つまり、第２の距離範囲を１としてもよい。これにより、学習効率が向上し、計算時間をさらに短縮することができる。
【００８４】
また、候補ブロック位置変更部２０は、バイアスｂに関する学習中振動が二番目に高いＣＳＶ候補ブロックの位置を第２の距離範囲内の位置に変更してもよい。これにより、学習効率が向上し、計算時間をさらに短縮することができる。
【００８５】
また、候補ブロック位置変更部２０は、バイアスｂに関する学習中振動が二番目に高いＣＳＶ候補ブロックの位置を、バイアスｂに関する学習中振動が最も高いＣＳＶ候補ブロックの隣の位置に変更してもよい。
【００８６】
一般的に言えば、候補ブロック位置変更部２０は、バイアスｂに関する学習中振動がｘ番目（ｘは２以上の整数）に高い複数のＣＳＶ候補ブロックの位置を第２の距離範囲内の位置に変更してもよい。これにより、適切な数の隠れニューロンが存在する条件下においては、学習精度を向上させ、計算時間をさらに短縮することができる。
【００８７】
また、異種データ深層学習装置１は、一つの情報処理装置ではなく、互いに通信接続された複数の情報処理装置から構成されてもよい。例えば、ニューロン生成・消滅アルゴリズム、ＣＤ法による学習アルゴリズム、異種データ学習アルゴリズム等の各種アルゴリズムをそれぞれ別の情報処理装置が実行するようにしてもよい。
【００８８】
＜異種データ深層学習方法＞
上記の異種データ深層学習装置１による異種データ深層学習方法について、図９〜図１２のフローチャートに沿って説明する。図９は、異種データ深層学習に係る処理フローの全体を示す。図１０は、図９のステップＳ４（ＣＤ法による学習アルゴリズム）に係る処理フローを示す。図１１は、図９のステップＳ６（ニューロン生成・消滅アルゴリズム）に係る処理フローを示す。図１２は、図９のステップＳ８（異種データ学習アルゴリズム）に係る処理フローを示す。
【００８９】
まず、初期データ生成部１１は、異なる２つのデータ（第１種類のデータと第２種類のデータ）に基づいて、学習用の初期データを生成する（ステップＳ１）。本実施形態では、画像データとＣＳＶデータを所定の配置ルールに従って配置することにより初期データを生成する。
【００９０】
次に、制御部１０は、ＤＢＮの層数を示す変数（ｌ）を初期化する（ステップＳ２）。具体的には、変数ｌに１を代入する。
【００９１】
次に、パラメタ初期化部１２は、第ｌ層ＲＢＭのパラメタ（ベクトルθ）を初期化する（ステップＳ３）。具体的には、パラメタを構成する、２つのバイアス（ベクトルｂおよびベクトルｃ）と重み（ベクトルＷ）の各成分の初期値を与える。なお、ｌ＝１の場合、初期値はランダム値でもよいし、固定値（例えば零）でもよい。ｌ＞１の場合、前回の学習で得られたパラメタ値を初期値とする。
【００９２】
次に、ＲＢＭ学習実行部１３は、ＣＤ法による学習アルゴリズムを実行する（ステップＳ４）。本アルゴリズムの詳細について、図１０を参照して説明する。
【００９３】
まず、ＲＢＭ学習実行部１３は、第ｌ層ＲＢＭの可視層（ベクトルｖ）に入力データをセットする（ステップＳ４１）。ｌ＝１の場合は、入力データとして、初期データ生成部１１により生成された初期データをセットする。ｌ＞１の場合は、前回の学習で得られた、ｌ−１層ＲＢＭの隠れ層のデータを初期値とする。
【００９４】
次に、ＲＢＭ学習実行部１３は、第ｌ層ＲＢＭの可視層（ベクトルｖ）から隠れ層（ベクトルｈ）を求める（ステップＳ４２）。具体的には、隠れ層を構成するすべての隠れニューロンについて、可視層にセットされた入力データに対する発火確率を前述の式（７）により計算する。これにより、隠れニューロンの状態変数の値（０または１）が求められる。
【００９５】
次に、ＲＢＭ学習実行部１３は、ステップＳ４２で求められた隠れ層から、可視層（ベクトルｖ’）を求める（ステップＳ４３）。具体的には、可視層を構成するすべての可視ニューロンについて、ステップＳ４２で求められた隠れ層（ベクトルｈ）に対する発火確率を前述の式（８）により計算する。これにより、可視ニューロンの状態変数の値（０または１）が求められる。
【００９６】
次に、ＲＢＭ学習実行部１３は、元の入力データ（ベクトルｖ）と、ステップＳ４３で得られたデータ（ベクトルｖ’）から誤差を求める（ステップＳ４４）。誤差は、例えば、ベクトルｖとベクトルｖ’の二乗和誤差を計算することにより得られる。
【００９７】
図９に戻って、ステップＳ５以降の説明を続ける。
【００９８】
パラメタ更新部１４は、ステップＳ４で得られた誤差を用いて第ｌ層ＲＢＭのパラメタを更新する（ステップＳ５）。例えば、パラメタ更新部１４は、誤差が最小になるようにパラメタ（ベクトルθ）を更新する。
【００９９】
次に、ＷＤ算出部１５は、第ｌ層ＲＢＭのパラメタおよび隠れニューロンの状態変数（ｈ）に関する学習中振動（ＷＤ）を算出する（ステップＳ６）。本実施形態では、ＷＤ算出部１５は、前述の式（９），（１０），（１１），（１２）を用いて変数Ｗｊ，ｃｊ，ｂｊ，ｈｊに関するＷＤを、各ｊ（＝１，２，．．．，Ｊ）について算出する。
【０１００】
次に、ニューロン生成消滅部１６は、ニューロン生成・消滅アルゴリズムを実行する（ステップＳ７）。本アルゴリズムの詳細について、図１１を参照して説明する。
【０１０１】
まず、ニューロン生成消滅部１６は、隠れニューロンの番号を示す変数（ｊ）を初期化する（ステップＳ７１）。次に、ニューロン生成消滅部１６は、変数ｊが隠れニューロンの総数Ｊよりも大きいか否かを判定する（ステップＳ７２）。そして、変数ｊが総数Ｊよりも大きい場合（Ｓ７２：Ｙｅｓ）、ニューロン生成・消滅アルゴリズムを終了し、図９の全体フローに戻る。一方、変数ｊが総数Ｊ以下である場合（Ｓ７２：Ｎｏ）、ニューロン生成消滅部１６は、ｊ番目の隠れニューロンがニューロン生成条件を満たすか否かを判定する（ステップＳ７３）。生成条件を満たすか否かは、前述の式（１３）を用いて判定される。この判定を行う際に、ステップＳ６で算出されたバイアスｃｊおよび重みＷｊに関する学習中振動（ｄｃｊ，ｄＷｊ）が用いられる。
【０１０２】
ｊ番目の隠れニューロンがニューロン生成条件を満たす場合（Ｓ７３：Ｙｅｓ）、ニューロン生成消滅部１６は、隠れニューロンを生成する（ステップＳ７４）。本ステップで生成された隠れニューロンは、ｊ＋１番目の隠れニューロンとして第ｌ層ＲＢＭの隠れ層に挿入される。
【０１０３】
一方、ｊ番目の隠れニューロンがニューロン生成条件を満たさない場合（Ｓ７３：Ｎｏ）、ニューロン生成消滅部１６は、ｊ番目の隠れニューロンがニューロン消滅条件を満たすか否かを判定する（ステップＳ７５）。消滅条件を満たすか否かは、前述の式（１４）を用いて判定される。
【０１０４】
ｊ番目の隠れニューロンがニューロン消滅条件を満たす場合（Ｓ７５：Ｙｅｓ）、ニューロン生成消滅部１６は、ｊ番目の隠れニューロンを除去する（ステップＳ７６）。一方、ｊ番目の隠れニューロンがニューロン消滅条件を満たさない場合（Ｓ７５：Ｎｏ）、変数ｊの値を一つ増やし（ステップＳ７７）、ステップＳ７２に戻る。
【０１０５】
図９に戻って、ステップＳ８以降の説明を続ける。
【０１０６】
制御部１０は、異種データ学習アルゴリズムを実行する（ステップＳ８）。本アルゴリズムの詳細について、図１２を参照して説明する。
【０１０７】
まず、安定特徴ニューロン抽出部１７は、第ｌ層ＲＢＭの隠れ層の隠れニューロンから、前述の安定特徴ニューロンを抽出する（ステップＳ８１）。ここでは、Ｐ個の安定特徴ニューロンが抽出されたとする。
【０１０８】
次に、制御部１０は、安定特徴ニューロンの番号を示す変数（ｐ）を初期化する（ステップＳ８２）。そして、制御部１０は、変数ｐが安定特徴ニューロンの総数Ｐよりも大きいか否かを判定する（ステップＳ８３）。そして、変数ｐが総数Ｐよりも大きい場合（Ｓ８３：Ｙｅｓ）、異種データ学習アルゴリズムを終了し、図９の全体フローに戻る。一方、変数ｐが総数Ｐ以下である場合（Ｓ８３：Ｎｏ）、可視ニューロン値算出部１８は、ｐ番目の安定特徴ニューロンからＣＤ法により、可視層の可視ニューロンの値を求める（ステップＳ８４）。具体的には、可視ニューロン値算出部１８は、前述の式（１５）を用いて、可視層を構成する可視ニューロンの出力値をすべて計算する。図１３は、ｐ番目の安定特徴ニューロン（ｈＳｐ）から可視層の各可視ニューロンの値を求める様子を示している。
【０１０９】
次に、候補ブロック抽出部１９は、ｌ層ＲＢＭの可視層にセットされた入力データにおける複数の画像ブロックから、発火した可視ニューロンが所定の比率以上を占める画像ブロックを画像候補ブロック（ＩＢ＿Ｃａｎｄ）として抽出する（ステップＳ８５）。ここでは、Ｋ個の画像候補ブロックが抽出されたとする。この抽出方法について、図１４を参照して説明する。なお、図１４において、内部に斜線が施された円は、発火したニューロンを示している。
【０１１０】
図１４では、画像ブロックは３ビット（３つの可視ニューロン）からなり、ＣＳＶブロックは２ビット（２つの可視ニューロン）からなる。ここでは、所定の比率は５０％とする。図１４に示すように、左から２つ目の画像ブロックは、発火した可視ニューロンが２個あり、半分以上の可視ニューロンが発火したため、画像候補ブロックとして抽出される。一方、左から３つ目の画像候補ブロックは、発火した可視ニューロンが１個なので、画像候補ブロックとして抽出されない。また、右から２つ目のＣＳＶブロックは、発火した可視ニューロンが１個であり、半分の可視ニューロンが発火したため、ＣＳＶ候補ブロックとして抽出される。
【０１１１】
次に、制御部１０は、ステップＳ８５で抽出された画像候補ブロックの番号を示す変数（ｋ）を初期化する（ステップＳ８６）。そして、制御部１０は、変数ｋが画像候補ブロックの総数Ｋよりも大きいか否かを判定する（ステップＳ８７）。そして、変数ｋが総数Ｋよりも大きい場合（Ｓ８７：Ｙｅｓ）、変数ｐの値を一つ増やし（ステップＳ８８）、ステップＳ８３に戻る。
【０１１２】
一方、変数ｋが総数Ｋ以下である場合（Ｓ８７：Ｎｏ）、候補ブロック位置変更部２０は、ステップＳ８５で抽出されたＣＳＶ候補ブロックのうち、まだ位置変更されていないＣＳＶ候補ブロックの中でバイアスｂに関する学習中振動（ＷＤ）が最も高いＣＳＶ候補ブロックが、ｋ番目の画像候補ブロックの近傍にあるか否かを判定する（ステップＳ８９）。そして、当該ＣＳＶ候補ブロックがｋ番目の画像候補ブロックの近傍にある場合（Ｓ８９：Ｙｅｓ）、変数ｋの値を一つ増やし（ステップＳ９２）、ステップＳ８７に戻る。
【０１１３】
一方、バイアスｂに関する学習中振動が最も高いＣＳＶ候補ブロックがｋ番目の画像候補ブロックの近傍にない場合（Ｓ８９：Ｎｏ）、候補ブロック位置変更部２０は、当該ＣＳＶ候補ブロックの位置をｋ番目の画像候補ブロックの近傍に変更する（ステップＳ９０）。より一般的には、前述のように、当該ＣＳＶ候補ブロックがｋ番目の画像候補ブロックから第１の距離範囲内にない場合、当該ＣＳＶ候補ブロックの位置を第１の距離範囲よりも短い第２の距離範囲内の位置に変更する。ステップＳ９０の処理の後、変数ｋの値を一つ増やし（ステップＳ９２）、ステップＳ８７に戻る。
【０１１４】
ＣＳＶ候補ブロックの位置変更とは、移動前の状態においてＣＳＶ候補ブロックに包含される可視ニューロンの出力値を移動後のＣＳＶ候補ブロックに包含される可視ニューロンの値とすることである。
【０１１５】
ＣＳＶ候補ブロックの位置変更について、図１５を参照して説明する。なお、図１５において、内部に斜線が施された円は、発火したニューロンを示している。
【０１１６】
図１５では、符号ＩＢ＿Ｃａｎｄｋで示されるブロックがｋ番目の画像候補ブロックであり、符号ＣＢ＿Ｃａｎｄｉで示されるブロックがｉ番目のＣＳＶ候補ブロックである。ここでは、第１の距離範囲を±１０とする。画像候補ブロックＩＢ＿Ｃａｎｄｋから距離１０の範囲には、３つのＣＳＶ候補ブロック（ＣＢ＿Ｃａｎｄｉ，ＣＢ＿Ｃａｎｄｉ＋１，ＣＢ＿Ｃａｎｄｉ＋２）が含まれる。ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉは既に位置変更済みであり、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋１のバイアスｂに関する学習中振動がＣＢ＿Ｃａｎｄｉ＋２のそれよりも低い場合、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２が位置変更すべきブロックとなる。よって、候補ブロック位置変更部２０は、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２の位置を第２の距離範囲内の位置に変更する。例えば、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２を画像候補ブロックＩＢ＿Ｃａｎｄｋの隣に移動する。図１６は、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２を画像候補ブロックＩＢ＿Ｃａｎｄｋの隣に移動した状態を示している。図１６に示すように、ＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２の移動によって、移動前の状態においてＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２に包含される可視ニューロンの出力値が移動後のＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２に包含される可視ニューロンの値となっている。
【０１１７】
なお、上の例では、画像候補ブロックＩＢ＿Ｃａｎｄｋの右側（正の方向）のみを見たが、左側（負の方向）にあるＣＳＶ候補ブロックを位置変更対象としてもよい。また、上の例では、ＣＳＶ候補ブロックに含まれる可視ニューロンのうち一つでも第１の距離範囲内にあれば、位置変更対象のブロックとしたが、ＣＳＶ候補ブロックに含まれる可視ニューロンの全てが第１の距離範囲内にあるブロックを位置変更対象のブロックとしてもよい。
【０１１８】
次に、ルックアップテーブル更新部２１は、ステップＳ９０におけるＣＳＶ候補ブロックの位置変更結果に基づいて、ルックアップテーブルを更新する（ステップＳ９１）。図１７は、ルックアップテーブル更新部２１により更新されたルックアップテーブルの一例を示している。このルックアップテーブルは、ＣＳＶブロックＣＢ２２が画像ブロックＩＢ１０１の隣に位置変更されることを示している。図１６との関係で言えば、画像ブロックＩＢ１０１は画像候補ブロックＩＢ＿Ｃａｎｄｋであり、ＣＳＶブロックＣＢ２２はＣＳＶ候補ブロックＣＢ＿Ｃａｎｄｉ＋２である。
【０１１９】
なお、ステップ９０として説明したＣＳＶブロックの位置を変更する処理は、ステップＳ９２を経た後、ステップＳ８７とステップＳ８９の間で行ってもよい。すなわち、ｋ＋１番目の画像候補ブロックに関する処理フローにおいて、ＣＳＶ候補ブロックを移動させてもよい。この場合、例えば、ｋ番目の画像候補ブロックに関する処理フローのステップＳ９１で更新されたルックアップテーブルを参照してＣＳＶ候補ブロックの移動を行う。
【０１２０】
図９に戻って、ステップＳ９以降の説明を続ける。
【０１２１】
制御部１０は、第ｌ層ＲＢＭの終了条件を満たすか否かを判定する（ステップＳ９）。終了条件として、例えば、（Ａ）ステップＳ４で求められた誤差が所定の値以下になる、（Ｂ）ステップＳ４〜ステップＳ８の処理が所定の回数（最大訓練回数）行われた、（Ｃ）ステップＳ７においてニューロンの生成・消滅が所定の反復回数のあいだ行われていない、（Ｄ）ステップＳ８においてＣＳＶブロックの位置変更が所定の反復回数のあいだ行われていない、などが挙げられる。条件（Ｃ）は最適な隠れニューロンの数が決まったことを示し、条件（Ｄ）は最適な入力データの並びが決まったことを示す。
【０１２２】
上記の条件（Ａ）〜（Ｄ）を論理和や論理積で結んだものを終了条件としてよい。本実施形態では、｛条件（Ａ）ａｎｄ条件（Ｃ）ａｎｄ条件（Ｄ）｝ｏｒ条件（Ｂ）を終了条件とする。
【０１２３】
次に、制御部１０は、変数ｌが最大層数Ｌ未満であり、かつ層の生成条件が満たされるか否かを判定する（ステップＳ１０）。最大層数Ｌは、事前に決められた定数である。制御部１０は、式（１６）と式（１７）の両方が満たされる場合に、層の生成条件を満たすと判定する。
【数１６】
2019074946.tif 000018
ここで、αＷＤはスケールを調整するためのパラメタであり、ＷＤｌは第ｌ層ＲＢＭにおける学習中振動（すなわち、パラメタの変化量）である。ＷＤｌは式（１３）の左辺により計算される。θＬ１は閾値である。
【数１７】
2019074946.tif 000019
ここで、αＥはスケールを調整するためのパラメタであり、Ｅｌは第ｌ層ＲＢＭにおけるエネルギー関数であり、式（１８）により計算される。θＬ２は閾値である。
【数１８】
2019074946.tif 000020
【０１２４】
変数ｌが最大層数Ｌ未満であり、かつ層の生成条件が満たされる場合（Ｓ１０：Ｙｅｓ）、制御部１０は、ｌ＋１層を生成する（ステップＳ１１）。そして、変数ｌの値を一つ増やし（ステップＳ１２）、ステップＳ３に戻る。なお、ｌ＋１層のＲＢＭのパラメタ（ベクトルθ）の初期値は、第ｌ層のＲＢＭから承継される。一方、変数ｌが最大層数Ｌに達したか、または層の生成条件が満たされない場合（Ｓ１０：Ｎｏ）、異種データ深層学習を終了する。
【０１２５】
上記の異種データ深層学習方法では、異種データを構成するブロック（第１種ブロック、第２種類ブロック）を所定の配置ルールに従って組み合わせることにより初期データを生成した後、パラメタの初期化、ＣＤ法による学習アルゴリズムの実行、パラメタの更新、学習中振動の算出などを行う。その後、異種データ学習アルゴリズムの実行において、学習中振動が比較的高い（すなわち、学習がそれほど進んでいない）第２種類候補ブロックを、ステップＳ８５において当該第２種類候補ブロックとともに抽出された（すなわち、関連性の高い）第１種類候補ブロックの近傍に位置変更する。これにより、異種データの深層学習に要する時間を短縮することができる。
【０１２６】
また、本実施形態に係る異種データ深層学習方法では、ＤＢＮによる層数の最適化、および隠れニューロンを学習状態に応じて増減する手法も組み込まれている。
【０１２７】
＜学習後のニューラルネットワークを用いた推論＞
上記の異種データ深層学習により構成されたニューラルネットワークによる推論について、図１８〜図２１を参照して説明する。図１８は、学習後のニューラルネットワークを用いた推論に係る処理フローを示すフローチャートを示す。図１９は、学習用のデータ（画像データとＣＳＶデータ）の一例を示している。図２０は、ルックアップテーブルの一例を示している。図２１は、ルックアップテーブルを用いてＣＳＶブロックの位置を変更した後の状態を示している。
【０１２８】
本例では、画像データは、図１９に示すように、６個の画像ブロックＩＢ１〜ＩＢ６により構成され、ＣＳＶデータは６個のＣＳＶブロックＣＢ１〜ＣＢ６により構成されている。ＣＳＶブロックＣＢ１は、画像ブロックＩＢ１とＩＢ２からなるイメージラインの後ろに配置されている。同様に、ＣＳＶブロックＣＢ２は、画像ブロックＩＢ３とＩＢ４からなるイメージラインの後ろに配置され、ＣＳＶブロックＣＢ３は、画像ブロックＩＢ５とＩＢ６からなるイメージラインの後ろに配置されている。ＣＳＶブロックＣＢ４〜ＣＢ６は、ＣＳＶブロックＣＢ３の後ろに配置されている。すなわち、学習済みニューラルネットワークに与えられる学習用データのブロックの並びは、｛ＩＢ１，ＩＢ２，ＣＢ１，ＩＢ３，ＩＢ４，ＣＢ２，ＩＢ５，ＩＢ６，ＣＢ３，ＣＢ４，ＣＢ５，ＣＢ６｝である。
【０１２９】
推論部２２は、この学習用データ（初期データ）のＣＳＶブロックの位置を、ルックアップテーブルを参照して変更する。図２０に示すルックアップテーブルの場合、９番目のＣＳＶブロックＣＢ３を画像ブロックＩＢ３の後ろに移動する。すなわち、図２１に示すように、位置変更後における学習用データのブロックの並びは、｛ＩＢ１，ＩＢ２，ＣＢ１，ＩＢ３，ＣＢ３，ＩＢ４，ＣＢ２，ＩＢ５，ＩＢ６，ＣＢ４，ＣＢ５，ＣＢ６｝となる。この位置変更後のデータが学習済みニューラルネットワークの入力層に与えられ、推論が行われる。
【０１３０】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態に限定されるものではない。異なる実施形態にわたる構成要素を適宜組み合わせてもよい。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。
【０１３１】
上述した実施形態で説明した異種データ深層学習装置の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、異種データ深層学習装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１３２】
また、異種データ深層学習装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【符号の説明】
【０１３３】
１  異種データ深層学習装置
１０  制御部
１１  初期データ生成部
１２  パラメタ初期化部
１３  ＲＢＭ学習実行部
１４  パラメタ更新部
１５  ＷＤ算出部
１６  ニューロン生成消滅部
１７  安定特徴ニューロン抽出部
１８  可視ニューロン値算出部
１９  候補ブロック抽出部
２０  候補ブロック位置変更部
２１  ルックアップテーブル更新部
２２  推論部
３０  通信部
４０  操作入力部
５０  表示部
６０  記憶部
ＣＢ  ＣＳＶブロック
ＣＢ＿Ｃａｎｄ  ＣＳＶ候補ブロック
ＩＢ  画像ブロック
ＩＢ＿Ｃａｎｄ  画像候補ブロック
ＩＬ  イメージライン
ＨＳ  安定特徴ニューロン
【図１】
2019074946.tif 000021
【図２】
2019074946.tif 000022
【図３】
2019074946.tif 000023
【図４】
2019074946.tif 000024
【図５】
2019074946.tif 000025
【図６】
2019074946.tif 000026
【図７】
2019074946.tif 000027
【図８】
2019074946.tif 000028
【図９】
2019074946.tif 000029
【図１０】
2019074946.tif 000030
【図１１】
2019074946.tif 000031
【図１２】
2019074946.tif 000032
【図１３】
2019074946.tif 000033
【図１４】
2019074946.tif 000034
【図１５】
2019074946.tif 000035
【図１６】
2019074946.tif 000036
【図１７】
2019074946.tif 000037
【図１８】
2019074946.tif 000038
【図１９】
2019074946.tif 000039
【図２０】
2019074946.tif 000040
【図２１】
2019074946.tif 000041