(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022133162
(43)【公開日】2022-09-13
(54)【発明の名称】ニューラルネットワークシステム、学習制御装置、演算方法、学習制御方法およびプログラム
(51)【国際特許分類】
G06N 3/08 20060101AFI20220906BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021032097
(22)【出願日】2021-03-01
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度、国立研究開発法人新エネルギー・産業技術総合開発機構「人と共に進化する次世代人工知能に関する技術開発事業/説明できるAIの基盤技術開発/進化的機械知能に基づくXAIの基盤技術と産業応用基盤の開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】504182255
【氏名又は名称】国立大学法人横浜国立大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】長尾 智晴
(72)【発明者】
【氏名】小林 雅幸
(57)【要約】
【課題】ニューラルネットワークによる推定精度が向上するように、補助データとして用いるデータを決定できるようにする。
【解決手段】ニューラルネットワークシステムが、学習時および運用時共に取得される顕在データを取得する顕在データ取得部と、学習時にのみ取得される潜在データを取得する潜在データ取得部と、顕在データのみを基本モデルに入力して演算を行う基本モデル処理部と、学習時に、顕在データおよび潜在データの両方を用いて演算を行う場合と、顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように追加モデルの学習を行い、運用時に、顕在データのみを追加モデルに入力して演算を行う追加モデル処理部と、基本モデルによる演算結果と追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、統合処理部による演算結果に基づいて、追加モデルを採用するか否かを決定する学習結果判定部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、
前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、
前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行い、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行う追加モデル処理部と、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、
前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定する学習結果判定部と、
を備えるニューラルネットワークシステム。
【請求項2】
前記潜在データ取得部から前記追加モデル処理部へ出力される前記潜在データに乗算する係数である非浸透率を、前記潜在データの学習に対する影響度が徐々に小さくなるように設定するスイッチャー部
をさらに備える、請求項1に記載のニューラルネットワークシステム。
【請求項3】
モデル構成制御部をさらに備え、
前記潜在データ取得部は、複数の前記潜在データを取得し、
前記モデル構成制御部は、複数の前記潜在データのうち1つ以上の前記潜在データを選択し、選択した前記潜在データ毎に、前記追加モデル処理部に前記追加モデルを設けさせてその追加モデルの学習を行わせ、
前記学習結果判定部は、選択された前記潜在データ毎の前記追加モデルの組み合わせを採用するか否かを決定する、
請求項1または請求項2に記載のニューラルネットワークシステム。
【請求項4】
学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、
前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、
前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、
を備えるニューラルネットワーク演算装置の学習を制御する学習制御装置であって、
前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせる結合荷重調整部と、
前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定する学習結果判定部と、
を備える学習制御装置。
【請求項5】
学習時および運用時共に取得されるデータである顕在データを取得することと、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得することと、
前記学習時および前記運用時共に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行うことと、
前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行うことと、
前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行うことと、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出することと、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、
を含む演算方法。
【請求項6】
学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、
前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、
前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、
を備えるニューラルネットワーク演算装置の学習を制御する学習制御方法であって、
前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせることと、
前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、
を含む学習制御方法。
【請求項7】
コンピュータに、
学習時および運用時共に取得されるデータである顕在データを取得することと、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得することと、
前記学習時および前記運用時共に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行うことと、
前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行うことと、
前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行うことと、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出することと、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、
を実行させるためのプログラム。
【請求項8】
コンピュータに、
学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、
前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、
前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、
前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、
前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、
を備えるニューラルネットワーク演算装置の学習を制御するコンピュータに、
前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせることと、
前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークシステム、学習制御装置、演算方法、学習制御方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1では、学習データとして、学習時および運用時共に得られる主データと、学習時および運用時のうち学習時にのみ得られる補助データとを用いる機械学習手法が開示されている。特許文献1に記載の機械学習手法では、ニューラルネットワークの部分ネットワークの出力が、主データおよび補助データの両方を用いる場合と、主データおよび補助データのうち主データのみを用いる場合とで同じ出力になるように学習を行う。この学習によって、運用時には、補助データを必要とせずに、ニューラルネットワークによる推定精度が向上することが期待される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
主データと補助データとを用いる学習において、補助データとしてどのようなデータを用いればニューラルネットワークによる推定精度が向上するかが明らかでない場合が考えられる。このような場合でも、ニューラルネットワークによる推定精度が向上するように、補助データとして用いるデータを決定できることが好ましい。
【0005】
本発明の目的の一例は、ニューラルネットワークによる推定精度が向上するように、補助データとして用いるデータを決定することができるニューラルネットワークシステム、学習制御装置、演算方法、学習制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、ニューラルネットワークシステムは、学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行い、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行う追加モデル処理部と、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定する学習結果判定部と、を備える。
【0007】
前記潜在データ取得部から前記追加モデル処理部へ出力される前記潜在データに乗算する係数である非浸透率を、前記潜在データの学習に対する影響度が徐々に小さくなるように設定するスイッチャー部をさらに備えるようにしてもよい。
【0008】
モデル構成制御部をさらに備え、前記潜在データ取得部は、複数の前記潜在データを取得し、前記モデル構成制御部は、複数の前記潜在データのうち1つ以上の前記潜在データを選択し、選択した前記潜在データ毎に、前記追加モデル処理部に前記追加モデルを設けさせてその追加モデルの学習を行わせ、前記学習結果判定部は、選択された前記潜在データ毎の前記追加モデルの組み合わせを採用するか否かを決定するようにしてもよい。
【0009】
本発明の第2の態様によれば、学習制御装置は、学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、を備えるニューラルネットワーク演算装置の学習を制御する学習制御装置であって、前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせる結合荷重調整部と、前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定する学習結果判定部と、を備える。
【0010】
本発明の第3の態様によれば、演算方法は、学習時および運用時共に取得されるデータである顕在データを取得することと、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得することと、前記学習時および前記運用時共に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行うことと、前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行うことと、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行うことと、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出することと、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、を含む。
【0011】
本発明の第4の態様によれば、学習制御方法は、学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、を備えるニューラルネットワーク演算装置の学習を制御する学習制御方法であって、前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせることと、前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、を含む。
【0012】
本発明の第5の態様によれば、プログラムは、コンピュータに、学習時および運用時共に取得されるデータである顕在データを取得することと、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得することと、前記学習時および前記運用時共に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行うことと、前記学習時に、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行うことと、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを前記追加モデルに入力して演算を行うことと、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出することと、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、を実行させるためのプログラムである。
【0013】
本発明の第6の態様によれば、プログラムは、コンピュータに、学習時および運用時共に取得されるデータである顕在データを取得する顕在データ取得部と、前記学習時および前記運用時のうち前記学習時にのみ取得されるデータである潜在データを取得する潜在データ取得部と、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである基本モデルに入力して演算を行う基本モデル処理部と、前記運用時に、前記顕在データおよび前記潜在データのうち前記顕在データのみを、計算モデルである追加モデルに入力して演算を行う追加モデル処理部と、前記基本モデルによる演算結果と前記追加モデルによる演算結果とを統合した演算結果を算出する統合処理部と、を備えるニューラルネットワーク演算装置の学習を制御するコンピュータに、前記学習時に、前記追加モデル処理部に対して、前記顕在データおよび前記潜在データの両方を用いて演算を行う場合と、前記顕在データおよび前記潜在データのうち前記顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、前記追加モデルの学習を行わせることと、前記統合処理部による演算結果に基づいて、前記追加モデルを採用するか否かを決定することと、を実行させるためのプログラムである。
【発明の効果】
【0014】
上記したニューラルネットワークシステム、学習制御装置、演算方法、学習制御方法およびプログラムによれば、ニューラルネットワークによる推定精度が向上するように、補助データとして用いるデータを決定できると期待される。
【図面の簡単な説明】
【0015】
【
図1】実施形態に係るニューラルネットワークシステムの構成例を示す概略ブロック図である。
【
図2】実施形態に係るニューラルネットワークシステムにおける装置の構成の例を示す図である。
【
図3】実施形態に係るニューラルネットワーク演算部が事前学習の際に構成するニューラルネットワークの例を示す図である。
【
図4】実施形態における非浸透率の値が0の場合の、ニューラルネットワーク演算部が構成するニューラルネットワークの例を示す図である。
【
図5】実施形態における潜在データのグループが複数ある場合に、ニューラルネットワーク演算部が事前学習の際に構成するニューラルネットワークの第1の例を示す図である。
【
図6】実施形態に係るニューラルネットワークシステムがニューラルネットワークの学習を行う処理手順の第1の例を示すフローチャートである。
【
図7】実施形態における潜在データのグループが複数ある場合に、ニューラルネットワーク演算部が事前学習の際に構成するニューラルネットワークの第2の例を示す図である。
【
図8】実施形態に係るニューラルネットワークシステムがニューラルネットワークの学習を行う処理手順の第2の例を示すフローチャートである。
【
図9】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るニューラルネットワークシステムの構成例を示す概略ブロック図である。
図1に示す構成で、ニューラルネットワークシステム1は、ニューラルネットワーク演算部100と、学習制御部200とを備える。ニューラルネットワーク演算部100は、データ取得部110と、顕在データ取得部111と、潜在データ取得部112と、基本モデル処理部121と、追加モデル処理部122と、統合処理部130とを備える。学習制御部200は、浸透データ記憶部210と、モデル構成制御部221と、結合荷重調整部222と、スイッチャー部223と、学習結果判定部224とを備える。
【0017】
ニューラルネットワークシステム1は、ニューラルネットワークの機械学習を行い、学習済みのニューラルネットワークを用いて演算を行う。機械学習を、単に学習とも称する。
ニューラルネットワークシステム1は、学習にて、ニューラルネットワークのノード間の重み(結合荷重)の調整を行う。ニューラルネットワークシステム1の学習アルゴリズムとして、例えば誤差逆伝播法(Error Backpropagation Method)など一般的な学習アルゴリズムを用いることができる。
ニューラルネットワーク演算部100が構成するニューラルネットワーク、またはその部分ネットワークを、計算モデルまたはモデルとも称する。ニューラルネットワーク演算部100が構成するニューラルネットワークの全体を全体モデルとも称する。
【0018】
学習制御部200は、ニューラルネットワーク演算部100を制御する。特に、学習制御部200は、ニューラルネットワーク演算部100によるニューラルネットワークの構成およびニューラルネットワークの学習を制御する。
ニューラルネットワーク演算部100と学習制御部200とが1つの装置として構成されていてもよい。例えば、1台のパソコン(Personal Computer;PC)など1台のコンピュータが、ニューラルネットワーク演算部100の機能および学習制御部200の機能の何れも実行するようにしてもよい。あるいは、FPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)を用いた装置など、ニューラルネットワークシステム1専用の1台の装置が、ニューラルネットワーク演算部100の機能および学習制御部200の機能の何れも実行するようにしてもよい。
【0019】
あるいは、ニューラルネットワーク演算部100と学習制御部200とが別々の装置として構成されていてもよい。
図2は、ニューラルネットワークシステム1における装置の構成の例を示す図である。
図2に示す構成では、ニューラルネットワークシステム1は、ニューラルネットワーク演算装置101と、学習制御装置201とを備える。ニューラルネットワーク演算装置101は、ニューラルネットワーク演算部100の機能を実行する。学習制御装置201は、学習制御部200の機能を実行する。
【0020】
ニューラルネットワーク演算装置101が、1台のパソコンなど1台のコンピュータを用いて構成されていてもよい。あるいは、ニューラルネットワーク演算装置101が、FPGAまたはASICを用いた装置など、ニューラルネットワーク演算装置101専用の、1台の装置を用いて構成されていてもよい。
また、学習制御装置201が、1台のパソコンなど1台のコンピュータを用いて構成されていてもよい。あるいは、学習制御装置201が、FPGAまたはASICを用いた装置など、学習制御装置201専用の、1台の装置を用いて構成されていてもよい。
【0021】
ニューラルネットワーク演算部100が運用時に得られるデータの種類は、学習時に得られるデータの種類の一部に限定される。運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定される例として、学習時に使用可能な機器のうち一部のみを運用時に使用可能である場合が挙げられる。
【0022】
例えば、既存のセンサを用いて処理を行う場合に、学習時に一時的にセンサを追加して学習を行い、一時的に追加したセンサを学習終了後に撤去することが考えられる。
さらに例えば、ある装置に設けられているセンサを用いてその装置の状態判定を行う場合に、状態判定モデルの学習時には、既存のセンサ以外にも一時的にセンサを追加することが考えられる。この場合、装置のコスト増加を避けるため、あるいは、装置の構造上追加のセンサの常設が困難である等の理由で、一時的に追加したセンサを学習終了後に撤去することが考えられる。
【0023】
また、時系列予測問題においては、学習時に、過去のデータに加えて未来のデータもニューラルネットワーク演算部100に入力する場合も、運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定される例として挙げられる。
学習時に、過去のある時点を基準時として設定すれば、学習データとして、基準時から見て過去のデータに加えて、基準時から見て未来のデータをニューラルネットワーク演算部100に入力することができる。一方、運用時には、現時点(ニューラルネットワーク演算部100に演算を行わせる時点)が基準時となることが考えられる。この場合、未来のデータをニューラルネットワーク演算部100に入力することはできない。
【0024】
以下では、学習時および運用時共に得られる種類のデータを顕在データ、または、顕在データと称し、学習時および運用時のうち学習時にのみ得られる種類のデータを潜在データ、または、補助データと称する。
運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定されることに対応するため、ニューラルネットワークシステム1は、学習に対する潜在データの影響度を調整する仕組みを備える。具体的には、ニューラルネットワークシステム1は、潜在データに係数を乗算することで、学習に対する潜在データの影響度を調整する。この場合の係数を、非浸透率(Non-permeability)と称する。
【0025】
ニューラルネットワークシステム1は、学習に対する潜在データの影響度を調整して、顕在データおよび潜在データの両方を用いて演算を行う場合と、顕在データおよび潜在データのうち顕在データのみを用いて演算を行う場合とで、全体モデルの部分ネットワークに該当する追加モデルによる演算結果が同じになるように学習を行う。
【0026】
ここでいう、ニューラルネットワークの演算結果は、ニューラルネットワークの出力である。
ここでいう、演算結果が同じになるように学習を行うことは、演算結果が完全に同一であることに限らず、演算結果がおおよそ同じになることを含んでいてもよい。例えば、ニューラルネットワークシステム1が、顕在データおよび潜在データの両方を用いて演算を行う場合と、顕在データおよび潜在データのうち顕在データのみを用いて演算を行う場合とで、追加モデルによる演算結果の差の大きさが所定の閾値以下になるまで学習を繰り返すようにしてもよい。
【0027】
学習時に潜在データを用いる場合に、潜在データとしてどのようなデータを用いればニューラルネットワークによる推定精度が向上するかが、明らかでない場合が考えられる。ここでいう、ニューラルネットワークによる推定精度は、ニューラルネットワークの目的に応じた処理の精度である。例えば、ニューラルネットワークを用いてクラス分類を行う場合、クラス分類の精度が処理の精度の例に該当する。
【0028】
例えば上述した、既存のセンサを用いて判定または予測等の処理を行う場合に、学習時に一時的にセンサを追加して学習を行う例で、何処にどの様なセンサを設ければ推定精度が向上するかが、明らかでないことが考えられる。
また、上述した、過去のデータに加えて未来のデータも用いて時系列予測の学習を行う例で、未来のどのようなデータを用いれば予測精度が向上するかが、明らかでないことが考えられる。例えば、株価の予測などいろいろな要因が複雑に関係する場合、どのようなデータを潜在データとして用いれば予測精度が向上するかが、明らかでないことが考えられる。
【0029】
一方、処理対象との相関性がないデータを学習データに加えると、そのデータがノイズとして作用して、推定精度が低下してしまう可能性がある。
そこで、ニューラルネットワークシステム1は、潜在データを用いた学習の後、その潜在データが推定精度の向上に寄与しているか否かを判定する。
【0030】
例えば、ニューラルネットワークシステム1が、追加モデルを加えたニューラルネットワークの学習後の推定精度が、追加モデルを加えない場合のニューラルネットワークの推定精度よりも向上しているか否かを判定するようにしてもよい。
追加モデルを加えた場合のほうが追加モデルを加えない場合よりも推定精度が向上していると判定した場合、ニューラルネットワークシステム1が、追加モデルを加えたニューラルネットワークを採用するようにしてもよい。
【0031】
一方、追加モデルを加えた場合のほうが追加モデルを加えない場合よりも推定精度が向上していないと判定した場合、ニューラルネットワークシステム1が、追加モデルを加えないニューラルネットワークに戻すようにしてもよい。さらに、潜在データの候補となるデータが他にもある場合、ニューラルネットワークシステム1が、その候補についても同様に、潜在データとして用いるか否かを判定するようにしてもよい。
【0032】
ニューラルネットワークシステム1は、2段階の学習にて、顕在データおよび潜在データのうち顕在データのみの入力を受けた場合に、顕在データおよび潜在データの両方の入力を受けた場合と同じ結果を出力するように学習を行う。
第1段階の学習では、ニューラルネットワークシステム1は、顕在データおよび潜在データの両方を用いて、学習データが示す正解を算出するように学習を行う。浸透データ記憶部210は、第1段階の学習の終了時など、第1段階の学習が十分に行われた状態での浸透データの値を記憶しておく。
第1段階の学習を事前学習(Pretraining)と称する。
【0033】
第2段階の学習では、追加モデル処理部122が構成する追加モデルが学習の対象となる。ニューラルネットワークシステム1は、学習に対する潜在データの影響度を小さくして、追加モデルが事前学習の場合と同じ演算結果を算出するための学習を行う。例えば、ニューラルネットワークシステム1は、潜在データに乗算する非浸透率の値を1から0まで段階的に小さくしながら、浸透データの値が、浸透データ記憶部210が記憶している値と同じ値になるように、追加モデルの学習を行う。
第2段階の学習を、浸透学習(Percolative Learning)と称する。
【0034】
データ取得部110は、全体モデルにおける入力層として機能し、入力データを取得する。顕在データ取得部111は、学習時および運用時共に顕在データを取得し、得られた顕在データを基本モデル処理部121および追加モデル処理部122へ出力する。潜在データ取得部112は、学習時および運用時のうち学習時にのみ潜在データを取得し、得られた潜在データを追加モデル処理部122へ出力する。
【0035】
基本モデル処理部121、追加モデル処理部122および統合処理部130は、何れもニューラルネットワークを構成する。これらのニューラルネットワークは、何れも全体モデルの部分ネットワークに該当する。基本モデル処理部121、追加モデル処理部122および統合処理部130の組み合わせは、全体モデルの隠れ層(中間層)および出力層を構成する。
【0036】
基本モデル処理部121は、顕在データの入力を受けてニューラルネットワークによる演算を行い、演算結果を統合処理部130に出力する。基本モデル処理部121が出力する演算結果は、全体モデルにおける中間データに該当する。
追加モデル処理部122は、学習時には、顕在データと潜在データの入力を受けた場合と、顕在データおよび潜在データの入力を受けた場合とで出力が同じになるように学習を行う。これにより、ニューラルネットワーク演算部100は、全体モデルについて、顕在データと潜在データの入力を受けた場合と、顕在データおよび潜在データの入力を受けた場合とで出力が同じになるように学習を行う。
【0037】
上述したように、ここでいう出力(演算結果)が同じになるように学習を行うことは、出力が完全に同一であることに限らず、出力がおおよそ同じになることを含んでいてもよい。
追加モデル処理部122が構成するニューラルネットワークを追加モデルと称し、追加モデルの出力を浸透データ(Percolative Data)または浸透特徴(Percolative Feature)と称する。追加モデル処理部122が複数の追加モデルを構成してもよい。
統合処理部130は、基本モデル処理部121の演算結果と追加モデル処理部122の演算結果との入力を受けてニューラルネットワークの演算を行い、演算結果を出力する。統合処理部130の出力は、ニューラルネットワーク演算部100の出力(演算結果)に該当する。
【0038】
浸透データ記憶部210は、浸透データを記憶する。特に、浸透データ記憶部210は、顕在データと潜在データとの両方が追加モデル処理部122に入力されるときの浸透データを記憶する。浸透データ記憶部210が記憶する浸透データは、顕在データおよび潜在データのうち顕在データのみが追加モデル処理部122に入力されるときの浸透データを、顕在データと潜在データとの両方が追加モデル処理部122に入力されるときの浸透データと同じにするために参照される。
【0039】
モデル構成制御部221は、追加モデル処理部122のモデルの構成を制御する。具体的には、モデル構成制御部221は、潜在データ取得部112からの潜在データに応じて追加モデル処理部122に追加モデルを設けさせる。また、学習の結果、追加モデルが推定精度を向上させないと判定された場合、モデル構成制御部221は、追加モデル処理部122に追加モデルを削除させる。
結合荷重調整部222は、ニューラルネットワーク演算部100の学習を制御する。具体的には、結合荷重調整部222は、ニューラルネットワーク演算部100を制御して、ニューラルネットワークのノード間の結合荷重を更新させる。
【0040】
スイッチャー部223は、潜在データ取得部112が出力する潜在データに非浸透率を乗算する。
上述したように、非浸透率は、学習に対する潜在データの影響度を調整するための係数である。スイッチャー部223が、潜在データに非浸透率を乗算することで、学習に対する潜在データの影響度を徐々に小さくすることができる。ここでいう「徐々に」は、少なくとも1つの中間状態があることである。
これにより、学習における潜在データの有無の変化の影響を弱めることができ、学習を高精度に行えると期待される。具体的には、追加モデルの学習(結合荷重の最適化)における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【0041】
あるいは、スイッチャー部223が、事前学習から浸透学習への切り替わり時に、非浸透率の値を1から直ちに0に変更するようにしてもよい。すなわち、スイッチャー部223が、非浸透率の値を1、0で切り替えるようにしてもよい。
これにより、ニューラルネットワーク演算部100は、顕在データおよび潜在データのうち顕在データのみを用いた学習を速やかに行う。この点で、浸透学習の学習時間が短くて済むことが期待される。
【0042】
1つの追加モデルに対して複数の潜在データが入力される場合、スイッチャー部223が、潜在データ毎に非浸透率の値を変更可能であってもよい。そして、事前学習から浸透学習に切り替わった後、スイッチャー部223が、追加モデルに入力される潜在データの個数を徐々に減少させるように非浸透率を設定するようにしてもよい。
【0043】
具体的には、事前学習時にはスイッチャー部223は、追加モデルに入力される全て潜在データについて、非浸透率の値を1にしておく。浸透学習時には、スイッチャー部223は、追加モデルに入力される潜在データのうち一部の潜在データについてのみ、非浸透率の値を1から0に変更する。スイッチャー部223は、この非浸透率の変更を複数回行うことで、全ての非浸透率の値を0に変化させる。
【0044】
これにより、スイッチャー部223は事前学習時に、追加モデルに入力される潜在データを徐々に間引いていく。
スイッチャー部223が、このように潜在データを徐々に間引くことで、非浸透率の値を徐々に小さくする場合と同様、追加モデルの学習における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【0045】
学習に対する潜在データの影響度が小さくなった状態で、追加モデルが事前学習時と同じ値の浸透データを出力することで、ニューラルネットワーク演算部100全体としても、顕在データおよび潜在データの両方を用いた事前学習時と同じ演算結果を出力することが期待される。特に、浸透学習にて潜在データの影響度が0になった状態でも、ニューラルネットワーク演算部100が、事前学習時と同じ演算結果を出力することが期待される。
このように、事前学習および浸透学習によって、ニューラルネットワーク演算部100が、顕在データおよび潜在データのうち顕在データのみを受けた場合に、顕在データおよび潜在データの両方を受けた場合と同様の演算結果を出力することが期待される。
【0046】
学習結果判定部224は、統合処理部130による演算結果に基づいて、追加モデルを採用するか否かを決定する。具体的には、学習結果判定部224は、追加モデルがある場合のほうが、追加モデルが無い場合よりも推定精度が向上しているか否かを判定する。推定精度が向上していると判定した場合、学習結果判定部224は、その追加モデルを採用することに決定する。
一方、推定精度が向上していないと判定した場合、学習結果判定部224は、その追加モデルを採用しないことに決定する。この場合、モデル構成制御部221が、追加モデル処理部122を制御して、その追加モデルを削除させる。
【0047】
図3は、ニューラルネットワーク演算部100が事前学習の際に構成するニューラルネットワークの例を示す図である。
上記の全体モデル(ニューラルネットワーク演算部100が構成するニューラルネットワークの全体)を、全体モデルNTと表記する。
図3の例で、全体モデルNTは、入力層NTと、基本モデルNBと、追加モデルNA-1と、統合回路NCとを含む。入力層INは、顕在データ入力層EXPと、潜在データ入力層IMPとを含む。
【0048】
追加モデルNA-1の「1」は、追加モデルNA-1を識別する識別番号である。全体モデルが複数の追加モデルを含む場合、追加モデルNA-(i)と表す。ここでは、(i)は、1≦(i)≦NAMAXの整数である。NAMAXは、NAMAX≧1の整数であり、全体モデルNTに含まれる追加モデルの個数を示す。
【0049】
入力層INは、ニューラルネットワークとしての全体モデルNTにおける入力層に該当し、全体モデルNTへの入力を受け付ける。具体的には、顕在データ入力層EXPが、顕在データの入力を受け付け、入力された顕在データを基本モデルNBおよび追加モデルNAへ出力する。
データ取得部110が入力層INとして機能する。顕在データ取得部111が顕在データ入力層EXPとして機能する。潜在データ取得部112が、潜在データ入力層IMPとして機能する。
【0050】
全体モデルNTへの入力(入力データ)および全体モデルNTの出力(出力データ)を変数で表すことにする。
具体的には、顕在変数ベクトルxを、x=(x1,x2,・・・,xxmax)として、入力パラメータとしての変数x1、x2、・・・、xxmaxのそれぞれが、顕在データの値をとるものとする。xmaxは、xmax≧1の整数であり、全体モデルNTの入力パラメータのうち、顕在データの値をとる入力パラメータの個数を示す。
顕在データの型(Type)は、特定の型に限定されない。したがって、顕在変数ベクトルの要素の型は、特定の型に限定されない。例えば、顕在変数ベクトルの要素の型は、整数、実数または二値の何れかであってもよい。顕在変数ベクトルが異なる型の要素を含んでいてもよい。
【0051】
また、潜在変数ベクトルa1を、a1=(a11,a12,・・・,a1a1max)として、入力パラメータとしての変数a11、a12、・・・、a1a1maxのそれぞれが、潜在データの値をとるものとする。a1maxは、a1max≧1の整数であり、全体モデルNTの入力パラメータのうち、追加モデルNA-1に入力される潜在データの値をとる入力パラメータの個数を示す。
【0052】
全体モデルが複数の追加モデルを含む場合、追加モデルNA-(i)に入力される潜在データの値をとる入力パラメータを、潜在変数ベクトルa(i)=(a(i)1,a(i)2,・・・,a(i)a(i)max)で表す。a(i)maxは、a(i)max≧1の整数であり、全体モデルNTの入力パラメータのうち、追加モデルNA-(i)に入力される潜在データの値をとる入力パラメータの個数を示す。
潜在データの型は特定の型に限定されない。したがって、潜在変数ベクトルの要素の型は、特定の型に限定されない。例えば、潜在変数ベクトルの要素の型は、整数、実数または二値の何れかであってもよい。潜在変数ベクトルが異なる型の要素を含んでいてもよい。
【0053】
また、出力変数ベクトルyを、y=(y1,y2,・・・,yymax)として、y1、y2、・・・、yymaxのそれぞれが出力データの値をとるものとする。ymaxは、ymax≧1の整数であり、全体モデルNTの出力データの個数を示す。
出力データの型は特定の型に限定されない。したがって、出力変数ベクトルの要素の型は、特定の型に限定されない。例えば、出力変数ベクトルの要素の型は、整数、実数または二値の何れかであってもよい。出力変数ベクトルが異なる型の要素を含んでいてもよい。
【0054】
基本モデルNBと、追加モデルNA1と、統合回路NCとは、何れも、ニューラルネットワークを用いて構成される。基本モデルNB、追加モデルNA1および統合回路NCの何れも、公知のニューラルネットワーク、または、公知のニューラルネットワークから入力層を除いた部分ネットワークとして構成することができる。
基本モデルNB、追加モデルNA1および統合回路NCの何れを構成するニューラルネットワークも、特定のものに限定されない。基本モデルNB、追加モデルNA1および統合回路NCの何れが有するノードの個数も、特定の個数に限定されない。基本モデルNB、追加モデルNA1および統合回路NCの何れかが階層性のニューラルネットワークとして構成される場合の層数も、特定の層数に限定されない。
【0055】
図3の例の場合、事前学習では、追加モデルNA-1および統合回路NCが学習の対象となる。さらに、基本モデルNBも、事前学習における学習の対象となってもよい。
基本モデルNBは、学習時および運用時の何れも顕在データの入力を受けて演算を行う。基本モデルNBの内部パラメータ(結合荷重)の値は、固定値であってもよい。あるいは、事前学習の際に、基本モデルNBが学習の対象になっていてもよい。
基本モデル処理部121が基本モデルNBを構成する。
【0056】
追加モデルNA-1は、事前学習の際に、顕在データおよび潜在データの入力を受ける。そのために、スイッチャー部223は、非浸透率の値を1に設定しておく。
潜在データが複数ある場合、潜在データが複数のグループにグループ分けされ、追加モデル処理部122が、潜在データのグループ毎に追加モデルを構成するようにしてもよい。この場合、学習結果判定部224は、追加モデル毎に、その追加モデルを採用するか否かを決定する。各グループに含まれる潜在データの個数は、1つ以上であればよい。
追加モデル処理部122が、追加モデルNA-1を構成する。追加モデルが複数構成される場合も、追加モデル処理部122が、それら複数の追加モデルを構成する。
【0057】
統合回路NCは、基本モデルNBの演算結果および追加モデルNA-1の演算結果の入力を受けて演算結果を出力する。追加モデルが複数ある場合は、統合回路NCは、基本モデルNBの演算結果および追加モデルNA-iのそれぞれの演算結果の入力を受けて演算結果を出力する。ここでは、iは、1≦i≦NAMAXの整数である。
統合処理部130が統合回路NCを構成する。
事前学習では、ニューラルネットワーク演算部100は、結合荷重調整部222の制御に従って、統合回路NCの演算結果が学習データに示される正解と同じ値になるように学習を行う。
【0058】
図4は、非浸透率の値が0の場合の、ニューラルネットワーク演算部100が構成するニューラルネットワークの例を示す図である。
図4の例では、追加モデルNA-1に潜在データが入力されないことから、
図3に示される潜在変数ベクトルa1と、潜在入力データ層IMPとは示されていない。ただし、浸透学習の学習データに潜在データが含まれていてもよい。特に、浸透学習の学習データとして、事前学習の場合と同じ学習データを用いることができ、その場合、学習データから浸透データを削除する必要は無い。また、
図1の潜在データ取得部112を削除する必要もない。追加モデルNA-1に潜在データが入力されないことは、例えば、非浸透率の値を0にすることで実行される。
【0059】
上述したように、浸透学習でスイッチャー部223が、非浸透率の値を段階的に0まで小さくするようにしてもよい。そして、結合荷重調整部222が、スイッチャー部223が非浸透率を更新する毎に、追加モデル処理部122を制御して追加モデルNA-1の学習を行わせるようにしてもよい。その際、結合荷重調整部222は、事前学習の場合の学習データと同じ学習データを用いて、浸透データの値が、浸透データ記憶部210が記憶する事前学習の際の浸透データの値と同じ値になるように、追加モデル処理部122に追加モデルNA-1の学習を行わせる。
【0060】
浸透学習終了後、学習結果判定部224は、統合回路NCによる演算結果に基づいて、追加モデルNA-1を採用するか否かを決定する。具体的には、学習結果判定部224は、追加モデルNA-1がある場合のほうが、追加モデルNA-1が無い場合よりも、全体モデルの推定精度が向上しているか否かを判定する。推定精度が向上していると判定した場合、学習結果判定部224は、追加モデルNA-1を採用することに決定する。
一方、推定精度が向上していないと判定した場合、学習結果判定部224は、追加モデルNA-1を採用しないことに決定する。この場合、モデル構成制御部221が、追加モデル処理部122を制御して、追加モデルNA-1を削除させる。
【0061】
潜在データのグループが複数ある場合、ニューラルネットワークシステム1が、グループ毎に逐次的に、グループに対応する追加モデルの生成、学習、および、その追加モデルを採用するか否かの決定を行うようにしてもよい。
図5は、潜在データのグループが複数ある場合に、ニューラルネットワーク演算部100が事前学習の際に構成するニューラルネットワークの第1の例を示す図である。
【0062】
図5の例では、追加モデル処理部122が、
図3の潜在変数ベクトルa1で示される潜在データのグループに対して追加モデルNA-1を構成し、学習を行った後、学習結果判定部224が、追加モデルNA-1を採用することに決定している。追加モデル処理部122はさらに、
図5の潜在変数ベクトルa2で示される潜在データのグループに対して追加モデルNA-2を構成している。
【0063】
追加モデルNA-2の事前学習では、追加モデルNA-2および統合回路NCが学習の対象になる。一方、追加モデルNA-2の事前学習では、基本モデルNBおよび追加モデルNA-1は、学習の対象にはならない。
ニューラルネットワーク演算部100は、基本モデルNBおよび追加モデルNA-1のそれぞれに顕在データを入力し、それぞれのモデルの演算結果を統合回路NCへ入力する。また、ニューラルネットワーク演算部100は、追加モデルNA-2に顕在データ、および、潜在変数ベクトルa2で表される潜在データを入力し、追加モデルNA-2の演算結果を統合回路NCへ入力する。そして、ニューラルネットワーク演算部100は、統合回路NCの出力データの値が、学習データの正解の値と同じ値になるように、基本モデルNBおよび追加モデルNA-1の学習を行う。浸透データ記憶部210は、追加モデルNA-2が出力する浸透データを記憶する。
【0064】
追加モデルNA-2の浸透学習では、追加モデルNA-2が学習の対象になる。一方、追加モデルNA-2の事前学習では、基本モデルNBおよび追加モデルNA-1は、学習の対象にはならない。ニューラルネットワーク演算部100の追加モデル処理部122は、追加モデルNA-2が出力する浸透データの値が、事前学習終了時の浸透データの値(浸透データ記憶部210が記憶している浸透データの値)と同じになるように、追加モデルNA-2の学習を行う。
このように、新たな追加モデルの学習では、既に学習済みの追加モデルは学習の対象にならない。
【0065】
追加モデルNA-2の浸透学習終了後、学習結果判定部224は、統合回路NCによる演算結果に基づいて、追加モデルNA-2を採用するか否かを決定する。具体的には、学習結果判定部224は、追加モデルNA-2がある場合のほうが、追加モデルNA-2が無い場合よりも、全体モデルの推定精度が向上しているか否かを判定する。推定精度が向上していると判定した場合、学習結果判定部224は、追加モデルNA-2を採用することに決定する。
一方、推定精度が向上していないと判定した場合、学習結果判定部224は、追加モデルNA-2を採用しないことに決定する。この場合、モデル構成制御部221が、追加モデル処理部122を制御して、追加モデルNA-2を削除させる。
【0066】
図6は、ニューラルネットワークシステム1がニューラルネットワークの学習を行う処理手順の第1の例を示すフローチャートである。
図6は、潜在データのグループが複数ある場合は、ニューラルネットワークシステム1がグループ毎に逐次的に、グループに対応する追加モデルの生成、学習、および、その追加モデルを採用するか否かの決定を行う場合の例を示している。
【0067】
図6の処理で、ニューラルネットワーク演算部100は、学習制御部200の制御に従ってニューラルネットワークによる計算モデルを構成する(ステップS111)。例えば、基本モデルNBおよび統合回路NCが既に構成されている場合、追加モデル処理部122がモデル構成制御部221の制御に従って、1つの追加モデルを生成する。追加モデル処理部122は、生成した追加モデルへの入力を、顕在データ(顕在変数ベクトルxで示される全ての顕在データ)、および、潜在データのグループの1つ(未だ追加モデルへの入力となっていないグループ)にする。また、ニューラルネットワーク演算部100は、生成した追加モデルの出力データが、統合回路NCに入力されるようにする。
図6の処理では、ステップS111で追加モデル処理部122が生成する追加モデルを、学習対象の追加モデルとも称する。
【0068】
次に、ニューラルネットワーク演算部100は、学習制御部200の制御に従って事前学習を行う(ステップS112)。事前学習では、顕在データと潜在データとを入力し、統合回路NCの出力データの値が学習データに示される正解の値と同じになるように、学習対象の追加モデルと、統合回路NCとの学習を行う。
そして、学習制御部200は、事前学習の終了条件が成立しているか否かを判定する(ステップS113)。事前学習の終了条件は、全体モデルの推定精度が所定の閾値以上であるといった条件でもよいが、これに限定されない。
【0069】
事前学習の終了条件が成立していないと学習制御部200が判定した場合(ステップS113:NO)、処理がステップS112へ戻る。この場合、ニューラルネットワークシステム1は、終了条件が成立するまで事前学習を継続する。
一方、事前学習の終了条件が成立していると学習制御部200が判定した場合(ステップS113:YES)、浸透データ記憶部210が、学習制御部200の制御に従って、学習対象の追加モデルの浸透データを記憶する(ステップS121)。
【0070】
次に、ニューラルネットワーク演算部100は、学習制御部200の制御に従って浸透学習を行う(ステップS122)。浸透学習では、追加モデル処理部122が、学習対象の追加モデルの出力データの値が、浸透データ記憶部210が記憶している浸透データの値と同じになるように、学習対象の追加モデルの学習を行う。ここで、スイッチャー部223は、非浸透率の値を段階的に小さくするなど、学習に対する潜在データの影響を徐々に小さくする。追加モデル処理部122は、スイッチャー部223が学習に対する潜在データの影響を小さくする毎に、所定の条件が成立するまで、学習対象の追加モデルの学習を行う。ここでの所定の条件は、学習対象の追加モデルの出力データの値と、浸透データ記憶部210が記憶している浸透データの値との差の大きさが所定の閾値以下であるといった条件でもよいが、これに限定されない。
【0071】
そして、学習制御部200は、浸透学習の終了条件が成立しているか否かを判定する(ステップS123)。浸透学習の終了条件は、非浸透率の値が0であり、かつ、学習対象の追加モデルの出力データの値と、浸透データ記憶部210が記憶している浸透データの値との差の大きさが所定の閾値以下であるといった条件でもよいが、これに限定されない。
【0072】
浸透学習の終了条件が成立していないと学習制御部200が判定した場合(ステップS123:NO)、処理がステップS122へ戻る。この場合、ニューラルネットワークシステム1は、終了条件が成立するまで浸透学習を継続する。
一方、浸透学習の終了条件が成立していると学習制御部200が判定した場合(ステップS123:YES)、学習結果判定部224が、学習結果を評価する(ステップS131)。例えば、学習結果判定部224は、学習対象の追加モデルがある場合のほうが、学習対象の追加モデルが無い場合よりも、全体モデルの推定精度が高いか否かを判定する。そのために、学習結果判定部224が、ステップS111で潜在データ取得部112が学習対象の追加モデルを生成する前に、全体モデルの推定精度を算出し記憶しておくようにしてもよい。
【0073】
そして、学習結果判定部224は、学習結果の評価に基づいて、学習対象の追加モデルを採用するか否かを決定する(ステップS132)。例えば、学習結果判定部224は、学習対象の追加モデルがある場合のほうが、学習対象の追加モデルが無い場合よりも、全体モデルの推定精度が高いと判定した場合に、学習対象の追加モデルを採用することに決定する。
あるいは、学習結果判定部224に代えて学習制御部200が、学習対象の追加モデルを採用するか否かを決定するようにしてもよい。
【0074】
学習結果判定部224が、学習対象の追加モデルを採用することに決定した場合(ステップS132:YES)、学習制御部200は、
図6の処理の対象となっていない潜在データのグループがあるか否かを判定する(ステップS151)。
図6の処理の対象となっていない潜在データのグループがあると学習制御部200が判定した場合(ステップS151:YES)、処理がステップS111へ戻る。この場合、ニューラルネットワークシステム1は、
図6の処理の対象となっていない潜在データのグループの1つに対して
図6の処理を行う。
一方、
図6の処理の対象となっていない潜在データのグループがないと学習制御部200が判定した場合(ステップS151:NO)、ニューラルネットワークシステム1は、
図6の処理を終了する。
【0075】
一方、ステップS132で、学習結果判定部224が、学習対象の追加モデルを採用しないことに決定した場合(ステップS132:NO)、学習制御部200は、追加モデル処理部122を制御して学習対象の追加モデルを削除させる(ステップS141)。
ステップS141の後、処理がステップS151へ進む。
【0076】
潜在データのグループが複数ある場合、ニューラルネットワークシステム1が、グループの組み合わせ毎に、その組み合わせに含まれるグループ毎の追加モデルの生成、学習、および、その追加モデルを採用するか否かの決定を行うようにしてもよい。
図7は、潜在データのグループが複数ある場合に、ニューラルネットワーク演算部100が事前学習の際に構成するニューラルネットワークの第2の例を示す図である。
【0077】
図7の例では、潜在変数ベクトルa1からaamaxまでのamax個の潜在変数ベクトルのそれぞれが、潜在データのグループを示している。amaxは、amax≧1の整数である。
これらamax個のグループ毎に潜在データが潜在データ入力層IMPに入力される。追加モデル処理部122は、グループ毎に追加モデルを生成する。これらの追加モデルを、追加モデルNA-1、・・・、追加モデルNA-amaxと表記する。
【0078】
学習制御部200は、潜在データのグループの全ての組み合わせについて、組み合わせ毎に、その組み合わせに含まれるグループからの潜在データの入力を受ける追加モデルの組み合わせについて、事前学習および浸透学習による学習をニューラルネットワーク演算部100に行わせる。
学習結果判定部224は、追加モデルの全ての組み合わせのうち、全体モデルの推定精度が最も高くなる組み合わせに含まれる追加モデルを採用することに決定する。
モデル構成制御部221は、追加モデル処理部122を制御して、採用されなかった追加モデルを削除させる。
【0079】
図8は、ニューラルネットワークシステム1がニューラルネットワークの学習を行う処理手順の第2の例を示すフローチャートである。
図8は、潜在データのグループが複数ある場合は、ニューラルネットワークシステム1がグループの全ての組み合わせのうち、全体モデルの推定精度が最も高くなる組み合わせを選択する場合の例を示している。
【0080】
図8の処理で、モデル構成制御部221は、追加モデル処理部122を制御して、潜在データのグループ毎に、その潜在データの入力を受ける追加モデルを生成させる(ステップS211)。追加モデル処理部122は、生成した追加モデルの各々に、潜在データに加えて顕在データ(顕在変数ベクトルxで示される全ての顕在データ)も入力されるようにする。また、ニューラルネットワーク演算部100は、生成された追加モデルの各々の出力データが、統合回路NCに入力されるようにする。
【0081】
次に、ニューラルネットワークシステム1は、追加モデルの組み合わせ毎に処理を行うループL11を開始する(ステップS212)。
図8の処理では、ループL11の処理対象となっている組み合わせに含まれる追加モデルを学習対象の追加モデルと称する。
【0082】
ループL11の処理で、ニューラルネットワーク演算部100は、学習制御部200の制御に従って事前学習を行う(ステップS221)。事前学習では、顕在データと潜在データとを入力し、統合回路NCの出力データの値が学習データに示される正解の値と同じになるように、学習対象の追加モデルと、統合回路NCとの学習を行う。学習対象以外の追加モデルについては、例えば追加モデル処理部122がその出力を一時的に0にするなど、統合回路NCの出力に影響しないようにする。
【0083】
そして、学習制御部200は、事前学習の終了条件が成立しているか否かを判定する(ステップS113)。事前学習の終了条件は、全体モデルの推定精度が所定の閾値以上であるといった条件でもよいが、これに限定されない。
【0084】
事前学習の終了条件が成立していないと学習制御部200が判定した場合(ステップS222:NO)、処理がステップS221へ戻る。この場合、ニューラルネットワークシステム1は、終了条件が成立するまで事前学習を継続する。
一方、事前学習の終了条件が成立していると学習制御部200が判定した場合(ステップS222:YES)、浸透データ記憶部210が、学習制御部200の制御に従って、学習対象の追加モデルの浸透データを記憶する(ステップS231)。
【0085】
次に、ニューラルネットワーク演算部100は、学習制御部200の制御に従って浸透学習を行う(ステップS232)。浸透学習では、追加モデル処理部122が、学習対象の追加モデルの出力データの値が、浸透データ記憶部210が記憶している浸透データの値と同じになるように、学習対象の追加モデルの学習を行う。ここで、スイッチャー部223は、非浸透率の値を段階的に小さくするなど、学習に対する潜在データの影響を徐々に小さくする。追加モデル処理部122は、スイッチャー部223が学習に対する潜在データの影響を小さくする毎に、所定の条件が成立するまで、学習対象の追加モデルの学習を行う。ここでの所定の条件は、学習対象の追加モデルの出力データの値と、浸透データ記憶部210が記憶している浸透データの値との差の大きさの、学習対象になっている全ての追加モデルについての合計が所定の閾値以下であるといった条件でもよいが、これに限定されない。
【0086】
そして、学習制御部200は、浸透学習の終了条件が成立しているか否かを判定する(ステップS233)。浸透学習の終了条件は、非浸透率の値が0であり、かつ、学習対象の追加モデルの出力データの値と、浸透データ記憶部210が記憶している浸透データの値との差の大きさの、学習対象になっている全ての追加モデルについての合計が所定の閾値以下であるといった条件でもよいが、これに限定されない。
【0087】
浸透学習の終了条件が成立していないと学習制御部200が判定した場合(ステップS233:NO)、処理がステップS232へ戻る。この場合、ニューラルネットワークシステム1は、終了条件が成立するまで浸透学習を継続する。
一方、浸透学習の終了条件が成立していると学習制御部200が判定した場合(ステップS233:YES)、学習結果判定部224が、学習結果を評価し、その評価を記憶しておく(ステップS241)。例えば、学習結果判定部224は、学習対象の追加モデルがある場合の、全体モデルの推定精度を算出し記憶しておく。
【0088】
ステップS241の後、ニューラルネットワークシステム1は、ループL11の終端処理を行う(ステップS242)。具体的には、ニューラルネットワークシステム1は、追加モデルの全ての組み合わせについてループL11の処理を行ったか否かを判定する。未処理の組み合わせがあると判定した場合、処理がステップS221に戻り、ニューラルネットワークシステム1は、未処理の組み合わせについて引き続きループL11の処理を行う。
一方、未処理の組み合わせが無いと判定した場合、ニューラルネットワークシステム1は、ループL11の処理を終了する。
【0089】
ステップS242でニューラルネットワークシステム1がループL11の処理を終了した場合、学習結果判定部224は、追加モデルの構成として採用する構成を決定する(ステップS243)。例えば、学習結果判定部224は、ステップS241での評価に基づいて、全体モデルの推定精度が最も高くなる追加モデルの組み合わせを採用することに決定する。
そして、モデル構成制御部221は、採用されなかった追加モデルを削除する(ステップS244)。すなわち、モデル構成制御部221は、学習結果判定部224が採用した組み合わせに含まれる追加モデル以外の追加モデルを削除する。
ステップS244の後、ニューラルネットワークシステム1は、
図8の処理を終了する。
【0090】
以上のように、顕在データ取得部111は、学習時および運用時共に取得されるデータである顕在データを取得する。潜在データ取得部112は、学習時および運用時のうち学習時にのみ取得されるデータである潜在データを取得する。基本モデル処理部121は、顕在データおよび潜在データのうち顕在データのみを、計算モデルである基本モデルに入力して演算を行う。追加モデル処理部122は、学習時に、顕在データおよび潜在データの両方を用いて演算を行う場合と、顕在データおよび潜在データのうち顕在データのみを用いて演算を行う場合とで、演算結果が同じになるように、計算モデルである追加モデルの学習を行い、運用時に、顕在データおよび潜在データのうち顕在データのみを追加モデルに入力して演算を行う。統合処理部130は、基本モデルによる演算結果と追加モデルによる演算結果とを統合した演算結果を算出する。学習結果判定部224は、統合処理部130による演算結果に基づいて、追加モデルを採用するか否かを決定する。
【0091】
ニューラルネットワークシステム1によれば、潜在データがある場合とない場合とでニューラルネットワーク(全体モデル)が同じ値を出力するように学習を行うことができ、さらに、潜在データを用いる場合のニューラルネットワークの精度に基づいて、その潜在データを採用するか否かを決定することができる。したがって、ニューラルネットワークシステム1によれば、潜在データがノイズとして作用して、ニューラルネットワークの推定精度が低下してしまうことを回避できる。ニューラルネットワークシステム1によれば、この点で、潜在データ(補助データ)としてどのようなデータを用いればニューラルネットワークによる推定精度が向上するかが明らかでない場合でも、推定精度が向上するように、潜在データとして用いるデータを決定することができる。
【0092】
また、スイッチャー部223は、潜在データ取得部112から追加モデル処理部122へ出力される潜在データに乗算する係数である非浸透率を、潜在データの学習に対する影響度が徐々に小さくなるように設定する。これにより、ニューラルネットワークシステム1では、追加モデルの学習(結合荷重の最適化)における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。ニューラルネットワークシステム1によれば、この点で、ニューラルネットワークの学習を高精度に行うことができる。
【0093】
潜在データ取得部112は、複数の潜在データを取得する。モデル構成制御部221は、複数の潜在データのうち1つ以上の潜在データを選択し、選択した潜在データ毎に、追加モデル処理部122に追加モデルを設けさせてその追加モデルの学習を行わせる。学習結果判定部224は、選択された潜在データ毎の前記追加モデルの組み合わせを採用するか否かを決定する。
ニューラルネットワークシステム1によれば、潜在データが複数ある場合に、ニューラルネットワークの推定精度がより向上するように、何れの潜在データ、または、潜在データの組み合わせを採用するか決定することができる。
【0094】
図9は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図9に示す構成で、コンピュータ700は、CPU(Central Processing Unit)710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0095】
上記のニューラルネットワークシステム1、ニューラルネットワーク演算装置101、および、学習制御装置201のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上記処理を実行するための記憶領域を主記憶装置720に確保する。
【0096】
ニューラルネットワークシステム1がコンピュータ700に実装される場合、ニューラルネットワーク演算部100、学習制御部200およびそれらの各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、浸透データ記憶部210対応する記憶領域など処理を実行するための記憶領域を主記憶装置720に確保する。
ニューラルネットワークシステム1と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。ニューラルネットワークシステム1とユーザとのインタラクションは、インタフェース740が、表示装置等の出力デバイスと、キーボードおよびマウス等の入力デバイスを有し、CPU710の制御に従って動作することで実行される。
【0097】
ニューラルネットワーク演算装置101がコンピュータ700に実装される場合、ニューラルネットワーク演算装置101の各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、ニューラルネットワーク演算装置101の処理を実行するための記憶領域を主記憶装置720に確保する。
ニューラルネットワーク演算装置101と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。ニューラルネットワーク演算装置101とユーザとのインタラクションは、インタフェース740が、表示装置等の出力デバイスと、キーボードおよびマウス等の入力デバイスを有し、CPU710の制御に従って動作することで実行される。
【0098】
学習制御装置201がコンピュータ700に実装される場合、学習制御装置201の各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、学習制御装置201の処理を実行するための記憶領域を主記憶装置720に確保する。
学習制御装置201と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。学習制御装置201とユーザとのインタラクションは、インタフェース740が、表示装置等の出力デバイスと、キーボードおよびマウス等の入力デバイスを有し、CPU710の制御に従って動作することで実行される。
【0099】
なお、ニューラルネットワークシステム1、ニューラルネットワーク演算装置101、および、学習制御装置201の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0100】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0101】
1 ニューラルネットワークシステム
100 ニューラルネットワーク演算部
101 ニューラルネットワーク演算装置
110 データ取得部
111 顕在データ取得部
112 潜在データ取得部
121 基本モデル処理部
122 追加モデル処理部
130 統合処理部
200 学習制御部
201 学習制御装置
210 浸透データ記憶部
221 モデル構成制御部
222 結合荷重調整部
223 スイッチャー部
224 学習結果判定部