(57)【要約】【課題】非負値行列因子分解の計算を高速化すること。【解決手段】分析装置は、非負値の行列Ｙを表す行列データを入力として、前記行列Ｙの１つの列又は２以上の列で構成される複数の区分行列Ｙｉ（ｉ＝１，・・・，Ｉ）に前記行列Ｙを分割する分割手段と、行列Ｈｉと行列Ｕｉとの積が前記区分行列Ｙｉに近くなるように前記行列Ｈｉと前記行列Ｕｉとを繰り返し更新する処理を、少なくとも２以上の前記区分行列Ｙｉに対して並列に実行する更新手段と、を有し、前記更新手段は、前記行列Ｙに応じて予め与えられたグラフ構造に基づいて、所定の行列Ｈｉ及びＨｊ（ｊ≠ｉ，ｊ∈｛１，・・・，Ｉ｝）同士の距離が近くなるように、前記繰り返し更新する処理を並列に実行する、ことを特徴とする。【選択図】図２
2020201866.tif 000002
【特許請求の範囲】
【請求項１】
非負値の行列Ｙを表す行列データを入力として、前記行列Ｙの１つの列又は２以上の列で構成される複数の区分行列Ｙｉ（ｉ＝１，・・・，Ｉ）に前記行列Ｙを分割する分割手段と、
行列Ｈｉと行列Ｕｉとの積が前記区分行列Ｙｉに近くなるように前記行列Ｈｉと前記行列Ｕｉとを繰り返し更新する処理を、少なくとも２以上の前記区分行列Ｙｉに対して並列に実行する更新手段と、
を有し、
前記更新手段は、
前記行列Ｙに応じて予め与えられたグラフ構造に基づいて、所定の行列Ｈｉ及びＨｊ（ｊ≠ｉ，ｊ∈｛１，・・・，Ｉ｝）同士の距離が近くなるように、前記繰り返し更新する処理を並列に実行する、ことを特徴とする分析装置。
【請求項２】
前記グラフ構造は、頂点集合をＶ＝｛１，・・・，Ｉ｝、所定の頂点同士を接続する辺の集合をＥとしたグラフを表す構造であり、
前記更新手段は、
前記辺で接続されている頂点ｉ及びｊに対応する行列Ｈｉ及びＨｊ同士の距離が近くなるように、前記繰り返し更新する処理を並列に実行する、ことを特徴とする請求項１に記載の分析装置。
【請求項３】
前記更新手段は、
前記繰り返し更新が所定の繰り返し回数に達する毎に、前記繰り返し更新が並列に実行されている各行列Ｈｉ及びＵｉの更新回数を同期させる、ことを特徴とする請求項２に記載の分析装置。
【請求項４】
前記頂点集合を、任意の２つの頂点同士が辺で接続されていない頂点で構成される部分頂点集合に分割する頂点集合分割手段を有し、
前記更新手段は、
同一の前記部分頂点集合に含まれる頂点ｉと頂点ｊとにそれぞれ対応する行列Ｈｉ及びＵｉと行列Ｈｊ及びＵｊとの更新回数は同期させない、ことを特徴とする請求項３に記載の分析装置。
【請求項５】
所定の終了条件を満たすか否かを判定する判定手段を有し、
前記更新手段は、
前記判定手段により前記終了条件を満たすと判定されるまで、前記繰り返し更新を並列に実行する、ことを特徴とする請求項１乃至４の何れか一項に記載の分析装置。
【請求項６】
前記距離は、フロベニウスノルム又は一般化ＫＬダイバージェンスである、ことを特徴とする請求項１乃至５の何れか一項に記載の分析装置。
【請求項７】
非負値の行列Ｙを表す行列データを入力として、前記行列Ｙの１つの列又は２以上の列で構成される複数の区分行列Ｙｉ（ｉ＝１，・・・，Ｉ）に前記行列Ｙを分割する分割手順と、
行列Ｈｉと行列Ｕｉとの積が前記区分行列Ｙｉに近くなるように前記行列Ｈｉと前記行列Ｕｉとを繰り返し更新する処理を、少なくとも２以上の前記区分行列Ｙｉに対して並列に実行する更新手順と、
をコンピュータが実行し、
前記更新手順は、
前記行列Ｙに応じて予め与えられたグラフ構造に基づいて、所定の行列Ｈｉ及びＨｊ（ｊ≠ｉ，ｊ∈｛１，・・・，Ｉ｝）同士の距離が近くなるように、前記繰り返し更新する処理を並列に実行する、ことを特徴とする分析方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか一項に記載の分析装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析装置、分析方法及びプログラムに関する。
【背景技術】
【０００２】
非負値で表現されるデータ（例えば、文章データ、音源データ、顧客データ等）の圧縮や潜在的特徴の可視化等の分析を行うための手法として、非負値行列因子分解（ＮＭＦ：Non-negative Matrix Factorization）と呼ばれる手法が知られている（例えば、非特許文献１参照）。ＮＭＦでは、非負値制約下で、行列で表されるデータを指定した基底数に分解し、低ランクの近似表現を得る手法である。低ランクの表現を得る手法としては、ＮＭＦ以外にも、例えば、主成分分析や特異点分解等もあるが、ＮＭＦでは非負値行列のみを対象とし、分解後の行列も非負値行列に制限される。これにより、ＮＭＦでは、より直観的な潜在的特徴を抽出することが可能とされている。
【０００３】
ところで、近年では、扱えるデータ量や種類の増加に伴って、大規模な行列に対してＮＭＦを適用する場合が多くなってきた。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】D.D. Lee and H.S. Seung, "Learning the parts of objects with nonnegative matrix factorization," Nature, vol. 401, pp. 788-791, 1999.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のＮＭＦを大規模な行列に対して適用した場合、多くの計算時間を要することがあった。
【０００６】
本発明の実施の形態は、上記の点に鑑みてなされたもので、非負値行列因子分解の計算を高速化することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態における分析装置は、非負値の行列Ｙを表す行列データを入力として、前記行列Ｙの１つの列又は２以上の列で構成される複数の区分行列Ｙｉ（ｉ＝１，・・・，Ｉ）に前記行列Ｙを分割する分割手段と、行列Ｈｉと行列Ｕｉとの積が前記区分行列Ｙｉに近くなるように前記行列Ｈｉと前記行列Ｕｉとを繰り返し更新する処理を、少なくとも２以上の前記区分行列Ｙｉに対して並列に実行する更新手段と、を有し、前記更新手段は、前記行列Ｙに応じて予め与えられたグラフ構造に基づいて、所定の行列Ｈｉ及びＨｊ（ｊ≠ｉ，ｊ∈｛１，・・・，Ｉ｝）同士の距離が近くなるように、前記繰り返し更新する処理を並列に実行する、ことを特徴とする。
【発明の効果】
【０００８】
非負値行列因子分解の計算を高速化することができる。
【図面の簡単な説明】
【０００９】
【図１】グラフの一例を示す図である。
【図２】本実施形態に係る分析装置の機能構成の一例を示す図である。
【図３】本実施形態に係る分析装置のハードウェア構成の一例を示す図である。
【図４】本実施形態に係る非負値行列因子分解の流れの一例を示すフローチャートである。
【図５】６地域に対応する頂点を持つグラフの一例を示す図である。
【図６Ａ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その１）である。
【図６Ｂ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その２）である。
【図６Ｃ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その３）である。
【図６Ｄ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その４）である。
【図６Ｅ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その５）である。
【図６Ｆ】本実施形態に係る非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その６）である。
【図７Ａ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その１）である。
【図７Ｂ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その２）である。
【図７Ｃ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その３）である。
【図７Ｄ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その４）である。
【図７Ｅ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その５）である。
【図７Ｆ】従来の非負値行列因子分解をＹｓｍａｌｌ＊に適用した場合の基底行列の一例を示す図（その６）である。
【図８】従来の非負値行列因子をＹｓｍａｌｌに適用した場合の基底行列の一例を示す図である。
【図９】頂点彩色の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態（以降、「本実施形態」とも表す。）について詳細に説明する。本実施形態では、ＮＭＦの計算を依存関係の小さい複数の部分（つまり、部分的なＮＭＦ）に分割し、これらの複数の部分的なＮＭＦを並列に計算することで、元のＮＭＦの計算を高速化する場合について説明する。
【００１１】
＜従来のＮＭＦ＞
まず、従来のＮＭＦについて説明する。従来のＮＭＦでは、非負値の行列
【００１２】
【数１】
2020201866.tif 000003
が与えられた場合に、基底数Ｋを定めると、分解後の行列は、基底行列
【００１３】
【数２】
2020201866.tif 000004
と、重み行列
【００１４】
【数３】
2020201866.tif 000005
とになる。このとき、基底行列Ｈと重み行列Ｕとの積ＨＵを元の行列Ｙの近似となるように、ＨＵとＹとの距離関数を最小化する問題を解くことになる。距離関数としては、例えば、フロベニウスノルムや一般化ＫＬダイバージェンス、板倉斉藤距離等が用いられる。例えば、距離関数としてフロベニウスノルムを用いた場合、この距離関数の最小化問題は、以下の式（１）のように定式化される。
【００１５】
【数４】
2020201866.tif 000006
ここで、Ｈ≧０及びＵ≧０はそれぞれ基底行列Ｈ及び重み行列Ｕの各成分が非負であることを表す。なお、以降では、基底行列Ｈと重み行列Ｕとの積ＨＵを「Ｙ＾」とも表す。
【００１６】
上記の距離関数の最小化問題にはいくつかの数学的解法が提案されており、例えば、乗法的更新ルール（例えば参考文献１参照）やＡＬＳ（Alternating Least Squares）（例えば参考文献２参照）等が知られている。
【００１７】
［参考文献１］
A. Cichocki, R. Zdunek, A.H. Phan, and S. Amari. Non-negative Matrix and Tensor Factorizations : Applications to Exploratory Multi-way Data Analysis and Blind Source Separation, Wiley, 2009.
［参考文献２］
Cichocki, A., Zdunek, R. and Amari, S.: Hierarchical ALS algorithms for nonnegative matrix and 3D tensor factorization, Proc. ICA (2007).
上記の式（１）に示した最小化問題（つまり、フロベニウスノルムの最小化問題）を乗法的更新ルールで解く場合、まず、基底行列Ｈと重み行列Ｕとを初期化した上で、以下の式（２）を繰り返し用いて基底行列Ｈと重み行列Ｕとを更新する。このような繰り返しは、例えば、予め決められた所定の回数又は更新前後の変化が或る一定の値以下となるまで行われる。
【００１８】
【数５】
2020201866.tif 000007
ここで、Ｈｎ，ｋは基底行列Ｈの（ｎ，ｋ）成分、Ｕｋ，ｍは重み行列Ｕの（ｋ，ｍ）成分である。
【００１９】
これにより、基底行列Ｈと重み行列Ｕとの積が元の行列Ｙを近似するような行列Ｈ及びＵが得られる（つまり、非負値の行列Ｙが、行列Ｈと行列Ｕとに分解される。）。
【００２０】
＜本実施形態のＮＭＦ＞
次に、本実施形態のＮＭＦについて説明する。本実施形態のＮＭＦでは、非負値の行列Ｙが与えられた場合に、この行列Ｙを列について分割し、複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩを得る。そして、これら複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩの各々に対して個別にＮＭＦを適用し、基底行列Ｈ１，Ｈ２，・・・，ＨＩと、重み行列Ｕ１，Ｕ２，・・・，ＵＩとに分解する。これらの各区分行列Ｙ１，Ｙ２，・・・，ＹＩに対するＮＭＦの計算は依存関係がないため並列に実行可能であるが、従来のＮＭＦをそのまま適用すると、異なる複数の基底行列が得られ、各区分行列が異なる特徴空間で表現されてしまう場合がある。そこで、本実施形態のＮＭＦでは、各区分行列Ｙ１，Ｙ２，・・・，ＹＩに対してＮＭＦを適用する際に、同時に、所定の基底行列Ｈｉ及びＨｊの距離が小さくなるようにする。これにより、本実施形態のＮＭＦでは、計算を高速化させることができると共に、従来のＮＭＦと同等の結果を得ることが可能となる。なお、以降では、Ｙ＊、Ｈ＊及びＵ＊を用いて、Ｙ＊＝｛Ｙ１，Ｙ２，・・・，ＹＩ｝、Ｈ＊＝｛Ｈ１，Ｈ２，・・・，ＨＩ｝、Ｕ＊＝｛Ｕ１，Ｕ２，・・・，ＵＩ｝とも表す。
【００２１】
本実施形態のＮＭＦについてより詳しく説明すると、非負値の行列Ｙが与えられた場合に、この行列Ｙを以下のように列について分解し、複数の区分行列Ｙ＊＝｛Ｙ１，Ｙ２，・・・，ＹＩ｝（Ｙｉ≧０）に分解する。
【００２２】
【数６】
2020201866.tif 000008
すなわち、各区分行列Ｙｉとは、行列Ｙの１つの列又は２以上の連続する列で構成される行列のことである。
【００２３】
また、本実施形態のＮＭＦでは、出力として得るＨ＊（及びＵ＊）のうち、Ｈｉ及びＨｊを同様の基底行列としたい場合（つまり、Ｈｉ及びＨｊの距離を小さくしたい場合）に、辺（ｉ，ｊ）∈Ｅとなる無向グラフＧ（Ｖ＝｛１，２，・・・，Ｉ｝，Ｅ）を与える。また、グラフＧの隣接行列をＡ（Ｇ）＝（ａｉｊ）とする。ＶはグラフＧの頂点の集合、ＥはグラフＧの辺（エッジ）の集合である。
【００２４】
一例として、Ｉ＝６の場合におけるグラフＧを図１に示す。図１に示すグラフＧでは、ノード１とノード２、ノード１とノード３、ノード２とノード４、ノード５とノード６がそれぞれ辺で接続されている。したがって、Ｈ１及びＨ２、Ｈ１及びＨ３、Ｈ２及びＨ４、Ｈ５及びＨ６をそれぞれ同様の基底行列とした場合、図１に示すグラフＧが与えられる。なお、どの基底行列同士を同様とするかは（言い換えれば、グラフＧ上で、どの基底行列の組を辺で接続するかは）、ＮＭＦを用いて分析されるデータの性質等に応じて適宜設定される。
【００２５】
このとき、本実施形態のＮＭＦでは、以下の式（３）に示す目的関数を最小化することで、基底行列Ｈ＊及び重み行列Ｕ＊を得る。
【００２６】
【数７】
2020201866.tif 000009
ここで、ＤＲ及びＤＧは距離関数、αはハイパーパラメータである。上記の式（３）に示す目的関数の第１項（つまり、ＤＲ（Ｙｉ，ＨｉＵｉ））は再構成誤差を表す項、第２項（つまり、ＤＧ（Ｈｉ，Ｈｊ）を含む項）が所定の基底行列同士の距離を表す項である。上記の式（３）に示す目的関数に第２項を導入したことにより、所定の基底行列Ｈｉ及びＨｊ（つまり、与えられたグラフＧ上で辺によって互いに接続されているノードに対応する基底行列同士）を同様のものにすることができる。
【００２７】
例えば、図１に示すグラフＧが与えられた場合、ｉ＝１のとき、ＤＲ（Ｙ１，Ｈ１Ｕ１）＋（α／２）｛ＤＧ（Ｈ１，Ｈ２）＋ＤＧ（Ｈ１，Ｈ３）｝を計算する。したがって、上記の第２項が存在することで、この場合、Ｈ１とＨ２、Ｈ１とＨ３の距離を小さくすることができる。
【００２８】
（距離関数ＤＲ及びＤＧとしてフロベニウスノルムを用いた場合）
距離関数ＤＲ及びＤＧとして共にフロベニウスノルムを用いた場合、乗法的更新ルールにより、上記の式（３）に示す目的関数を最小化する基底行列Ｈｉ及び重み行列Ｕｉを求めることができる。すなわち、以下の式（４）を繰り返し用いて基底行列Ｈｉ及び重み行列Ｕｉを更新することで、上記の式（３）に示す目的関数を最小化する基底行列Ｈｉ及び重み行列Ｕｉを求めることができる。
【００２９】
【数８】
2020201866.tif 000010
ここで、Ｈｉ，ｎ，ｋは基底行列Ｈｉの（ｎ，ｋ）成分、Ｕｉ，ｋ，ｍは重み行列Ｕｉの（ｋ，ｍ）成分である。
【００３０】
（距離関数ＤＲ及びＤＧとして一般化ＫＬダイバージェンスを用いた場合）
距離関数ＤＧが一般化ＫＬダイバージェンスである場合、上記の式（３）に示す目的関数を乗法的更新ルールにより最小化することはできない。これは、基底行列Ｈｉの更新式が非負性を保った更新式ではなくなるためである。そこで、距離関数ＤＧが一般化ＫＬダイバージェンスである場合、ＤＧをＤＫＬと表記し、上記の式（３）に示す目的関数の代わりに、以下の式（５）に示す目的関数を用いる。
【００３１】
【数９】
2020201866.tif 000011
このとき、Ａ及びＢをそれぞれ以下のように定義する。
【００３２】
【数１０】
2020201866.tif 000012
そして、以下の式（６）を繰り返し用いて基底行列Ｈｉ及び重み行列Ｕｉを更新する。これにより、上記の式（５）に示す目的関数を最小化する基底行列Ｈｉ及び重み行列Ｕｉを求めることができる。
【００３３】
【数１１】
2020201866.tif 000013
なお、上記のＡの定義における第２項「ｌｏｇ（Ｈｊ，ｎ，ｌ＋１）」中の「＋１」はｌｏｇがマイナスの値となることを防止するための定数項である。このため、この定数項は必ずしも「＋１」である必要性はなく、ｌｏｇ（Ｈｊ，ｎ，ｌ＋ｃ）が非負となるような任意のｃ（≧０）を当該定数項とすることができる。同様に、上記のＢの定義における第２項に含まれる「ｌｏｇ（Ｈｊ，ｎ，ｌ＋１）」中の「＋１」も、ｌｏｇ（Ｈｊ，ｎ，ｌ＋ｃ）が非負となるような任意のｃ（≧０）を定数項として「＋１」の代わりに用いることができる。
【００３４】
上記では、距離関数ＤＲ及びＤＧが共にフロベニウスノルムである場合と、距離関数ＤＲ及びＤＧが共に一般化ＫＬダイバージェンスである場合とについて説明したが、距離関数ＤＲ及びＤＧとしてそれぞれ異なる距離関数が用いられてもよい。したがって、Ｈｉ，ｎ，ｋの更新式は、以下の式（７）のように整理することができる。
【００３５】
【数１２】
2020201866.tif 000014
ここで、ＤＲがフロベニウスノルムである場合は
【００３６】
【数１３】
2020201866.tif 000015
であり、一般化ＫＬダイバージェンスである場合は
【００３７】
【数１４】
2020201866.tif 000016
である。また、ＤＧがフロベニウスノルムである場合は
【００３８】
【数１５】
2020201866.tif 000017
であり、一般化ＫＬダイバージェンスである場合は
【００３９】
【数１６】
2020201866.tif 000018
である。なお、ＤＧが一般化ＫＬダイバージェンスである場合におけるＮＲの第１項「ｌｏｇ（Ｈｊ，ｎ，ｌ＋１）」中の「＋１」は、上記のＡ及びＢの定義と同様に、ｌｏｇ（Ｈｊ，ｎ，ｌ＋ｃ）が非負となるような任意のｃ（≧０）を用いることができる。同様に、ＤＧが一般化ＫＬダイバージェンスである場合におけるＤＲの第１項「ｌｏｇ（Ｈｊ，ｎ，ｌ＋１）」中の「＋１」は、上記のＡ及びＢの定義と同様に、ｌｏｇ（Ｈｊ，ｎ，ｌ＋ｃ）が非負となるような任意のｃ（≧０）を用いることができる。
【００４０】
＜機能構成＞
次に、上述した本実施形態のＮＭＦを実行する分析装置１０の機能構成について、図２を参照しながら説明する。図２は、本実施形態に係る分析装置１０の機能構成の一例を示す図である。
【００４１】
図２に示すように、本実施形態に係る分析装置１０は、機能部として、入力部１０１と、初期化部１０２と、分割部１０３と、更新部１０４と、判定部１０５と、出力部１０６とを有する。
【００４２】
入力部１０１は、本実施形態のＮＭＦを用いて分析されるデータ（非負値の行列で表されるデータ）を入力する。なお、入力部１０１は、任意の入力元からデータを入力することができる。例えば、入力部１０１は、補助記憶装置２０８に格納されているデータを入力してもよいし、通信ネットワークを介して所定のサーバ装置等からデータを入力（受信）してもよいし、記録媒体２０３ａに記録されているデータを入力してもよい。
【００４３】
初期化部１０２は、本実施形態のＮＭＦの結果となる基底行列Ｈｉ及び重み行列Ｗｉの初期値を設定する。初期化部１０２は、例えば、一様分布からサンプリングした値を基底行列Ｈｉ及び重み行列Ｗｉそれぞれの各成分の初期値とすればよい。
【００４４】
分割部１０３は、入力部１０１により入力されたデータが表す行列Ｙを複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩに分割する。また、分割部１０３は、これらの複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩを表すデータのそれぞれを、子プロセスのメモリ空間に割り当てる。これらの子プロセスで各区分行列Ｙｉに対するＮＭＦが並列に計算される。
【００４５】
なお、子プロセスとは親プロセスから呼び出されたプロセスのことであり、各区分行列Ｙｉに対して子プロセスがそれぞれ呼び出される。親プロセスでは、例えば、入力部１０１によるデータの入力、初期化部１０２による初期化、後述する出力部１０６による出力等が行われる。一方で、子プロセスでは、後述する更新部１０４による更新、後述する判定部１０５による判定等が行われる。
【００４６】
更新部１０４は、区分行列Ｙｉを表すデータと、与えられたグラフＧのグラフ構造とに基づいて、上記の式（４）又は式（６）により基底行列Ｈｉ及び重み行列Ｕｉの各成分を更新する。なお、本実施形態では、ＮＭＦを用いて分析されるデータ（つまり、入力部１０１により入力するデータ）の性質等に応じたグラフＧが分析装置１０に予め与えられるものとする。
【００４７】
判定部１０５は、所定の終了条件を満たすか否かを判定する。所定の終了条件を満たさない場合は、更新部１０４による更新が再度行われる。一方で、所定の終了条件を満たす場合は、後述する出力部１０６による出力が行われる。これにより、所定の終了条件を満たすまで、更新部１０４によって基底行列Ｈｉ及び重み行列Ｕｉの各成分が繰り返し更新される。
【００４８】
ここで、所定の終了条件としては、例えば、以下の（終了条件１）〜（終了条件３）のいずれか等が挙げられる。
【００４９】
（終了条件１）更新部１０４による更新の繰り返し回数が所定の回数に達した。
【００５０】
（終了条件２）直前の繰り返し回数での更新部１０４による更新前の区分行列Ｙｉと基底行列Ｈｉと重み行列Ｕｉとに基づいて計算される目的関数の値と、直前の繰り返し回数での更新部１０４による更新後の区分行列Ｙｉと基底行列Ｈｉと重み行列Ｕｉとに基づいて計算される目的関数の値との差の絶対値が所定の閾値以下となった（つまり、基底行列Ｈｉ及び重み行列Ｕｉの更新前後で目的関数値の減少量が所定の閾値以下となった。）。
【００５１】
（終了条件３）直前の繰り返し回数において、上記の式（４）又は式（６）で各成分に乗ずる値（つまり、Ｈｉ，ｎ，ｋ及びＵｉ，ｎ，ｋに乗ずる分数部分の値）が１に近付いた（つまり、当該分数部分の値と１との差の絶対値（更新量）が所定の閾値以下となった。）。
【００５２】
出力部１０６は、判定部１０５により所定の終了条件を満たすと判定された場合、各基底行列Ｈｉをそれぞれ表すデータと、各重み行列Ｕｉをそれぞれ表すデータとを出力する。なお、出力部１０６は、これらのデータを任意の出力先に出力することができる。例えば、出力部１０６は、補助記憶装置２０８にデータを出力（格納）してもよいし、通信ネットワークを介して所定のサーバ装置等にデータを出力（送信）してもよいし、記録媒体２０３にデータを出力（格納）してもよい。
【００５３】
＜ハードウェア構成＞
次に、本実施形態に係る分析装置１０のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る分析装置１０のハードウェア構成の一例を示す図である。
【００５４】
図３に示すように、本実施形態に係る分析装置１０は、ハードウェアとして、入力装置２０１と、表示装置２０２と、外部Ｉ／Ｆ２０３と、ＲＡＭ（Random Access Memory）２０４と、ＲＯＭ（Read Only Memory）２０５と、プロセッサ２０６と、通信Ｉ／Ｆ２０７と、補助記憶装置２０８とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００５５】
入力装置２０１は、例えばキーボードやマウス、タッチパネル等である。表示装置２０２は、例えばディスプレイ等である。なお、分析装置１０は、入力装置２０１及び表示装置２０２の少なくとも一方を有していなくてもよい。
【００５６】
外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、ＣＤやＤＶＤ、ＳＤメモリカード、ＵＳＢメモリカード等の記録媒体２０３ａがある。分析装置１０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込み等を行うことができる。なお、記録媒体２０３ａには、分析装置１０が有する各機能部（入力部１０１、初期化部１０２、分割部１０３、更新部１０４、判定部１０５及び出力部１０６）を実現する１以上のプログラム等が記録されていてもよい。
【００５７】
ＲＡＭ２０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ２０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。
【００５８】
プロセッサ２０６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等の各種演算装置である。分析装置１０が有する各機能部は、例えば、補助記憶装置２０８等に格納された１以上のプログラムがプロセッサ２０６に実行させる処理により実現される。
【００５９】
通信Ｉ／Ｆ２０７は、分析装置１０を通信ネットワークに接続するためのインタフェースである。分析装置１０が有する各機能部を実現する１以上のプログラムは、例えば、通信Ｉ／Ｆ２０７を介して、所定のサーバ装置等から取得（ダウンロード）されてもよい。
【００６０】
補助記憶装置２０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等である。補助記憶装置２０８に格納されているプログラムやデータには、例えば、ＯＳ（Operating System）や当該ＯＳ上で各種機能を実現するアプリケーションプログラム、分析装置１０が有する各機能部を実現する１以上のプログラム等がある。
【００６１】
本実施形態に係る分析装置１０は、図３に示すハードウェア構成を有することにより、後述する「本実施形態の非負値行列因子分解の流れ」における各種処理を実現することができる。なお、図３では、本実施形態に係る分析装置１０が１台の装置（コンピュータ）で実現されている場合を示したが、これに限られない。本実施形態に係る分析装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ２０６や複数のメモリ（ＲＡＭ２０４やＲＯＭ２０５、補助記憶装置２０８等）が含まれていてもよい。
【００６２】
＜本実施形態の非負値行列因子分解の流れ＞
以降では、本実施形態に係る分析装置１０が実行する非負値行列因子分解の流れについて、図４を参照しながら説明する。図４は、本実施形態に係る非負値行列因子分解の流れの一例を示すフローチャートである。
【００６３】
まず、入力部１０１は、非負値の行列Ｙを表すデータを入力する（ステップＳ１０１）。
【００６４】
次に、初期化部１０２は、基底行列Ｈｉ及び重み行列Ｗｉ（ｉ＝１，２，・・・，Ｉ）の初期値（より正確には、基底行列Ｈｉ及び重み行列Ｗｉをそれぞれ表すデータの初期値）を設定する（ステップＳ１０２）。なお、Ｉは２以上の整数であり、予め設定される。
【００６５】
次に、分割部１０３は、上記のステップＳ１０１で入力されたデータが表す行列Ｙを複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩに分割（より正確には、行列Ｙを表すデータを、複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩをそれぞれ表すデータに分割）する（ステップＳ１０３）。これらの複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩの各々を表すデータは、分割部１０３によってそれぞれ異なる子プロセスのメモリ空間に割り当てられる。
【００６６】
以降のステップＳ１０４〜ステップＳ１０５の処理は、子プロセス毎に並列に実行（つまり、プロセッサ２０６でマルチプロセス実行）される。以降では、或る区分行列Ｙｉに対してステップＳ１０４〜ステップＳ１０５の処理を実行する場合について説明する。ただし、並列実行可能な子プロセス数はプロセッサ２０６の性能等によって異なり、必ずしも全ての区分行列Ｙｉに対して並列に実行される必要はない。
【００６７】
更新部１０４は、区分行列Ｙｉを表すデータと、与えられたグラフＧの距離関数ＤＧとに基づいて、上記の式（４）又は式（６）により基底行列Ｈｉ及び重み行列Ｕｉの各成分を更新する（ステップＳ１０４）。なお、上述したように、本実施形態では、ＮＭＦを用いて分析されるデータの性質に応じたグラフＧが分析装置１０に予め与えられているものとする。ただし、このようなグラフＧは、上記のステップＳ１０１で入力部１０１によって入力されてもよい。
【００６８】
次に、判定部１０５は、所定の終了条件を満たすか否かを判定する（ステップＳ１０５）。このステップＳ１０５で所定の終了条件を満たさないと判定された場合は、ステップＳ１０４に戻る。これにより、終了条件を満たすまで基底行列Ｈｉ及び重み行列Ｕｉが繰り返し更新される。一方で、ステップＳ１０５で所定の終了条件を満たすと判定された場合は、ステップＳ１０６に進む。
【００６９】
最後に、出力部１０６は、各基底行列Ｈｉをそれぞれ表すデータと、各重み行列Ｕｉをそれぞれ表すデータとを出力する（ステップＳ１０６）。
【００７０】
以上のように、本実施形態に係る分析装置１０は、行列Ｙを複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩに分割した上で、これらの区分行列Ｙ１，Ｙ２，・・・，ＹＩに対して並列にＮＭＦを実行することで、高速なＮＭＦを実現することが可能となる。また、このとき、ＮＭＦの目的関数に対してグラフＧのグラフ構造に基づく距離関数ＤＧを導入することで、所定の基底行列同士を同様な基底行列とすることが可能となり、従来のＮＭＦと同様の結果を得ることが可能（すなわち、本実施形態のＮＭＦでは、従来のＮＭＦと同様の結果を、より高速に得ることが可能となる。）となる。したがって、特に、行数や列数が多い大規模な行列Ｙを対象とした場合に、本実施形態のＮＭＦでは、従来のＮＭＦよりも、より少ない計算時間で結果を得ることが可能となり、効率的な分析を行うことができるようになる。
【００７１】
＜従来のＮＭＦとの比較＞
以降では、基底行列及び重み行列の更新に上記の式（２）を用いた従来のＮＭＦ（以降、「従来手法」とも表す。）と、基底行列及び重み行列の更新に上記の式（４）を用いた本実施形態のＮＭＦ（以降、「本実施形態の手法」とも表す。）との比較結果について説明する。なお、非負値の行列Ｙが入力された場合、従来手法では当該行列Ｙを１つのプロセッサで基底行列及び重み行列の更新を逐次実行し、本実施形態の手法では当該行列Ｙを複数の区分行列Ｙ１，Ｙ２，・・・，ＹＩに分割した上で、これらの区分行列Ｙ１，Ｙ２，・・・，ＹＩそれぞれの基底行列及び重み行列の更新を１つのプロセッサでマルチプロセス実行するものとする。
【００７２】
（比較に用いるデータ）
行列ＹとしてＮｅｗＹｏｒｋ市のタクシー乗車数のデータを使用して、サイズの異なる以下の２種類の行列データ（行列データ１及び行列データ２）で従来手法と本実施形態の手法との比較を行った。
【００７３】
・行列データ１：Ｙｓｍａｌｌ  （２４×２１９０）
行列データ１は、ＮｅｗＹｏｒｋ市のタクシー乗車数をＮｅｗＹｏｒｋ市の６地域毎に集計したデータである。行列Ｙｓｍａｌｌ＝（ｙｎ，ｍ）は、地域番号
【００７４】
【数１７】
2020201866.tif 000019
（つまり、ｍ／６の天井関数値）におけるｍ（ｍｏｄ  ６）日のｎ時からｎ＋１時までのタクシー乗車数を表す。また、行列Ｙｓｍａｌｌを列について分割し、複数の区分行列Ｙｓｍａｌｌ＊＝｛Ｙ１，Ｙ２，・・・，Ｙ６｝とした。各区分行列Ｙｉ（ｉ＝１，２，・・・，６）のサイズは２４×３６５であり、
【００７５】
【数１８】
2020201866.tif 000020
は地域番号ｉにおけるｍ日のｎ時からｎ＋１自までのタクシー乗車数を表す。なお、地域番号とＮｅｗＹｏｒｋ市の実際の地域との対応関係は、地域番号１が「Ｂｒｏｎｘ」、地域番号２が「Ｂｒｏｏｋｌｙｎ」、地域番号３が「ＥＷＲ」、地域番号４が「Ｍａｎｈａｔｔａｎ」、地域番号５が「Ｑｕｅｅｎｓ」、地域番号６が「Ｓｔａｔｅｎ  Ｉｓｌａｎｄ」である。
【００７６】
・行列データ２：Ｙｌａｒｇｅ  （１４４×８５４１０）
行列データ２は、ＮｅｗＹｏｒｋ市のタクシー乗車数をＮｅｗＹｏｒｋ市の２３４地域毎に集計したデータである。行列データ１では６地域毎に集計されていたが、行列データ２では更に細かな地域で集計したものとなっている。行列Ｙｌａｒｇｅ＝（ｙｎ，ｍ）は、地域番号
【００７７】
【数１９】
2020201866.tif 000021
におけるｍ（ｍｏｄ  ２３４）日の１０ｎ分から１０（ｎ＋１）分までのタクシー乗車数を表す。
【００７８】
行列Ｙｌａｒｇｅでは２通りの分割により複数の区分行列を作成した。１つ目の分割では、複数の区分行列をＹｌａｒｇｅ＊＝｛Ｙ１，Ｙ２，・・・，Ｙ２３４｝とし、各区分行列Ｙｉ（ｉ＝１，２，・・・，２３４）のサイズは１４４×３６５であり、
【００７９】
【数２０】
2020201866.tif 000022
は地域番号ｉにおけるｍ日の１０ｎ分から１０（ｎ＋１）分までのタクシー乗車数を表すものとした。なお、地域番号は１≦ｉ≦２３４である。
【００８０】
２つ目の分割では、複数の区分行列をＹｌａｒｇｅ＊＊＝｛Ｙ１，Ｙ２，・・・，Ｙ６｝とした。各区分行列Ｙｉ（ｉ＝１，２，・・・，６）のサイズはそれぞれ異なり、Ｙ１は１４４×１５６９５、Ｙ２は１４４×２２２６５、Ｙ３は１４４×３６５、Ｙ４は１４４×２５５５０、Ｙ５は１４４×２５１８５、Ｙ６は１４４×７３００であり、
【００８１】
【数２１】
2020201866.tif 000023
は地域番号ｉにおけるｍ日の１０ｎ分から１０（ｎ＋１）分までのタクシー乗車数を表すものとした。なお、地域番号は行列データ１と同様に、１≦ｉ≦６であり、実際の地域との対応関係も行列データ１と同様である。
【００８２】
（グラフＧの構築）
各頂点がＮｅｗＹｏｒｋ市の各地域番号に対応するようにグラフＧを構築した。そして、実際に互いに隣接する地域に対応する頂点同士を辺で接続した。これは、「近い地域同士であればタクシー乗車数にも似たような傾向（共通の潜在的特徴）が存在する」と考えられるためである。これにより、本実施形態の手法では、互いに隣接する地域に対応する基底行列同士が同様の行列となる。なお、このようなグラフＧ（又はグラフＧのグラフ構造）は、非負値の行列を表すデータ（この場合、ＮｅｗＹｏｒｋ市のタクシーの乗車数を表す行列データ）の性質に応じて予め作成又は構築され、分析装置１０に与えられる。
【００８３】
したがって、複数の区分行列Ｙｓｍａｌｌ＊又はＹｌａｒｇｅ＊＊に対して本実施形態の手法を適用する場合には、６地域に対応する頂点を持ち、実際に隣接している地域に対応する頂点同士を辺で接続したグラフＧを構築する。このグラフＧを図５に示す。図５に示すグラフＧは、地域番号１〜６にそれぞれ対応する頂点を有し、互いに隣接する地域に対応する頂点同士が辺で接続されている。
【００８４】
このとき、図５に示すグラフＧの隣接行列Ａ（Ｇ）は以下の式（８）のようになる。
【００８５】
【数２２】
2020201866.tif 000024
一方で、複数の区分行列Ｙｌａｒｇｅ＊に対して本実施形態の手法を適用する場合においては、２３４地域の隣接関係を調べるのが困難であったため、全ての頂点が３本の無向辺を持つように、以下の式（９）及び（１０）によりグラフＧを構築した。
【００８６】
【数２３】
2020201866.tif 000025
なお、後述するように、複数の区分行列Ｙｌａｒｇｅ＊は計算時間の評価にのみ用いるため、このようなグラフＧを構築しても問題ないと考えられる。計算時間の評価では辺の本数のみが重要なためである。
【００８７】
（基底行列の評価）
行列データ１を用いて基底行列の評価を行った。まず、ヒートマップを用いて基底行列を可視化し、従来手法をＹｓｍａｌｌに適用した場合と、従来手法をＹｓｍａｌｌ＊に適用した場合と、本実施形態の手法をＹｓｍａｌｌ＊に適用した場合とで比較を行った。次に、評価値を以下の式（１１）により求め、従来手法をＹｓｍａｌｌ＊に適用した場合と、本実施形態の手法をＹｓｍａｌｌ＊に適用した場合とで比較を行った。
【００８８】
【数２４】
2020201866.tif 000026
ここで、評価値Ｄの値は、小さいほど同様の特徴空間で互いに隣接する地域のデータを表現できていると言える。なお、辺の集合Ｅとしては、上記の式（８）に示す隣接行列Ａ（Ｇ）に対応するグラフＧの集合Ｅを用いた。
【００８９】
また、詳細な条件としては、特徴数をＫ＝５、判定部１０５の終了条件としては終了条件１を用いて、繰り返し回数が１０４回に達した場合に更新部１０４による更新を終了するものとした。更に、基底行列Ｈｉ及び重み行列Ｕｉの初期化には、値域が
【００９０】
【数２５】
2020201866.tif 000027
の一様乱数を用いた。この乱数を用いることで、初期値の期待値が
【００９１】
【数２６】
2020201866.tif 000028
を満たす。加えて、本実施形態の手法におけるマルチプロセス実行では、繰り返し回数１００回毎に同期を行い、各Ｈｉ及びＵｉの更新回数が１００回以上ずれないようにした。また、ハイパーパラメータαはα＝５００とした。
【００９２】
以上の条件の下、まず、従来手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合と、本実施形態の手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合とについて述べる。図６Ａ〜図６Ｆは、本実施形態の手法をＹｓｍａｌｌ＊に適用した場合における各地域にそれぞれ対応する基底行列Ｈｉのヒートマップである。一方で、図７Ａ〜図７Ｆは、従来手法をＹｓｍａｌｌ＊に適用した場合における各地域にそれぞれ対応する基底行列Ｈｉのヒートマップである。
【００９３】
図６Ａ〜図６Ｆと図７Ａ〜図７Ｆとを比較すると、従来手法では全ての地域で基底行列が異なっているのに対して、本実施形態の手法ではＢｒｏｎｘ、Ｂｒｏｏｋｌｙｎ、ＥＷＲ、Ｍａｎｈａｔｔａｎ及びＱｕｅｅｎｓの基底行列が同様な行列になっていることがわかる。すなわち、本実施形態の手法では、グラフＧで連結な頂点に対応する基底行列同士の距離を小さくすることができている。
【００９４】
また、従来手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合と、本実施形態の手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合との評価値Ｄを以下の表１に示す。
【００９５】
【表１】
2020201866.tif 000029
なお、上記の表１中の評価値Ｄは、上記の式（１１）により求めた１０回の評価値Ｄの平均値である。
【００９６】
上記の表１に示すように、従来手法と本実施形態の手法とを比較した場合、本実施形態の手法の方が評価値Ｄの値が小さくなっており、所定の基底行列同士の距離を小さくすることができている。
【００９７】
次に、従来手法を行列Ｙｓｍａｌｌに適用した場合と、本実施形態の手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合とについて述べる。図８は、従来手法を行列Ｙｓｍａｌｌに適用した場合における基底行列のヒートマップである。
【００９８】
図６Ａ〜図６Ｆと図８とを比較すると、図６Ａ〜図６Ｅにそれぞれ示す基底行列（つまり、Ｂｒｏｎｘに対応する基底行列、Ｂｒｏｏｋｌｙｎに対応する基底行列、ＥＷＲに対応する基底行列、Ｍａｎｈａｔｔａｎに対応する基底行列及びＱｕｅｅｎｓに対応する基底行列）は、図８に示す基底行列の列ベクトルを適当に入れ替えた行列とも同様な行列になっている。このため、従来手法をＹｓｍａｌｌに適用した場合と、本実施形態の手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合とで同等な結果を得ることができていると言える。
【００９９】
なお、本実施形態の手法を複数の区分行列Ｙｓｍａｌｌ＊に適用した場合、グラフＧ上で他の地域と連結成分を持たない地域（Ｓｔａｔｅｎ  Ｉｓｌａｎｄ）に対応する基底行列は、他の地域とは全く異なる行列となっている。このことから、本実施形態の手法では、グラフＧを用いて、共通の基底行列で表現される区分行列を選択することが可能となる。このため、本実施形態の手法は、従来手法よりも柔軟性の高い分析が可能となる。
【０１００】
（計算時間の評価）
行列データ２を用いて計算時間の評価を行った。計算時間の評価では、従来手法をＹｌａｒｇｅに適用した場合と、本実施形態の手法をＹｌａｒｇｅ＊に適用した場合と、本実施形態の手法をＹｌａｒｇｅ＊＊に適用した場合とで比較を行った。
【０１０１】
詳細な条件としては、特徴数をＫ＝５、判定部１０５の終了条件としては終了条件１を用いて、繰り返し回数が１０３回に達した場合に更新部１０４による更新を終了するものとした。更に、基底行列Ｈｉ及び重み行列Ｕｉの初期化には、値域が
【０１０２】
【数２７】
2020201866.tif 000030
の一様乱数を用いた。この乱数を用いることで、初期値の期待値が
【０１０３】
【数２８】
2020201866.tif 000031
を満たす。加えて、本実施形態の手法におけるマルチプロセス実行では、繰り返し回数１００回毎に同期を行い、各Ｈｉ及びＵｉの更新回数が１００回以上ずれないようにした。また、ハイパーパラメータαはα＝５００とした。
【０１０４】
このとき、従来手法をＹｌａｒｇｅに適用した場合と、本実施形態の手法をＹｌａｒｇｅ＊に適用した場合と、本実施形態の手法をＹｌａｒｇｅ＊＊に適用した場合との計算時間を以下の表２に示す。
【０１０５】
【表２】
2020201866.tif 000032
上記の表２に示すように、本実施形態の手法をＹｌａｒｇｅ＊又はＹｌａｒｇｅ＊＊に適用した場合の計算時間は、従来手法をＹｌａｒｇｅに適用した場合の計算時間よりも短いことがわかる。
【０１０６】
また、２３４個の区分行列Ｙｌａｒｇｅ＊に本実施形態の手法を適用した場合の方が、６個の区分行列Ｙｌａｒｇｅ＊＊に本実施形態の手法を適用した場合よりも計算時間が短いことがわかる。これは、この比較に用いたプロセッサの並列実行可能なプロセス数が１１２であったためである。
【０１０７】
＜効率的な並列化＞
ここで、本実施形態の手法では、与えられるグラフＧにおいて頂点ｉ，ｊ間に辺が存在しない場合は、基底行列Ｈｉ及びＨｊの更新を非同期的に並列に行うことができる。そこで、グラフＧの頂点集合Ｖ＝｛１，２，・・・，Ｉ｝をグループ分けし、部分頂点集合の分割｛Ｖ１，Ｖ２，・・・，ＶＰ｝（ただし、ｐ＝１，２，・・・，Ｐとして、各Ｖｐは、当該Ｖｐに含まれる任意の２つの頂点間に辺が存在しない頂点集合）を求めた上で、これらの部分頂点集合を用いることで、より効率的に基底行列を更新することが可能となる。すなわち、このとき、各部分頂点集合Ｖｐに含まれる頂点に対応する基底行列の更新は非同期的に並列に更新を行うことができるため、更新回数の同期に伴うオーバーヘッドを削減することができ、より効率的な基底行列の更新が可能となる。
【０１０８】
また、部分頂点集合への分割数Ｐを最小化することで並列数を高めることが可能となる。分割数Ｐを最小化する問題はグラフの頂点彩色問題であり、最小の彩色数を求める問題はＮＰ困難クラスの問題である。そこで、ヒューリスティックに彩色数（つまり、分割数Ｐ）を求める。ヒューリスティックに彩色数を求める手法の一例として、Ｗｅｌｓｈ−Ｐｏｗｅｌｌアルゴリズム（例えば参考文献３参照）がある。このＷｅｌｓｈ−Ｐｏｗｅｌｌアルゴリズムを用いて、図６に示すグラフＧの彩色数を求めて各頂点を彩色した場合を図９に示す。図９に示す例では彩色数Ｐ＝２の場合である。
【０１０９】
［参考文献３］
Welsh, D. J. A.; Powell, M. B., "An upper bound for the chromatic number of a graph and its application to timetabling problems", The Computer Journal 10 (1): 85-86, 1967.
なお、上記の部分頂点集合への分割は、例えば、初期化部１０２又は分割部１０３が行ってもよいし、これらの機能部とは異なる他の機能部が行ってもよい。また、部分頂点集合へ分割する処理の実行タイミングとしては、図４のステップＳ１０４によりも前に実行されれば、任意のタイミングでよい。
【０１１０】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１１１】
１０        分析装置
１０１      入力部
１０２      初期化部
１０３      分割部
１０４      更新部
１０５      判定部
１０６      出力部
【図１】
2020201866.tif 000033
【図２】
2020201866.tif 000034
【図３】
2020201866.tif 000035
【図４】
2020201866.tif 000036
【図５】
2020201866.tif 000037
【図６Ａ】
2020201866.tif 000038
【図６Ｂ】
2020201866.tif 000039
【図６Ｃ】
2020201866.tif 000040
【図６Ｄ】
2020201866.tif 000041
【図６Ｅ】
2020201866.tif 000042
【図６Ｆ】
2020201866.tif 000043
【図７Ａ】
2020201866.tif 000044
【図７Ｂ】
2020201866.tif 000045
【図７Ｃ】
2020201866.tif 000046
【図７Ｄ】
2020201866.tif 000047
【図７Ｅ】
2020201866.tif 000048
【図７Ｆ】
2020201866.tif 000049
【図８】
2020201866.tif 000050
【図９】
2020201866.tif 000051