JP2020098521A - 情報処理装置、データ抽出方法およびデータ抽出プログラム - Google Patents

情報処理装置、データ抽出方法およびデータ抽出プログラム Download PDF

Info

Publication number
JP2020098521A
JP2020098521A JP2018237053A JP2018237053A JP2020098521A JP 2020098521 A JP2020098521 A JP 2020098521A JP 2018237053 A JP2018237053 A JP 2018237053A JP 2018237053 A JP2018237053 A JP 2018237053A JP 2020098521 A JP2020098521 A JP 2020098521A
Authority
JP
Japan
Prior art keywords
target data
image
range
data
evaluation value
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.)
Pending
Application number
JP2018237053A
Other languages
English (en)
Inventor
悠太 安海
Yuta Yasumi
悠太 安海
光礼 千野
Mirai Chino
光礼 千野
ハンセン リム
Lim Hansen
ハンセン リム
弘法 岩瀧
Hironori Iwataki
弘法 岩瀧
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018237053A priority Critical patent/JP2020098521A/ja
Publication of JP2020098521A publication Critical patent/JP2020098521A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】サンプルデータに類似するデータを効率的に抽出する。【解決手段】複数のサンプルデータの特徴の統計量を示す統計情報15を算出し、複数の対象データそれぞれと統計情報15との間で行う第1の対比処理により、対象データそれぞれの類似度を示す第1の評価値を算出する。第1の評価値が、範囲17aと範囲17aより高い類似度を示す範囲17bと範囲17bより高い類似度を示す範囲17cとのうち、範囲17bに属する2以上の対象データを選択する。選択した対象データそれぞれとサンプルデータそれぞれとの間で行う第2の対比処理により、選択した対象データそれぞれの類似度を示す第2の評価値を算出する。第1の評価値が範囲17cに属する対象データと、第2の評価値が示す類似度が閾値以上の対象データとを抽出する。【選択図】図1

Description

