JP2015005086A - データ管理装置及びデータ分析装置 - Google Patents

データ管理装置及びデータ分析装置 Download PDF

Info

Publication number
JP2015005086A
JP2015005086A JP2013129293A JP2013129293A JP2015005086A JP 2015005086 A JP2015005086 A JP 2015005086A JP 2013129293 A JP2013129293 A JP 2013129293A JP 2013129293 A JP2013129293 A JP 2013129293A JP 2015005086 A JP2015005086 A JP 2015005086A
Authority
JP
Japan
Prior art keywords
training data
target
dimension
variable dimension
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013129293A
Other languages
English (en)
Other versions
JP6217164B2 (ja
Inventor
和世 成田
Kazuyo Narita
和世 成田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013129293A priority Critical patent/JP6217164B2/ja
Publication of JP2015005086A publication Critical patent/JP2015005086A/ja
Application granted granted Critical
Publication of JP6217164B2 publication Critical patent/JP6217164B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】目的関数の最適化処理を高速化する。【解決手段】データ管理装置は、訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得するサマリ取得部と、サマリ情報を用いて、訓練データ行列における、パラメータベクトルの更新対象次元に対応する対象変数次元が上記同値変数次元か否かを判定し、この判定結果に基づいて、訓練データ行列の上記対象変数次元の全要素の値の代わりに上記対象変数次元の代表値を、パラメータベクトルの上記更新対象次元の更新差分の算出のための訓練データとして特定するデータ特定部と、を有する。【選択図】図3

Description

本発明は、訓練データを用いて目的関数を最適化する技術に関する。
データ分析やデータマイニングの分野等において機械学習と呼ばれる技術が利用されている。機械学習における回帰やSVM(Support Vector Machine)等の多くの手法は、訓練データ(デザイン行列、特徴量とも呼ばれる)からパラメータの学習を行う際に、目的関数を定義し、この目的関数を最適化することで最適なパラメータを学習する。よって、機械学習を効率よく行うために、最適化問題の効率化が望まれる。
最適化手法において様々なアルゴリズムが提案されている。例えば、下記特許文献1では、最急降下法等の非線形最適化手法を用いて、鏡面修整形ビームアンテナを設計する手法が提案されている。また、下記特許文献2では、CD(Coordinate Descent)法や準ニュートン法を用いるニューラルネット学習方法が提案されている。
ここで、勾配法と呼ばれる最適化手法の一種である上記CD法の作用について、図18を用いて、説明する。図18は、2次元空間におけるCD法の作用を概念的に示す図である。図18の例では、パラメータwは、w1及びw2の要素を持つ2次元ベクトルであり、楕円は、目的関数f(w)が同値を取るw1とw2との組み合わせを示し、星マークが、目的関数f(w)の値が最小又は最大となる点、即ち、目的解w*を示す。目的関数f(w)が与えられたとき、CD法は、f(w)の空間の各座標軸(各次元)に沿って、f(w)が最小又は最大となる地点(目的解)w*を探索していく。具体的には、開始点wSTARTが決められた後、次のような処理が繰り返される。即ち、座標軸(次元)jが選ばれ、訓練データに基づいて移動方向dと移動幅(ステップ幅)αが決定され、wjがwj+αdで更新される。次の繰り返しでは、他の座標軸(次元)jが選ばれる。このような繰り返しが、全ての座標軸(次元)について順番に、目的関数f(w)の値がw*に十分近づくまで、行われる。
CD法によれば、逆行列演算のようなコストの高い行列演算を行うことなく、パラメータwの更新計算を行うことができるため、最適化計算の負荷を低減させることができる。加えて、CD法は、簡易なアルゴリズムであるため、比較的容易に実装を行うことができるというメリットも有する。このようなメリットにより、回帰やSVM等の機械学習の多くの主要な手法が、CD法に基づき実装されている。
特開平09−284044号公報 特開平10−198645号公報
しかしながら、上述のCD法等の最適化手法では、複数回の繰り返し計算が行われるため、処理時間が増大する傾向にある。その処理時間には、計算時間のみならず、訓練データの読み込み時間も含まれる。訓練データの読み込みは、上述のように座標軸毎に必要となるため、パラメータの次元が大きくなる程、当該読み込みが頻発し、結果として、処理時間が増大することになる。
本発明は、このような事情に鑑みてなされたものであり、目的関数の最適化処理を高速化する技術を提供することにある。
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第1の側面は、n次元(nは2以上の整数)の変数ベクトル及びパラメータベクトルを少なくとも含む目的関数の最適化に利用される訓練データ行列であって、当該変数ベクトルに設定される値パターンであるn次元の訓練データベクトルを複数パターン含む訓練データ行列を管理するデータ管理装置に関する。第1の側面に係るデータ管理装置は、訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得するサマリ取得部と、サマリ情報を用いて、訓練データ行列における、パラメータベクトルの更新対象次元に対応する対象変数次元が上記同値変数次元か否かを判定し、この判定結果に基づいて、訓練データ行列の上記対象変数次元の全要素の値の代わりに上記対象変数次元の代表値を、パラメータベクトルの上記更新対象次元の更新差分の算出のための訓練データとして特定するデータ特定部と、を有する。
第2の側面は、上記第1の側面におけるデータ管理装置で管理される訓練データ行列を用いて、目的関数の最適化を行うデータ分析装置に関する。第2の側面に係るデータ分析装置は、訓練データ行列における、上記対象変数次元の全要素の値を用いるか、及び、上記対象変数次元の代表値を用いるかのいずれか一方を決定するデータ決定部と、データ決定部の決定に応じて、訓練データ行列における上記対象変数次元の全要素の値の代わりに上記対象変数次元の代表値を用いて、パラメータベクトルの更新対象次元の更新差分を算出する最適化処理部と、を有する。
第3の側面は、上記訓練データ行列を管理するデータ管理方法に関する。第3の側面に係るデータ管理方法は、訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得し、このサマリ情報を用いて、訓練データ行列における、パラメータベクトルの更新対象次元に対応する対象変数次元が上記同値変数次元か否かを判定し、この判定結果に基づいて、訓練データ行列の上記対象変数次元の全ての値の代わりに上記対象変数次元の代表値を、パラメータベクトルの更新対象次元の更新差分の算出のための訓練データとして特定することを含む。
第4の側面は、上記第3の側面に係るデータ管理方法で管理される訓練データ行列を用いて、目的関数の最適化を行うデータ分析方法に関する。第4の側面に係るデータ分析方法は、訓練データ行列における、対象変数次元の全要素の値を用いるか、及び、対象変数次元の代表値を用いるかのいずれか一方を決定し、この決定に応じて、訓練データ行列における上記対象変数次元の全要素の値の代わりに上記対象変数次元の代表値を用いて、パラメータベクトルの上記更新対象次元の更新差分を算出する、ことを含む。
なお、本発明の他の側面としては、上記第3及び第4の各側面の方法の少なくとも一方を少なくとも一つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
上記各側面によれば、目的関数の最適化処理を高速化することができる。
第1実施形態におけるデータ管理装置のハードウェア構成例を概念的に示す図である。 訓練データ行列の例を示す図である。 第1実施形態におけるデータ管理装置の処理構成例を概念的に示す図である。 第1実施形態におけるデータ管理装置の動作例を示すフローチャートである。 第2実施形態におけるデータ管理装置の処理構成例を概念的に示す図である。 訓練データ行列の区分けの例を示す図である。 第2実施形態におけるデータ管理装置の動作例を示すフローチャートである。 第3実施形態における最適化システムの構成を概念的に示す図である。 データ格納装置の格納部を概念的に示す図である。 ブロックサマリテーブルの例を示す図である。 第3実施形態におけるデータ管理装置の処理構成例を概念的に示す図である。 データ分析装置の処理構成例を概念的に示す図である。 第3実施形態におけるデータ管理装置の動作例を示すフローチャートである。 第3実施形態におけるデータ管理装置の動作例を示すフローチャートである。 第3実施形態におけるデータ分析装置の動作例を示すフローチャートである。 図2に示される訓練データ行列のソート例を示す図である。 図16に示される訓練データ行列に基づいて生成されたブロックサマリテーブルの例を示す図である。 2次元空間におけるCD(Coordinate Descent)法の作用を概念的に示す図である。
以下、本発明の実施の形態について説明する。なお、以下に挙げる各実施形態はそれぞれ例示であり、本発明は以下の各実施形態の構成に限定されない。
[第1実施形態]
〔装置構成〕
図1は、第1実施形態におけるデータ管理装置10のハードウェア構成例を概念的に示す図である。第1実施形態におけるデータ管理装置10は、いわゆるコンピュータであり、相互にバスで接続される、CPU(Central Processing Unit)2、メモリ2、入出力インタフェース(I/F)3、通信装置4等を有する。メモリ2は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク、可搬型記憶媒体等である。
入出力I/F3は、表示装置(図示せず)や入力装置(図示せず)等のようなユーザインタフェース装置と接続され得る。通信装置4は、ネットワーク(図示せず)を介して他の装置と通信を行う。本実施形態は、データ管理装置10のハードウェア構成を制限しない。
データ管理装置10は、訓練データ行列を管理する。訓練データ行列は、n次元(nは2以上の整数)の変数ベクトル及びパラメータベクトルを少なくとも含む目的関数の最適化に利用される。訓練データ行列は、その変数ベクトルに設定される値パターンであるn次元の訓練データベクトルを複数パターン含む。即ち、訓練データベクトルの各次元の値は、目的関数を形成する変数ベクトルの各次元の値となる。よって、訓練データ行列は、訓練データベクトル(変数ベクトル)の次元に対応する変数次元成分と、異なる値パターンを持つ各訓練データベクトルに対応する値パターン成分とを持つということができる。
図2は、訓練データ行列の例を示す図である。図2の例では、次元数nが8であり、各行(i)が各値パターンの訓練データベクトルにそれぞれ対応する。即ち、異なる値パターンを持つ複数の訓練データベクトルが縦方向(列方向)に並んでいる。そして、各列(j)が訓練データベクトルの各次元(変数次元成分)に対応する。即ち、図2に示される訓練データ行列では、変数次元成分が列に割り当てられ、値パターン成分が行に割り当てられている。但し、本実施形態は、訓練データ行列の形を図2の例のみに限定しない。変数次元成分が行に割り当てられ、値パターン成分が列に割り当てられた訓練データ行列が利用されてもよい。
〔処理構成〕
図3は、第1実施形態におけるデータ管理装置10の処理構成例を概念的に示す図である。第1実施形態におけるデータ管理装置10は、サマリ取得部11、データ特定部12等を有する。これら各処理部は、例えば、CPU1によりメモリ2に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、CD(Compact Disc)、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力I/F3を介してインストールされ、メモリ2に格納されてもよい。
サマリ取得部11は、訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得する。図2に示される訓練データ行列が用いられる場合、サマリ取得部11は、訓練データ行列内における、列に含まれる各行の値が同じである同値列を識別するサマリ情報を取得する。サマリ情報は、訓練データ行列内の同値列を識別できれば、同値列の列番号jを示してもよいし、同値列以外の列番号jを示してもよい。
また、サマリ情報は、サマリ取得部11自身により生成されてもよいし、予めメモリ2に格納されていてもよい。また、当該サマリ情報は、入力画面等に基づいて入力装置をユーザが操作することにより入力された情報であってもよいし、可搬型記録媒体等から入出力I/F3を経由して取得された情報であってもよいし、他の装置から通信装置4を経由して取得された情報であってもよい。
データ特定部12は、サマリ取得部11で取得されたサマリ情報を用いて、訓練データ行列における、パラメータベクトルの更新対象次元に対応する対象変数次元が、同値変数次元か否かを判定し、この判定結果に基づいて、訓練データ行列の対象変数次元の全要素の値の代わりに同値変数次元の代表値を、パラメータベクトルの更新対象次元の更新差分の算出のための訓練データとして特定する。具体的には、データ特定部12は、訓練データ行列の対象変数次元が同値変数次元でない場合、訓練データ行列の対象変数次元の全ての値を特定し、訓練データ行列の対象変数次元が同値変数次元である場合、訓練データ行列の対象変数次元の全ての値の代わりに対象変数次元の代表値を特定する。同値変数次元は、全要素の値が同じであるため、同値変数次元となる対象変数次元の代表値は、その変数次元のいずれか1つの要素の値に設定される。上述のように、以降、パラメータベクトルの更新対象次元に対応する、訓練データ行列の変数次元を対象変数次元と表記する。
〔動作例〕
次に、第1実施形態におけるデータ管理方法について図4を用いて説明する。図4は、第1実施形態におけるデータ管理装置10の動作例を示すフローチャートである。以下の説明では、データ管理装置10が各工程の実行主体となるが、データ管理装置10に含まれる上述の各処理部が実行主体となってもよい。
データ管理装置10は、訓練データ行列内の同値変数次元を識別するサマリ情報を取得する(S41)。サマリ情報は、上述のとおり、全要素の値が同じである同値変数次元を識別し得る情報である。
データ管理装置10は、(S41)で取得されたサマリ情報を用いて、訓練データ行列における、パラメータベクトルの更新対象次元に対応する対象変数次元が同値変数次元か否かを判定する(S42)。
データ管理装置10は、対象変数次元が同値変数次元である場合(S43;YES)、訓練データ行列の対象変数次元の全要素の値の代わりに対象変数次元の代表値を、パラメータベクトルの更新対象次元の更新差分の算出のための訓練データとして特定する(S44)。一方、データ管理装置10は、対象変数次元が同値変数次元でない場合(S43;NO)、訓練データ行列の対象変数次元の全要素の値を上記訓練データとして特定する(S45)。
〔第1実施形態の作用及び効果〕
上述の第1実施形態では、訓練データ行列の同値変数次元を識別するサマリ情報が取得され、このサマリ情報に基づいて、パラメータベクトルの更新対象次元に対応する訓練データ行列の変数次元(対象変数次元)が同値変数次元であるか否かが判定される。この判定において、対象変数次元が同値変数次元である場合、全要素の値ではなく、その対象変数次元の代表値が特定される。そして、全要素の値の代わりにこの特定された代表値を用いて、パラメータベクトルの更新対象次元の更新差分を算出することができ、この算出された更新差分によりパラメータベクトルの各次元を順次更新し、最終的に、目的関数を最適化することができる。
従って、パラメータベクトルの更新差分の算出に、上述の第1実施形態において特定された訓練データを用いれば、対象変数次元の全要素の値を用いるよりも、より少ない値(代表値)を用いて更新差分を算出することができ、ひいては、目的関数の最適化計算の負荷を軽減することができる。上述したように、最適化処理の時間には、計算時間のみならず、訓練データの読み込み時間も含まれる。第1実施形態によれば、全要素の値の代わりに1つの代表値を読み込めばよいため、訓練データの読み込み時間も短縮することができる。このため、第1実施形態によれば、目的関数の最適化処理を高速化することができる。全要素の値を用いる場合と同様に、1つの代表値を用いて更新差分を算出することができる理由、及び、1つの代表値を用いることで最適化処理を高速化できる理由については、実施例の項において具体例を挙げて説明する。
[第2実施形態]
第2実施形態は、訓練データ行列を区分けして得られる複数の部分行列が用いられる点で、第1実施形態と異なる。以下、第2実施形態におけるデータ管理装置10及びデータ管理方法について、第1実施形態と異なる内容を中心に説明する。以下の説明では、第1実施形態と同様の内容については適宜省略する。
〔処理構成〕
図5は、第2実施形態におけるデータ管理装置10の処理構成例を概念的に示す図である。第2実施形態におけるデータ管理装置10は、第1実施形態の構成に加えて、区分取得部13を更に有する。区分取得部13についても、他の処理部と同様に実現される。
区分取得部13は、訓練データ行列が複数の部分行列に区分けされることを示す区分情報を取得する。各部分行列が持つ値が特定可能であれば、区分情報の形態は制限されない。例えば、区分情報は、各部分行列の訓練データ行列内の位置をそれぞれ示す情報であってもよい。区分情報は、区分取得部13自身により生成されてもよいし、予めメモリ2に格納されていてもよい。また、当該区分情報は、入力画面等に基づいて入力装置をユーザが操作することにより入力された情報であってもよいし、可搬型記録媒体等から入出力I/F3を経由して取得された情報であってもよいし、他の装置から通信装置4を経由して取得された情報であってもよい。
図6は、訓練データ行列の区分けの例を示す図である。図6の例では、訓練データ行列が4つの部分行列P1、P2、P3及びP4に区分けされている。但し、本実施形態は、訓練データ行列の区分けの形態を制限しない。訓練データ行列は、行でのみ(横方向のみに)区分けされてもよいし、列でのみ(縦方向のみに)区分けされてもよいし、列及び行における区分けの数も制限されない。
サマリ取得部11は、区分取得部13で取得された区分情報で特定される各部分行列について、部分行列内の同値変数次元をそれぞれ識別するサマリ情報を取得する。第2実施形態で取得されるサマリ情報は、各部分行列内の同値変数次元をそれぞれ識別可能とする情報である。
データ特定部12は、区分情報を用いて、複数の部分行列の中から、パラメータベクトルの更新対象次元に対応する対象変数次元を含む対象部分行列を選択し、サマリ情報を用いて、その対象部分行列に含まれる対象変数次元が同値変数次元成分か否かを判定する。データ特定部12は、その判定結果に基づいて、対象部分行列の対象変数次元の全要素の値の代わりに当該対象変数次元の代表値を、パラメータベクトルの更新対象次元の更新差分の算出のための訓練データとして特定する。以降、パラメータベクトルの更新対象次元に対応する訓練データ行列の対象変数次元を含む当該部分行列を対象部分行列又は対象ブロックと表記する。また、訓練データ行列から得られる部分行列をブロックと表記する場合もある。
図6の例において、対象変数次元が4に設定される場合、データ特定部12は、部分行列P1及びP2を対象部分行列として選択し、対象部分行列P1の対象変数次元(4)を同値変数次元(各値=0)と判定し、対象部分行列P2の対象変数次元(4)を同値変数次元でないと判定する。データ特定部12は、対象部分行列P1については、対象変数次元(4)の代表値(0)を特定し、対象部分行列P2については、全要素の値(0.16,0.04,0.36,0.49)を特定する。
〔動作例〕
次に、第2実施形態におけるデータ管理方法について図7を用いて説明する。図7は、第2実施形態におけるデータ管理装置10の動作例を示すフローチャートである。以下の説明では、データ管理装置10が各工程の実行主体となるが、データ管理装置10に含まれる上述の各処理部が実行主体となってもよい。
データ管理装置10は、訓練データ行列の区分情報を取得する(S71)。区分情報については上述したとおりである。
データ管理装置10は、サマリ情報を取得する(S72)。第2実施形態で取得されるサマリ情報は、各部分行列内の同値変数次元をそれぞれ識別可能とする情報である。
データ管理装置10は、(S71)で取得された区分情報を用いて、複数の部分行列の中から、パラメータベクトルの更新対象次元に対応する対象変数次元を含む対象部分行列を選択する(S73)。区分情報に応じて、(S73)では、複数の対象部分行列が選択される場合と、1つの対象部分行列が選択される場合とがあり得る。
データ管理装置10は、(S73)で選択された対象部分行列の中の1つに関し、(S72)で取得されたサマリ情報を用いて、対象変数次元が同値変数次元か否かを判定する(S74)。
データ管理装置10は、対象変数次元が同値変数次元である場合(S75;YES)、対象部分行列の対象変数次元の全要素の値の代わりにその対象変数次元の代表値を、パラメータベクトルの更新対象次元の更新差分の算出のための訓練データとして特定する(S76)。一方、データ管理装置10は、対象変数次元が同値変数次元でない場合(S75;NO)、対象部分行列の対象変数次元の全要素の値を上記訓練データとして特定する(S77)。
データ管理装置10は、(S73)で選択された全ての対象部分行列について(S74)の判定を完了したか否かを判定し(S78)、全ての対象部分行列の判定を完了している場合には(S78;YES)、処理を終了する。一方、データ管理装置10は、全ての対象部分行列の判定を完了していない場合には(S78;NO)、未だ判定が行われていない対象部分行列に対して、(S74)以降の工程を実行する。
〔第2実施形態の作用及び効果〕
上述のように、第2実施形態では、区分情報に基づいて、訓練データ行列が区分けされてなる複数の部分行列の中から、パラメータベクトルの更新対象次元に対応する対象変数次元を持つ対象部分行列が選択され、サマリ情報に基づいて、対象部分行列の対象変数次元が同値変数次元であるか否かが判定される。この判定により、各対象部分行列から、対象変数次元の全要素の値か、又は、それに代わる代表値がそれぞれ特定される。この特定された訓練データを用いれば、パラメータベクトルの更新対象次元の更新差分を算出することができる。
従って、第2実施形態においても、第1実施形態と同様に、対象変数次元の全要素の値を用いるよりも、より少ない値(代表値)を用いて更新差分を算出することができるため、目的関数の最適化計算の負荷を軽減できると共に、訓練データの読み込み時間も短縮することができる。更に、第2実施形態では、訓練データ行列が行で区分けされる場合、訓練データ行列全体を用いる第1実施形態に比べて、対象変数次元が同値変数次元となる確率が高まる。対象変数次元に含まれる要素数が減るからである。これにより、パラメータベクトルの更新差分の計算に代表値が利用される頻度を、第1実施形態よりも高めることができる。従って、第2実施形態によれば、最適化処理の高速化という効果を奏する可能性を高めることができる。
更に、第2実施形態によれば、主記憶のサイズを超える訓練データが利用される場合においても、主記憶に格納可能な部分行列単位で処理を行うことができるため、低速なIO(Input and Output)処理の発生頻度を抑えることができ、ひいては、目的関数の最適化処理を高速化することができる。
[第3実施形態]
図8は、第3実施形態における最適化システム50の構成を概念的に示す図である。最適化システム50は、図8に示されるように、データ管理装置10、データ分析装置20、データ格納装置30等を有する。データ管理装置10は、上述の第2実施形態におけるデータ管理装置10に対応する。以下、第3実施形態における最適化システム50について、第1実施形態及び第2実施形態と異なる内容を中心に説明する。以下の説明では、第1実施形態及び第2実施形態と同様の内容については適宜省略する。
データ格納装置30は、上述した、訓練データ行列、サマリ情報、区分情報等を格納する。データ管理装置10は、上述の各実施形態で述べたように訓練データを特定し、その特定された訓練データをデータ分析装置20に送信する。データ分析装置20は、データ管理装置10から送られた訓練データを用いて、目的関数の最適化を行う。
データ管理装置10、データ分析装置20及びデータ格納装置30は、相互に、通信網5を介して通信可能に接続される。通信網5は、インターネット等のような公衆網、WAN(Wide Area Network)、LAN(Local Area Network)、無線通信ネットワーク等である。なお、本実施形態において、各装置間の通信形態は限定されない。
〔装置構成〕
データ分析装置20及びデータ格納装置30は、いわゆるコンピュータであり、上述の各実施形態におけるデータ管理装置10と同様のハードウェア構成を有する。データ分析装置20及びデータ格納装置30のハードウェア構成は制限されない。
〔処理構成〕
〈データ格納装置〉
図9は、データ格納装置30の格納部を概念的に示す図である。データ格納装置30は、図9に示されるように、訓練データ格納部31、関連情報格納部32等を有する。これら格納部は、メモリ2上に実現される。
訓練データ格納部31は、図2の例に示されるような訓練データ行列を格納する。訓練データ行列は、上述のように図2の例に制限されない。
関連情報格納部32は、ブロックサマリテーブルを持つ。ブロックサマリテーブルは、上述のサマリ情報及び区分情報を格納する。以降、訓練データ行列が区分けされて形成される複数の部分行列の各々はブロックと表記される場合もある。関連情報格納部32は、ブロックサマリテーブルと共に、各部分行列(ブロック)をそれぞれ格納する複数のブロックテーブルを格納してもよい。
図10は、ブロックサマリテーブルの例を示す図である。図10の例は、図2に示される訓練データ行列が、図6に示されるように区分けされた場合のブロックサマリテーブルを示す。図10の例のブロックサマリテーブルは、ブロック毎のレコードを持ち、IDフィールド、行範囲フィールド、訓練データ行列の列毎の列値フィールドから形成される。IDフィールドには、各部分行列(各ブロック)を識別するブロックIDが設定される。行範囲フィールドには、各ブロックの、訓練データ行列内の行位置及び行範囲が設定される。各列値フィールドには、#N/A、代表値、又は、NULL(値なし)が設定される。或るレコードにより示されるブロックが訓練データ行列の該当列を持たない場合、そのレコードの、該当列に相当する列値フィールドには、NULLが設定される。或るレコードにより示されるブロックが訓練データ行列の該当列を持つ場合、そのレコードの、該当列に相当する列値フィールドには、#N/A、又は、代表値が設定される。該当列が同値変数次元(同値列)に相当する場合には、列値フィールドには代表値が設定され、該当列が同値変数次元(同値列)でない場合には、列値フィールドには#N/Aが設定される。図10の例では、行範囲フィールドの値及び各列値フィールドの値の組み合わせが区分情報に相当し、各列値フィールドの値(#N/A又は代表値)がサマリ情報に相当する。但し、サマリ情報及び区分情報を格納することができれば、ブロックサマリテーブルの形態は、図10の例に制限されない。例えば、サマリ情報は、各部分行列内の同値変数次元をそれぞれ識別可能とする情報であればよいため、代表値が設定されなくてもよい。
〈データ管理装置〉
図11は、第3実施形態におけるデータ管理装置10の処理構成例を概念的に示す図である。第3実施形態におけるデータ管理装置10は、第2実施形態の構成に加えて、データ割当部15及び初期値計算部16を更に有する。データ割当部15及び初期値計算部16についても、他の処理部と同様に実現される。
区分取得部13は、データ格納装置30の訓練データ格納部31を参照することにより、訓練データ行列の少なくとも1つの区分けラインを決定し、かつ、この区分けラインに基づいて、各部分行列(ブロック)の訓練データ行列内の位置をそれぞれ示す区分情報を生成する。区分取得部13は、訓練データ行列全体で、同値変数次元が多くなり、かつ、代表値の各要素の値の集約率が高くなるように、区分ラインを決定することが望ましい。代表値の各要素の値の集約率とは、更新差分の計算において、代表値で代替される要素値の数に相当する。また、区分取得部13は、各ブロックがデータ分析装置20の訓練データキュー23に格納できるサイズとなるように、区分ラインを決定することが望ましい。
図10の例によれば、例えば、区分取得部13は、ブロックサマリテーブルの各レコードをそれぞれ生成し、各レコードにおいて、ブロックID、行範囲データ、及び、各列値フィールドのNULLをそれぞれ設定する。区分取得部13は、訓練データ格納部31から各ブロックをそれぞれ抽出し、各ブロックを関連情報格納部32にそれぞれ格納するようにしてもよい。
サマリ取得部11は、データ格納装置30の訓練データ格納部31及び関連情報格納部32を参照することにより、区分取得部13により生成された区分情報で特定される複数の部分行列(ブロック)の各々から同値変数次元をそれぞれ検出し、各部分行列に含まれる変数次元毎に同値変数次元か否かを示すサマリ情報を生成する。図10の例によれば、例えば、サマリ取得部11は、ブロックサマリテーブルの、区分取得部13により生成された、NULLが設定されていない各レコードにおいて、各列値フィールドの#N/A又は代表値を設定する。サマリ情報は、各部分行列内の同値変数次元をそれぞれ識別可能とする情報であればよいため、サマリ取得部11は、代表値を設定しなくてもよい。
初期値計算部16は、訓練データ格納部31を参照することにより、パラメータベクトルw等の、最適化処理の過程で更新計算が行われる変数の初期値を、訓練データ行列を用いて計算する。初期値計算部16は、算出された初期値をデータ分析装置20に送る。変数の初期値は、最適化手法に応じた周知の方法で算出されればよい。
データ特定部12は、データ分析装置20からパラメータベクトルの更新対象次元の情報を取得し、上述の第2実施形態と同様に、その更新対象次元の更新差分の算出のための訓練データを特定する。データ特定部12は、パラメータベクトルの更新対象次元の情報として、パラメータベクトルの更新対象次元が更新される順番で並ぶ情報(更新対象次元の順番情報)を取得してもよい。
データ割当部15は、データ分析装置20の訓練データキュー23を監視し、訓練データキュー23に空きが発生すると、データ特定部12により特定された訓練データをデータ分析装置20に送信する。具体的には、データ割当部15は、対象部分行列における、対象変数次元の全要素の値又は代表値を、空きが生じた訓練データキュー23を持つデータ分析装置20に送信する。データ割当部15は、対象変数次元の全要素の値を送る際には、その対象部分行列全体を送信するようにしてもよい。
〈データ分析装置〉
図12は、データ分析装置20の処理構成例を概念的に示す図である。データ分析装置20は、初期値格納部21、パラメータ格納部22、訓練データキュー23、キュー管理部25、最適化処理部26等を有する。これら各処理部は、例えば、CPU1によりメモリ2に格納されるプログラムが実行されることにより実現される。
初期値格納部21は、データ管理装置10の初期値計算部16により算出された、変数の初期値を格納する。
パラメータ格納部22は、パラメータベクトルのような更新される変数を保持する。
訓練データキュー23は、上述の区分情報、及び、データ管理装置10から送られる訓練データを格納する。訓練データキュー23は、各訓練データをブロックの識別情報(ブロックID)と関連付けてそれぞれ格納する。また、対象ブロックにおける対象変数次元の全要素の値が訓練データとして格納される場合と、その対象変数次元の代表値のみが訓練データとして格納される場合とがある。対象変数次元を含むブロックが複数存在する場合、その複数ブロックに関する複数の代表値が各ブロックの識別情報と関連付けられて格納される。また、代表値を更新差分の算出に利用するためには、その代表値が集約する要素値の数が必要となる。代表値が集約する要素値の数は、訓練データベクトルの数及び図2の例における行に相当するため、当該区分情報から抽出することができる。
キュー管理部25は、訓練データキュー23を管理する。具体的には、キュー管理部25は、データ管理装置10から送信される訓練データを取得し、この訓練データを、対応するブロックのIDと関連付けた状態で訓練データキュー23に格納する。キュー管理部25により取得される訓練データは、対象部分行列における対象変数次元の全要素の値、又は、対象変数次元の代表値である。これにより、キュー管理部25は、データ取得部と表記することもできる。また、キュー管理部25は、最適化処理部26による更新差分の計算で利用済みの訓練データを訓練データキュー23から削除する。
キュー管理部25は、関連情報格納部32からブロックサマリテーブルのデータを取得し、このデータが示す区分情報を訓練データキュー23に格納する。また、キュー管理部25は、上記区分情報と共に、ブロックサマリテーブルに含まれるサマリ情報も訓練データキュー23に格納するようにしてもよいし、ブロックサマリテーブル全てを訓練データキュー23に格納するようにしてもよい。ブロックサマリテーブルに代表値が設定されており、かつ、ブロックサマリテーブルの全データが訓練データキュー23に格納される場合、キュー管理部25は、データ管理装置10から代表値を取得しなくてもよい。
最適化処理部26は、対象部分行列における対象変数次元の全要素の値を用いるか、及び、対象変数次元の代表値を用いるかのいずれか一方を決定し、訓練データキュー23からその決定結果に対応する訓練データを読み出し、その更新対象次元の更新差分を算出する。即ち、最適化処理部26は、訓練データとして代表値が取得された場合、対象部分行列における対象変数次元の全要素の値の代わりに対象変数次元の代表値を用いて、パラメータベクトルの更新対象次元の更新差分を算出する。最適化処理部26は、この算出された更新差分によりパラメータベクトルの各次元を順次更新し、最終的に、目的関数を最適化する。最適化処理部26により実行される最適化手法(学習手法)は、CD法のように、更新対象の変数であるパラメータベクトルの次元毎の更新を行える手法であれば、特に制限されない。
最適化処理部26は、訓練データキュー23に格納されるサマリ情報に基づいて、対象部分行列における対象変数次元の全要素の値を用いるか、及び、対象変数次元の代表値を用いるかのいずれか一方を決定するようにしてもよい。
〔動作例〕
次に、第3実施形態におけるデータ管理方法及び最適化方法について図13、図14及び図15を用いて説明する。図13及び図14は、第3実施形態におけるデータ管理装置10の動作例を示すフローチャートである。図15は、第3実施形態におけるデータ分析装置20の動作例を示すフローチャートである。以下の説明では、データ管理装置10又はデータ分析装置20が各工程の実行主体となるが、データ管理装置10及びデータ分析装置20に含まれる上述の各処理部が実行主体となってもよい。
データ管理装置10は、最適化システム50で訓練データ行列が取得されると、図13に示される動作を行う。データ管理装置10は、データ格納装置30の訓練データ格納部31に格納される訓練データ行列に基づいて、パラメータベクトルの初期値を算出する(S131)。データ管理装置10は、算出された初期値をデータ分析装置20に送る。
続いて、データ管理装置10は、訓練データ行列の区分情報を生成する(S132)。具体的には、データ管理装置10は、訓練データ行列の少なくとも1つの区分けラインを決定し、かつ、この区分けラインに基づいて、各部分行列(ブロック)の訓練データ行列内の位置をそれぞれ示す区分情報を生成する。
更に、データ管理装置10は、(S132)で生成された区分情報で特定される複数のブロックの各々から同値変数次元をそれぞれ検出し、各部分行列に含まれる変数次元毎に同値変数次元か否かを示すサマリ情報を生成する(S133)。
データ管理装置10は、(S132)で生成された区分情報及び(S133)で生成されたサマリ情報を含むブロックサマリテーブルを生成し、このブロックサマリテーブルをデータ格納装置30の関連情報格納部32に格納する(S134)。
データ管理装置10は、上述のブロックサマリテーブルの生成後、データ分析装置20による最適化処理の開始に伴って、図14に示される動作を行う。
まず、データ管理装置10は、データ格納装置30の関連情報格納部32からブロックサマリテーブルのデータを取得する(S141)。この工程(S141)は、図7に示される(S71)及び(S72)に相当する。データ管理装置10は、取得されたブロックサマリテーブルで示される少なくとも区分情報をデータ分析装置20の訓練データキュー23に格納する。
データ管理装置10は、パラメータベクトルの更新対象次元の情報を取得する(S142)。データ管理装置10は、データ分析装置20から更新対象次元の順序情報を取得し、その順序情報から、当該更新対象次元の情報を取得するようにしてもよい。
データ管理装置10は、(S141)で取得されたブロックサマリテーブルのデータが示す区分情報に基づいて、複数のブロックの中から、パラメータベクトルの更新対象次元に対応する対象変数次元を含む対象部分行列(対象ブロック)を選択する(S143)。区分情報に応じて、(S143)では、複数の対象ブロックが選択される場合と、1つの対象ブロックが選択される場合とがあり得る。
データ管理装置10は、データ分析装置20の訓練データキュー23に空きが有るか否かを判定する(S144)。データ管理装置10は、訓練データキュー23に空きがない場合(S144;NO)、所定時間待って(S145)、再度、(S144)の判定を行う。一方、訓練データキュー23に空きが有る場合(S144;YES)、データ管理装置10は、未処理の対象ブロックの1つに関し、(S141)で取得されたデータが示すサマリ情報を用いて、対象変数次元が同値変数次元か否かを判定する(S146)。
データ管理装置10は、対象変数次元が同値変数次元である場合(S147;YES)、対象ブロックの対象変数次元の全要素の値の代わりにその対象変数次元の代表値を特定する(S148)。一方、データ管理装置10は、対象変数次元が同値変数次元でない場合(S147;NO)、対象部分行列の対象変数次元の全要素の値を特定する(S149)。
データ管理装置10は、特定された訓練データを、対象ブロックの識別情報と関連付けた状態で、データ分析装置20に送信する。これにより、データ分析装置20は、訓練データを対象ブロックの識別情報と関連付けて訓練データキュー23に格納する(S150)。
データ管理装置10は、未処理の対象ブロックが残っている場合(S151;YES)、新たな未処理の対象ブロックに対して、(S144)以降を実行する。データ管理装置10は、未処理の対象ブロックが残っていない場合(S151;NO)、パラメータベクトルの次の更新対象次元が有るか否かを判定する(S152)。データ管理装置10は、次の更新対象次元が有る場合(S152;YES)、当該次の更新対象次元の情報を取得し(S142)、この情報に基づいて、(S143)以降を実行する。データ管理装置10は、次の更新対象次元が無い場合(S152;NO)、処理を終える。
データ分析装置20は、図15に示されるような動作で、最適化処理を行う。
データ分析装置20は、パラメータベクトルの更新対象次元を決定する(S161)。データ分析装置20は、更新対象次元の全ての実行順を決め、その実行順に応じて、1つの更新対象次元を決定する。データ分析装置20は、その順序情報をデータ管理装置10に通知する。また、データ分析装置20は、1つの更新対象次元を決める度に、決定された更新対象次元をデータ管理装置10に通知するようにしてもよい。この通知に伴う、図14に示されるデータ管理装置10の動作により、データ分析装置20の訓練データキュー23に訓練データが格納される。
データ分析装置20は、訓練データキュー23に格納される区分情報に基づいて、パラメータベクトルの更新対象次元に対応する、訓練データ行列の対象変数次元を含む対象部分行列(対象ブロック)を特定する(S162)。
データ分析装置20は、未処理の1つの対象ブロックを選択し、この選択された対象ブロックに関連付けられて訓練データキュー23に格納される訓練データが代表値であるか否かを判定する(S163)。この判定は、例えば、訓練データに関連付けられたブロックの識別情報と、訓練データキュー23に格納される区分情報とに基づいて行われる。具体的には、区分情報により、訓練データに関連付けられたブロックが複数の要素を持つことが示されているにもかかわらず、そのブロックに1つの値のみが関連付けられている場合には、その訓練データは、代表値であると判定することができる。また、訓練データキュー23に、ブロックサマリテーブルが格納される場合には、ブロックサマリテーブルに基づいて、代表値か否かが判定可能である。
データ分析装置20は、訓練データが代表値である場合(S163;YES)、その代表値を用いて更新差分を更新する(S164)。この更新差分の計算において、データ分析装置20は、当該区分情報から取得される、その代表値が集約する要素値の数も合せて用いる。一方、データ分析装置20は、訓練データが代表値でない場合(S163;NO)、その対象ブロックに関連付けられて訓練データキュー23に格納される複数要素の値を用いて更新差分を更新する(S165)。データ分析装置20は、未処理の対象ブロックがなくなるまで、(S163)から(S166)を繰り返す(S166;YES)。
データ分析装置20は、未処理の対象ブロックがなくなると(S166;NO)、それまでに算出された更新差分を加算することにより、パラメータベクトルの更新対象次元の値を更新する(S167)。
データ分析装置20は、更新差分が十分に小さい場合(S168;YES)、処理を終了する。更新差分が十分に小さいか否かは、例えば、更新差分が所定閾値より小さいか否かにより判定される。データ分析装置20は、更新差分が十分に小さくない場合(S168;NO)、次の実行順の更新対象次元を決定し(S161)、この決定された更新対象次元に対して、(S162)以降を実行する。このように、更新差分が十分に小さいと判定されるまで、更新対象次元が切り替えられながら、図15に示される最適化処理が繰り返される。
〔第3実施形態における作用及び効果〕
上述のように、第3実施形態では、区分情報及びサマリ情報がデータ管理装置10により生成され、訓練データキュー23の空き状況に応じて、第2実施形態と同様に特定された訓練データがデータ管理装置10からデータ分析装置20に送られる。データ分析装置20の訓練データキュー23には、対応するブロックの識別情報と関連付けられた訓練データ及び区分情報が格納される。データ分析装置20では、訓練データキュー23に格納される区分情報に基づいて、パラメータベクトルの更新対象次元に対応する対象ブロックが選択され、その対象ブロックに関連付けられた訓練データが特定される。そして、その訓練データが代表値であれば、複数要素の値に代えてその代表値を用いて、更新差分が算出され、その訓練データが代表値でなければ、複数要素の値を用いて、更新差分が算出される。
従って、第3実施形態によれば、最適化処理を行う装置(データ分析装置20)と、訓練データ行列を操作する装置(データ管理装置10)とが異なる装置で実現される形態であっても、上述の第2実施形態と同様の作用効果を得ることができる。更に、第3実施形態において、訓練データキュー23が主記憶やキャッシュメモリ上に実現され、かつ、訓練データキュー23のサイズに応じて、訓練データ行列が区分けされれば、低速なIO処理の発生頻度を抑えることができる。
[変形例]
上述の第1実施形態及び第2実施形態では、最適化処理を行う処理部については言及されていなかったが、データ管理装置10が、データ特定部12により特定された訓練データを用いて、目的関数の最適化を行うデータ分析装置として動作してもよい。この場合、データ管理装置10は、訓練データ行列又は対象部分行列における、対象変数次元の全要素の値を取得するか、及び、対象変数次元の代表値を取得するかのいずれか一方を決定するデータ決定部と、データ決定部の決定に応じて、訓練データ行列又は対象部分行列における対象変数次元の全要素の値の代わりに対象変数次元の代表値を用いて、パラメータベクトルの更新対象次元の更新差分を算出する最適化処理部とを更に有してもよい。
また、第3実施形態では、データ管理装置10、データ分析装置20及びデータ格納装置30の3台の装置により最適化システムが実現されたが、全ての処理部を含む1台の装置で最適化システムが実現されてもよいし、2台の装置で最適化システムが実現されてもよい。また、第3実施形態では、1台のデータ分析装置20のみが例示されたが、最適化システム50は、最適化処理を分担する複数のデータ分析装置20を有してもよい。この場合、データ分析装置20毎に異なる更新対象次元が処理対象として割り当てられ、データ管理装置10は、更新対象次元毎に訓練データの送信先となるデータ分析装置20を切り替えるようにすればよい。このようにすれば、複数の更新対象次元の値更新を並列に実行することができる。
上述の第2実施形態及び第3実施形態では、代表値が集約する要素値の数が増える程、IO処理の発生頻度及び最適化計算量をより低減することができ、ひいては、最適化処理をより高速化することができる。従って、データ管理装置10の区分取得部13が、区分けラインの決定前に、代表値が集約する要素値の数が最大化するように、訓練データ行列内の訓練データベクトルの並びを変更するようにしてもよい。
図16は、図2に示される訓練データ行列のソート例を示す図である。図16の例では、元の訓練データ行列の1行目から8行目に並ぶ訓練データベクトルが、4行目、2行目、7行目、5行目、3行目、6行目、1行目、8行目の順に並び替えられている。
図17は、図16に示される訓練データ行列に基づいて生成されたブロックサマリテーブルの例を示す図である。図17の例によれば、ソート後の訓練データ行列から生成されたブロックサマリテーブルのほうが、元の訓練データ行列から生成されたものよりも、同値変数次元の数が2個から6個に増加していることが分かる。
訓練データ行列内の訓練データベクトルの並び替えの手法には様々な手法があり得る。例えば、区分取得部13は、訓練データ行列内の訓練データベクトル毎に、所定指標に基づくスコアを付与し、このスコアを用いて、訓練データ行列内の訓練データベクトルの並びを変更することもできる。所定指標には、例えば、訓練データベクトル間の類似度などが利用可能である。この例によれば、区分取得部13は、類似度が高い訓練データベクトルが同じブロックに属するように、区分けラインを決定するようにすればよい。
このようなブロックへの区分け前の、訓練データ行列内の訓練データベクトルの並び替えによれば、IO処理の発生頻度及び最適化計算量を一層低減することができ、最適化処理を一層高速化することができる。
なお、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
以下に実施例を挙げ、上述の各実施形態及び各変形例を更に詳細に説明する。本発明は以下の各実施例から限定を受けない。
実施例1では、上述の各実施形態及び各変形例の作用及び効果について検証する。即ち、複数要素の値に代えて1つの代表値を用いて更新差分を算出することができる理由、及び、1つの代表値を用いることで最適化処理を高速化できる理由を具体的な例を挙げて説明する。以下には、CD法を用いたSVMが例示される。
Figure 2015005086
上記(式1)におけるf(w)は、各特徴ベクトルxiが属する分類クラスyiの誤判別のペナルティ量を決める目的関数である。この例では、CD法を用いて、目的関数f(w)を最大化するパラメータベクトルwが算出される。CD法では、パラメータベクトルの次元j毎に、更新差分が、上記(式2)で示されるステップ方向dと、ステップ幅αとの積により算出される。即ち、この例では、最適化処理の繰り返し計算において、パラメータベクトルの次元j毎に、ステップ方向dが算出され、このdを用いて次元jの更新差分が算出される。
(式2)に示されるように、ステップ方向dは、目的関数f(w)をxについて1回偏微分して得られるf'(w)と、目的関数f(w)をxについて2回偏微分して得られるf''(w)とを用いて算出される。ここで、上記(式3)に示されるように、f'(w)は、訓練データ行列に含まれるN個の特徴ベクトルxi(1≦i≦N)の更新対象次元jの各値(xij)と、パラメータベクトルwを含む関数g(w)との積の和により算出される。即ち、最適化処理の更新差分の計算(αd)は、訓練データxijと、関数g(w)との積を、訓練データベクトルの数N回繰り返すことを含む。この繰り返し計算は、上述した代表値を用いれば、代表値により代替される要素値の数(特徴ベクトルの数)に対応する回数分、省くことができる。例えば、I(w)を満たす変数iが1から5の集合であり、代表値が5個の要素値(xij)を集約している場合、5回の繰り返し計算(加算)を、5と代表値との1回の積計算で代替することができる。このように更新差分計算における繰り返し計算を省くことができれば、最適化処理を高速することができる。
実施例2では、図6に示される訓練データ行列の区分けの例、及び、図10に示されるブロックサマリテーブルのデータ例に基づいて、上述の第3実施形態におけるデータ分析装置20の最適化処理についてより具体的に説明する。以下の説明は、図15に示されるフローチャートに沿って行われる。
データ分析装置20は、パラメータベクトルの更新対象次元の実行順を決定する。この実行順は、イテレーション毎に切り換えられてもよいし、全イテレーションで同じであってもよい。ここでは、実行順が{7,4,1,6,2,3,5,8}と決められると仮定する。データ分析装置20は、この更新対象次元の実行順情報をデータ管理装置10に送る。データ分析装置20は、この実行順に沿って、パラメータベクトルの更新対象次元を決定する(S161)。まずは、更新対象次元が7に決定される。以降、変数次元成分を列と表記し、値パターン成分を行と表記する。
データ分析装置20は、訓練データキュー23に格納される区分情報に基づいて、7列目を含むブロックP3及びP4を対象ブロックとして特定する(S162)。データ分析装置20は、未処理の1つの対象ブロックP3を選択し、この選択された対象ブロックP3に関連付けられて訓練データキュー23に格納される訓練データが代表値であるか否かを判定する(S163)。ここでは、対象ブロックP3に関連付けられた訓練データは、(0.00,0.88,0.00,0.26)であり、代表値ではない。データ分析装置20は、対象ブロックP3に関連付けられた訓練データが代表値でないため(S163;NO)、その列の4つの値について、上述のような繰り返し計算を行い、更新差分を更新する(S165)。
データ分析装置20は、未処理の対象ブロックP4についても同様に、対象ブロックP4に関連付けられた訓練データが代表値ではないため(S163;NO)、その列の4つの値(0.91,0.00,0.54,0.00)について、上述のような繰り返し計算を行い、更新差分を更新する(S165)。
データ分析装置20は、7列目に関する未処理の対象ブロックがなくなったため(S166;NO)、それまでに算出された更新差分を加算することにより、パラメータベクトルの更新対象次元7の値を更新する(S167;w7=w7+αd)。ここで、データ分析装置20は、算出された更新差分の値が十分に小さくない場合(S168;NO)、次の更新対象次元4を決定する(S161)。
更新対象次元4については、ブロックP1及びP2が対象ブロックとして特定される(S162)。ここで、対象ブロックP1の4列目は、同値変数次元であり、対象ブロックP1に関連付けられ訓練データキュー23に格納される訓練データは、代表値(0.00)である。そこで、データ分析装置20は、代表値(0.00)を用いて、更新差分を更新する(S163;YES、S164)。一方、対象ブロックP2に関連付けられる訓練データは、代表値ではないため、データ分析装置20は、対象ブロックP2の4列目の4つの値(0.16,0.04,0.36,0.49)について、上述のような繰り返し計算を行い、更新差分を更新する(S165)。
データ分析装置20は、4列目に関する未処理の対象ブロックがなくなったため(S166;NO)、それまでに算出された更新差分を加算することにより、パラメータベクトルの更新対象次元4の値を更新する(S167;w4=w4+αd)。データ分析装置20は、更新差分が十分小さくなるまで(S168;YES)、このような処理を繰り返す。
1 CPU
2 メモリ
10 データ管理装置
11 サマリ取得部
12 データ特定部
13 区分取得部
15 データ割当部
16 初期値計算部
20 データ分析装置
21 初期値格納部
22 パラメータ格納部
23 訓練データキュー
25 キュー管理部
26 最適化処理部
30 データ格納装置
31 訓練データ格納部
32 関連情報格納部
50 最適化システム

Claims (17)

  1. n次元(nは2以上の整数)の変数ベクトル及びパラメータベクトルを少なくとも含む目的関数の最適化に利用される訓練データ行列であって、該変数ベクトルに設定される値パターンである該n次元の訓練データベクトルを複数パターン含む訓練データ行列を管理するデータ管理装置において、
    前記訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得するサマリ取得部と、
    前記サマリ情報を用いて、前記訓練データ行列における、前記パラメータベクトルの更新対象次元に対応する対象変数次元が前記同値変数次元か否かを判定し、該判定結果に基づいて、前記訓練データ行列の該対象変数次元の全要素の値の代わりに該対象変数次元の代表値を、前記パラメータベクトルの該更新対象次元の更新差分の算出のための訓練データとして特定するデータ特定部と、
    を備えるデータ管理装置。
  2. 前記訓練データ行列が複数の部分行列に区分けされることを示す区分情報を取得する区分取得部、
    を更に備え、
    前記サマリ取得部は、前記区分情報で特定される前記複数の部分行列の各々について、部分行列内の前記同値変数次元をそれぞれ識別する前記サマリ情報を取得し、
    前記データ特定部は、前記区分情報を用いて、前記複数の部分行列の中から、前記パラメータベクトルの前記更新対象次元に対応する前記対象変数次元を含む対象部分行列を選択し、前記サマリ情報を用いて、該対象部分行列に含まれる前記対象変数次元が前記同値変数次元か否かを判定し、該判定結果に基づいて、該対象部分行列の前記対象変数次元の全要素の値の代わりに前記対象変数次元の代表値を、前記パラメータベクトルの前記更新対象次元の更新差分の算出のための訓練データとして特定する、
    請求項1に記載のデータ管理装置。
  3. 前記区分取得部は、前記訓練データ行列の少なくとも1つの区分けラインを決定し、かつ、該区分けラインに基づいて、前記各部分行列の前記訓練データ行列内の位置をそれぞれ示す前記区分情報を生成し、
    前記サマリ取得部は、前記区分情報で特定される前記複数の部分行列の各々から前記同値変数次元をそれぞれ検出し、前記各部分行列に含まれる変数次元毎に前記同値変数次元か否かを示す前記サマリ情報を生成する、
    請求項2に記載のデータ管理装置。
  4. 前記区分取得部は、前記区分けラインの決定前に、前記訓練データ行列内の前記訓練データベクトルの並びを変更する、
    請求項3に記載のデータ管理装置。
  5. 前記区分取得部は、前記訓練データ行列内の前記訓練データベクトル毎に、所定指標に基づくスコアを付与し、該スコアを用いて、前記訓練データ行列内の前記訓練データベクトルの並びを変更する、
    請求項4に記載のデータ管理装置。
  6. 前記サマリ取得部は、前記サマリ情報に、前記同値変数次元成分の前記代表値を含める、
    請求項3から5のいずれか1項に記載のデータ管理装置。
  7. 請求項1から6のいずれか1項に記載のデータ管理装置で管理される前記訓練データ行列を用いて、前記目的関数の最適化を行うデータ分析装置において、
    前記訓練データ行列又は前記対象部分行列における、前記対象変数次元の全要素の値を用いるか、及び、前記対象変数次元の代表値を用いるかのいずれか一方を決定するデータ決定部と、
    前記データ決定部の決定に応じて、前記訓練データ行列又は前記対象部分行列における前記対象変数次元の全要素の値の代わりに前記対象変数次元の代表値を用いて、前記パラメータベクトルの前記更新対象次元の更新差分を算出する最適化処理部と、
    を備えるデータ分析装置。
  8. 前記データ決定部は、前記サマリ情報を用いて前記決定を行う、
    請求項7に記載のデータ分析装置。
  9. n次元(nは2以上の整数)の変数ベクトル及びパラメータベクトルを少なくとも含む目的関数の最適化に利用される訓練データ行列であって、該変数ベクトルに設定される値パターンである該n次元の訓練データベクトルを複数パターン含む訓練データ行列を管理するデータ管理方法において、
    前記訓練データ行列内の変数次元成分における全要素の値が同じである同値変数次元を識別するサマリ情報を取得し、
    前記サマリ情報を用いて、前記訓練データ行列における、前記パラメータベクトルの更新対象次元に対応する対象変数次元が前記同値変数次元か否かを判定し、
    前記判定結果に基づいて、前記訓練データ行列の前記対象変数次元の全ての値の代わりに前記対象変数次元の代表値を、前記パラメータベクトルの前記更新対象次元の更新差分の算出のための訓練データとして特定する、
    ことを含むデータ管理方法。
  10. 前記訓練データ行列が複数の部分行列に区分けされることを示す区分情報を取得し、
    前記区分情報を用いて、前記複数の部分行列の中から、前記パラメータベクトルの前記更新対象次元に対応する対象変数次元を含む対象部分行列を選択する、
    ことを更に含み、
    前記サマリ情報の取得は、前記区分情報で特定される前記複数の部分行列の各々について、部分行列内の前記同値変数次元をそれぞれ識別する前記サマリ情報を取得し、
    前記同値変数次元の判定は、前記サマリ情報を用いて、前記対象部分行列に含まれる前記対象変数次元が前記同値変数次元か否かを判定し、
    前記訓練データの特定は、前記判定結果に基づいて、前記対象部分行列の前記対象変数次元の全要素の値の代わりに前記対象変数次元の代表値を、前記パラメータベクトルの前記更新対象次元の更新差分の算出のための訓練データとして特定する、
    請求項9に記載のデータ管理方法。
  11. 前記訓練データ行列の少なくとも1つの区分けラインを決定し、
    前記区分けラインに基づいて、前記各部分行列の前記訓練データ行列内の位置をそれぞれ示す前記区分情報を生成し、
    前記区分情報で特定される前記複数の部分行列の各々から前記同値変数次元をそれぞれ検出し、
    前記各部分行列に含まれる変数次元毎に前記同値変数次元か否かを示す前記サマリ情報を生成する、
    ことを更に含む請求項10に記載のデータ管理方法。
  12. 前記区分けラインの決定前に、前記訓練データ行列内の前記訓練データベクトルの並びを変更する、
    ことを更に含む請求項11に記載のデータ管理方法。
  13. 前記並びの変更は、前記訓練データ行列内の前記訓練データベクトル毎に、所定指標に基づくスコアを付与し、該スコアを用いて、前記訓練データ行列内の前記訓練データベクトルの並びを変更する、
    請求項12に記載のデータ管理方法。
  14. 前記サマリ情報に、前記同値変数次元成分の前記代表値を含める、
    ことを更に含む請求項11から13のいずれか1項に記載のデータ管理方法。
  15. 請求項9から14のいずれか1項に記載のデータ管理方法で管理される前記訓練データ行列を用いて、前記目的関数の最適化を行うデータ分析方法において、
    前記訓練データ行列又は前記対象部分行列における、前記対象変数次元の全要素の値を用いるか、及び、前記対象変数次元の代表値を用いるかのいずれか一方を決定し、
    前記決定に応じて、前記訓練データ行列又は前記対象部分行列における前記対象変数次元の全要素の値の代わりに前記対象変数次元の代表値を用いて、前記パラメータベクトルの前記更新対象次元の更新差分を算出する、
    ことを含むデータ分析方法。
  16. 前記決定は、前記サマリ情報を用いて行う、
    請求項15に記載のデータ分析方法。
  17. 請求項9から14のいずれか1項に記載のデータ管理方法、及び、請求項15又は16に記載のデータ分析方法の少なくとも一方を少なくとも一つのコンピュータに実行させるプログラム。
JP2013129293A 2013-06-20 2013-06-20 データ管理装置及びデータ分析装置 Active JP6217164B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013129293A JP6217164B2 (ja) 2013-06-20 2013-06-20 データ管理装置及びデータ分析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013129293A JP6217164B2 (ja) 2013-06-20 2013-06-20 データ管理装置及びデータ分析装置

Publications (2)

Publication Number Publication Date
JP2015005086A true JP2015005086A (ja) 2015-01-08
JP6217164B2 JP6217164B2 (ja) 2017-10-25

Family

ID=52300948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013129293A Active JP6217164B2 (ja) 2013-06-20 2013-06-20 データ管理装置及びデータ分析装置

Country Status (1)

Country Link
JP (1) JP6217164B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180080111A (ko) * 2017-01-03 2018-07-11 한국전자통신연구원 자가 학습을 위한 데이터 메타 스케일링 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326465A (ja) * 2003-04-24 2004-11-18 Matsushita Electric Ind Co Ltd 文書分類用の学習装置、及びこれを用いた文書分類方法並びに文書分類装置
JP2010128673A (ja) * 2008-11-26 2010-06-10 Nec Corp コンピュータネットワーク、異常検出特定装置、異常検出特定方法およびそのプログラム
JP2011227758A (ja) * 2010-04-21 2011-11-10 Sony Corp 情報処理装置、情報処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326465A (ja) * 2003-04-24 2004-11-18 Matsushita Electric Ind Co Ltd 文書分類用の学習装置、及びこれを用いた文書分類方法並びに文書分類装置
JP2010128673A (ja) * 2008-11-26 2010-06-10 Nec Corp コンピュータネットワーク、異常検出特定装置、異常検出特定方法およびそのプログラム
JP2011227758A (ja) * 2010-04-21 2011-11-10 Sony Corp 情報処理装置、情報処理方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180080111A (ko) * 2017-01-03 2018-07-11 한국전자통신연구원 자가 학습을 위한 데이터 메타 스케일링 장치 및 방법
KR102470145B1 (ko) 2017-01-03 2022-11-24 한국전자통신연구원 자가 학습을 위한 데이터 메타 스케일링 장치 및 방법

Also Published As

Publication number Publication date
JP6217164B2 (ja) 2017-10-25

Similar Documents

Publication Publication Date Title
Damle et al. Simple, direct and efficient multi-way spectral clustering
Ferranti et al. A distributed approach to multi-objective evolutionary generation of fuzzy rule-based classifiers from big data
JP6167767B2 (ja) インデックス生成装置及び検索装置
Liu et al. Integration of improved predictive model and adaptive differential evolution based dynamic multi-objective evolutionary optimization algorithm
Meera et al. Retracted article: a hybrid metaheuristic approach for efficient feature selection methods in big data
Tan et al. Phased searching with NEAT in a time-scaled framework: experiments on a computer-aided detection system for lung nodules
Liang et al. Image feature selection using genetic programming for figure-ground segmentation
Bai et al. Bi-level graph neural networks for drug-drug interaction prediction
Shehab et al. Toward feature selection in big data preprocessing based on hybrid cloud-based model
Walker et al. Parallel evolution using multi-chromosome cartesian genetic programming
JP6201556B2 (ja) 予測モデル学習装置、予測モデル学習方法およびコンピュータプログラム
CN117616431A (zh) 针对大规模数据的可解释的机器学习
JP6217164B2 (ja) データ管理装置及びデータ分析装置
JP3995099B2 (ja) 高次元データを塊に分割する装置
Clergue et al. An iterated local search to find many solutions of the 6-states firing squad synchronization problem
Zhang et al. Quadratic graph attention network (Q-GAT) for robust construction of gene regulatory networks
US11676050B2 (en) Systems and methods for neighbor frequency aggregation of parametric probability distributions with decision trees using leaf nodes
JP2022081412A (ja) ネットワーク・ノードのクラスタリング
Huo et al. Sparse embedding for interpretable hospital admission prediction
JP5600694B2 (ja) クラスタリング装置及び方法及びプログラム
Wang et al. Parallel ordinal decision tree algorithm and its implementation in framework of MapReduce
Bouaguel et al. Distributed Evolutionary Feature Selection for Big Data Processing
Gárate-Escamilla et al. Big data execution time based on Spark Machine Learning Libraries
Fonseca et al. A genetic algorithm assisted by a locally weighted regression surrogate model
Nazem et al. A GU-Net-Based Architecture Predicting Ligand–Protein-Binding Atoms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170911

R150 Certificate of patent or registration of utility model

Ref document number: 6217164

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150