IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ソリューションズ東日本の特許一覧

特開2024-47369データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム
<>
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図1
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図2
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図3
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図4
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図5
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図6
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図7
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図8
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図9
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図10
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図11
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図12
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図13
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図14
  • 特開-データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047369
(43)【公開日】2024-04-05
(54)【発明の名称】データオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240329BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022152953
(22)【出願日】2022-09-26
(71)【出願人】
【識別番号】000233538
【氏名又は名称】株式会社日立ソリューションズ東日本
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】佐藤 健
(72)【発明者】
【氏名】川島 拓朗
(57)【要約】
【課題】オーバーサンプリングされたデータを用いた学習済みモデルによる推定の結果を改善できる、データオーバーサンプリング技術を提供する。
【解決手段】データオーバーサンプリング方法は、コンピュータが、2値要素からなるサイズNの元データ配列をM件取得するステップと、コンピュータが、M件の前記元データ配列に基づきM行N列の元データ行列を生成するステップと、コンピュータが、前記元データ行列の転置行列と、前記元データ行列との積に基づき、N行N列の元データ特徴量行列を算出するステップと、コンピュータが、生成行列更新処理を1回以上実行するステップと、コンピュータが、更新された前記生成行列に基づき、前記目的関数の値を小さくするための解として、2値データからなるサイズNの出力データ配列を生成する、生成ステップとを備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
データオーバーサンプリング方法であって、
前記方法は、
コンピュータが、2値要素からなるサイズNの元データ配列をM件取得するステップと、
コンピュータが、M件の前記元データ配列に基づきM行N列の元データ行列を生成するステップと、
コンピュータが、前記元データ行列の転置行列と、前記元データ行列との積に基づき、N行N列の元データ特徴量行列を算出するステップと、
コンピュータが、生成行列更新処理を1回以上実行するステップであって、前記生成行列更新処理は、
‐実数要素からなるN行N列の生成行列に基づき、所定の目的関数の値を小さくするための解として、2値データからなるサイズNのサンプリングデータ配列をS件生成する、探索ステップと、
‐S件の前記サンプリングデータ配列に基づきS行N列のサンプリングデータ行列を生成するステップと、
‐前記サンプリングデータ行列の転置行列と、前記サンプリングデータ行列との積に基づき、N行N列のサンプリングデータ特徴量行列を算出するステップと、
‐前記元データ特徴量行列と前記サンプリングデータ特徴量行列との差に基づき、前記生成行列を更新するステップと、
を含む、生成行列更新処理を1回以上実行するステップと、
コンピュータが、更新された前記生成行列に基づき、前記目的関数の値を小さくするための解として、2値データからなるサイズNの出力データ配列を生成する、生成ステップと、
を備える、データオーバーサンプリング方法。
【請求項2】
前記探索ステップおよび前記生成ステップは、アニーリング処理を用いて実行される、請求項1に記載の方法。
【請求項3】
コンピュータが、多値要素を含む置換前データ配列の各多値要素について、その値に応じて異なる位置の要素が1となるワンホットベクトルを生成するステップと、
コンピュータが、前記置換前データ配列において各多値要素をそれぞれ対応する前記ワンホットベクトルで置き換えることにより、前記元データ配列を生成するステップと、
コンピュータが、前記出力データ配列のうち前記ワンホットベクトルに対応する要素列において、値が1である要素の位置に応じて異なる置換用値を生成するステップと、
コンピュータが、前記出力データ配列において前記ワンホットベクトルを対応する前記置換用値で置き換えることにより、多値要素を含む置換後出力データ配列を生成するステップと、
をさらに備える、請求項1に記載の方法。
【請求項4】
請求項1~3のいずれか一項に記載の方法を実行する、データオーバーサンプリングシステム。
【請求項5】
請求項1~3のいずれか一項に記載の方法をコンピュータに実行させる、データオーバーサンプリングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラムに関する。
【背景技術】
【0002】
既存データを用いた未知データの推定または予測のために、教師あり機械学習を用いることが周知である。教師あり機械学習では、学習データとして、正解ラベルが付されたデータを用いて学習を行う。
【0003】
教師あり機械学習において、学習データのラベルごとのデータ件数に不均衡がある場合に、学習が正しく行えない問題が存在する。このため、データ件数が少ないラベルのデータについて、元データと似た特徴を持つデータを増やす(オーバーサンプリング)することでこの問題を解決しようとする試みがなされている。
【0004】
オーバーサンプリングとは、不均衡データに対して、少数派のデータを増加させることでデータ数の偏りを補正する方法をいう。増加の方法には、複製や類似データの作成などがある。
【0005】
非特許文献1には、このような問題が記載されている。また、非特許文献2には、オーバーサンプリングの例として、SMOTEと呼ばれる手法が記載されている。
【0006】
非特許文献3にはアニーリング技術が説明されている。大規模な組合せ最適化問題を効率良く解く技術として、イジングモデルを利用したアニーリング技術が注目されている。アニーリング技術は、組合せ最適化問題のアルゴリズムにおいて、特定の計算問題に限定されず、汎用的に利用可能な近似アルゴリズムであり、厳密な最適解を求めることではなく、より良い解を現実的な計算時間で導出することを目的とする。
【0007】
イジングモデルとは、磁性体の振舞いを表す統計力学上のモデルであり、磁性体のスピン間の相互作用によりエネルギーが最小となるようにスピンの状態が更新され、最終的にエネルギーが最小となる性質がある。アニーリング技術では、2値変数の組合せ最適化問題をイジングモデルにマッピングし、エネルギー最小の状態を求めることによって、元の最適化問題の解を得る。イジングモデルは、制約なし2値変数2次形式最適化問題(QUBO)との相互変換が可能であり、対象とする最適化問題に応じてイジングモデルとQUBOによる定義を使い分けることが多い。このようなアニーリング技術を実現するデバイスをアニーリングマシンと呼ぶ。
【0008】
アニーリング技術による組合せ最適化計算はメタヒューリスティックな計算手法であり、探索結果にばらつきが生じる。この特性を利用し、近年アニーリング技術をデータサンプリングに利用する研究が注目されている。サンプリングマシンの利用方法としては、機械学習における学習データの不均衡問題の解決を目的とした少数データのオーバーサンプリングがある。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Nathalie Japkowicz、「The class imbalance problem: Significance and strategies」、Proc.of the Int'l Conf. on Artificial Intelligence、2000年
【非特許文献2】Nitesh V Chawla 他、「SMOTE: synthetic minority over-sampling technique」、Journal of artificial intelligence research 16、pp. 321-357、2002年
【非特許文献3】T. Kadowaki, H. Nishimori、「Quantum annealing in the transverse Ising model」、PhysRevE, Vol.58, 5355-5363、1998年
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、従来のオーバーサンプリング方法では、オーバーサンプリングされたデータを用いた学習済みモデルによる推定の結果に、改善の余地があるという課題があった。
【0011】
本発明はこのような課題を解決するためになされたものであり、オーバーサンプリングされたデータを用いた学習済みモデルによる推定の結果を改善できる、データオーバーサンプリング技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明に係るデータオーバーサンプリング方法の一例は、
コンピュータが、2値要素からなるサイズNの元データ配列をM件取得するステップと、
コンピュータが、M件の前記元データ配列に基づきM行N列の元データ行列を生成するステップと、
コンピュータが、前記元データ行列の転置行列と、前記元データ行列との積に基づき、N行N列の元データ特徴量行列を算出するステップと、
コンピュータが、生成行列更新処理を1回以上実行するステップであって、前記生成行列更新処理は、
‐実数要素からなるN行N列の生成行列に基づき、所定の目的関数の値を小さくするための解として、2値データからなるサイズNのサンプリングデータ配列をS件生成する、探索ステップと、
‐S件の前記サンプリングデータ配列に基づきS行N列のサンプリングデータ行列を生成するステップと、
‐前記サンプリングデータ行列の転置行列と、前記サンプリングデータ行列との積に基づき、N行N列のサンプリングデータ特徴量行列を算出するステップと、
‐前記元データ特徴量行列と前記サンプリングデータ特徴量行列との差に基づき、前記生成行列を更新するステップと、
を含む、生成行列更新処理を1回以上実行するステップと、
コンピュータが、更新された前記生成行列に基づき、前記目的関数の値を小さくするための解として、2値データからなるサイズNの出力データ配列を生成する、生成ステップと、
を備える。
【0013】
一例において、前記探索ステップおよび前記生成ステップは、アニーリング処理を用いて実行される。
一例において、
コンピュータが、多値要素を含む置換前データ配列の各多値要素について、その値に応じて異なる位置の要素が1となるワンホットベクトルを生成するステップと、
コンピュータが、前記置換前データ配列において各多値要素をそれぞれ対応する前記ワンホットベクトルで置き換えることにより、前記元データ配列を生成するステップと、
コンピュータが、前記出力データ配列のうち前記ワンホットベクトルに対応する要素列において、値が1である要素の位置に応じて異なる置換用値を生成するステップと、
コンピュータが、前記出力データ配列において前記ワンホットベクトルを対応する前記置換用値で置き換えることにより、多値要素を含む置換後出力データ配列を生成するステップと、
をさらに備える。
【0014】
本発明に係るデータオーバーサンプリングシステムの一例は、上述の方法を実行する。
【0015】
本発明に係るデータオーバーサンプリングプログラムの一例は、上述の方法をコンピュータに実行させる。
【発明の効果】
【0016】
本発明によれば、オーバーサンプリングされたデータを用いた学習済みモデルによる推定の結果を改善できる。たとえば、オーバーサンプリング対象となる元データと同様の分布を持つデータを増やすことができるので、教師あり機械学習におけるデータ数不均衡問題を解決できる。
【図面の簡単な説明】
【0017】
図1】実施形態1に係るデータオーバーサンプリングシステム10の構成例。
図2】実施形態1に係るデータオーバーサンプリングシステム10の動作例を表すフローチャート。
図3】元データ行列の例。
図4図3の元データ行列に基づいて得られる元データ特徴量行列の例。
図5図2のステップS5のより詳細な内容を表すフローチャート。
図6】実施形態1に係るデータオーバーサンプリングシステム10によるデータオーバーサンプリングの実行結果例。
図7】実施形態1に係るデータオーバーサンプリングシステム10によるデータオーバーサンプリングの別の実行結果例。
図8】実施形態2に係るデータオーバーサンプリングシステムの動作例を表すフローチャート。
図9】ステップS102の処理の具体例。
図10】ステップS102の処理の別の具体例。
図11】ステップS105の処理の具体例。
図12】ステップS105の処理の別の具体例。
図13】実施形態2の実行結果例において用いたデータの項目内容。
図14図13のデータ配列を用いて、実施形態2に係る処理を行った場合の実行結果例。
図15】実施形態2において利用可能な生成行列の初期値の例。
【発明を実施するための形態】
【0018】
本発明の一例は、アニーリングによって出力されるデータの分布が、オーバーサンプリング対象となった元データの分布に近くなるように、アニーリング処理のパラメータ(たとえばQUBO行列)を決定する。
【0019】
十分な回数のパラメータ更新処理の後、アニーリングによって出力されるデータは、オーバーサンプリング対象のデータに近い分布を持つことになるため、オーバーサンプリングされたデータとして利用できる。
【0020】
以下、本発明の実施形態を添付図面に基づいて説明する。
[実施形態1]
図1は、実施形態1に係るデータオーバーサンプリングシステム10の構成例を示す。データオーバーサンプリングシステム10は、本明細書に記載されるデータオーバーサンプリング方法を実行することにより、データのオーバーサンプリングを行う。データオーバーサンプリングシステム10は、たとえば1以上のコンピュータを用いて構成することができる。
【0021】
データオーバーサンプリングシステム10は公知のコンピュータとしてのハードウェア構成を有し、たとえば演算手段11および記憶手段12を備える。演算手段11はたとえばプロセッサを含み、記憶手段12はたとえば半導体メモリ装置および磁気ディスク装置等の記憶媒体を含む。記憶媒体の一部または全部が、過渡的でない(non-transitory)記憶媒体であってもよい。
【0022】
また、コンピュータは入出力手段を備えてもよい。入出力手段は、たとえばキーボードおよびマウス等の入力装置と、ディスプレイおよびプリンタ等の出力装置と、ネットワークインタフェース等の通信装置とを含む。
【0023】
記憶手段12はデータオーバーサンプリングプログラムを記憶してもよい。プロセッサがこのデータオーバーサンプリングプログラムを実行することにより、コンピュータは本実施形態において説明される機能を実行してもよい。すなわち、このデータオーバーサンプリングプログラムは、本明細書に記載されるデータオーバーサンプリング方法をコンピュータに実行させることにより、データオーバーサンプリングシステム10を実現してもよい。
【0024】
図2に、実施形態1に係るデータオーバーサンプリングシステム10の動作例を表すフローチャートを示す。このフローチャートは、データオーバーサンプリング方法の一例を表す。
【0025】
まずデータオーバーサンプリングシステム10は、オーバーサンプリングの対象となるデータとして、2値要素からなるサイズNの元データ配列をM件取得する(ステップS1)。元データ配列の各要素は、たとえば{0,1}である。
【0026】
次に、データオーバーサンプリングシステム10は、このM件の元データ配列に基づき、M行N列の元データ行列を生成する(ステップS2)。たとえば各元データ配列を行ベクトルとし、各行ベクトルを結合することによって元データ行列を生成することができる。
【0027】
図3に、元データ行列の例を示す。この例では、元データ配列[10011]、元データ配列[00101]、元データ配列[11010]、元データ配列[01100]、元データ配列[11000]、元データ配列[00011]という、サイズ5の元データ配列6件から、図示の元データ行列が生成されている。
【0028】
次に、データオーバーサンプリングシステム10は、元データ行列の転置行列と、元データ行列との積に基づき、N行N列の行列を算出する(ステップS3)。この行列は、元データの特徴を表す行列であり、以下では元データ特徴量行列と呼ぶ。
【0029】
図4に、図3の元データ行列に基づいて得られる元データ特徴量行列の例を示す。この例は、元データ行列の転置行列と、元データ行列との積を算出し、さらに各要素をMで除算したものである。
【0030】
元データ特徴量行列は元データ配列における要素の分布を表し、第i行第j列の要素は、元データ配列において、第i番目の要素と第j番目の要素とが共に1となる確率を表す。図4の例では、第1行第3列の要素および第3行第1列の要素が共に0となっているが、図3に示す6件の元データ配列からも、第1番目の要素と第3番目の要素が同時に1となっている元データ配列が存在しないことが確認できる。
【0031】
次に、データオーバーサンプリングシステム10は、サンプリングデータ配列を生成するための行列(生成行列)の初期値を決定する(ステップS4)。生成行列は、実数要素からなるN行N列の行列である。初期値は当業者が適宜決定可能であるが、たとえば全要素の値を0とすることができる。なお、後続のステップS5をアニーリング処理によって行う場合は、この生成行列はアニーリング処理のパラメータとしてのQUBO行列となる。
【0032】
次に、データオーバーサンプリングシステム10は、所定の生成行列更新処理を1回以上実行する(ステップS5)。
【0033】
図5に、図2のステップS5のより詳細な内容を表すフローチャートを示す。生成行列更新処理において、まずデータオーバーサンプリングシステム10は、2値データからなるサイズNのサンプリングデータ配列をS件生成する(ステップS51、探索ステップ)。サンプリングデータ配列は、元データ配列と同じ構造を有する。すなわち、サンプリングデータ配列は、2値データからなるサイズNの配列であり、各要素はたとえば{0,1}である。
【0034】
サンプリングデータ配列は、所定の目的関数の値を小さくするための解として生成される。より具体的な例として、サンプリングデータ配列は、目的関数の値が最小となるような解として生成される。この解は、目的関数の値を厳密に最小とする厳密解であってもよいが、一般的には目的関数の値を近似的に最小とする近似解である。ステップS51を含む生成行列更新処理は、たとえばアニーリング処理として実現することができる。
【0035】
目的関数の入力は生成行列を含み、出力はサンプリングデータ配列を含む。目的関数の内容は当業者が公知技術等に基づいて適宜決定可能である。具体例として、次のような目的関数E(X)を用いることができる。
E(X)=ΣΣij
ただしQは生成行列であり、Xはサンプリングデータ配列であり、iおよびjは要素のインデックスである。
【0036】
生成行列更新処理をアニーリング処理によって実行する場合には、あるQUBO行列Qの要素Qmnは、サンプリングデータ配列Xの要素XおよびXが共に1となる確率に影響を与える。そのため、QUBO行列を調整することは、サンプリングデータ配列の分布を調整することに相当する。
【0037】
次に、データオーバーサンプリングシステム10は、ステップS51において生成されたS件のサンプリングデータ配列に基づき、S行N列のサンプリングデータ行列を生成する(ステップS52)。たとえばステップS2と同様に、各サンプリングデータ配列を行ベクトルとし、各行ベクトルを結合することによってサンプリングデータ行列を生成することができる。
【0038】
次に、データオーバーサンプリングシステム10は、サンプリングデータ行列の転置行列と、サンプリングデータ行列との積に基づき、N行N列の行列を算出する(ステップS53)。処理の一例において、算出の際に行列の各要素をS(すなわち生成されたサンプリングデータ配列の件数)で除算する。この行列は、サンプリングデータの特徴を表す行列であり、以下ではサンプリングデータ特徴量行列と呼ぶ。サンプリングデータ特徴量行列の構造は、図4に示す元データ特徴量行列の例と同一とすることができる。
【0039】
サンプリングデータ特徴量行列はサンプリングデータ配列における要素の分布を表し、第i行第j列の要素は、サンプリングデータ配列において、第i番目の要素と第j番目の要素とが共に1となる確率を表す。すなわち、あるサンプリングデータ行列Pの要素Pmnは、サンプリングデータ配列Yの要素YおよびYが共に1となる確率を表す。
【0040】
次に、データオーバーサンプリングシステム10は、元データ特徴量行列とサンプリングデータ特徴量行列との差に基づき、生成行列を更新する(ステップS54)。具体的な演算例は次式である。
k+1=Q-η(Zmat-Xmat)
ただしQおよびQk+1はそれぞれステップS54のk回目およびk+1回目の実行において更新された後の生成行列であり、ηは学習率(たとえば正の定数)であり、Zmatは元データ特徴量行列であり、Xmatはサンプリングデータ特徴量行列である。
【0041】
データオーバーサンプリングシステム10は、ステップS51~S54を、所定の基準が満たされるまで(ただし少なくとも1回)、繰り返し実行する。基準の例として、ステップS51~S54は、ZmatとXmatとの差(損失関数)が所定の閾値より小さくなるまで繰り返し実行される。ZmatとXmatとの差は、それぞれの要素に基づき、たとえば平均二乗誤差(以下「MSE」と略記する場合がある)によって表すことができる。また、基準の別の例として、ステップS51~S54を事前に定義される所定の回数だけ繰り返してもよい。このような処理により、損失関数の値が十分に小さくなるまで生成行列の更新処理を繰り返すことができる。このようにして、図2のステップS5が終了する。
【0042】
ステップS5の後、データオーバーサンプリングシステム10は、更新された生成行列(たとえばステップS5終了時点の生成行列)に基づき、出力データ配列を生成して出力する(ステップS6、生成ステップ)。出力データ配列は、サンプリングデータ配列と同様に、所定の目的関数の値を小さくするための解として生成される。より具体的な例として、出力データ配列は、目的関数の値が最小となるような解として生成される。この解は、目的関数の値を厳密に最小とする厳密解であってもよいが、一般的には目的関数の値を近似的に最小とする近似解である。このステップS6における具体的な演算処理は、ステップS51と同様とすることができる。
【0043】
出力データ配列は、元データ配列およびサンプリングデータ配列と同じ構造を有する。すなわち、出力データ配列は、2値データからなるサイズNの配列であり、各要素はたとえば{0,1}である。出力データ配列は、1件以上出力される。
【0044】
このような処理により、元データ配列と同様の分布を持つ出力データ配列を生成することができるため、元データ配列のオーバーサンプリングが可能となる。このため、教師あり機械学習におけるデータ件数の不均衡問題を解決することができる。
【0045】
なお、本実施形態では解の探索にアニーリング処理が用いられ、とくにステップS51(探索ステップ)およびS6(生成ステップ)はアニーリング処理を用いて実行される。変形例として、以下の条件1および条件2を満たす処理であれば、アニーリング処理に代えて任意の処理を用いることができる。
‐条件1:パラメータを表すN行N列の行列Qを入力とし、任意の目的関数E(X)が最小となる解Xを探索する。ただし、Qの各要素の値は実数とし、Xは{0,1}の2値データからなるN次元の配列である。
‐条件2:解Xの探索はヒューリスティックな探索である。なお、探索は必ずしも厳密解を得られるものに限らない。得られるのが近似解である場合には、結果にばらつきが生じる。
【0046】
以下、本実施形態に係るデータオーバーサンプリングシステム10の性能評価として、アニーリング処理を用いた具体的な実行結果例を説明する。
【0047】
図6に、実施形態1に係るデータオーバーサンプリングシステム10によるデータオーバーサンプリングの実行結果例を示す。図6(a)~(f)の各マップは特徴量行列を表す。図6の各マップにおいて、グレーが濃いセルは、そのセルに対応する要素の値が大きいことを示す。
【0048】
図6(a)は元データ特徴量行列の例であり、図4の元データ特徴量行列すなわちZmatを表す。この行列が、アニーリング処理における正解となる。
【0049】
図6(b)、(c)、(d)、(e)、(f)は、それぞれ生成行列更新処理(ステップS5)が1回、100回、200回、500回、1000回実行された時点でのサンプリングデータ特徴量行列の例であり、Xmatを表す。生成行列更新処理の回数が増加するにつれ、分布が図6(a)のZmatに近づいているということがわかる。
【0050】
図6(f)すなわち1000回目の結果は、出力データ配列の分布を表す。図6(a)の正解と図6(f)の結果とを比べると、差がほとんどないことがわかる。すなわち、この例では、生成行列更新処理を1000回繰り返すことにより、元データ配列とほぼ同じ分布を有する出力データ配列を生成することができる。
【0051】
図7に、実施形態1に係るデータオーバーサンプリングシステム10によるデータオーバーサンプリングの別の実行結果例を示す。この例は、周知のMNIST画像を用いたものである。MNIST画像とは、手書き数字を表す画像に、その数字を表すラベルが関連付けられたものであり、数字0~9の各数字について1000件のデータが存在している。本実施形態では、各画像の各画素を白または黒に2値化したデータを用いた。
【0052】
数字0~9のうち、数字0~8のデータは1000件のままとし、数字9のデータのみを100件に削減して不均衡データを生成した。合計9100件の不均衡データを、周知の分類手法であるLightGBMで分類し、その精度を評価した。なお精度は、正解率(Accuracy)、再現率(Recall)、適合率(Precision)、F値、によって示している。このような精度の定義および算出方法は周知であるため説明は省略する。
【0053】
図7(a)は、不均衡データをそのまま用いて学習した場合のものであり、数字9についてのF値が0.738であり、数字0~8についてのF値より低くなっている。
【0054】
図7(b)は、従来手法の例として、数字9のデータをランダムに複製することでオーバーサンプリングし、データ件数を1000件としてから学習した場合のものである。数字9についてのF値が0.824に改善している。
【0055】
図7(c)は、従来手法の別の例として、数字9のデータをSMOTEでオーバーサンプリングし、データ件数を1000件としてから学習した場合のものである。この例では、数字9の元データを2件ランダムに選択し、その中間点に新たなデータを生成するという処理を繰り返した。数字9についてのF値が0.827に改善している。
【0056】
図7(d)は、数字9のデータを本実施形態によってオーバーサンプリングし、データ件数を1000件としてから学習した場合のものである。数字9についてのF値が0.907に改善しており、とくに図7(b)および(c)の従来手法より高い値となっている。
【0057】
このように、本実施形態に係るデータオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラムによれば、適切なオーバーサンプリングが行えるので、元データ配列におけるデータ件数の不均衡を適切に解消することができる。このため、より適切な学習を行うことができ、オーバーサンプリングされたデータを用いた学習済みモデルによる推定の結果を改善することができる。このようにして、教師あり機械学習におけるデータ数不均衡問題を解決できる。
【0058】
[実施形態2]
実施形態2は、実施形態1において、多値データを扱うことができるように変更を加えるものである。以下、実施形態2について説明するが、実施形態1と共通する部分については説明を省略する場合がある。
【0059】
図8に、実施形態2に係るデータオーバーサンプリングシステムの動作例を表すフローチャートを示す。このフローチャートは、データオーバーサンプリング方法の一例を表す。なお、図8のステップ104の処理は、図2(実施形態1)のステップS1~S6によって構成することができる。
【0060】
まずデータオーバーサンプリングシステムは、オーバーサンプリングの対象となるデータとして、多値要素を含む配列を取得する(ステップS101)。多値要素は、3値以上のデータであってもよいし、量的データであってもよい。この配列は、後述する置換処理の対象となる配列であり、以下では「置換前データ配列」と称する。
【0061】
次に、データオーバーサンプリングシステムは、置換前データ配列の各多値要素について、その値に応じて異なる位置の要素が1となるワンホットベクトルを生成する(ステップS102)。
【0062】
図9に、ステップS102の処理の具体例を示す。この例では、多値要素は3値のデータであり、たとえば要素が3つのカテゴリのいずれに対応するかを表すカテゴリ変数である。カテゴリ変数の値が0である場合には、最初の要素が1であるワンホットベクトル[1,0,0]が生成される。カテゴリ変数の値が1である場合には、2番目の要素が1であるワンホットベクトル[0,1,0]が生成される。カテゴリ変数の値が2である場合には、3番目の要素が1であるワンホットベクトル[0,0,1]が生成される。このようにして、多値要素に基づきワンホットベクトルが生成される。
【0063】
図10に、ステップS102の処理の別の具体例を示す。この例では、多値要素は0以上1.5以下の量的データである。まず各要素が異なる区間のうちいずれに属するかが判定される。図10の例では、第1区間「0以上0.5未満」、第2区間「0.5以上1未満」、第3区間「1以上(この場合には1.5以下)」、のいずれの区間に属するかが判定される。各区間は互いに重複せず、かつ量的データの全範囲をカバーするものとする。
【0064】
次に、判定の結果に応じてカテゴリ変数の値が決定される。たとえば量的変数の値が0.1である場合には、第1区間に属するので、カテゴリ変数の値は0となる。量的変数の値が0.7である場合には、第2区間に属するので、カテゴリ変数の値は1となる。量的変数の値が1.4である場合には、第3区間に属するので、カテゴリ変数の値は3となる。カテゴリ変数の値が決定された後の処理は、図9の例と同様である。
【0065】
ステップS102の後、データオーバーサンプリングシステムは、置換前データ配列において各多値要素をそれぞれ対応するワンホットベクトルで置き換えることにより、2値要素からなる新たなデータ配列を生成する(ステップS103)。ここで生成されるデータ配列は、実施形態1における元データ配列に相当する。
【0066】
次に、データオーバーサンプリングシステムは、ステップS103で生成されたデータ配列について、実施形態1と同様のデータオーバーサンプリング処理を実行する(ステップS104)。これによってオーバーサンプリングによる出力データ配列が生成される。
【0067】
次に、データオーバーサンプリングシステムは、出力データ配列のうち上述のワンホットベクトルに対応する要素列において、値が1である要素の位置に応じて異なる置換用値を生成する(ステップS105)。
【0068】
図11に、ステップS105の処理の具体例を示す。この例では、置換前の多値要素は3値のデータ(カテゴリ変数)であり、すなわち1つのワンホットベクトルに3つの要素からなる要素列が対応しているとする。ワンホットベクトルの最初の要素が1であれば、置換用値となるカテゴリ変数の値は0となり、ワンホットベクトルの2番目の要素が1であれば、置換用値となるカテゴリ変数の値は1となり、ワンホットベクトルの3番目の要素が1であれば、置換用値となるカテゴリ変数の値は2となる。
【0069】
このステップS105の処理は、上述のステップS103とは逆の処理となる。出力データ配列のどの部分の要素列がワンホットベクトルに対応するか(すなわち、何番目の要素からいくつの連続する要素がワンホットベクトルを構成すべきか)は、上述のステップS103の処理内容に基づいて決定することができる。
【0070】
なお、該当する要素列がワンホットベクトルでない場合(たとえば2個以上の要素が1である場合)の処理は、当業者が適宜決定可能であり、たとえば任意の2値ベクトルをワンホットベクトルに変換する関数を事前に定義しておいてもよい。
【0071】
図12に、ステップS105の処理の別の具体例を示す。この例では、置換前の多値要素は0以上1.5以下の量的データであり、ステップS103において1つの量的データが3次元のワンホットベクトルに置換されているとする。ワンホットベクトルの最初の要素が1であれば、カテゴリ変数の値は0となり、該当する区間は第1区間「0以上0.5未満」となる。ワンホットベクトルの2番目の要素が1であれば、カテゴリ変数の値は1となり、該当する区間は第1区間「0.5以上1未満」となる。ワンホットベクトルの3番目の要素が1であれば、カテゴリ変数の値は2となり、該当する区間は第1区間「1以上(この場合には1.5以下)」となる。
【0072】
そして、量的変数の置換用値として、該当する区間内の値を1つ生成する。区間内の値の生成は、たとえばその区間内でランダムに値を選択することにより実行される。例として、カテゴリ変数の値が1であれば、0以上0.5未満の置換用値がランダムで生成される(図12の例では「0.4」が生成されている)。カテゴリ変数の値が2であれば、0.5以上1未満の置換用値がランダムで生成される(図12の例では「0.7」が生成されている)。カテゴリ変数の値が3であれば、1以上1.5以下の置換用値がランダムで生成される(図12の例では「1.3」が生成されている)。
【0073】
ステップS105の後、データオーバーサンプリングシステムは、出力データ配列においてワンホットベクトルを対応する置換用値で置き換えることにより、新たな配列を生成する(ステップS106)。ここで生成される配列は、多値要素(量的データであってもよい)を含む配列であり、以下では「置換後出力データ配列」と呼ぶ。
【0074】
置換後出力データ配列は、置換前データ配列における多値要素のそれぞれに対応して多値要素を含むものであり、置換前データ配列と同様の構造を有するということができる。このように、実施形態2に係るデータオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラムによれば、多値要素を含むデータ配列についても、適切なオーバーサンプリングを行うことができる。
【0075】
以下、実施形態2に係るデータオーバーサンプリングシステムによるデータオーバーサンプリングの実行例を説明する。
【0076】
図13に、実施形態2の実行結果例において用いたデータの項目内容を示す。このデータは、imbalanced-learnによって提供されるワインの品質を表すデータセットである。データセットには、品質が低いワインのデータ配列が4715件、品質が高いワインのデータ配列が183件、合計4898件のデータ配列が含まれている。
【0077】
品質の高低は、図13の最下行の項目qualityで表される。qualityは{0,1}の2値データであり、0である場合にはワインの品質が低いことを表し、1である場合にはワインの品質が高いことを表す。上述のように、qualityが0であるデータ配列と、qualityが1であるデータ配列との比率は、4715:183≒26:1となり不均衡データとなっている。
【0078】
図14に、図13のデータ配列を用いて、実施形態2に係る処理を行った場合の実行結果例を示す。qualityの値をラベルとし、他の変数の値からqualityを推定するための学習を行った。検証時の学習データとテストデータとの比率は約7:3とした。「不均衡状態」は、上述の不均衡データをそのまま用いて学習した場合のものであり、F値が0.293となった。
【0079】
「従来例:ランダム」、「従来例:SMOTE」、「実施形態2」は、いずれも、qualityが1であるデータをオーバーサンプリングして4715件とし、すなわちqualityが0であるデータと同数としてから学習した場合のものである。
【0080】
「従来例:ランダム」は、図7(b)と同様にランダムに複製することによるオーバーサンプリングを行った場合のものである。この場合にはF値は0.338に改善された。「従来例:SMOTE」は、図7(c)と同様にSMOTEによるオーバーサンプリングを行った場合のものである。この場合にはF値は0.373に改善された。
【0081】
「実施形態2」は、本実施形態によるオーバーサンプリングを行った場合のものである。この例では、量的データを表す変数はそれぞれ50個の区間にあてはめ、すなわち各変数を50次元のワンホットベクトルに変換した。変数は11個あるので、オーバーサンプリングの対象となる元データ配列はサイズ550の配列となった。本実施形態による結果では、F値は0.419に改善されており、とくに、いずれの従来手法よりも高い値となっている。なお、再現率(Recall)についても、いずれの従来手法よりも高い値となった。
【0082】
このように、本実施形態に係るデータオーバーサンプリング方法、データオーバーサンプリングシステムおよびデータオーバーサンプリングプログラムによれば、多値要素を含むデータについても適切なオーバーサンプリングを行うことができる。このようにして、教師あり機械学習におけるデータ数不均衡問題を解決できる。
【0083】
実施形態2において、元データ配列におけるワンホットベクトルに対応する要素の値が、出力データ配列においてワンホットベクトルとして出力されることをより確実にするため、生成行列の初期値として特定の行列を用いることができる。
【0084】
図15は、実施形態2において利用可能な生成行列の初期値の例を示す。この例は、置換前データ配列が2つの変数からなり、各変数が3次元のワンホットベクトルによって表される場合の例である。元データ配列の次元数が6となるため、生成行列(QUBO行列)は6×6のサイズを有する。元データ配列および出力データ配列のうち、1番目~3番目の要素が一方の変数に対応し、4番目~6番目の要素が他方の変数に対応する。
【0085】
この例では、出力データ配列において、たとえば1番目~3番目の要素のうち複数が同時に1となっていると、ワンホットベクトルとしての条件を満たさない。すなわち、1番目~3番目の要素がワンホットベクトルを構成するためには、これらのうち複数が同時に1となっているような出力データ配列の生成を抑制する必要がある。4番目~6番目の要素についても同様である(以下同じ)。
【0086】
これを実現するために、出力データ配列の1番目~3番目の要素のうち複数が同時に1となっている場合に、目的関数E(X)の値が大きくなるような生成行列を用いることができる。生成行列にこのような性質を与える初期値の例を図15に示す。
【0087】
この例では、出力データ配列(またはサンプリングデータ配列)の1番目~3番目の要素のうち複数が同時に1となっていると、目的関数E(X)の値が100だけ増加して非常に大きくなるので、そのような配列の生成を抑制することができる。生成行列の初期値をこのような行列とすることにより、最終的な出力データ配列においても、ワンホットベクトルを適切に生成することができる。
【0088】
なお、図15の例では行列の要素を0または100としているが、値「100」は正の値であれば他の値であってもよい。目的関数E(X)の評価に大きな影響を及ぼす値とすると好適である。
【0089】
このように、実施形態2において、生成行列の初期値は、元データ配列において1つのワンホットベクトルを構成する複数の要素のうち複数が同時に1となる場合に、目的関数の値を増加させるように設定することができる。
【0090】
当業者は、上述の各実施形態において、本発明の範囲内で、構成要素を任意に追加、変更または削除することができる。たとえばデータオーバーサンプリングシステム10は、通信ネットワークを介して接続された複数のコンピュータによって構成することができる。
【符号の説明】
【0091】
10…データオーバーサンプリングシステム
11…演算手段
12…記憶手段
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15