本発明は情報処理装置、データ抽出方法およびデータ抽出プログラムに関する。
データ処理の分野では前処理として、収集した多数のデータの中から予め用意したサンプルデータに類似するデータを抽出したいことがある。ここで取り扱うデータは、画像データや音声データなど類似するか否かの判定が単純ではないデータである場合がある。サンプルデータに類似するデータを、所望のデータとして後続のデータ処理に利用することも考えられるし、逆にノイズとして後続のデータ処理の対象から除外することも考えられる。サンプルデータは複数用意されることもあり得る。後続のデータ処理は、ディープラーニングなどの機械学習であってもよい。一例として、収集した多数の画像の中から少数のサンプル画像の少なくとも1つに類似する画像を抽出し、抽出した画像をノイズとして除去し、残った画像を用いて機械学習を行うことが考えられる。
なお、ユーザが指定した文字列を名称とする物体が写った画像を収集する画像収集装置が提案されている。提案の画像収集装置は、ユーザが指定した文字列をキーワードとして用いてWeb検索を行い、画像と当該画像に関連付けられたテキストのペアを複数取得する。画像収集装置は、取得した複数の画像を画像同士の類似度に基づいて2以上のクラスタに分類し、所望の物体が写った画像が含まれている可能性を示すクラスタスコアを2以上のクラスタそれぞれについて算出する。画像収集装置は、クラスタスコアが大きいクラスタを選択し、選択したクラスタから画像を抽出する。
また、ユーザが所望の商品画像を効率よく検索できるようにする画像表示制御装置が提案されている。提案の画像表示制御装置は、複数の商品画像それぞれの特徴量を算出し、二次元平面において特徴量に応じた位置にそれら複数の商品画像を配置する。画像表示制御装置は、二次元平面の中から着目領域を指定する領域指定操作をユーザから受け付けると、着目領域外の商品画像を二次元平面の端部に移動させる。
特開2016−76115号公報 特開2017−45376号公報
類似判定の1つの方法として、判定対象のデータ1つとサンプルデータ1つとを一対一に対比していく方法が考えられる。しかし、この方法では、複数の対象データと複数のサンプルデータが存在する場合に計算量が大きくなるという問題がある。一方、類似判定の別の方法として、FID(Frechet Inception Distance)などデータ集合同士の類似度を示す指標を利用する方法も考えられる。しかし、この方法では、計算の簡便性から判定精度が低くなることがあり、一部のデータの類似非類似の判断を誤るリスクがある。
1つの側面では、本発明は、サンプルデータに類似するデータを効率的に抽出する情報処理装置、データ抽出方法およびデータ抽出プログラムを提供することを目的とする。
1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。記憶部は、複数のサンプルデータおよび複数の対象データを記憶する。処理部は、複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと統計情報との間で行う第1の対比処理により、複数のサンプルデータに対する複数の対象データそれぞれの類似度を示す第1の評価値を算出する。処理部は、第1の評価値が、第1の範囲と第1の範囲より高い類似度を示す第2の範囲と第2の範囲より高い類似度を示す第3の範囲とのうち、第2の範囲に属する2以上の対象データを複数の対象データから選択する。処理部は、選択した2以上の対象データそれぞれと複数のサンプルデータそれぞれとの間で行う第2の対比処理により、複数のサンプルデータに対する選択した2以上の対象データそれぞれの類似度を示す第2の評価値を算出する。処理部は、第1の評価値が第3の範囲に属する対象データと、第2の評価値が示す類似度が閾値以上の対象データとを複数の対象データから抽出する。
また、1つの態様では、コンピュータが実行するデータ抽出方法が提供される。また、1つの態様では、コンピュータに実行させるデータ抽出プログラムが提供される。
1つの側面では、サンプルデータに類似するデータを効率的に抽出できる。
第1の実施の形態の情報処理装置の例を説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 機械学習装置のハードウェア例を示す図である。 機械学習による画像生成の例を示す図である。 NotFound画像の除去例を示す図である。 機械学習装置の機能例を示すブロック図である。 FID閾値の計算例を示す図である。 FID分布とFID閾値の例を示すグラフである。 収集画像の第一次分類例を示す図である。 FID分布と3つの集合の例を示すグラフである。 収集画像の第二次分類例を示す図である。 フィルタリング管理テーブルの例を示す図である。 機械学習の手順例を示すフローチャートである。 機械学習の手順例を示すフローチャート(続き)である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、複数の対象データの中からサンプルデータに類似する対象データを抽出する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10は、記憶部11および処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
記憶部11は、サンプルデータ13a,13bなどの複数のサンプルデータを記憶する。サンプルデータ13a,13bは、比較対象として予め用意される。サンプルデータ13a,13bは、例えば、後続のデータ処理にとって望ましくないノイズとなるデータのサンプルである。ただし、後続のデータ処理にとって望ましいデータのサンプルであってもよい。また、記憶部11は、対象データ14a,14b,14c,14d,14e,14fなどの複数の対象データを記憶する。対象データ14a,14b,14c,14d,14e,14fは、類似非類似を判定する対象となるデータである。
サンプルデータ13a,13bおよび対象データ14a,14b,14c,14d,14e,14fは、例えば、画像データである。ただし、音声データのように類似非類似の判定が単純でない他の種類のデータであってもよい。例えば、サンプルデータ13a,13bが、予めユーザによって用意されたサンプル画像であり、対象データ14a,14b,14c,14d,14e,14fが、ネットワーク上で収集された収集画像である。サンプル画像は、本来の画像が存在しないことを示すNotFound画像のサンプルのように、ノイズとなる画像のサンプルであってもよい。複数の収集画像の中には、NotFound画像とそれ以外の画像が混在していてもよい。
処理部12は、サンプルデータ13a,13bの特徴の統計量を示す統計情報15を算出する。例えば、処理部12は、サンプルデータ13a,13bに対応する複数の特徴ベクトル(第1の特徴ベクトル)を算出し、それら複数の第1の特徴ベクトルの平均情報や分散情報などを統計情報15として算出する。
処理部12は、対象データ14a,14b,14c,14d,14e,14fそれぞれと統計情報15との間で第1の対比処理を行う。第1の対比処理により、処理部12は、対象データ14a,14b,14c,14d,14e,14fに対応する評価値16a,16b,16c,16d,16e,16f(第1の評価値)を算出する。評価値16a,16b,16c,16d,16e,16fはそれぞれ、サンプルデータ13a,13bに対する類似度を示す。評価値16a,16b,16c,16d,16e,16fは、例えば、距離のように類似度が高いほど値が小さい指標である。ただし、第1の評価値として、類似度が低いほど値が小さい指標を用いてもよい。
例えば、処理部12は、対象データ14a,14b,14c,14d,14e,14fに対応する複数の特徴ベクトル(第2の特徴ベクトル)を算出する。そして、処理部12は、対象データ14a,14b,14c,14d,14e,14fそれぞれについて、当該対象データの第2の特徴ベクトルと統計情報15に含まれる平均情報および分散情報とから、当該対象データの第1の評価値を算出する。ここで算出される第1の評価値は、1つの対象データと複数のサンプルデータ全体との間の類似度を集団的に評価した指標である。評価値16a,16b,16c,16d,16e,16fはFIDであってもよい。
処理部12は、第1の評価値の範囲として範囲17a,17b,17cを特定する。範囲17a(第1の範囲)は、最も低い類似度を示す範囲である。範囲17c(第3の範囲)は、最も高い類似度を示す範囲である。範囲17b(第2の範囲)は、範囲17aより高い類似度を示し範囲17cより低い類似度を示す範囲、すなわち、範囲17aと範囲17cの中間の範囲である。第1の評価値が距離を表す場合、範囲17bは範囲17aより第1の評価値が小さく、範囲17cは範囲17bより第1の評価値が小さい。
処理部12は、算出した評価値16a,16b,16c,16d,16e,16fの分布に基づいて範囲17a,17b,17cを決定してもよい。例えば、処理部12は、算出した評価値16a,16b,16c,16d,16e,16fをk-means法などのクラスタリング方法により2つのクラスタに分割し、2つのクラスタの境界周辺の所定範囲にある第1の評価値が範囲17bに分類されるように範囲17bを決定してもよい。
処理部12は、対象データ14a,14b,14c,14d,14e,14fの中から、第1の評価値が範囲17bに属する2以上の対象データを選択する。第1の評価値が範囲17aに属する対象データは、非類似である可能性が著しく高い対象データであり、第1の評価値が範囲17cに属する対象データは、類似する可能性が著しく高い対象である。これに対して、第1の評価値が範囲17bに属する対象データは、第1の評価値のみでは類似非類似を精度よく判定することが難しい対象データである。
そこで、第1の評価値が範囲17bに属する対象データについて第2の対比処理を行う。ここでは、対象データ14a,14bに対応する評価値16a,16bが範囲17aに属し、対象データ14c,14dに対応する評価値16c,16dが範囲17bに属し、対象データ14e,14fに対応する評価値16e,16fが範囲17cに属するとする。よって、処理部12は、対象データ14c,14dを選択する。
処理部12は、選択した対象データ14c,14dそれぞれとサンプルデータ13a,13bそれぞれとの間で第2の対比処理を行う。第2の対比処理により、処理部12は、対象データ14c,14dに対応する評価値16g,16h(第2の評価値)を算出する。評価値16g,16hはそれぞれ、サンプルデータ13a,13bに対する類似度を示す。例えば、評価値16gは、対象データ14cとサンプルデータ13a,13bそれぞれとの間の類似度のうちの最大の類似度を示す。評価値16hは、対象データ14dとサンプルデータ13a,13bそれぞれとの間の類似度のうちの最大の類似度を示す。評価値16g,16hは、例えば、距離のように類似度が高いほど値が小さい指標である。ただし、第2の評価値として、類似度が低いほど値が小さい指標値を用いてもよい。
例えば、処理部12は、サンプルデータ13a,13bに対応する複数のハッシュ値(第1のハッシュ値)を算出する。また、処理部12は、選択した対象データ14c,14dに対応する複数のハッシュ値(第2のハッシュ値)を算出する。ここで算出するハッシュ値は、pHash値のように、類似するデータからは近似するビット列が算出されるものを利用することが好ましい。処理部12は、対象データ14c,14dそれぞれについて、当該対象データの第2のハッシュ値とサンプルデータ13a,13bそれぞれの第1のハッシュ値との間のハミング距離を算出し、最小のハミング距離を第2の評価値として採用する。ここで算出される第2の評価値は、1つの対象データと複数のサンプルデータそれぞれとの間の類似度を個別的に評価した指標である。
処理部12は、第2の評価値の範囲として範囲17d,17eを特定する。範囲17dは、低い類似度の範囲であり、第2の評価値が表す類似度が閾値を下回る範囲である。範囲17eは、高い類似度の範囲であり、第2の評価値が表す類似度が閾値以上の範囲である。第2の評価値が距離を表す場合、範囲17dは閾値を超える第2の評価値の範囲であり、範囲17eは閾値以下の第2の評価値の範囲である。
処理部12は、選択した対象データ14c,14dの中から、第2の評価値が範囲17eに属する対象データを抽出する。再判定の結果として、第2の評価値が範囲17dに属する対象データは非類似である可能性が高い一方、第2の評価値が範囲17eに属する対象データは類似する可能性が高い。ここでは、対象データ14cに対応する評価値16gが範囲17eに属し、対象データ14dに対応する評価値16hが範囲17dに属するとする。よって、処理部12は、対象データ14cを抽出する。
また、処理部12は、第1の評価値が範囲17cに属する対象データ14e,14fを抽出する。すなわち、処理部12は、第1の評価値が範囲17cに属する対象データ14e,14fと、第1の評価値が範囲17bに属する対象データ14c,14dのうち第2の評価値が範囲17eに属する対象データ14cとを抽出する。ここで抽出される対象データ14c,14e,14fは、サンプルデータ13a,13bの少なくとも1つとの類似度が高いと判定された対象データである。
処理部12は、抽出した対象データ14c,14e,14fを後続のデータ処理に使用することもあるし、抽出した対象データ14c,14e,14fを除外した対象データ14a,14b,14dを後続のデータ処理に使用することもある。後続のデータ処理は、ディープラーニングなどの機械学習であってもよい。
第2の実施の形態の情報処理装置10によれば、複数のサンプルデータの特徴の統計量を示す統計情報15が算出され、統計情報15を用いた第1の対比処理により、複数の対象データそれぞれの第1の評価値が算出される。第1の評価値が中間的な範囲17bに属する2以上の対象データが選択され、選択された2以上の対象データと複数のサンプルデータとの間の個別的な第2の対比処理により、選択された2以上の対象データそれぞれの第2の評価値が算出される。そして、第1の評価値により類似度が高いと評価された対象データと、第2の評価値により類似度が高いと評価された対象データとが抽出される。
第1の対比処理では、統計情報15を使用した一対多の簡易的な対比が行われる。このため、全ての対象データについて一対一の精密な対比を行う場合よりも、類似度が著しく低い対象データや類似度が著しく高い対象データを効率的に判定することができる。また、第1の対比処理では判定が難しい対象データについて、第2の対比処理で一対一の精密な対比が行われる。このため、一対多の簡易的な対比のみを行う場合よりも、判定の誤りを削減して類似判定の精度を向上させることができる。また、対象データの集合に対して適切な前処理が行われることで、後続のデータ処理の精度を向上させることができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、多数のテキスト(文字列)と画像のペアを学習データとして収集し、収集した学習データを用いて機械学習により、テキストから画像を生成する生成モデルを学習する。第2の実施の形態の情報処理システムは、Webサーバ31,32,33などの複数のWebサーバと、機械学習装置100とを有する。Webサーバ31,32,33および機械学習装置100は、ネットワーク30に接続されている。ネットワーク30は、インターネットなどの広域データ通信ネットワークである。機械学習装置100は、第1の実施の形態の情報処理装置10に対応する。
Webサーバ31,32,33は、Webブラウザを実行するクライアントからの要求に応じてWebページを提供するサーバコンピュータである。Webサーバ31,32,33は、Webページに記載されるテキストやWebページに埋め込まれる画像を記憶している。例えば、Webサーバ31,32,33は、ショッピングサイトのWebページを提供する。その場合、Webサーバ31,32,33は、商品の画像と、当該商品の説明文やタグであるテキストとを記憶する。Webサーバ31,32,33は、Webページを識別するURL(Uniform Resource Locator)を含むHTTP(Hypertext Transfer Protocol)リクエストを受信し、URLに応じたテキストや画像を含むHTTPレスポンスを送信する。HTTPレスポンスを受信したクライアントは、テキストや画像を含むWebページをレンダリングして、Webページを表示装置に表示させる。
機械学習装置100は、Webサーバ31,32,33が提供するテキストおよび画像を用いて、テキストから画像を生成する生成モデルを学習するコンピュータである。機械学習装置100は、サーバコンピュータでもよいし、ユーザが操作するクライアントコンピュータでもよい。機械学習装置100は、Webサーバ31,32,33からテキストおよび画像を収集するクローリング(スクレイピングと言うこともある)を行う。
すなわち、機械学習装置100は、Webページ間のリンクを辿って、Webサーバ31,32,33が提供するWebページのURLを収集する。機械学習装置100は、URLを含むHTTPリクエストをWebサーバ31,32,33に送信し、テキストや画像を含むHTTPレスポンスをWebサーバ31,32,33から受信する。機械学習装置100は、画像と当該画像に対応付けられたテキストのペアを抽出し、抽出したテキストと画像のペアを学習データとして蓄積する。画像に対応するテキストとしては、例えば、画像へのリンクの周辺に記載された説明文やタグを抽出する。
十分な学習データが蓄積されると、機械学習装置100は、蓄積した学習データを用いて、テキストから画像を生成する生成モデルを学習する。生成モデルにはディープニューラルネットワークなどのデータ構造を利用できる。機械学習を、いわゆるディープラーニングとして行うこともできる。例えば、機械学習装置100は、シナプス(エッジ)の重みなど生成モデルのパラメータを初期化し、学習データのテキストを生成モデルに入力する。機械学習装置100は、生成モデルから出力される生成画像と学習データの正解画像との間の誤差を算出し、誤差が小さくなるようにパラメータを更新する。パラメータの更新を繰り返すことで、生成モデルの画像生成精度が向上する。
生成モデルが学習された後、機械学習装置100は、学習データに含まれていない新規のテキストの入力をユーザから受け付ける。すると、機械学習装置100は、新規テキストを生成モデルに入力して、新規テキストに対応する新規画像を生成する。なお、第2の実施の形態では、クローリングと機械学習と画像生成の全てを、機械学習装置100が行っている。これに対して、クローリングと機械学習と画像生成を異なるコンピュータが行うようにすることも可能である。また、第2の実施の形態では、収集した学習データを利用して、新規画像を生成する生成モデルを学習している。これに対して、収集した学習データを利用して、画像に写った物体を認識する認識モデルを学習することも可能である。
図3は、機械学習装置のハードウェア例を示す図である。
機械学習装置100は、バスに接続されたCPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。Webサーバ31,32,33も、機械学習装置100と同様のハードウェアを有する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受信する。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、機械学習装置100に複数の種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介してWebサーバ31,32,33と通信を行う。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線インタフェースである。ただし、基地局やアクセスポイントなどの無線通信装置に接続される無線インタフェースであってもよい。
次に、機械学習に使用する学習データと生成モデルの入出力について説明する。
図4は、機械学習による画像生成の例を示す図である。
前述のように、機械学習装置100は、テキストと画像のペアを多数収集する。テキストは、画像に写った物体を説明する説明文や画像に写った物体の属性を示すタグなどの文字列であり、1以上の単語を含む。画像はショッピングサイトで販売される商品の画像であってもよく、テキストは商品の説明文であってもよい。例えば、機械学習装置100は、商品としての衣服の画像とその衣服の説明文であるテキストとを収集してもよい。
一例として、機械学習装置100は、テキスト41と画像42のペアを取得する。画像42は、衣服が写った画像である。テキスト41は、画像42の衣服のカラー、サイズ、素材などの特徴を説明した説明文である。また、機械学習装置100は、テキスト43と画像44のペアを取得する。画像44は、画像42とは異なる衣服が写った画像である。テキスト43は、画像44の衣服のカラー、サイズ、素材などの特徴を説明した説明文であり、テキスト41の説明文とは異なる。機械学習装置100は、テキスト41,43などの複数のテキストと画像42,44などの複数の画像とを対応付けて収集する。
機械学習装置100は、収集した複数のテキストおよび複数の画像を学習データとして用いて、機械学習により生成モデル45を生成する。生成モデル45は、テキストから画像を生成するモデルである。生成モデル45は、例えば、Generative Adversarial Networkである。テキストに含まれる単語の情報が生成モデル45に入力され、画像の画素データが生成モデル45から出力される。単語から画像へのマッピングは、例えば、シナプスに対して重みが設定されたニューラルネットワークを通じて行われる。機械学習装置100は、学習データに含まれるテキストを生成モデル45の入力として使用し、学習データに含まれる画像を生成モデル45の出力の正解を示す教師データとして使用する。機械学習装置100は、生成モデル45の出力が教師データである正解画像に近付くように、シナプスの重みなどの生成モデル45のパラメータを学習する。
生成モデル45が学習されると、機械学習装置100は、学習データに含まれないテキスト46を生成モデル45に入力する。テキスト46は、テキスト41,43と同様に、ある衣服のカラー、サイズ、素材などの特徴を説明した説明文である。ただし、テキスト46の説明文は、画像が未取得の商品を説明するものであってもよく、実在しない仮想的な商品を説明するものであってもよい。テキスト46は、ユーザが入力したものであってもよい。機械学習装置100は、生成モデル45とテキスト46から画像47を生成する。画像47は、学習データに含まれない新規な画像であり、テキスト46で説明された特徴をもつ衣服が写ったものである。画像47の衣服は、学習データに含まれる何れの画像の衣服とも異なることがあり、実在しない仮想的な衣服であってもよい。
このように、機械学習装置100は、画像とその画像に写った物体を説明するテキストとを収集し、収集した画像およびテキストを学習データとして使用して生成モデル45を学習する。そして、機械学習装置100は、ある物体を説明するテキストを生成モデル45に入力することで、その物体が写った画像を人工的に生成する。生成モデル45は、例えば、他者の著作権を侵害しない新規画像を用意する場合や、衣服の新たなコーディネートをユーザに提案する場合などに利用することができる。
ここで、学習データに含まれるノイズは、生成モデル45の精度を低下させるおそれがある。学習データとしてWebサイトの画像とテキストを収集する第2の実施の形態では、学習データに含まれるノイズとしてNotFound画像が挙げられる。NotFound画像は、本来の画像が存在しないことを示す代替画像である。
Webサーバ31,32,33には、幾つかのテキストに対して本来の画像が存在しないことがあり得る。例えば、古い商品について、テキストは残っているものの画像がWebサーバ31,32,33から削除されてしまっていることがある。また、新着商品について、テキストは用意されているものの画像がまだ用意されていないことがある。
本来の画像がWebサーバ31,32,33に存在しない場合、1つのケースとして、機械学習装置100による画像の取得がエラーになるケースが考えられる。これは、テキストを含むHTML(HyperText Markup Language)ファイルに画像ファイルへのリンクが記載されているものの、リンク先の画像ファイルが存在しない場合である。この場合、機械学習装置100は、画像ファイルのURLを指定したHTTPリクエストに対して、エラーを示すHTTPレスポンスを受信することになる。その場合、機械学習装置100は、取得不能の画像に対応するテキストを学習データとして採用しなければよい。
これに対して、他のケースとして、画像の取得がエラーにならないように、Webサーバ31,32,33が本来の画像に代えてNotFound画像を送信するケースが考えられる。これは、テキストを含むHTMLファイルに、本来の画像ファイルへのリンクに代えてNotFound画像ファイルへのリンクを記載している場合である。この場合、機械学習装置100は、エラーを検知することなく、あるテキストとNotFound画像のペアをWebサーバ31,32,33から受信することになる。よって、当該テキストとNotFound画像のペアが学習データの中に含まれてしまう。
しかし、NotFound画像に対応付けられたテキストは、NotFound画像に写った物体を説明するものではなく、本来の画像に写った物体を説明するものである。生成モデル45の学習はテキストと画像の対応関係を学習することであるため、学習データの中に含まれるNotFound画像は機械学習にとってノイズとなる。その結果、学習データに含まれるNotFound画像は、生成モデル45の精度低下の原因となる。そこで、機械学習装置100は、学習データの中からNotFound画像を検出し、NotFound画像とそれに対応するテキストを除外して機械学習を行う。
図5は、NotFound画像の除去例を示す図である。
機械学習装置100が収集する学習データには、画像42,44,48,49などの複数の画像が含まれる。画像42,44は、前述のように、衣服が写った画像である。画像48,49は、衣服が写った本来の画像が存在しないことを示す代替画像としてのNotFound画像である。しかし、画像48,49に対応するテキストは、本来の画像に写った衣服を説明するテキストである。そこで、画像48,49とそれに対応するテキストのペアは、生成モデル45の学習に使用しないことが好ましい。そこで、機械学習装置100は、画像のフィルタリングを行う。機械学習装置100は、画像42,44,48,49のうち画像48,49を除去し、画像42,44を機械学習に採用する。
ここで、NotFound画像に相当する画像には様々なものがある。異なるWebサイトが異なる種類のNotFound画像を使用することがある。また、同じWebサイトが複数種類のNotFound画像を使用することがある。ただし、NotFound画像は、本来の画像が存在しない旨を人間が認識できるように描かれた画像であるため、複数種類のNotFound画像の間の類似性は比較的高いと考えられる。そこで、第2の実施の形態では、予めNotFound画像のサンプルを幾つか用意しておく。機械学習装置100は、学習データの中からサンプル画像に類似する画像を抽出し、類似する画像をNotFound画像とみなして除去するようにする。
次に、機械学習装置100の機能について説明する。
図6は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、クローラ121、学習データ記憶部122、サンプル画像記憶部123、画像フィルタ124、学習部125、モデル記憶部126および画像生成部127を有する。学習データ記憶部122、サンプル画像記憶部123およびモデル記憶部126は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。クローラ121、画像フィルタ124、学習部125および画像生成部127は、例えば、CPU101が実行するプログラムを用いて実装される。
クローラ121は、Webサイトのクローリングを行う。すなわち、クローラ121は、ネットワーク30を介してWebサーバ31,32,33などのWebサーバから、テキストと画像のペアを収集する。クローリングでは、クローラ121は、WebページのURLを指定したHTTPリクエストを送信し、HTMLファイルを含むHTTPレスポンスを受信する。HTMLファイルに画像ファイルへのリンクが記載されている場合、クローラ121は、画像ファイルのURLを指定したHTTPリクエストを送信し、画像ファイルを含むHTTPレスポンスを受信する。クローラ121は、画像の周辺にあるテキストをHTMLファイルから抽出し、テキストと画像のペアを形成する。また、HTMLファイルに他のWebページへのリンクが記載されている場合、クローラ121は、リンク先のWebページのURLを指定したHTTPリクエストを送信する。これを繰り返すことで、クローラ121は、様々なWebページからテキストと画像のペアを収集する。
学習データ記憶部122は、クローラ121が収集したテキストと画像のペアを、学習データとして記憶する。サンプル画像記憶部123は、NotFound画像のサンプルであるサンプル画像を記憶する。サンプル画像は予めユーザにより用意される。サンプル画像記憶部123に記憶されるサンプル画像は、できる限り互いに特徴の異なる複数のNotFound画像である。複数のサンプル画像はそれぞれ、幾つかのWebサイトで使用されるNotFound画像に類似する典型的なNotFound画像であることが好ましい。サンプル画像としてのNotFound画像は、実際に特定のWebサイトで使用されているものでもよいし、使用されてない仮想的なものでもよい。
画像フィルタ124は、学習データ記憶部122に記憶された学習データの中から、サンプル画像記憶部123に記憶された複数のサンプル画像の少なくとも1つに類似する収集画像を検出する。画像フィルタ124は、検出した収集画像をNotFound画像であると判定し、検出した収集画像とそれに対応するテキストを学習データから除去する。画像フィルタ124は、除去せずに残ったテキストと画像を学習部125に提供する。収集画像とサンプル画像の間の類似度の判定については後述する。
学習部125は、画像フィルタ124から提供されるテキストと画像を用いて、テキストから画像を生成する生成モデル45を学習する。生成モデル45の学習では、ニューラルネットワークに含まれるシナプスの重みなど、生成モデル45のパラメータが決定される。モデル記憶部126は、学習部125が学習した生成モデル45の情報を記憶する。例えば、モデル記憶部126は、ニューラルネットワークに含まれるシナプスの重みなど、決定した生成モデル45のパラメータを記憶する。
画像生成部127は、モデル記憶部126から生成モデル45の情報を読み出す。画像生成部127は、ユーザから新規テキストの入力を受け付けると、生成モデル45に新規テキストを入力し、生成モデル45から出力される新規画像を取得する。画像生成部127は、新規テキストに対応して生成された新規画像をユーザに提示する。例えば、画像生成部127は、生成された新規画像を表示装置111に表示する。ただし、画像生成部127は、生成された新規画像をHDD103などのストレージ装置に保存してもよく、機械学習装置100に接続された他の出力デバイスに出力してもよい。また、画像生成部127は、生成された新規画像を他のコンピュータに送信してもよい。
次に、収集した学習データの中からサンプル画像に類似する収集画像を検出する方法について説明する。画像フィルタ124は、各収集画像が、予め用意された複数のサンプル画像のうちの少なくとも1つに類似しているか否かを判定する。このとき、1つの収集画像の特徴と1つのサンプル画像の特徴とを一対一に対比する方法では、対比回数が膨大になり類似判定が非効率になる。そこで、画像フィルタ124は、複数のサンプル画像全体の特徴を示す統計情報を算出し、1つの収集画像の特徴と複数のサンプル画像全体の統計情報とを対比して、類似判定を効率化することとする。
ただし、単一の画像の特徴と画像集合の特徴とを対比する一対多の対比では、判定精度が低下することがあり、類似と非類似を分ける境界周辺では判定の信頼性が低くなるおそれがある。そこで、画像フィルタ124は、一対多の対比では類似か非類似かを明確に判定することが難しい一部の収集画像に対して、その収集画像の特徴と複数のサンプル画像それぞれの特徴とを対比する一対一の対比を補完的に実行する。このような一対多の対比である第一次分類と一対一の対比である第二次分類とを通じて、画像フィルタ124は、類似判定の効率と判定精度を両立させることができる。第一次分類では類似度の指標としてFIDを使用し、第二次分類では類似度の指標としてpHash値を使用する。
図7は、FID閾値の計算例を示す図である。
まず、画像フィルタ124は、学習データに適合するように、第一次分類に使用するFID閾値を計算する。FID閾値の計算には、学習データに含まれる全ての収集画像ではなく一部の収集画像のみを使用する。学習データには、M枚(Mは正の整数)の収集画像が含まれている。Mは、例えば、数万枚程度である。画像フィルタ124は、学習データに含まれるM枚の収集画像の中から500枚の収集画像(収集画像51−1〜51−500)を抽出する。収集画像51−1〜51−500は、M枚の収集画像の中からランダムに選択してもよい。なお、第2の実施の形態では、FID閾値の計算に用いる収集画像を500枚に固定しているが、他の枚数としてもよいし、学習データに含まれる収集画像の枚数や用意したサンプル画像の枚数に応じて可変にしてもよい。
画像フィルタ124は、抽出した収集画像51−1〜51−500それぞれのFIDを計算する。FIDは、ある画像集合と別の画像集合の間の距離を示す指標である。FIDが小さいほど2つの画像集合の間の類似度が高いことを示し、FIDが大きいほど2つの画像集合の間の類似度が低いことを示す。サンプル画像記憶部123には、N枚(Nは正の整数)のサンプル画像(サンプル画像52−1〜52−N)が記憶されている。Nは、例えば、数枚から数十枚程度である。よって、ここで計算される各収集画像のFIDは、当該1つの収集画像とサンプル画像52−1〜52−Nの間の距離を示す。
FIDの計算には、Inceptionモデルが使用される。Inceptionモデルは、学習済みの画像認識モデルとしての畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)である。Inceptionモデルは、著名な学習データを用いて学習された著名なモデルである。画像フィルタ124は、収集画像51−1〜51−500それぞれをInceptionモデルに入力し、収集画像51−1〜51−500に対応する特徴ベクトル53−1〜53−500をInceptionモデルから読み出す。特徴ベクトル53−1〜53−500は、例えば、Inceptionモデルの特定の中間層に含まれる複数のノードで計算される数値を列挙した多次元ベクトルである。同様に、画像フィルタ124は、サンプル画像52−1〜52−NそれぞれをInceptionモデルに入力し、サンプル画像52−1〜52−Nに対応する特徴ベクトル54−1〜54−NをInceptionモデルから読み出す。
画像フィルタ124は、各収集画像について特徴ベクトルの平均μと分散共分散行列Σを計算する。ある収集画像の平均μは、その収集画像に対応する特徴ベクトル自体である。各収集画像の分散共分散行列Σは、零行列である。また、画像フィルタ124は、N枚のサンプル画像の統計情報として、特徴ベクトル54−1〜54−Nの平均μと分散共分散行列Σを計算する。平均μは、特徴ベクトル54−1〜54−Nの各次元の数値を平均化したものである。分散共分散行列Σは、特徴ベクトル54−1〜54−Nの各次元の分散および異なる2つの次元の共分散を示す正方行列である。分散共分散行列Σのi行i列(iは正の整数)はi番目の次元の分散を示し、i行j列(jはiと異なる正の整数)はi番目の次元とj番目の次元の間の共分散を示す。
画像フィルタ124は、ある収集画像の平均μおよび分散共分散行列Σと、サンプル画像集合の平均μおよび分散共分散行列Σから、数式(1)のようにFIDを計算する。数式(1)において、tr(・)は行列の対角和を示す行列演算子である。これにより、画像フィルタ124は、収集画像51−1〜51−500に対応するFID55−1〜55−500を計算する。例えば、収集画像51−1のFID55−1は「74」、収集画像51−2のFID55−2は「87」、収集画像51−3のFID55−3は「121」、収集画像51−500のFID55−500は「140」である。
Figure 2020098521
画像フィルタ124は、FID55−1〜55−500を、FIDが小さい下位集合61とFIDが大きい上位集合62の2つのクラスタに分類する。FID55−1〜55−500のクラスタリングは、FID55−1〜55−500の分布をできる限り明確に2つの塊に分割するものであり、下位集合61に属するFIDの個数と上位集合62に属するFIDの個数の間に偏りがあってもよい。FID55−1〜55−500のクラスタリングには、例えば、k-means法(k平均法)を使用する。
k-means法では、画像フィルタ124は、まずFID55−1〜55−500をランダムに2つのクラスタ(クラスタC1,C2)に割り振る。画像フィルタ124は、クラスタC1に属するFIDの平均V1と、クラスタC2に属するFIDの平均V2を計算する。画像フィルタ124は、FID55−1〜55−500それぞれと平均V1との間の距離(差)を計算し、FID55−1〜55−500それぞれと平均V2との間の距離(差)を計算する。画像フィルタ124は、FID55−1〜55−500それぞれが、距離の小さい方のクラスタに属するように割り振りをし直す。画像フィルタ124は、割り振りが収束するまで、平均V1,V2の計算と再割り振りを繰り返す。小さいFIDのクラスタが下位集合61に相当し、大きいFIDのクラスタが上位集合62に相当する。
例えば、下位集合61は、収集画像51−1のFID55−1「74」や、収集画像51−2のFID55−2「87」を含む。上位集合62は、収集画像51−3のFID55−3「121」や、収集画像51−500のFID55−500「140」を含む。
画像フィルタ124は、下位集合61および上位集合62に基づいて、FID閾値71を決定する。FID閾値71は、下位集合61と上位集合62の何れからも同程度に離れているFIDである。例えば、画像フィルタ124は、下位集合61に属するFIDの平均と、上位集合62に属するFIDの平均を計算する。画像フィルタ124は、下位集合61の平均と上位集合62の平均の中間値をFID閾値71とする。例えば、FID閾値71は「97」である。適切なFID閾値は学習データに応じて変わり得る。
図8は、FID分布とFID閾値の例を示すグラフである。
収集画像51−1〜51−500に対応するFID55−1〜55−500は、図8のグラフのように分布する。下位集合平均72は、下位集合61に属するFIDの平均である。上位集合平均73は、上位集合62に属するFIDの平均である。FID閾値71は、下位集合平均72と上位集合平均73の間に存在するFIDであって、下位集合61と上位集合62の両方から最も離れたFIDである。よって、FID閾値71は、下位集合平均72と上位集合平均73の平均、すなわち、両者の中間のFIDである。
図9は、収集画像の第一次分類例を示す図である。
FID閾値71が決定されると、画像フィルタ124は、学習データに含まれる全ての収集画像であるM枚の収集画像(収集画像51−1〜51−M)について、FIDを用いた第一次分類を行う。画像フィルタ124は、500枚の収集画像の場合と同様に、収集画像51−1〜51−MのFID55−1〜55−Mを計算する。
すなわち、画像フィルタ124は、収集画像51−1〜51−MそれぞれをInceptionモデルに入力して、M個の特徴ベクトル(特徴ベクトル53−1〜53−M)を生成する。画像フィルタ124は、前述のサンプル画像52−1〜52−Nの統計情報と特徴ベクトル53−1〜53−Mから、数式(1)に従ってFID55−1〜55−Mを計算する。サンプル画像52−1〜52−Nの統計情報は、FID閾値71を決定する際に計算したものを流用してよい。また、FID55−1〜55−500は計算済みのものを流用してもよく、特徴ベクトル53−1〜53−500の計算は省略してもよい。
例えば、収集画像51−1のFID55−1は「74」、収集画像51−2のFID55−2は「87」、収集画像51−3のFID55−3は「121」、収集画像51−500のFID55−500は「140」である。また、収集画像51−501のFID55−501は「100」、収集画像51−MのFID55−Mは「58」である。
画像フィルタ124は、FID55−1〜55−MそれぞれとFID閾値71とを比較して、FID55−1〜55−Mを下位集合63と上位集合64に分類する。下位集合63は、FID閾値71以下のFIDの集合である。上位集合64は、FID閾値71より大きいFIDの集合である。例えば、下位集合63は、収集画像51−MのFID55−M「58」、収集画像51−1のFID55−1「74」、収集画像51−2のFID55−2「87」などを含む。上位集合64は、収集画像51−501のFID55−501「100」、収集画像51−3のFID55−3「121」、収集画像51−500のFID55−500「140」などを含む。
画像フィルタ124は、下位集合63と上位集合64の分類結果に基づいて、識別困難FID範囲を決定する。識別困難FID範囲は、FID閾値71の周辺のFID範囲である。識別困難FID範囲は、FIDだけでは類似判定の信頼性が低い収集画像の集合を表している。FIDは統計情報を利用した簡易的な指標であることから、FID閾値71から離れたFIDをもつ収集画像については類似判定の信頼性が高い一方、FID閾値71の周辺のFIDをもつ収集画像については類似判定の信頼性が低いと考えられる。ただし、FIDの分布はサンプル画像の枚数Nにも依存することから、識別困難FID範囲は、下位集合63および上位集合64の分布に基づいて個別に決定することが好ましい。
そこで、第2の実施の形態では、画像フィルタ124は、下位集合63に属するFIDのうちの上位a%(aは正の実数であり、例えば、5%などとする)と、上位集合64に属するFIDのうちの下位a%とを特定する。画像フィルタ124は、FID閾値71を含み、下位集合63の上位a%と上位集合64の下位a%とを包含するFID範囲を識別困難FID範囲に決定する。識別困難FID範囲の下限は、下位集合63に属するFIDのうち大きい方からa%に位置するFIDである。識別困難FID範囲の上限は、上位集合64に属するFIDのうち小さい方からa%に位置するFIDである。
画像フィルタ124は、第一次分類の結果として、収集画像51−1〜51−Mを除外集合65、識別困難集合66および採用集合67に分類する。除外集合65は、サンプル画像の少なくとも1つに類似すると判定した収集画像の集合である。除外集合65に属する収集画像は機械学習に使用されない。識別困難集合66は、FIDだけではサンプル画像の少なくとも1つに類似するか否か判定することが難しい収集画像の集合である。識別困難集合66に属する収集画像に対しては、pHash値による第二次分類が行われる。採用集合67は、何れのサンプル画像にも類似しないと判定した収集画像の集合である。採用集合67に属する収集画像は機械学習に使用される。
画像フィルタ124は、下位集合63から識別困難FID範囲に属するFIDを抽出し、抽出したFIDに対応する収集画像を識別困難集合66に分類する。同様に、画像フィルタ124は、上位集合64から識別困難FID範囲に属するFIDを抽出し、抽出したFIDに対応する収集画像を識別困難集合66に分類する。また、画像フィルタ124は、下位集合63から識別困難FID範囲に属さないFID(FID閾値71の周辺ではなくFID閾値71より小さいFID)を抽出し、抽出したFIDに対応する収集画像を除外集合65に分類する。また、画像フィルタ124は、上位集合64から識別困難FID範囲に属さないFID(FID閾値71の周辺ではなくFID閾値71より大きいFID)を抽出し、抽出したFIDに対応する収集画像を採用集合67に分類する。
例えば、除外集合65は、FID55−M「58」をもつ収集画像51−M、FID55−1「74」をもつ収集画像51−1などを含む。識別困難集合66は、FID55−2「87」をもつ収集画像51−2、FID55−501「100」をもつ収集画像51−501などを含む。採用集合67は、FID55−3「121」をもつ収集画像51−3、FID55−500「140」をもつ収集画像51−500などを含む。
図10は、FID分布と3つの集合の例を示すグラフである。
収集画像51−1〜51−Mに対応するFID55−1〜55−Mは、図10のグラフのように分布する。下位集合63からは、下位集合63の上位a%に位置するFID74が計算される。上位集合64からは、上位集合64の下位a%に位置するFID75が計算される。除外集合65に属する収集画像は、FID74より小さいFIDをもつ収集画像である。識別困難集合66に属する収集画像は、FID74からFID75までの識別困難FID範囲に属するFIDをもつ収集画像である。採用集合67に属する収集画像は、FID75より大きいFIDをもつ収集画像である。
図11は、収集画像の第二次分類例を示す図である。
第一次分類の後、画像フィルタ124は、識別困難集合66に属する収集画像について、pHash値を用いた第二次分類を行う。第二次分類によって、識別困難集合66に属する収集画像も最終的に除外集合65および採用集合67に振り分けられる。
画像フィルタ124は、識別困難集合66に属する収集画像それぞれに対してpHash値を算出する。pHashは、1枚の画像から64ビットのハッシュ値を出力するハッシュ関数であり、類似する画像からは類似するハッシュ値を出力する性質をもつ。第2の実施の形態で言うpHashは、Perceptual Hashであればよい。Perceptual Hashには、aHash,dHash,wHashなどと言われるものもある。
pHash値の計算では、画像フィルタ124は、収集画像を所定サイズに縮小し、グレースケール化して各画素の輝度値を抽出する。画像フィルタ124は、離散コサイン変換(DCT:Discrete Cosine Transform)によりグレースケール画像を周波数成分に変換する。そして、画像フィルタ124は、離散コサイン変換の変換結果のうちの低周波成分から64ビットのpHash値を計算する。低周波成分を使用するため、類似する収集画像からは類似するpHash値が計算される。
例えば、収集画像51−2からpHash値56−2が計算され、収集画像51−501からpHash値56−501が計算される。同様にして、画像フィルタ124は、サンプル画像52−1〜52−Nに対応するpHash値57−1〜57−Nを計算する。
画像フィルタ124は、識別困難集合66に属する収集画像それぞれに対してハミング距離を計算する。ハミング距離の計算では、画像フィルタ124は、ある収集画像のpHash値とサンプル画像52−1〜52−NのpHash値57−1〜57−Nそれぞれとを比較して、ハミング距離を計算する。ハミング距離は、同じ長さの2つのビット列の間で値が異なるビットの個数である。pHash値は64ビットのビット列であるため、ハミング距離は0以上64以下の整数である。画像フィルタ124は、ある収集画像に対して、N個のサンプル画像との間で計算したN個のハミング距離のうち最小のハミング距離を採用する。これは、サンプル画像52−1〜52−Nのうち当該収集画像に最も類似するサンプル画像を選択して類似度を判定することを意味する。
ある収集画像のハミング距離が小さいことは、サンプル画像52−1〜52−Nの中に当該収集画像に類似するサンプル画像が存在することを意味する。ある収集画像のハミング距離が大きいことは、サンプル画像52−1〜52−Nの中に当該収集画像に類似するサンプル画像が存在しないことを意味する。例えば、収集画像51−2のハミング距離58−2が「31」、収集画像51−501のハミング距離58−501が「8」である。
画像フィルタ124は、識別困難集合66に属する収集画像それぞれのハミング距離と所定の閾値とを比較する。ここで計算されるハミング距離は0以上64以下の整数であるため、ハミング距離の閾値は0より大きく64より小さい整数である。例えば、ハミング距離の閾値を「20」とする。画像フィルタ124は、閾値以下のハミング距離をもつ収集画像を識別困難集合66から除外集合65に移動させる。また、画像フィルタ124は、閾値より大きいハミング距離をもつ収集画像を識別困難集合66から採用集合67に移動させる。これにより、全ての収集画像が除外集合65と採用集合67に分類される。
例えば、ハミング距離58−2「31」をもつ収集画像51−2が識別困難集合66から採用集合67に移動し、ハミング距離58−501「8」をもつ収集画像51−501が識別困難集合66から除外集合65に移動する。FIDのみに基づいて収集画像51−2,51−501を分類した場合、収集画像51−2は除外集合65に分類され、収集画像51−501は採用集合67に分類されていたことになる。よって、FID閾値71の周辺のFIDをもつ収集画像については、収集画像とサンプル画像を一対一に対比する他の指標に基づいて判定することで、分類精度を向上させることができる。
図12は、フィルタリング管理テーブルの例を示す図である。
上記の収集画像51−1〜51−Mのフィルタリングにあたり、画像フィルタ124はフィルタリング管理テーブル128を使用する。フィルタリング管理テーブル128は、例えば、RAM102またはHDD103の記憶領域に記憶される。
フィルタリング管理テーブル128は、画像ID、特徴ベクトル、FID、pHash値、ハミング距離および除外フラグの項目を含む。画像IDは、収集画像51−1〜51−Mを識別する識別子である。特徴ベクトルは、収集画像51−1〜51−Mそれぞれに対してInceptionモデルにより計算される多次元数値ベクトルである。FIDは、収集画像51−1〜51−Mそれぞれに対して特徴ベクトルから計算されるスカラ値である。
pHash値は、識別困難集合66に属する各収集画像に対して計算される64ビットのビット列である。ハミング距離は、識別困難集合66に属する各収集画像に対してpHash値から計算される整数である。FIDに基づいて除外集合65または採用集合67に分類された収集画像については、pHash値およびハミング距離を計算しなくてよい。除外フラグは、学習データから除外される収集画像であるか否かを示す。学習データから除外される収集画像は、NotFound画像と判定された収集画像であり、機械学習に使用されない。最終的に除外集合65に分類された収集画像は、除外フラグがYESになり、最終的に採用集合67に分類された収集画像は、除外フラグがNOになる。
次に、機械学習装置100の処理手順について説明する。
図13は、機械学習の手順例を示すフローチャートである。
(S10)クローラ121は、Webサーバ31,32,33から画像とテキストのペアを収集し、学習データとして学習データ記憶部122に格納する。
(S11)画像フィルタ124は、学習データ記憶部122に記憶されたM枚の収集画像の中から500枚の収集画像を選択する。
(S12)画像フィルタ124は、Inceptionモデルを用いて、サンプル画像記憶部123に記憶されたN枚のサンプル画像それぞれの特徴ベクトルを算出する。
(S13)画像フィルタ124は、ステップS12で算出したN枚のサンプル画像に対応するN個の特徴ベクトルから、それら特徴ベクトルの統計情報を算出する。統計情報は、例えば、それら特徴ベクトルの平均と分散共分散行列とを含む。
(S14)画像フィルタ124は、Inceptionモデルを用いて、ステップS11で選択した500枚の収集画像それぞれの特徴ベクトルを算出する。
(S15)画像フィルタ124は、ステップS13の統計情報とステップS14の特徴ベクトルとに基づいて、500枚の収集画像それぞれのFIDを算出する。
(S16)画像フィルタ124は、ステップS15で算出した500個のFIDを、k-means法などのクラスタリング方法により下位集合61と上位集合62に分類する。
(S17)画像フィルタ124は、ステップS16で分類された下位集合61と上位集合62に基づいてFID閾値71を決定する。例えば、画像フィルタ124は、下位集合61に属するFIDの平均である下位集合平均72と、上位集合62に属するFIDの平均である上位集合平均73を算出する。画像フィルタ124は、下位集合平均72と上位集合平均73の中間のFIDをFID閾値71とする。
(S18)画像フィルタ124は、学習データ記憶部122に記憶されたM枚の収集画像のうちステップS11で選択されなかった他の収集画像について、Inceptionモデルを用いて、それら他の収集画像それぞれの特徴ベクトルを算出する。
(S19)画像フィルタ124は、ステップS13の統計情報とステップS18の特徴ベクトルとに基づいて、他の収集画像それぞれのFIDを算出する。
(S20)画像フィルタ124は、ステップS17で決定したFID閾値71を用いて、ステップS15,S19で算出されたM個のFIDを下位集合63と上位集合64に分類する。下位集合63に属するFIDは、FID閾値71以下のFIDである。上位集合64に属するFIDは、FID閾値71より大きいFIDである。
(S21)画像フィルタ124は、ステップS20で分類された下位集合63と上位集合64に基づいて識別困難FID範囲を決定する。識別困難FID範囲は、FID閾値71の周辺であると言えるFID範囲である。例えば、画像フィルタ124は、下位集合63の上位a%と上位集合64の下位a%のカバー範囲を識別困難FID範囲とする。
図14は、機械学習の手順例を示すフローチャート(続き)である。
(S22)画像フィルタ124は、サンプル画像記憶部123に記憶されたN枚のサンプル画像それぞれのpHash値を算出する。
(S23)画像フィルタ124は、M枚の収集画像のうちの1つを選択する。
(S24)画像フィルタ124は、選択した収集画像のFIDが、ステップS21で決定した識別困難FID範囲に属するか判断する。識別困難FID範囲に属する場合はステップS26に進み、属さない場合はステップS25に進む。
(S25)画像フィルタ124は、選択した収集画像のFIDが下位集合63に属するか判断する。下位集合63に属する場合はステップS29に進む。下位集合63に属さない場合、すなわち、上位集合64に属する場合はステップS30に進む。その場合、選択した収集画像は採用集合67に分類されることになる。
(S26)画像フィルタ124は、選択した収集画像のpHash値を算出する。
(S27)画像フィルタ124は、ステップS22で算出したN個のpHash値それぞれとステップS26のpHash値との間のハミング距離を算出する。画像フィルタ124は、算出したN個のハミング距離のうちの最小のハミング距離を選択する。
(S28)画像フィルタ124は、ステップS27で算出した最小のハミング距離が、所定の閾値以下であるか判断する。ハミング距離が閾値以下である場合はステップS29に進む。ハミング距離が閾値より大きい場合はステップS30に進む。その場合、選択した収集画像は採用集合67に分類されることになる。
(S29)画像フィルタ124は、選択した収集画像を除外集合65に分類する。
(S30)画像フィルタ124は、ステップS23においてM枚の収集画像の全てを選択したか判断する。全ての収集画像を選択した場合はステップS31に進み、未選択の収集画像がある場合はステップS23に進む。
(S31)画像フィルタ124は、学習データ記憶部122に記憶された学習データから、除外集合65に属する画像とそれに対応するテキストを除外し、採用集合67に属する画像とそれに対応するテキストを抽出する。
(S32)学習部125は、ステップS31で抽出された画像とテキストのペアを用いて、機械学習により生成モデル45を学習する。
第2の実施の形態の機械学習装置100によれば、多数の収集画像の中からNotFound画像が取り除かれて機械学習に使用される。よって、学習される生成モデルの精度を向上させることができる。また、予めNotFound画像のサンプルを幾つか用意しておくことで、収集画像の中からNotFound画像を検出することが可能となる。
また、NotFound画像の検出では、FIDを類似度の指標として用いた第一次分類が行われ、FIDによる判定の信頼性が低い収集画像について、pHash値を類似度の指標として用いた第二次分類が行われる。第一次分類では、1つの収集画像の特徴ベクトルと複数のサンプル画像の統計情報とを対比する一対多の対比が行われる。よって、NotFound画像である可能性が著しく高い収集画像やNotFound画像である可能性が著しく低い収集画像を、効率的に判定することができる。また、第二次分類では、1つの収集画像のpHash値と1つのサンプル画像のpHash値とを対比する一対一の対比が行われる。よって、FIDではNotFound画像であるか否か判定が難しい収集画像について、判定精度を向上させることができる。
10 情報処理装置
11 記憶部
12 処理部
13a,13b サンプルデータ
14a,14b,14c,14d,14e,14f 対象データ
15 統計情報
16a,16b,16c,16d,16e,16f,16g,16h 評価値
17a,17b,17c,17d,17e 範囲

