発明の詳細な説明【技術分野】 【0001】 本発明は、ニューラルネットワークを学習する技術に関する。 続きを表示(約 2,900 文字)【背景技術】 【0002】 大量の高次元データを分析する手法として様々な方法が提案されている。例えば、非特許文献1の非負値行列因子分解(Non-negative Matrix Factorization: NMF)や非特許文献2の無限関係モデル(Infinite Relational Model: IRM)を用いる方法がある。これらの方法を用いると、データの特徴的な性質を見出したり、共通の性質を持つデータをクラスタとしてまとめたりすることが可能となる。 【先行技術文献】 【非特許文献】 【0003】 Lee, D. D. and Seung, H. S., “Learning the parts of objects by non-negative matrix factorization,” Nature, 401, pp.788-791, 1999. Kemp, C., Tenenbaum, J. B., Griffiths, T. L., Yamada, T. and Ueda, N., “Learning systems of concepts with an infinite relational model,” AAAI06(Proceedings of the 21st national conference on Artificial intelligence, pp.381-388, 2006. 【発明の概要】 【発明が解決しようとする課題】 【0004】 NMFやIRMを用いる分析方法には、データアナリストが有するような高度な分析技術が必要になることが多い。しかし、データアナリストは分析対象となる高次元データ(以下、分析対象データという)そのものについては詳しくないことも多いため、このような場合、分析対象データの専門家との協調作業が必要になるが、この作業がうまく進まないこともある。そこで、データアナリストを必要とすることなく、分析対象データの専門家のみで分析することができる手法が必要となってくる。 【0005】 参考非特許文献1の変分オートエンコーダ(Variational AutoEncoder: VAE)のようにエンコーダとデコーダを含むニューラルネットワークを用いて分析することを考える。ここで、エンコーダとは、入力ベクトルを潜在変数ベクトルに変換するニューラルネットワーク、デコーダとは、潜在変数ベクトルを出力ベクトルに変換するニューラルネットワークである。また、潜在変数ベクトルは、入力ベクトルや出力ベクトルよりも低次元のベクトルであり、潜在変数を要素とするベクトルである。入力ベクトルと出力ベクトルとが略同一になるように学習したエンコーダを用いて高次元の分析対象データを変換すると、低次元の2次データに圧縮することができるが、分析対象データと2次データの関係が不明であるため、このままでは分析作業に適用することはできない。ここで、略同一になるように学習するとは、理想的には、完全同一になるように学習するのが好ましいが、現実的には、学習時間の制約などによりほぼ同一になるように学習せざるを得ないため、所定の条件を満たした場合に同一であるとみなして処理を終了する形で学習することをいう。 【0006】 (参考非特許文献1:Kingma, D. P. and Welling, M., “Auto-encoding variational bayes,” arXiv preprint arXiv:1312.6114, 2013.) また、入力情報を表す入力ベクトルの一部に欠損があり、情報が存在しない場合もある。この場合、入力情報が存在しないことを適切に扱えるようにしない限り、分析作業に適用することはできない。 【0007】 そこで本発明では、入力情報が存在しない場合であっても入力情報が存在しないことを損失として扱わない損失関数を用いてエンコーダとデコーダを含むニューラルネットワークを学習する技術を提供することを目的とする。 【課題を解決するための手段】 【0008】 本発明の一形態は、入力ベクトルを潜在変数を要素とする潜在変数ベクトルに変換するエンコーダと潜在変数ベクトルを出力ベクトルに変換するデコーダとを含むニューラルネットワークを入力ベクトルと出力ベクトルとが略同一になるように学習するニューラルネットワーク学習装置であって、前記ニューラルネットワークに含まれるパラメータを更新するパラメータ更新処理を繰り返すことにより学習を行う学習部を含み、前記エンコーダは、所定の入力情報群に含まれる各入力情報が、正の情報に該当する、負の情報に該当する、情報が存在しない、の3通りのいずれかであるときに、各入力情報を、当該入力情報が正の情報に該当する場合に1であり、情報が存在しない場合または当該入力情報が負の情報に該当する場合に0である正情報ビットと、当該入力情報が負の情報に該当する場合に1であり、情報が存在しない場合または当該入力情報が正の情報に該当する場合に0である負情報ビットと、で表す入力ベクトルを入力とするものであり、前記エンコーダは、複数個の層により構成されたものであり、前記入力ベクトルを入力とする層は、前記入力ベクトルから複数個の出力値を得るものであり、前記各出力値は、前記入力ベクトルに含まれる正情報ビットの値のそれぞれに重みパラメータを与えたものと、前記入力ベクトルに含まれる負情報ビットの値のそれぞれに重みパラメータを与えたものと、をすべて加算したものであり、前記パラメータ更新処理は、前記入力情報が正の情報に該当する場合には、前記デコーダにより得られた入力情報が正の情報に該当する確率が小さいほど大きな値であり、前記入力情報が負の情報に該当する場合には、前記デコーダにより得られた入力情報が負の情報に該当する確率が小さいほど大きな値であり、前記入力情報が存在しない場合には、略0である、損失の学習用の入力情報群のすべての入力情報についての和、を含む損失関数の値が小さくなるように行われる。 【発明の効果】 【0009】 本発明によれば、入力情報が存在しない場合であっても入力情報が存在しないことを損失として扱わない損失関数を用いてエンコーダとデコーダを含むニューラルネットワークを学習することが可能となる。 【図面の簡単な説明】 【0010】 分析対象データの一例を示す図である。 ニューラルネットワーク学習装置100の構成を示すブロック図である。 ニューラルネットワーク学習装置100の動作を示すフローチャートである。 本発明の実施形態における各装置を実現するコンピュータの機能構成の一例を示す図である。 【発明を実施するための形態】 (【0011】以降は省略されています) この特許をJ-PlatPatで参照する