(57)【要約】  疎行列標準化装置１０は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部１１と、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部１２と、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部１３と、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する生成部１４とを備える。
2020115844.tif 000002
【特許請求の範囲】
【請求項１】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項２】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える
請求項１記載の疎行列標準化装置。
【請求項３】
標準化データと第１の列ベクトルとの積を計算する計算部を備え、
前記計算部は、
前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算し、
計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、
前記各成分の値から前記スカラ値がそれぞれ減算された第２の列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項２記載の疎行列標準化装置。
【請求項４】
標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、
前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、
前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項５】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える
請求項４記載の疎行列標準化装置。
【請求項６】
標準化データと第１の列ベクトルとの積を計算する計算部を備え、
前記計算部は、
前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、
計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項５記載の疎行列標準化装置。
【請求項７】
標準化の対象行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、
複数の算出処理でそれぞれ算出された各平均を、前記各平均のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項８】
標準化の対象行列の行ごとに、行の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、
複数の算出処理でそれぞれ算出された各平均を、前記各平均のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項９】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する
ことを特徴とする疎行列標準化方法。
【請求項１０】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する
請求項９記載の疎行列標準化方法。
【請求項１１】
標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算し、
計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、
前記各成分の値から前記スカラ値がそれぞれ減算された第２の列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項１０記載の疎行列標準化方法。
【請求項１２】
標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、
前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、
前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する
ことを特徴とする疎行列標準化方法。
【請求項１３】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する
請求項１２記載の疎行列標準化方法。
【請求項１４】
標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、
計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項１３記載の疎行列標準化方法。
【請求項１５】
コンピュータに、
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および
前記第２除算処理で算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成処理
を実行させるための疎行列標準化プログラム。
【請求項１６】
コンピュータに、
第１除算処理が実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する格納処理を実行させる
請求項１５記載の疎行列標準化プログラム。
【請求項１７】
コンピュータに、
標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算する第１計算処理、
前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算する第２計算処理、
前記第１計算処理で計算された第２の列ベクトルの各成分の値から前記第２計算処理で計算されたスカラ値をそれぞれ減算する減算処理、および
前記減算処理で生成された列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する出力処理を実行させる
請求項１６記載の疎行列標準化プログラム。
【請求項１８】
コンピュータに、
標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、
前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、
前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および
前記第２除算処理で算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成処理
を実行させるための疎行列標準化プログラム。
【請求項１９】
コンピュータに、
第１除算処理が実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する格納処理を実行させる
請求項１８記載の疎行列標準化プログラム。
【請求項２０】
コンピュータに、
標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算する第１計算処理、
前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算する第２計算処理、および
前記第１計算処理で計算された第２の列ベクトルと前記第２計算処理で計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する出力処理を実行させる
請求項１９記載の疎行列標準化プログラム。
【請求項２１】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理と、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べられることによって生成された行ベクトルとを含む
ことを特徴とするデータ構造。
【請求項２２】
標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理と、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、
前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べられることによって生成された列ベクトルとを含む
ことを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、疎行列標準化装置、疎行列標準化方法、疎行列標準化プログラムおよびデータ構造に関する。
【背景技術】
【０００２】
機械学習では、一般的に学習データが行列形式で表される。また、機械学習では、学習データ内の各特徴量の大きさを揃えるため、標準化(standardization) と呼ばれる操作が行われることが多い。【０００３】
標準化が行われることが多い理由は、学習データに対する標準化の実行の有無が学習データを処理する学習アルゴリズムの性能に大きな影響を及ぼす場合もあるためである。標準化が行われる場合、標準化対象の各特徴量に対して、以下の計算がそれぞれ行われる。【０００４】
z = (X − μ)/σ  ・・・式（１）【０００５】
なお、式（１）におけるX は、１つの特徴量である。また、μは、標準化対象の各特徴量の平均である。また、σは、標準化対象の各特徴量の標準偏差である。また、z は、１つの標準化された特徴量である。すなわち、標準化は、標準化対象の各特徴量の平均が０、標準化対象の各特徴量の分散が１にそれぞれなるように行われる。【０００６】
図１１は、行列形式で表された学習データに対する標準化の例を示す説明図である。図１１（ａ）は、Ａ君、Ｂ君、Ｃ君、およびＤ君の各体重および各身長を特徴量として有する学習データＰを示す。また、図１１（ｂ）は、学習データＰの標準化された特徴量を有する学習データＰ’を示す。【０００７】
図１１（ａ）に示すように、各体重の平均は、26.25 である。また、各体重の標準偏差は、約6.29である。図１１（ｂ）に示すように、例えばＡ君の体重は、式（１）に従って(25-26.25)/6.29 = -0.2と標準化されている。他の人の体重も、同様に計算されて標準化されている。また、各身長に関しても、体重と同様に計算されて標準化されている。【０００８】
また、比較的規模が大きい学習データは、疎行列形式で表されることが多い。疎行列は、成分の値の大半が０の行列である。また、疎行列が用いられる基本的な演算は、疎行列とベクトルとの乗算である。以下、値が０の成分を「零の成分」とも呼ぶ。また、値が０以外の成分を「非零の成分」とも呼ぶ。【０００９】
例えば、機械学習の対象範囲が大規模になると、様々な種類のデータが扱われるため、学習データの規模も大きくなる。しかし、１つの学習対象のサンプルに関するデータの種類は、学習データが扱うデータの種類のうちの数種類にすぎない。よって、対象範囲の規模が大きい機械学習では、学習データが疎行列形式で表されることが多い。【００１０】
図１２は、疎行列形式で表された学習データの例を示す説明図である。図１２に示す学習データＱは、特徴量として文書中に単語が現れた回数を有する。図１２に示す疎行列は、類義語を探したり、類似した文書を探したりするような文書の分析で操作される。【００１１】
具体的には、学習データＱは、列が「単語」、行が「文書」をそれぞれ示す行列形式で表されている。また、行列の成分の値は、上述したように文書中に単語が現れた回数である。【００１２】
図１２に示す行列の各列はそれぞれ「this」、「is」、「a 」、「pen 」、「I 」、「am」、「boy 」等の各単語を示す。また、図１２に示す行列の各行はそれぞれ「this is a pen 」、「I am a boy」等の各文書を示す。【００１３】
図１２に示すように、文書「this is a pen 」を示す行における列「this」、「is」、「a 」、「pen 」にそれぞれ対応する各成分の値は、「１」である。また、列「I 」、「am」、「boy 」にそれぞれ対応する各成分の値は、「０」である。【００１４】
なお、図１２に示す疎行列において、「０」は表記されていない。本明細書中の疎行列において、「０」は表記しないものとする。【００１５】
文書「I am a boy」を示す行における各成分の値も、文書「this is a pen 」を示す行における各成分の値と同様に定められる。図１２に示すように、学習データＱは、様々な種類の文書に対応することが求められる。従って、特徴量として文書中に単語が現れた回数を有する学習データは、疎行列形式で表される。【００１６】
図１３は、疎行列形式で表された学習データの他の例を示す説明図である。図１３に示す学習データＲは、特徴量としてアイテムに対して購入等が行われた回数を有する。図１３に示す疎行列は、ユーザに対して任意のアイテムを推奨するレコメンドで操作される。【００１７】
具体的には、学習データＲは、列が「アイテム」、行が「ユーザ」をそれぞれ示す行列形式で表されている。また、行列の成分の値は、上述したようにアイテムに対して購入等が行われた回数である。【００１８】
図１３に示す行列の各列はそれぞれ「本１」、「お茶」、「菓子」、「本２」等の各アイテムを示す。また、図１３に示す行列の各行はそれぞれ「Ｅさん」、「Ｆさん」等の各ユーザを示す。【００１９】
図１３に示すように、例えばユーザ「Ｅさん」を示す行における列「本１」、「お茶」、「菓子」にそれぞれ対応する各成分の値は、「１」、「２」、「２」である。また、列「本２」に対応する成分の値は、「０」である。【００２０】
図１３に示すように、学習データＲは、様々な種類のアイテムに対応することが求められる。従って、特徴量としてアイテムに対して購入等が行われた回数を有する学習データは、疎行列形式で表される。【００２１】
図１２および図１３に示す疎行列の保存方法として、零の成分をスキップして保存する方法がある。零の成分をスキップして保存するためには、疎行列を他の形式のデータにフォーマットすることが求められる。【００２２】
図１４は、疎行列フォーマットの例を示す説明図である。図１４は、CRS(Compressed Row Storage) による疎行列フォーマットを示す。CRS により疎行列がフォーマットされると、図１４に示すように、値を含むデータと、オフセットデータと、列番号を含むデータとがそれぞれ生成される。【００２３】
疎行列をフォーマットする場合、CRS は、最初に疎行列の各非零の成分の値を、図１４に示す点線の矢印に沿って抽出する。次いで、CRS は、抽出された各非零の成分の値を含むデータを生成する。図１４に示す値を含むデータには、点線の矢印に沿って抽出された順に各非零の成分の値が含まれている。【００２４】
次に、CRS は、疎行列の各行の最初の非零の成分の値の番号と、疎行列中の非零の成分の数を含むオフセットデータを生成する。具体的には、図１４に示すオフセットデータに含まれる「０」、「３」、「５」、「８」は、疎行列の各行の最初の非零の成分の値の番号である。【００２５】
例えば、「０」は、疎行列の１行目の最初の非零の成分の値「１」の、値を含むデータにおける番号である。同様に、「３」は、疎行列の２行目の最初の非零の成分の値「４」の、値を含むデータにおける番号である。「５」、「８」も、それぞれ同様に定められた番号である。また、図１４に示すオフセットデータに含まれる「１０」は、疎行列中の非零の成分の数である。【００２６】
次に、CRS は、列番号を含むデータを生成する。例えば、「０」は、値「１」の成分の疎行列における列番号である。同様に、「２」は、値「２」の成分の疎行列における列番号である。他の列番号も、それぞれ同様に定められた番号である。【００２７】
図１４に示すように零の成分がスキップされるように疎行列がフォーマットされると、行列形式が使用されなくなるため、効率よく学習データが保存される。効率よく学習データが保存されると、記憶容量の削減、および学習データの計算の高速化が可能になる。また、疎行列をフォーマットする方法に応じた、効率よく疎行列を演算する方法もある。【００２８】
また、特許文献１〜３には、行列の標準化に関連する内容がそれぞれ記載されている。例えば、特許文献１には、並列処理をするにあたって、照合処理における計算量を減少させるようにした情報処理装置が記載されている。【００２９】
また、特許文献２には、二値化された特徴ベクトルと複数の実数ベクトルとの内積計算を高速化することで、そのような特徴ベクトルと複数の実数ベクトルとの関連性の判定を高速に行う関連性判定装置が記載されている。【００３０】
また、特許文献３には、クラスが既知の多次元サンプルパターンに対して予め学習を行っておき、入力パターンがどのクラスに所属するかの識別をその学習の結果に基づいて行うパターン認識方法が記載されている。
【先行技術文献】
【特許文献】
【００３１】
【特許文献１】特開２０１８−０３７０２０号公報
【特許文献２】特開２０１５−１３８４６２号公報
【特許文献３】特開平０９−２３１３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３２】
疎行列を標準化すると密行列に変換されてしまい、計算効率が大きく低下するという問題がある。以下、問題が発生する理由を、図１５を参照して説明する。【００３３】
図１５は、疎行列の標準化の例を示す説明図である。図１５（ａ）に示す疎行列は、標準化されると、図１５（ｂ）に示す密行列に変換される。密行列は、成分の大半が非零の成分である行列である。【００３４】
図１５に示す標準化は、疎行列の各列を１つの単位として行われている。例えば、図１５（ａ）に示す疎行列の０列目の各成分の値「１」、「０」、「６」、「０」の平均は、1.75である。また、各成分の値の標準偏差は、約2.87である。【００３５】
よって、図１５（ａ）に示す疎行列の０列目の成分の値「１」は、式（１）に従って、(1-1.75)/2.87 = -0.26 と標準化されている。同様に、疎行列の０列目の成分の値「０」は、式（１）に従って、(0-1.75)/2.87 = -0.61 と標準化されている。他の疎行列の成分の値も、同様に計算されて標準化されている。【００３６】
図１５（ｂ）に示す行列の０列目の各成分の値はそれぞれ、「-0.26 」、「-0.61 」、「1.48」、「-0.61 」である。図１５（ａ）に示す疎行列の０列目に存在していた零の成分が、図１５（ｂ）に示す行列の０列目には存在しない。【００３７】
すなわち、標準化で疎行列が密行列に変換される理由は、特徴量である各成分の値の平均を０に揃えるため、零の成分からもμ／σが必ず減算されるためである。零の成分は、μ／σが減算されると、非零の成分になる。【００３８】
上記のように、疎行列は、標準化されると零の成分から標準偏差で除算された平均が減算されるため、密行列に変換される。学習データを表す形式が疎行列形式から密行列形式に変換されると、元の学習データが疎である性質が失われる。【００３９】
疎である性質が失われると、学習データの保存により多くのメモリが求められたり、学習データの計算に掛かる時間がより長くなったりする。特許文献１〜３には、疎である性質を失うことなく、疎行列形式で表される学習データを標準化する方法が記載されていない。【００４０】
そこで、本発明は、上述した課題を解決する、疎行列形式で表されている学習データを、学習データの疎である性質を保ったまま標準化できる疎行列標準化装置、疎行列標準化方法、疎行列標準化プログラムおよびデータ構造を提供することを目的とする。
【課題を解決するための手段】
【００４１】
本発明による疎行列標準化装置は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備えることを特徴とする。【００４２】
本発明による疎行列標準化装置は、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、対象行列の行ごとに、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備えることを特徴とする。【００４３】
本発明による疎行列標準化装置は、標準化の対象行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、複数の算出処理でそれぞれ算出された各平均を、各平均のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備えることを特徴とする。【００４４】
本発明による疎行列標準化装置は、標準化の対象行列の行ごとに、行の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、複数の算出処理でそれぞれ算出された各平均を、各平均のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備えることを特徴とする。【００４５】
本発明による疎行列標準化方法は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成することを特徴とする。【００４６】
本発明による疎行列標準化方法は、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、対象行列の行ごとに、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成することを特徴とする。【００４７】
本発明による疎行列標準化プログラムは、コンピュータに、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および第２除算処理で算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する生成処理を実行させることを特徴とする。【００４８】
本発明による疎行列標準化プログラムは、コンピュータに、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、対象行列の行ごとに、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および第２除算処理で算出された各商を、各商のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成する生成処理を実行させることを特徴とする。【００４９】
本発明によるデータ構造は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理と、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、各商のそれぞれの算出元である対象行列の列順に横に並べられることによって生成された行ベクトルとを含むことを特徴とする。【００５０】
本発明によるデータ構造は、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理と、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、各商のそれぞれの算出元である対象行列の行順に縦に並べられることによって生成された列ベクトルとを含むことを特徴とする。
【発明の効果】
【００５１】
本発明によれば、疎行列形式で表されている学習データを、学習データの疎である性質を保ったまま標準化できる。
【図面の簡単な説明】
【００５２】
【図１】本発明による疎行列標準化装置の第１の実施形態の構成例を示すブロック図である。
【図２】標準化部１１０による疎行列の標準化の例を示す説明図である。
【図３】演算部１４０による標準化された疎行列に対する演算の例を示す説明図である。
【図４】演算部１４０による標準化された疎行列に対する他の演算の例を示す説明図である。
【図５】第１の実施形態の疎行列標準化装置１００による標準化処理の動作を示すフローチャートである。
【図６】第１の実施形態の疎行列標準化装置１００による乗算処理の動作を示すフローチャートである。
【図７】本発明による疎行列標準化装置１００のハードウェア構成例を示す説明図である。
【図８】本発明による疎行列標準化装置の概要を示すブロック図である。
【図９】本発明によるデータ構造の概要を示すブロック図である。
【図１０】本発明によるデータ構造の他の概要を示すブロック図である。
【図１１】行列形式で表された学習データに対する標準化の例を示す説明図である。
【図１２】疎行列形式で表された学習データの例を示す説明図である。
【図１３】疎行列形式で表された学習データの他の例を示す説明図である。
【図１４】疎行列フォーマットの例を示す説明図である。
【図１５】疎行列の標準化の例を示す説明図である。
【発明を実施するための形態】
【００５３】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による疎行列標準化装置の第１の実施形態の構成例を示すブロック図である。
【００５４】
本実施形態の疎行列標準化装置１００は、疎行列形式で表されている学習データが標準化されても疎である性質が失われないように、標準化において新たなフォーマットの疎行列とベクトルを追加する。
【００５５】
図１に示すように、本実施形態の疎行列標準化装置１００は、標準化部１１０と、疎行列保存部１２０と、平均ベクトル保存部１３０と、演算部１４０とを備える。
【００５６】
標準化部１１０は、疎行列形式で表されている学習データを標準化する機能を有する。図２は、標準化部１１０による疎行列の標準化の例を示す説明図である。
【００５７】
図２に示す行列Ａは、図１５（ｂ）に示す疎行列が一般的に標準化された行列である。図２に示すように、行列Ａは、密行列である行列Ｂと、疎行列である行列Ｃとに分離可能である。換言すると、行列Ａは、行列Ｂと行列Ｃとの和とみなされる。
【００５８】
行列Ｂの各列の成分の値は、一般的な標準化で疎行列の各列の零の成分から減算されたμ／σの負の値である。例えば、行列Ｂの０列目の各成分の値は、上記で計算された「-0.61 」である。
【００５９】
また、行列Ｃの各列の成分の値は、対応する行列Ａの各列の成分の値と、対応する行列Ｂの各列の成分の値の差である。例えば、行列Ｃの０列目の各成分の値「0.35」、「０」、「2.09」、「０」は、行列Ａの０列目の各成分の値「-0.26 」、「-0.61 」、「1.48」、「-0.61 」それぞれと、行列Ｂの０列目の各成分の値「-0.61 」との差である。
【００６０】
すなわち、行列Ｃの成分の値y は、行列Ａの対応する成分の値z 、および行列Ａが標準化される前の行列の対応する成分の値x を用いて、以下のように求められる。
【００６１】
y = z − (− μ/σ) = (x − μ)/σ + μ/σ = x/σ  ・・・式（２）
【００６２】
よって、標準化部１１０は、行列Ａが標準化される前の疎行列の各列の成分の値を、列ごとに求められた各標準偏差でそれぞれ除算することによって、行列Ｃを生成できる。
【００６３】
また、行列Ｂは、図２に示す行ベクトルＤに変換可能である。その理由は、図２に示すように、行列Ｂの各行の成分の値は、全行で同じである。すなわち、行列Ｂのいずれか１行のみが保存されることが、行列Ｂが保存されることに相当するからである。
【００６４】
よって、標準化部１１０は、行列Ｂのいずれか１行に相当する行ベクトルＤを生成する。以下、行ベクトルＤを平均ベクトルとも呼ぶ。本実施形態において疎行列が標準化された行列Ａは、行列Ｃと行ベクトルＤとで構成されている。
【００６５】
以上の処理をまとめると、疎行列の標準化にあたって標準化部１１０は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する。次いで、標準化部１１０は、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する。
【００６６】
次いで、標準化部１１０は、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する。次いで、標準化部１１０は、複数の第２除算処理でそれぞれ算出された各商に−１を乗じた各値を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する。
【００６７】
なお、標準化部１１０は、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成してもよい。
【００６８】
疎行列保存部１２０は、生成された疎行列である行列Ｃを保存する機能を有する。また、平均ベクトル保存部１３０は、生成された平均ベクトルである行ベクトルＤを保存する機能を有する。なお、疎行列保存部１２０が保存する行列Ｃのフォーマット、および平均ベクトル保存部１３０が保存する行ベクトルＤのフォーマットは、どちらも特に限定されない。
【００６９】
上記のように、標準化部１１０は、上述した複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとしている。標準化部１１０は、標準化データを疎行列保存部１２０および平均ベクトル保存部１３０に格納する。
【００７０】
演算部１４０は、疎行列に対する演算を行う機能を有する。上述したように、疎行列に対する演算は、基本的にベクトルとの乗算である。学習アルゴリズムにおいても、基本的に疎行列とベクトルとの乗算が利用されている。
【００７１】
例えば、標準化された疎行列とベクトルとの積を求める要求が、疎行列標準化装置１００に入力された場合を考える。図３は、演算部１４０による標準化された疎行列に対する演算の例を示す説明図である。
【００７２】
図３（ａ）は、疎行列が標準化された行列Ａと列ベクトルＥとの乗算を示す。図２を踏まえると、行列Ａと列ベクトルＥとの乗算は、行列Ｂと列ベクトルＥとの乗算と、行列Ｃと列ベクトルＥとの乗算とに分離可能である。
【００７３】
図３（ｂ）は、行列Ｂと列ベクトルＥとの乗算を示す。また、図３（ｃ）は、行列Ｃと列ベクトルＥとの乗算、すなわち疎行列とベクトルとの乗算を示す。なお、行列Ｃと列ベクトルＥとの積は、４行１列の行列（列ベクトル）である。
【００７４】
さらに、図２を踏まえると、行列Ｂと列ベクトルＥとの乗算は、行ベクトルＤと列ベクトルＥとの乗算に変換可能である。図３（ｄ）は、行ベクトルＤと列ベクトルＥとの乗算を示す。図３（ｄ）に示すように、行ベクトルＤと列ベクトルＥとの積（ドット積）は、１つのスカラ値Ｓになる。
【００７５】
よって、演算部１４０は、入力された要求が示す標準化された疎行列とベクトルとの乗算を、図３に示すように変換する。具体的には、行列Ａと列ベクトルＥとの積を求める要求が入力されたら、演算部１４０は、最初に行列Ｃと列ベクトルＥとの積、および行ベクトルＤと列ベクトルＥとの積をそれぞれ求める。
【００７６】
次いで、演算部１４０は、行ベクトルＤと列ベクトルＥとの積であるスカラ値Ｓを、行列Ｃと列ベクトルＥとの積である列ベクトルの各成分の値にそれぞれ加算する。各成分の値それぞれにスカラ値Ｓが加算された列ベクトルが、求められた行列Ａと列ベクトルＥとの積である。
【００７７】
なお、標準化された疎行列と密行列との積を求める場合、演算部１４０は、図３（ｄ）に示すスカラ値を図３（ｃ）に示す乗算の積である列ベクトルの各成分の値に加算することによって新たな列ベクトルを算出する処理を、密行列を構成する各列ベクトルに渡って繰り返し実行する。疎行列と密行列との積である行列は、疎行列と列ベクトルとの積である列ベクトルの集合と考えられるからである。
【００７８】
以上の処理をまとめると、標準化された疎行列と第１の列ベクトルとの積を計算する演算部１４０は、標準化された疎行列を構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、標準化された疎行列を構成する行ベクトルと第１の列ベクトルとの積であるスカラ値を計算する。
【００７９】
次いで、演算部１４０は、計算された第２の列ベクトルの各成分の値に計算されたスカラ値をそれぞれ加算し、各成分の値にスカラ値がそれぞれ加算された第２の列ベクトルを、標準化された疎行列と第１の列ベクトルとの積として出力する。
【００８０】
なお、各商がそれぞれの算出元である対象行列の列順に横に並べられることによって行ベクトルが生成される場合、演算部１４０は、計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算する。演算部１４０は、各成分の値からスカラ値がそれぞれ減算された第２の列ベクトルを、標準化データと第１の列ベクトルとの積として出力する。
【００８１】
以上のように、平均ベクトルが別のデータとして保存されれば、疎行列としての性質が失われることなく、疎行列が標準化される。
【００８２】
なお、本実施形態では、疎行列の各列が標準化の単位である例を説明した。しかし、標準化の単位は、疎行列の各行でもよい。
【００８３】
疎行列の各行が単位である標準化が行われた場合であっても、標準化部１１０は、図２に示す例と同様に疎行列と平均ベクトルとを生成できる。なお、疎行列の各行が標準化の単位である場合、標準化部１１０は、平均ベクトルとして行ベクトルではなく、列ベクトルを生成する。
【００８４】
また、疎行列は、転置されて用いられることも多い。転置された疎行列の各列が単位である標準化が行われる場合、標準化部１１０は、疎行列の各行が標準化の単位である場合と同様に、平均ベクトルとして列ベクトルを生成する。
【００８５】
図４は、演算部１４０による標準化された疎行列に対する他の演算の例を示す説明図である。図４（ａ）に示す行列ＢＴと列ベクトルＦとの乗算は、標準化された行列Ａの転置行列である行列ＡＴと列ベクトルＦとの積が求められる場合の図３（ｂ）に示す乗算に対応する。すなわち、図３（ｂ）に示す乗算で用いられている行列Ｂが、図４（ａ）に示すように転置行列である行列ＢＴに変換される。
【００８６】
また、図４（ａ）に示す行列ＢＴと列ベクトルＦとの乗算は、図４（ｂ）に示す列ベクトルとスカラ値との乗算に変換可能である。図４（ｂ）に示す列ベクトルとスカラ値との乗算は、行列ＡＴと列ベクトルＦとの積が求められる場合の図３（ｄ）に示す乗算に対応する。
【００８７】
例えば、行列ＢＴの１行目と列ベクトルＦとのドット積は、列ベクトルＦの各成分の値の総和（Σfi）と-0.61 との積になる。行列ＢＴの他の行と列ベクトルＦとのドット積も、同様に求められる。
【００８８】
演算部１４０は、図４（ｂ）に示す乗算の積である列ベクトルと、標準化部１１０が生成した疎行列ＣＴと列ベクトルＦとの積である列ベクトルとを加算する。２つの列ベクトルの和が、求められた行列ＡＴと列ベクトルＦとの積である。
【００８９】
なお、標準化部１１０が生成した疎行列ＣＴの構成は、入力された疎行列を行ごとに標準化するときに標準化部１１０が生成する疎行列の構成と同様である。
【００９０】
本実施形態の変形例として、標準化部１１０は、標準化対象の疎行列の各成分を何ら変換しない場合が考えられる。標準化部１１０は、標準化対象の疎行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する。
【００９１】
次いで、標準化部１１０は、複数の算出処理でそれぞれ算出された各平均を、各平均のそれぞれの算出元である標準化対象の疎行列の列順に横に並べることによって行ベクトルを生成する。
【００９２】
上記の変形例の場合、標準化部１１０は、標準化対象の行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとする。標準化部１１０は、標準化データを疎行列保存部１２０および平均ベクトル保存部１３０に格納する。疎行列の各行が標準化の単位である場合も、標準化部１１０は、同様の処理を行う。
【００９３】
［動作の説明］
以下、本実施形態の疎行列標準化装置１００の疎行列に対する標準化を実行する動作を図５を参照して説明する。図５は、第１の実施形態の疎行列標準化装置１００による標準化処理の動作を示すフローチャートである。
【００９４】
最初に、疎行列標準化装置１００に、標準化対象の疎行列が入力される（ステップS101）。標準化対象の疎行列は、標準化部１１０に入力される。
【００９５】
次いで、標準化部１１０は、入力された疎行列の任意の１つの列の各成分の値の平均および標準偏差をそれぞれ算出する。標準化部１１０は、平均および標準偏差を算出する処理を、疎行列の全ての列に渡って行う（ステップS102）。
【００９６】
次いで、標準化部１１０は、入力された疎行列の任意の１つの列の各成分の値を、ステップS102でその各成分の値を基に算出された標準偏差でそれぞれ除算する。標準化部１１０は、列の各成分の値を標準偏差で除算する処理を、疎行列の全ての列に渡って行う（ステップS103）。
【００９７】
ステップS103の処理が実行されることによって、新たな疎行列（例えば、疎行列Ｃ）が生成される。標準化部１１０は、生成された疎行列を疎行列保存部１２０に保存する（ステップS104）。
【００９８】
ステップS103の処理と独立に、標準化部１１０は、入力された疎行列の任意の１つの列を基にステップS102で算出された平均を、その任意の１つの列を基にステップS102で算出された標準偏差で除算する。標準化部１１０は、平均を標準偏差で除算する処理を、疎行列の全ての列に渡って行う（ステップS105）。
【００９９】
次いで、標準化部１１０は、ステップS105で求められた各平均が各標準偏差でそれぞれ除算された結果である各商の負の値を、各商のそれぞれの算出元である疎行列の各列順に横に並べる（ステップS106）。
【０１００】
ステップS106の処理が実行されることによって、新たな平均ベクトル（例えば、行ベクトルＤ）が生成される。標準化部１１０は、生成された平均ベクトルを平均ベクトル保存部１３０に保存する（ステップS107）。
【０１０１】
平均ベクトルを保存した後、疎行列標準化装置１００は、標準化処理を終了する。本処理で標準化された疎行列は、ステップS103で生成された疎行列と、ステップS106で生成された平均ベクトルとで構成されている。
【０１０２】
次に、本実施形態の疎行列標準化装置１００の標準化された疎行列とベクトルとの乗算処理を実行する動作を図６を参照して説明する。図６は、第１の実施形態の疎行列標準化装置１００による乗算処理の動作を示すフローチャートである。
【０１０３】
最初に、疎行列標準化装置１００に、標準化された疎行列に乗算される列ベクトルが入力される（ステップS201）。乗算される列ベクトルは、演算部１４０に入力される。
【０１０４】
次いで、演算部１４０は、標準化された疎行列を構成する、疎行列保存部１２０に保存されている疎行列に入力された列ベクトルを乗算する（ステップS202）。
【０１０５】
ステップS202の処理と独立に、演算部１４０は、標準化された疎行列を構成する、平均ベクトル保存部１３０に保存されている平均ベクトルに入力された列ベクトルを乗算する（ステップS203）。
【０１０６】
次いで、演算部１４０は、ステップS202で求められた疎行列と列ベクトルとの積である列ベクトルの各成分の値に、ステップS203で求められた平均ベクトル（行ベクトル）と列ベクトルとの積であるスカラ値をそれぞれ加算する（ステップS204）。
【０１０７】
次いで、演算部１４０は、ステップS204で求められた列ベクトルを、標準化された疎行列と入力された列ベクトルとの積として出力する（ステップS205）。出力した後、疎行列標準化装置１００は、乗算処理を終了する。
【０１０８】
［発明の効果］
本実施形態の疎行列標準化装置１００は、疎行列形式で表されている学習データを、学習データの疎である性質を保ったまま標準化できる。
【０１０９】
その理由は、標準化部１１０が、疎行列が標準化された行列から疎行列を分離し、標準化された行列から分離された列ごとに異なる−μ／σが成分の値である行列に基づいた平均ベクトルを生成するためである。
【０１１０】
また、演算部１４０は、疎行列が標準化された行列とベクトルとの乗算を、生成された疎行列とベクトルとの乗算と、生成された平均ベクトルとベクトルとの乗算に変換する。よって、疎行列標準化装置１００は、疎行列が標準化された行列とベクトルとの乗算も、学習データの疎である性質を保ったまま実行できる。
【０１１１】
以下、本実施形態の疎行列標準化装置１００のハードウェア構成の具体例を説明する。図７は、本発明による疎行列標準化装置１００のハードウェア構成例を示す説明図である。
【０１１２】
図７に示す疎行列標準化装置１００は、ＣＰＵ（Central Processing Unit）１０１と、主記憶部１０２と、通信部１０３と、補助記憶部１０４とを備える。また、ユーザが操作するための入力部１０５や、ユーザに処理結果または処理内容の経過を提示するための出力部１０６を備えてもよい。
【０１１３】
疎行列標準化装置１００は、図７に示すＣＰＵ１０１が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【０１１４】
すなわち、ＣＰＵ１０１が補助記憶部１０４に格納されているプログラムを、主記憶部１０２にロードして実行し、疎行列標準化装置１００の動作を制御することによって、各機能がソフトウェアにより実現される。
【０１１５】
なお、図７に示す疎行列標準化装置１００は、ＣＰＵ１０１の代わりにＤＳＰ（Digital Signal Processor）を備えてもよい。または、図７に示す疎行列標準化装置１００は、ＣＰＵ１０１とＤＳＰとを併せて備えてもよい。
【０１１６】
主記憶部１０２は、データの作業領域やデータの一時退避領域として用いられる。主記憶部１０２は、例えばＲＡＭ（Random Access Memory）である。疎行列保存部１２０、および平均ベクトル保存部１３０は、主記憶部１０２で実現されてもよい。
【０１１７】
通信部１０３は、有線のネットワークまたは無線のネットワーク（情報通信ネットワーク）を介して、周辺機器との間でデータを入力および出力する機能を有する。
【０１１８】
補助記憶部１０４は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、半導体メモリが挙げられる。
【０１１９】
入力部１０５は、データや処理命令を入力する機能を有する。入力部１０５は、例えばキーボードやマウス等の入力デバイスである。
【０１２０】
出力部１０６は、データを出力する機能を有する。出力部１０６は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
【０１２１】
また、図７に示すように、疎行列標準化装置１００において、各構成要素は、システムバス１０７に接続されている。
【０１２２】
補助記憶部１０４は、例えば、標準化部１１０、および演算部１４０を実現するためのプログラムを記憶している。
【０１２３】
なお、疎行列標準化装置１００は、ハードウェアにより実現されてもよい。例えば、疎行列標準化装置１００は、内部に図１に示すような機能を実現するＬＳＩ（Large Scale Integration）等のハードウェア部品が含まれる回路が実装されてもよい。
【０１２４】
また、各構成要素の一部または全部は、汎用の回路（circuitry）または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ（例えば、上記のＬＳＩ）によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１２５】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１２６】
次に、本発明の概要を説明する。図８は、本発明による疎行列標準化装置の概要を示すブロック図である。本発明による疎行列標準化装置１０は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部１１（例えば、標準化部１１０）と、対象行列の列ごとに、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部１２（例えば、標準化部１１０）と、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部１３（例えば、標準化部１１０）と、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する生成部１４（例えば、標準化部１１０）とを備える。
【０１２７】
そのような構成により、疎行列標準化装置は、疎行列形式で表されている学習データを、学習データの疎である性質を保ったまま標準化できる。
【０１２８】
また、疎行列標準化装置１０は、複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部（例えば、疎行列保存部１２０、および平均ベクトル保存部１３０）を備えてもよい。
【０１２９】
そのような構成により、疎行列標準化装置は、疎行列と行ベクトルとで構成される標準化データを管理できる。
【０１３０】
また、疎行列標準化装置１０は、標準化データと第１の列ベクトルとの積を計算する計算部（例えば、演算部１４０）を備え、計算部は、標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、標準化データを構成する行ベクトルと第１の列ベクトルとの積であるスカラ値を計算し、計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、各成分の値からスカラ値がそれぞれ減算された第２の列ベクトルを、標準化データと第１の列ベクトルとの積として出力してもよい。
【０１３１】
そのような構成により、疎行列標準化装置は、疎である性質を活用して標準化された学習データに対する演算を実行できる。
【０１３２】
また、図８に示す疎行列標準化装置１０の各構成要素は、以下のように動作してもよい。例えば、算出部１１は、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する。また、第１除算部１２は、対象行列の行ごとに、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する。
【０１３３】
また、第２除算部１３は、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する。また、生成部１４は、複数の第２除算処理でそれぞれ算出された各商を、各商のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成する。
【０１３４】
また、記憶部は、複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する。
【０１３５】
また、計算部は、標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、標準化データと第１の列ベクトルとの積として出力する。
【０１３６】
また、図８に示す疎行列標準化装置１０の各構成要素は、以下のように動作してもよい。例えば、算出部１１は、標準化の対象行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する。また、生成部１４は、複数の算出処理でそれぞれ算出された各平均を、各平均のそれぞれの算出元である対象行列の列順に横に並べることによって行ベクトルを生成する。
【０１３７】
また、図８に示す疎行列標準化装置１０の各構成要素は、以下のように動作してもよい。例えば、算出部１１は、標準化の対象行列の行ごとに、行の各成分の値の平均を算出する算出処理をそれぞれ実行する。また、生成部１４は、複数の算出処理でそれぞれ算出された各平均を、各平均のそれぞれの算出元である対象行列の行順に縦に並べることによって列ベクトルを生成する。
【０１３８】
また、図９は、本発明によるデータ構造の概要を示すブロック図である。本発明によるデータ構造は、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理と、列の各成分の値をその列を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、対象行列の列ごとに、列を基に算出された平均をその列を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、各商のそれぞれの算出元である対象行列の列順に横に並べられることによって生成された行ベクトルとを含む。
【０１３９】
そのような構成により、データ構造は、疎である性質が保たれたまま標準化された学習データを提供できる。
【０１４０】
また、図１０は、本発明によるデータ構造の他の概要を示すブロック図である。本発明によるデータ構造は、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理と、行の各成分の値をその行を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、対象行列の行ごとに、行を基に算出された平均をその行を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、各商のそれぞれの算出元である対象行列の行順に縦に並べられることによって生成された列ベクトルとを含む。
【０１４１】
そのような構成により、データ構造は、疎である性質が保たれたまま標準化された学習データを提供できる。
【０１４２】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４３】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【０１４４】
（付記１）標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備えることを特徴とする疎行列標準化装置。
【０１４５】
（付記２）複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える付記１記載の疎行列標準化装置。
【０１４６】
（付記３）標準化データと第１の列ベクトルとの積を計算する計算部を備え、前記計算部は、前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算し、計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、前記各成分の値から前記スカラ値がそれぞれ減算された第２の列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する付記２記載の疎行列標準化装置。
【０１４７】
（付記４）標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備えることを特徴とする疎行列標準化装置。
【０１４８】
（付記５）複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える付記４記載の疎行列標準化装置。
【０１４９】
（付記６）標準化データと第１の列ベクトルとの積を計算する計算部を備え、前記計算部は、前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する付記５記載の疎行列標準化装置。
【０１５０】
（付記７）標準化の対象行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、複数の算出処理でそれぞれ算出された各平均を、前記各平均のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備えることを特徴とする疎行列標準化装置。
【０１５１】
（付記８）標準化の対象行列の行ごとに、行の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、複数の算出処理でそれぞれ算出された各平均を、前記各平均のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備えることを特徴とする疎行列標準化装置。
【０１５２】
（付記９）標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成することを特徴とする疎行列標準化方法。
【０１５３】
（付記１０）複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する付記９記載の疎行列標準化方法。
【０１５４】
（付記１１）標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算し、計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、前記各成分の値から前記スカラ値がそれぞれ減算された第２の列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する付記１０記載の疎行列標準化方法。
【０１５５】
（付記１２）標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成することを特徴とする疎行列標準化方法。
【０１５６】
（付記１３）複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する付記１２記載の疎行列標準化方法。
【０１５７】
（付記１４）標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算し、前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する付記１３記載の疎行列標準化方法。
【０１５８】
（付記１５）コンピュータに、標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および前記第２除算処理で算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成処理を実行させるための疎行列標準化プログラム。
【０１５９】
（付記１６）コンピュータに、第１除算処理が実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する格納処理を実行させる付記１５記載の疎行列標準化プログラム。
【０１６０】
（付記１７）コンピュータに、標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算する第１計算処理、前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算する第２計算処理、前記第１計算処理で計算された第２の列ベクトルの各成分の値から前記第２計算処理で計算されたスカラ値をそれぞれ減算する減算処理、および前記減算処理で生成された列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する出力処理を実行させる付記１６記載の疎行列標準化プログラム。
【０１６１】
（付記１８）コンピュータに、標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および前記第２除算処理で算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成処理を実行させるための疎行列標準化プログラム。
【０１６２】
（付記１９）コンピュータに、第１除算処理が実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶部に格納する格納処理を実行させる付記１８記載の疎行列標準化プログラム。
【０１６３】
（付記２０）コンピュータに、標準化データを構成する行列と第１の列ベクトルとの積である第２の列ベクトルを計算する第１計算処理、前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算する第２計算処理、および前記第１計算処理で計算された第２の列ベクトルと前記第２計算処理で計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する出力処理を実行させる付記１９記載の疎行列標準化プログラム。
【０１６４】
（付記２１）標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理と、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べられることによって生成された行ベクトルとを含むことを特徴とするデータ構造。
【０１６５】
（付記２２）標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理と、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べられることによって生成された列ベクトルとを含むことを特徴とするデータ構造。
【符号の説明】
【０１６６】
１０、１００  疎行列標準化装置
１１  算出部
１２  第１除算部
１３  第２除算部
１４  生成部
１０１  ＣＰＵ
１０２  主記憶部
１０３  通信部
１０４  補助記憶部
１０５  入力部
１０６  出力部
１０７  システムバス
１１０  標準化部
１２０  疎行列保存部
１３０  平均ベクトル保存部
１４０  演算部
【図１】
2020115844.tif 000003
【図２】
2020115844.tif 000004
【図３】
2020115844.tif 000005
【図４】
2020115844.tif 000006
【図５】
2020115844.tif 000007
【図６】
2020115844.tif 000008
【図７】
2020115844.tif 000009
【図８】
2020115844.tif 000010
【図９】
2020115844.tif 000011
【図１０】
2020115844.tif 000012
【図１１】
2020115844.tif 000013
【図１２】
2020115844.tif 000014
【図１３】
2020115844.tif 000015
【図１４】
2020115844.tif 000016
【図１５】
2020115844.tif 000017
【手続補正書】
【提出日】令和3年5月24日(2021.5.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項２】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された行ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える
請求項１記載の疎行列標準化装置。
【請求項３】
標準化データと第１の列ベクトルとの積を計算する計算部を備え、
前記計算部は、
前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する行ベクトルと前記第１の列ベクトルとの積であるスカラ値を計算し、
計算された第２の列ベクトルの各成分の値から計算されたスカラ値をそれぞれ減算し、
前記各成分の値から前記スカラ値がそれぞれ減算された第２の列ベクトルを、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項２記載の疎行列標準化装置。
【請求項４】
標準化の対象行列の行ごとに、行の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行する算出部と、
前記対象行列の行ごとに、行の各成分の値を当該行を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行する第１除算部と、
前記対象行列の行ごとに、行を基に算出された平均を当該行を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行する第２除算部と、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の行順に縦に並べることによって列ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項５】
複数の第１除算処理がそれぞれ実行されることによって生成された行列と生成された列ベクトルとで構成されるデータを、対象行列が標準化されたデータである標準化データとして記憶する記憶部を備える
請求項４記載の疎行列標準化装置。
【請求項６】
標準化データと第１の列ベクトルとの積を計算する計算部を備え、
前記計算部は、
前記標準化データを構成する行列と前記第１の列ベクトルとの積である第２の列ベクトルを計算し、
前記標準化データを構成する列ベクトルの各成分の値に−１が乗じられた各値と前記第１の列ベクトルの各成分の値の総和との各積が各成分の値である第３の列ベクトルを計算し、
計算された第２の列ベクトルと計算された第３の列ベクトルとの和を、前記標準化データと前記第１の列ベクトルとの積として出力する
請求項５記載の疎行列標準化装置。
【請求項７】
標準化の対象行列の列ごとに、列の各成分の値の平均を算出する算出処理をそれぞれ実行する算出部と、
複数の算出処理でそれぞれ算出された各平均を、前記各平均のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成部とを備える
ことを特徴とする疎行列標準化装置。
【請求項８】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理をそれぞれ実行し、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理をそれぞれ実行し、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理をそれぞれ実行し、
複数の第２除算処理でそれぞれ算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する
ことを特徴とする疎行列標準化方法。
【請求項９】
コンピュータに、
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する処理をそれぞれ実行する算出処理、
前記対象行列の列ごとに、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する処理をそれぞれ実行する第１除算処理、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する処理をそれぞれ実行する第２除算処理、および
前記第２除算処理で算出された各商を、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べることによって行ベクトルを生成する生成処理
を実行させるための疎行列標準化プログラム。
【請求項１０】
標準化の対象行列の列ごとに、列の各成分の値の平均および標準偏差を算出する算出処理と、列の各成分の値を当該列を基に算出された標準偏差でそれぞれ除算する第１除算処理とがそれぞれ実行されることによって生成された行列と、
前記対象行列の列ごとに、列を基に算出された平均を当該列を基に算出された標準偏差で除算する第２除算処理がそれぞれ実行されることによって算出された各商が、前記各商のそれぞれの算出元である前記対象行列の列順に横に並べられることによって生成された行ベクトルとを含む
ことを特徴とするデータ構造。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】削除
【補正の内容】
【国際調査報告】
2020115844.tif 000018
2020115844.tif 000019
2020115844.tif 000020
2020115844.tif 000021