Claims (7)

  1. 複数のサンプルデータおよび複数の対象データを記憶する記憶部と、
    前記複数のサンプルデータの特徴の統計量を示す統計情報を算出し、前記複数の対象データそれぞれと前記統計情報との間で行う第1の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第1の評価値を算出し、
    前記第1の評価値が、第1の範囲と前記第1の範囲より高い類似度を示す第2の範囲と前記第2の範囲より高い類似度を示す第3の範囲とのうち、前記第2の範囲に属する2以上の対象データを前記複数の対象データから選択し、
    前記選択した2以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第2の対比処理により、前記複数のサンプルデータに対する前記選択した2以上の対象データそれぞれの類似度を示す第2の評価値を算出し、
    前記第1の評価値が前記第3の範囲に属する対象データと、前記第2の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する処理部と、
    を有する情報処理装置。
  2. 前記第1の評価値の算出では、前記処理部は、前記複数のサンプルデータに対応する複数の第1の特徴ベクトルの平均情報および分散情報を前記統計情報として算出し、前記複数の対象データそれぞれの第2の特徴ベクトルと前記平均情報と前記分散情報とに基づいて、前記複数の対象データそれぞれの前記第1の評価値を算出する、
    請求項1記載の情報処理装置。
  3. 前記2以上の対象データの選択では、前記処理部は、前記第1の評価値に基づいて前記複数の対象データを第1のクラスタと第2のクラスタとに分類し、前記第1のクラスタでの前記第1の評価値の分布および前記第2のクラスタでの前記第1の評価値の分布に基づいて、前記第1の範囲と前記第2の範囲と前記第3の範囲とを決定する、
    請求項1記載の情報処理装置。
  4. 前記第2の評価値の算出では、前記処理部は、前記複数のサンプルデータに対応する複数の第1のハッシュ値を算出し、前記選択した2以上の対象データそれぞれの第2のハッシュ値と前記複数の第1のハッシュ値それぞれとの間の距離に基づいて、前記選択した2以上の対象データそれぞれの前記第2の評価値を算出する、
    請求項1記載の情報処理装置。
  5. 前記第2の評価値の算出では、前記処理部は、前記選択した2以上の対象データそれぞれについて、当該対象データの前記第2のハッシュ値と前記複数の第1のハッシュ値との間で算出される複数の距離のうち、最小の距離を前記第2の評価値として使用する、
    請求項4記載の情報処理装置。
  6. コンピュータが、
    複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと前記統計情報との間で行う第1の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第1の評価値を算出し、
    前記第1の評価値が、第1の範囲と前記第1の範囲より高い類似度を示す第2の範囲と前記第2の範囲より高い類似度を示す第3の範囲とのうち、前記第2の範囲に属する2以上の対象データを前記複数の対象データから選択し、
    前記選択した2以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第2の対比処理により、前記複数のサンプルデータに対する前記選択した2以上の対象データそれぞれの類似度を示す第2の評価値を算出し、
    前記第1の評価値が前記第3の範囲に属する対象データと、前記第2の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する、
    データ抽出方法。
  7. コンピュータに、
    複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと前記統計情報との間で行う第1の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第1の評価値を算出し、
    前記第1の評価値が、第1の範囲と前記第1の範囲より高い類似度を示す第2の範囲と前記第2の範囲より高い類似度を示す第3の範囲とのうち、前記第2の範囲に属する2以上の対象データを前記複数の対象データから選択し、
    前記選択した2以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第2の対比処理により、前記複数のサンプルデータに対する前記選択した2以上の対象データそれぞれの類似度を示す第2の評価値を算出し、
    前記第1の評価値が前記第3の範囲に属する対象データと、前記第2の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する、
    処理を実行させるデータ抽出プログラム。
JP2018237053A 2018-12-19 2018-12-19 情報処理装置、データ抽出方法およびデータ抽出プログラム Pending JP2020098521A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018237053A JP2020098521A (ja) 2018-12-19 2018-12-19 情報処理装置、データ抽出方法およびデータ抽出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018237053A JP2020098521A (ja) 2018-12-19 2018-12-19 情報処理装置、データ抽出方法およびデータ抽出プログラム

Publications (1)

Publication Number Publication Date
JP2020098521A true JP2020098521A (ja) 2020-06-25

Family

ID=71105962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018237053A Pending JP2020098521A (ja) 2018-12-19 2018-12-19 情報処理装置、データ抽出方法およびデータ抽出プログラム

Country Status (1)

Country Link
JP (1) JP2020098521A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022049010A (ja) * 2020-09-15 2022-03-28 株式会社リコー 情報検索方法、装置およびコンピュータ読み取り可能記憶媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022049010A (ja) * 2020-09-15 2022-03-28 株式会社リコー 情報検索方法、装置およびコンピュータ読み取り可能記憶媒体
JP7230979B2 (ja) 2020-09-15 2023-03-01 株式会社リコー 情報検索方法、装置およびコンピュータ読み取り可能記憶媒体

Similar Documents

Publication Publication Date Title
US10394878B2 (en) Associating still images and videos
WO2019218514A1 (zh) 网页目标信息的提取方法、装置及存储介质
CN109564575B (zh) 使用机器学习模型来对图像进行分类
US9098741B1 (en) Discriminitive learning for object detection
US10387430B2 (en) Geometry-directed active question selection for question answering systems
US8429173B1 (en) Method, system, and computer readable medium for identifying result images based on an image query
JP5281156B2 (ja) 画像の注釈付け
US8582872B1 (en) Place holder image detection via image clustering
US11550856B2 (en) Artificial intelligence for product data extraction
CN112119388A (zh) 训练图像嵌入模型和文本嵌入模型
US8788503B1 (en) Content identification
CN107209860A (zh) 使用分块特征来优化多类图像分类
US20180341686A1 (en) System and method for data search based on top-to-bottom similarity analysis
JP2013519138A (ja) アイテム関連付けのための結合埋込
US11875512B2 (en) Attributionally robust training for weakly supervised localization and segmentation
Lee et al. Visually weighted neighbor voting for image tag relevance learning
CN111898703B (zh) 多标签视频分类方法、模型训练方法、装置及介质
CN112074828A (zh) 训练图像嵌入模型和文本嵌入模型
CN111930518A (zh) 面向知识图谱表示学习的分布式框架构建方法
CN112417152A (zh) 涉案舆情的话题检测方法和装置
KR101158750B1 (ko) 문서분류장치 및 그것의 문서분류방법
US20190377823A1 (en) Unsupervised classification of documents using a labeled data set of other documents
JP2020098521A (ja) 情報処理装置、データ抽出方法およびデータ抽出プログラム
JP2014021757A (ja) コンテンツ評価値予測装置、方法、及びプログラム
Guo et al. Saliency detection on sampled images for tag ranking