(57)【要約】【課題】サンプルデータに類似するデータを効率的に抽出する。【解決手段】複数のサンプルデータの特徴の統計量を示す統計情報１５を算出し、複数の対象データそれぞれと統計情報１５との間で行う第１の対比処理により、対象データそれぞれの類似度を示す第１の評価値を算出する。第１の評価値が、範囲１７ａと範囲１７ａより高い類似度を示す範囲１７ｂと範囲１７ｂより高い類似度を示す範囲１７ｃとのうち、範囲１７ｂに属する２以上の対象データを選択する。選択した対象データそれぞれとサンプルデータそれぞれとの間で行う第２の対比処理により、選択した対象データそれぞれの類似度を示す第２の評価値を算出する。第１の評価値が範囲１７ｃに属する対象データと、第２の評価値が示す類似度が閾値以上の対象データとを抽出する。【選択図】図１
2020098521.tif 000002
【特許請求の範囲】
【請求項１】
複数のサンプルデータおよび複数の対象データを記憶する記憶部と、
前記複数のサンプルデータの特徴の統計量を示す統計情報を算出し、前記複数の対象データそれぞれと前記統計情報との間で行う第１の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第１の評価値を算出し、
前記第１の評価値が、第１の範囲と前記第１の範囲より高い類似度を示す第２の範囲と前記第２の範囲より高い類似度を示す第３の範囲とのうち、前記第２の範囲に属する２以上の対象データを前記複数の対象データから選択し、
前記選択した２以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第２の対比処理により、前記複数のサンプルデータに対する前記選択した２以上の対象データそれぞれの類似度を示す第２の評価値を算出し、
前記第１の評価値が前記第３の範囲に属する対象データと、前記第２の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する処理部と、
を有する情報処理装置。
【請求項２】
前記第１の評価値の算出では、前記処理部は、前記複数のサンプルデータに対応する複数の第１の特徴ベクトルの平均情報および分散情報を前記統計情報として算出し、前記複数の対象データそれぞれの第２の特徴ベクトルと前記平均情報と前記分散情報とに基づいて、前記複数の対象データそれぞれの前記第１の評価値を算出する、
請求項１記載の情報処理装置。
【請求項３】
前記２以上の対象データの選択では、前記処理部は、前記第１の評価値に基づいて前記複数の対象データを第１のクラスタと第２のクラスタとに分類し、前記第１のクラスタでの前記第１の評価値の分布および前記第２のクラスタでの前記第１の評価値の分布に基づいて、前記第１の範囲と前記第２の範囲と前記第３の範囲とを決定する、
請求項１記載の情報処理装置。
【請求項４】
前記第２の評価値の算出では、前記処理部は、前記複数のサンプルデータに対応する複数の第１のハッシュ値を算出し、前記選択した２以上の対象データそれぞれの第２のハッシュ値と前記複数の第１のハッシュ値それぞれとの間の距離に基づいて、前記選択した２以上の対象データそれぞれの前記第２の評価値を算出する、
請求項１記載の情報処理装置。
【請求項５】
前記第２の評価値の算出では、前記処理部は、前記選択した２以上の対象データそれぞれについて、当該対象データの前記第２のハッシュ値と前記複数の第１のハッシュ値との間で算出される複数の距離のうち、最小の距離を前記第２の評価値として使用する、
請求項４記載の情報処理装置。
【請求項６】
コンピュータが、
複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと前記統計情報との間で行う第１の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第１の評価値を算出し、
前記第１の評価値が、第１の範囲と前記第１の範囲より高い類似度を示す第２の範囲と前記第２の範囲より高い類似度を示す第３の範囲とのうち、前記第２の範囲に属する２以上の対象データを前記複数の対象データから選択し、
前記選択した２以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第２の対比処理により、前記複数のサンプルデータに対する前記選択した２以上の対象データそれぞれの類似度を示す第２の評価値を算出し、
前記第１の評価値が前記第３の範囲に属する対象データと、前記第２の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する、
データ抽出方法。
【請求項７】
コンピュータに、
複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと前記統計情報との間で行う第１の対比処理により、前記複数のサンプルデータに対する前記複数の対象データそれぞれの類似度を示す第１の評価値を算出し、
前記第１の評価値が、第１の範囲と前記第１の範囲より高い類似度を示す第２の範囲と前記第２の範囲より高い類似度を示す第３の範囲とのうち、前記第２の範囲に属する２以上の対象データを前記複数の対象データから選択し、
前記選択した２以上の対象データそれぞれと前記複数のサンプルデータそれぞれとの間で行う第２の対比処理により、前記複数のサンプルデータに対する前記選択した２以上の対象データそれぞれの類似度を示す第２の評価値を算出し、
前記第１の評価値が前記第３の範囲に属する対象データと、前記第２の評価値が示す類似度が閾値以上の対象データとを前記複数の対象データから抽出する、
処理を実行させるデータ抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、データ抽出方法およびデータ抽出プログラムに関する。
【背景技術】
【０００２】
データ処理の分野では前処理として、収集した多数のデータの中から予め用意したサンプルデータに類似するデータを抽出したいことがある。ここで取り扱うデータは、画像データや音声データなど類似するか否かの判定が単純ではないデータである場合がある。サンプルデータに類似するデータを、所望のデータとして後続のデータ処理に利用することも考えられるし、逆にノイズとして後続のデータ処理の対象から除外することも考えられる。サンプルデータは複数用意されることもあり得る。後続のデータ処理は、ディープラーニングなどの機械学習であってもよい。一例として、収集した多数の画像の中から少数のサンプル画像の少なくとも１つに類似する画像を抽出し、抽出した画像をノイズとして除去し、残った画像を用いて機械学習を行うことが考えられる。
【０００３】
なお、ユーザが指定した文字列を名称とする物体が写った画像を収集する画像収集装置が提案されている。提案の画像収集装置は、ユーザが指定した文字列をキーワードとして用いてＷｅｂ検索を行い、画像と当該画像に関連付けられたテキストのペアを複数取得する。画像収集装置は、取得した複数の画像を画像同士の類似度に基づいて２以上のクラスタに分類し、所望の物体が写った画像が含まれている可能性を示すクラスタスコアを２以上のクラスタそれぞれについて算出する。画像収集装置は、クラスタスコアが大きいクラスタを選択し、選択したクラスタから画像を抽出する。
【０００４】
また、ユーザが所望の商品画像を効率よく検索できるようにする画像表示制御装置が提案されている。提案の画像表示制御装置は、複数の商品画像それぞれの特徴量を算出し、二次元平面において特徴量に応じた位置にそれら複数の商品画像を配置する。画像表示制御装置は、二次元平面の中から着目領域を指定する領域指定操作をユーザから受け付けると、着目領域外の商品画像を二次元平面の端部に移動させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−７６１１５号公報
【特許文献２】特開２０１７−４５３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
類似判定の１つの方法として、判定対象のデータ１つとサンプルデータ１つとを一対一に対比していく方法が考えられる。しかし、この方法では、複数の対象データと複数のサンプルデータが存在する場合に計算量が大きくなるという問題がある。一方、類似判定の別の方法として、ＦＩＤ（Frechet Inception Distance）などデータ集合同士の類似度を示す指標を利用する方法も考えられる。しかし、この方法では、計算の簡便性から判定精度が低くなることがあり、一部のデータの類似非類似の判断を誤るリスクがある。
【０００７】
１つの側面では、本発明は、サンプルデータに類似するデータを効率的に抽出する情報処理装置、データ抽出方法およびデータ抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、記憶部と処理部とを有する情報処理装置が提供される。記憶部は、複数のサンプルデータおよび複数の対象データを記憶する。処理部は、複数のサンプルデータの特徴の統計量を示す統計情報を算出し、複数の対象データそれぞれと統計情報との間で行う第１の対比処理により、複数のサンプルデータに対する複数の対象データそれぞれの類似度を示す第１の評価値を算出する。処理部は、第１の評価値が、第１の範囲と第１の範囲より高い類似度を示す第２の範囲と第２の範囲より高い類似度を示す第３の範囲とのうち、第２の範囲に属する２以上の対象データを複数の対象データから選択する。処理部は、選択した２以上の対象データそれぞれと複数のサンプルデータそれぞれとの間で行う第２の対比処理により、複数のサンプルデータに対する選択した２以上の対象データそれぞれの類似度を示す第２の評価値を算出する。処理部は、第１の評価値が第３の範囲に属する対象データと、第２の評価値が示す類似度が閾値以上の対象データとを複数の対象データから抽出する。
【０００９】
また、１つの態様では、コンピュータが実行するデータ抽出方法が提供される。また、１つの態様では、コンピュータに実行させるデータ抽出プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、サンプルデータに類似するデータを効率的に抽出できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の情報処理装置の例を説明する図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】機械学習装置のハードウェア例を示す図である。
【図４】機械学習による画像生成の例を示す図である。
【図５】ＮｏｔＦｏｕｎｄ画像の除去例を示す図である。
【図６】機械学習装置の機能例を示すブロック図である。
【図７】ＦＩＤ閾値の計算例を示す図である。
【図８】ＦＩＤ分布とＦＩＤ閾値の例を示すグラフである。
【図９】収集画像の第一次分類例を示す図である。
【図１０】ＦＩＤ分布と３つの集合の例を示すグラフである。
【図１１】収集画像の第二次分類例を示す図である。
【図１２】フィルタリング管理テーブルの例を示す図である。
【図１３】機械学習の手順例を示すフローチャートである。
【図１４】機械学習の手順例を示すフローチャート（続き）である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１３】
図１は、第１の実施の形態の情報処理装置の例を説明する図である。
第１の実施の形態の情報処理装置１０は、複数の対象データの中からサンプルデータに類似する対象データを抽出する。情報処理装置１０は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置１０は、記憶部１１および処理部１２を有する。
【００１４】
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性ストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１５】
記憶部１１は、サンプルデータ１３ａ，１３ｂなどの複数のサンプルデータを記憶する。サンプルデータ１３ａ，１３ｂは、比較対象として予め用意される。サンプルデータ１３ａ，１３ｂは、例えば、後続のデータ処理にとって望ましくないノイズとなるデータのサンプルである。ただし、後続のデータ処理にとって望ましいデータのサンプルであってもよい。また、記憶部１１は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆなどの複数の対象データを記憶する。対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆは、類似非類似を判定する対象となるデータである。
【００１６】
サンプルデータ１３ａ，１３ｂおよび対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆは、例えば、画像データである。ただし、音声データのように類似非類似の判定が単純でない他の種類のデータであってもよい。例えば、サンプルデータ１３ａ，１３ｂが、予めユーザによって用意されたサンプル画像であり、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆが、ネットワーク上で収集された収集画像である。サンプル画像は、本来の画像が存在しないことを示すＮｏｔＦｏｕｎｄ画像のサンプルのように、ノイズとなる画像のサンプルであってもよい。複数の収集画像の中には、ＮｏｔＦｏｕｎｄ画像とそれ以外の画像が混在していてもよい。
【００１７】
処理部１２は、サンプルデータ１３ａ，１３ｂの特徴の統計量を示す統計情報１５を算出する。例えば、処理部１２は、サンプルデータ１３ａ，１３ｂに対応する複数の特徴ベクトル（第１の特徴ベクトル）を算出し、それら複数の第１の特徴ベクトルの平均情報や分散情報などを統計情報１５として算出する。
【００１８】
処理部１２は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆそれぞれと統計情報１５との間で第１の対比処理を行う。第１の対比処理により、処理部１２は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆに対応する評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆ（第１の評価値）を算出する。評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆはそれぞれ、サンプルデータ１３ａ，１３ｂに対する類似度を示す。評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆは、例えば、距離のように類似度が高いほど値が小さい指標である。ただし、第１の評価値として、類似度が低いほど値が小さい指標を用いてもよい。
【００１９】
例えば、処理部１２は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆに対応する複数の特徴ベクトル（第２の特徴ベクトル）を算出する。そして、処理部１２は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆそれぞれについて、当該対象データの第２の特徴ベクトルと統計情報１５に含まれる平均情報および分散情報とから、当該対象データの第１の評価値を算出する。ここで算出される第１の評価値は、１つの対象データと複数のサンプルデータ全体との間の類似度を集団的に評価した指標である。評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆはＦＩＤであってもよい。
【００２０】
処理部１２は、第１の評価値の範囲として範囲１７ａ，１７ｂ，１７ｃを特定する。範囲１７ａ（第１の範囲）は、最も低い類似度を示す範囲である。範囲１７ｃ（第３の範囲）は、最も高い類似度を示す範囲である。範囲１７ｂ（第２の範囲）は、範囲１７ａより高い類似度を示し範囲１７ｃより低い類似度を示す範囲、すなわち、範囲１７ａと範囲１７ｃの中間の範囲である。第１の評価値が距離を表す場合、範囲１７ｂは範囲１７ａより第１の評価値が小さく、範囲１７ｃは範囲１７ｂより第１の評価値が小さい。
【００２１】
処理部１２は、算出した評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆの分布に基づいて範囲１７ａ，１７ｂ，１７ｃを決定してもよい。例えば、処理部１２は、算出した評価値１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆをk-means法などのクラスタリング方法により２つのクラスタに分割し、２つのクラスタの境界周辺の所定範囲にある第１の評価値が範囲１７ｂに分類されるように範囲１７ｂを決定してもよい。
【００２２】
処理部１２は、対象データ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆの中から、第１の評価値が範囲１７ｂに属する２以上の対象データを選択する。第１の評価値が範囲１７ａに属する対象データは、非類似である可能性が著しく高い対象データであり、第１の評価値が範囲１７ｃに属する対象データは、類似する可能性が著しく高い対象である。これに対して、第１の評価値が範囲１７ｂに属する対象データは、第１の評価値のみでは類似非類似を精度よく判定することが難しい対象データである。
【００２３】
そこで、第１の評価値が範囲１７ｂに属する対象データについて第２の対比処理を行う。ここでは、対象データ１４ａ，１４ｂに対応する評価値１６ａ，１６ｂが範囲１７ａに属し、対象データ１４ｃ，１４ｄに対応する評価値１６ｃ，１６ｄが範囲１７ｂに属し、対象データ１４ｅ，１４ｆに対応する評価値１６ｅ，１６ｆが範囲１７ｃに属するとする。よって、処理部１２は、対象データ１４ｃ，１４ｄを選択する。
【００２４】
処理部１２は、選択した対象データ１４ｃ，１４ｄそれぞれとサンプルデータ１３ａ，１３ｂそれぞれとの間で第２の対比処理を行う。第２の対比処理により、処理部１２は、対象データ１４ｃ，１４ｄに対応する評価値１６ｇ，１６ｈ（第２の評価値）を算出する。評価値１６ｇ，１６ｈはそれぞれ、サンプルデータ１３ａ，１３ｂに対する類似度を示す。例えば、評価値１６ｇは、対象データ１４ｃとサンプルデータ１３ａ，１３ｂそれぞれとの間の類似度のうちの最大の類似度を示す。評価値１６ｈは、対象データ１４ｄとサンプルデータ１３ａ，１３ｂそれぞれとの間の類似度のうちの最大の類似度を示す。評価値１６ｇ，１６ｈは、例えば、距離のように類似度が高いほど値が小さい指標である。ただし、第２の評価値として、類似度が低いほど値が小さい指標値を用いてもよい。
【００２５】
例えば、処理部１２は、サンプルデータ１３ａ，１３ｂに対応する複数のハッシュ値（第１のハッシュ値）を算出する。また、処理部１２は、選択した対象データ１４ｃ，１４ｄに対応する複数のハッシュ値（第２のハッシュ値）を算出する。ここで算出するハッシュ値は、ｐＨａｓｈ値のように、類似するデータからは近似するビット列が算出されるものを利用することが好ましい。処理部１２は、対象データ１４ｃ，１４ｄそれぞれについて、当該対象データの第２のハッシュ値とサンプルデータ１３ａ，１３ｂそれぞれの第１のハッシュ値との間のハミング距離を算出し、最小のハミング距離を第２の評価値として採用する。ここで算出される第２の評価値は、１つの対象データと複数のサンプルデータそれぞれとの間の類似度を個別的に評価した指標である。
【００２６】
処理部１２は、第２の評価値の範囲として範囲１７ｄ，１７ｅを特定する。範囲１７ｄは、低い類似度の範囲であり、第２の評価値が表す類似度が閾値を下回る範囲である。範囲１７ｅは、高い類似度の範囲であり、第２の評価値が表す類似度が閾値以上の範囲である。第２の評価値が距離を表す場合、範囲１７ｄは閾値を超える第２の評価値の範囲であり、範囲１７ｅは閾値以下の第２の評価値の範囲である。
【００２７】
処理部１２は、選択した対象データ１４ｃ，１４ｄの中から、第２の評価値が範囲１７ｅに属する対象データを抽出する。再判定の結果として、第２の評価値が範囲１７ｄに属する対象データは非類似である可能性が高い一方、第２の評価値が範囲１７ｅに属する対象データは類似する可能性が高い。ここでは、対象データ１４ｃに対応する評価値１６ｇが範囲１７ｅに属し、対象データ１４ｄに対応する評価値１６ｈが範囲１７ｄに属するとする。よって、処理部１２は、対象データ１４ｃを抽出する。
【００２８】
また、処理部１２は、第１の評価値が範囲１７ｃに属する対象データ１４ｅ，１４ｆを抽出する。すなわち、処理部１２は、第１の評価値が範囲１７ｃに属する対象データ１４ｅ，１４ｆと、第１の評価値が範囲１７ｂに属する対象データ１４ｃ，１４ｄのうち第２の評価値が範囲１７ｅに属する対象データ１４ｃとを抽出する。ここで抽出される対象データ１４ｃ，１４ｅ，１４ｆは、サンプルデータ１３ａ，１３ｂの少なくとも１つとの類似度が高いと判定された対象データである。
【００２９】
処理部１２は、抽出した対象データ１４ｃ，１４ｅ，１４ｆを後続のデータ処理に使用することもあるし、抽出した対象データ１４ｃ，１４ｅ，１４ｆを除外した対象データ１４ａ，１４ｂ，１４ｄを後続のデータ処理に使用することもある。後続のデータ処理は、ディープラーニングなどの機械学習であってもよい。
【００３０】
第２の実施の形態の情報処理装置１０によれば、複数のサンプルデータの特徴の統計量を示す統計情報１５が算出され、統計情報１５を用いた第１の対比処理により、複数の対象データそれぞれの第１の評価値が算出される。第１の評価値が中間的な範囲１７ｂに属する２以上の対象データが選択され、選択された２以上の対象データと複数のサンプルデータとの間の個別的な第２の対比処理により、選択された２以上の対象データそれぞれの第２の評価値が算出される。そして、第１の評価値により類似度が高いと評価された対象データと、第２の評価値により類似度が高いと評価された対象データとが抽出される。
【００３１】
第１の対比処理では、統計情報１５を使用した一対多の簡易的な対比が行われる。このため、全ての対象データについて一対一の精密な対比を行う場合よりも、類似度が著しく低い対象データや類似度が著しく高い対象データを効率的に判定することができる。また、第１の対比処理では判定が難しい対象データについて、第２の対比処理で一対一の精密な対比が行われる。このため、一対多の簡易的な対比のみを行う場合よりも、判定の誤りを削減して類似判定の精度を向上させることができる。また、対象データの集合に対して適切な前処理が行われることで、後続のデータ処理の精度を向上させることができる。
【００３２】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００３３】
第２の実施の形態の情報処理システムは、多数のテキスト（文字列）と画像のペアを学習データとして収集し、収集した学習データを用いて機械学習により、テキストから画像を生成する生成モデルを学習する。第２の実施の形態の情報処理システムは、Ｗｅｂサーバ３１，３２，３３などの複数のＷｅｂサーバと、機械学習装置１００とを有する。Ｗｅｂサーバ３１，３２，３３および機械学習装置１００は、ネットワーク３０に接続されている。ネットワーク３０は、インターネットなどの広域データ通信ネットワークである。機械学習装置１００は、第１の実施の形態の情報処理装置１０に対応する。
【００３４】
Ｗｅｂサーバ３１，３２，３３は、Ｗｅｂブラウザを実行するクライアントからの要求に応じてＷｅｂページを提供するサーバコンピュータである。Ｗｅｂサーバ３１，３２，３３は、Ｗｅｂページに記載されるテキストやＷｅｂページに埋め込まれる画像を記憶している。例えば、Ｗｅｂサーバ３１，３２，３３は、ショッピングサイトのＷｅｂページを提供する。その場合、Ｗｅｂサーバ３１，３２，３３は、商品の画像と、当該商品の説明文やタグであるテキストとを記憶する。Ｗｅｂサーバ３１，３２，３３は、Ｗｅｂページを識別するＵＲＬ（Uniform Resource Locator）を含むＨＴＴＰ（Hypertext Transfer Protocol）リクエストを受信し、ＵＲＬに応じたテキストや画像を含むＨＴＴＰレスポンスを送信する。ＨＴＴＰレスポンスを受信したクライアントは、テキストや画像を含むＷｅｂページをレンダリングして、Ｗｅｂページを表示装置に表示させる。
【００３５】
機械学習装置１００は、Ｗｅｂサーバ３１，３２，３３が提供するテキストおよび画像を用いて、テキストから画像を生成する生成モデルを学習するコンピュータである。機械学習装置１００は、サーバコンピュータでもよいし、ユーザが操作するクライアントコンピュータでもよい。機械学習装置１００は、Ｗｅｂサーバ３１，３２，３３からテキストおよび画像を収集するクローリング（スクレイピングと言うこともある）を行う。
【００３６】
すなわち、機械学習装置１００は、Ｗｅｂページ間のリンクを辿って、Ｗｅｂサーバ３１，３２，３３が提供するＷｅｂページのＵＲＬを収集する。機械学習装置１００は、ＵＲＬを含むＨＴＴＰリクエストをＷｅｂサーバ３１，３２，３３に送信し、テキストや画像を含むＨＴＴＰレスポンスをＷｅｂサーバ３１，３２，３３から受信する。機械学習装置１００は、画像と当該画像に対応付けられたテキストのペアを抽出し、抽出したテキストと画像のペアを学習データとして蓄積する。画像に対応するテキストとしては、例えば、画像へのリンクの周辺に記載された説明文やタグを抽出する。
【００３７】
十分な学習データが蓄積されると、機械学習装置１００は、蓄積した学習データを用いて、テキストから画像を生成する生成モデルを学習する。生成モデルにはディープニューラルネットワークなどのデータ構造を利用できる。機械学習を、いわゆるディープラーニングとして行うこともできる。例えば、機械学習装置１００は、シナプス（エッジ）の重みなど生成モデルのパラメータを初期化し、学習データのテキストを生成モデルに入力する。機械学習装置１００は、生成モデルから出力される生成画像と学習データの正解画像との間の誤差を算出し、誤差が小さくなるようにパラメータを更新する。パラメータの更新を繰り返すことで、生成モデルの画像生成精度が向上する。
【００３８】
生成モデルが学習された後、機械学習装置１００は、学習データに含まれていない新規のテキストの入力をユーザから受け付ける。すると、機械学習装置１００は、新規テキストを生成モデルに入力して、新規テキストに対応する新規画像を生成する。なお、第２の実施の形態では、クローリングと機械学習と画像生成の全てを、機械学習装置１００が行っている。これに対して、クローリングと機械学習と画像生成を異なるコンピュータが行うようにすることも可能である。また、第２の実施の形態では、収集した学習データを利用して、新規画像を生成する生成モデルを学習している。これに対して、収集した学習データを利用して、画像に写った物体を認識する認識モデルを学習することも可能である。
【００３９】
図３は、機械学習装置のハードウェア例を示す図である。
機械学習装置１００は、バスに接続されたＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像インタフェース１０４、入力インタフェース１０５、媒体リーダ１０６および通信インタフェース１０７を有する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。Ｗｅｂサーバ３１，３２，３３も、機械学習装置１００と同様のハードウェアを有する。
【００４０】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、機械学習装置１００は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４１】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【００４２】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、機械学習装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【００４３】
画像インタフェース１０４は、ＣＰＵ１０１からの命令に従って、機械学習装置１００に接続された表示装置１１１に画像を出力する。表示装置１１１として、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。
【００４４】
入力インタフェース１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を受信する。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、機械学習装置１００に複数の種類の入力デバイスが接続されてもよい。
【００４５】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４６】
通信インタフェース１０７は、ネットワーク３０に接続され、ネットワーク３０を介してＷｅｂサーバ３１，３２，３３と通信を行う。通信インタフェース１０７は、スイッチやルータなどの有線通信装置に接続される有線インタフェースである。ただし、基地局やアクセスポイントなどの無線通信装置に接続される無線インタフェースであってもよい。
【００４７】
次に、機械学習に使用する学習データと生成モデルの入出力について説明する。
図４は、機械学習による画像生成の例を示す図である。
前述のように、機械学習装置１００は、テキストと画像のペアを多数収集する。テキストは、画像に写った物体を説明する説明文や画像に写った物体の属性を示すタグなどの文字列であり、１以上の単語を含む。画像はショッピングサイトで販売される商品の画像であってもよく、テキストは商品の説明文であってもよい。例えば、機械学習装置１００は、商品としての衣服の画像とその衣服の説明文であるテキストとを収集してもよい。
【００４８】
一例として、機械学習装置１００は、テキスト４１と画像４２のペアを取得する。画像４２は、衣服が写った画像である。テキスト４１は、画像４２の衣服のカラー、サイズ、素材などの特徴を説明した説明文である。また、機械学習装置１００は、テキスト４３と画像４４のペアを取得する。画像４４は、画像４２とは異なる衣服が写った画像である。テキスト４３は、画像４４の衣服のカラー、サイズ、素材などの特徴を説明した説明文であり、テキスト４１の説明文とは異なる。機械学習装置１００は、テキスト４１，４３などの複数のテキストと画像４２，４４などの複数の画像とを対応付けて収集する。
【００４９】
機械学習装置１００は、収集した複数のテキストおよび複数の画像を学習データとして用いて、機械学習により生成モデル４５を生成する。生成モデル４５は、テキストから画像を生成するモデルである。生成モデル４５は、例えば、Generative Adversarial Networkである。テキストに含まれる単語の情報が生成モデル４５に入力され、画像の画素データが生成モデル４５から出力される。単語から画像へのマッピングは、例えば、シナプスに対して重みが設定されたニューラルネットワークを通じて行われる。機械学習装置１００は、学習データに含まれるテキストを生成モデル４５の入力として使用し、学習データに含まれる画像を生成モデル４５の出力の正解を示す教師データとして使用する。機械学習装置１００は、生成モデル４５の出力が教師データである正解画像に近付くように、シナプスの重みなどの生成モデル４５のパラメータを学習する。
【００５０】
生成モデル４５が学習されると、機械学習装置１００は、学習データに含まれないテキスト４６を生成モデル４５に入力する。テキスト４６は、テキスト４１，４３と同様に、ある衣服のカラー、サイズ、素材などの特徴を説明した説明文である。ただし、テキスト４６の説明文は、画像が未取得の商品を説明するものであってもよく、実在しない仮想的な商品を説明するものであってもよい。テキスト４６は、ユーザが入力したものであってもよい。機械学習装置１００は、生成モデル４５とテキスト４６から画像４７を生成する。画像４７は、学習データに含まれない新規な画像であり、テキスト４６で説明された特徴をもつ衣服が写ったものである。画像４７の衣服は、学習データに含まれる何れの画像の衣服とも異なることがあり、実在しない仮想的な衣服であってもよい。
【００５１】
このように、機械学習装置１００は、画像とその画像に写った物体を説明するテキストとを収集し、収集した画像およびテキストを学習データとして使用して生成モデル４５を学習する。そして、機械学習装置１００は、ある物体を説明するテキストを生成モデル４５に入力することで、その物体が写った画像を人工的に生成する。生成モデル４５は、例えば、他者の著作権を侵害しない新規画像を用意する場合や、衣服の新たなコーディネートをユーザに提案する場合などに利用することができる。
【００５２】
ここで、学習データに含まれるノイズは、生成モデル４５の精度を低下させるおそれがある。学習データとしてＷｅｂサイトの画像とテキストを収集する第２の実施の形態では、学習データに含まれるノイズとしてＮｏｔＦｏｕｎｄ画像が挙げられる。ＮｏｔＦｏｕｎｄ画像は、本来の画像が存在しないことを示す代替画像である。
【００５３】
Ｗｅｂサーバ３１，３２，３３には、幾つかのテキストに対して本来の画像が存在しないことがあり得る。例えば、古い商品について、テキストは残っているものの画像がＷｅｂサーバ３１，３２，３３から削除されてしまっていることがある。また、新着商品について、テキストは用意されているものの画像がまだ用意されていないことがある。
【００５４】
本来の画像がＷｅｂサーバ３１，３２，３３に存在しない場合、１つのケースとして、機械学習装置１００による画像の取得がエラーになるケースが考えられる。これは、テキストを含むＨＴＭＬ（HyperText Markup Language）ファイルに画像ファイルへのリンクが記載されているものの、リンク先の画像ファイルが存在しない場合である。この場合、機械学習装置１００は、画像ファイルのＵＲＬを指定したＨＴＴＰリクエストに対して、エラーを示すＨＴＴＰレスポンスを受信することになる。その場合、機械学習装置１００は、取得不能の画像に対応するテキストを学習データとして採用しなければよい。
【００５５】
これに対して、他のケースとして、画像の取得がエラーにならないように、Ｗｅｂサーバ３１，３２，３３が本来の画像に代えてＮｏｔＦｏｕｎｄ画像を送信するケースが考えられる。これは、テキストを含むＨＴＭＬファイルに、本来の画像ファイルへのリンクに代えてＮｏｔＦｏｕｎｄ画像ファイルへのリンクを記載している場合である。この場合、機械学習装置１００は、エラーを検知することなく、あるテキストとＮｏｔＦｏｕｎｄ画像のペアをＷｅｂサーバ３１，３２，３３から受信することになる。よって、当該テキストとＮｏｔＦｏｕｎｄ画像のペアが学習データの中に含まれてしまう。
【００５６】
しかし、ＮｏｔＦｏｕｎｄ画像に対応付けられたテキストは、ＮｏｔＦｏｕｎｄ画像に写った物体を説明するものではなく、本来の画像に写った物体を説明するものである。生成モデル４５の学習はテキストと画像の対応関係を学習することであるため、学習データの中に含まれるＮｏｔＦｏｕｎｄ画像は機械学習にとってノイズとなる。その結果、学習データに含まれるＮｏｔＦｏｕｎｄ画像は、生成モデル４５の精度低下の原因となる。そこで、機械学習装置１００は、学習データの中からＮｏｔＦｏｕｎｄ画像を検出し、ＮｏｔＦｏｕｎｄ画像とそれに対応するテキストを除外して機械学習を行う。
【００５７】
図５は、ＮｏｔＦｏｕｎｄ画像の除去例を示す図である。
機械学習装置１００が収集する学習データには、画像４２，４４，４８，４９などの複数の画像が含まれる。画像４２，４４は、前述のように、衣服が写った画像である。画像４８，４９は、衣服が写った本来の画像が存在しないことを示す代替画像としてのＮｏｔＦｏｕｎｄ画像である。しかし、画像４８，４９に対応するテキストは、本来の画像に写った衣服を説明するテキストである。そこで、画像４８，４９とそれに対応するテキストのペアは、生成モデル４５の学習に使用しないことが好ましい。そこで、機械学習装置１００は、画像のフィルタリングを行う。機械学習装置１００は、画像４２，４４，４８，４９のうち画像４８，４９を除去し、画像４２，４４を機械学習に採用する。
【００５８】
ここで、ＮｏｔＦｏｕｎｄ画像に相当する画像には様々なものがある。異なるＷｅｂサイトが異なる種類のＮｏｔＦｏｕｎｄ画像を使用することがある。また、同じＷｅｂサイトが複数種類のＮｏｔＦｏｕｎｄ画像を使用することがある。ただし、ＮｏｔＦｏｕｎｄ画像は、本来の画像が存在しない旨を人間が認識できるように描かれた画像であるため、複数種類のＮｏｔＦｏｕｎｄ画像の間の類似性は比較的高いと考えられる。そこで、第２の実施の形態では、予めＮｏｔＦｏｕｎｄ画像のサンプルを幾つか用意しておく。機械学習装置１００は、学習データの中からサンプル画像に類似する画像を抽出し、類似する画像をＮｏｔＦｏｕｎｄ画像とみなして除去するようにする。
【００５９】
次に、機械学習装置１００の機能について説明する。
図６は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、クローラ１２１、学習データ記憶部１２２、サンプル画像記憶部１２３、画像フィルタ１２４、学習部１２５、モデル記憶部１２６および画像生成部１２７を有する。学習データ記憶部１２２、サンプル画像記憶部１２３およびモデル記憶部１２６は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。クローラ１２１、画像フィルタ１２４、学習部１２５および画像生成部１２７は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００６０】
クローラ１２１は、Ｗｅｂサイトのクローリングを行う。すなわち、クローラ１２１は、ネットワーク３０を介してＷｅｂサーバ３１，３２，３３などのＷｅｂサーバから、テキストと画像のペアを収集する。クローリングでは、クローラ１２１は、ＷｅｂページのＵＲＬを指定したＨＴＴＰリクエストを送信し、ＨＴＭＬファイルを含むＨＴＴＰレスポンスを受信する。ＨＴＭＬファイルに画像ファイルへのリンクが記載されている場合、クローラ１２１は、画像ファイルのＵＲＬを指定したＨＴＴＰリクエストを送信し、画像ファイルを含むＨＴＴＰレスポンスを受信する。クローラ１２１は、画像の周辺にあるテキストをＨＴＭＬファイルから抽出し、テキストと画像のペアを形成する。また、ＨＴＭＬファイルに他のＷｅｂページへのリンクが記載されている場合、クローラ１２１は、リンク先のＷｅｂページのＵＲＬを指定したＨＴＴＰリクエストを送信する。これを繰り返すことで、クローラ１２１は、様々なＷｅｂページからテキストと画像のペアを収集する。
【００６１】
学習データ記憶部１２２は、クローラ１２１が収集したテキストと画像のペアを、学習データとして記憶する。サンプル画像記憶部１２３は、ＮｏｔＦｏｕｎｄ画像のサンプルであるサンプル画像を記憶する。サンプル画像は予めユーザにより用意される。サンプル画像記憶部１２３に記憶されるサンプル画像は、できる限り互いに特徴の異なる複数のＮｏｔＦｏｕｎｄ画像である。複数のサンプル画像はそれぞれ、幾つかのＷｅｂサイトで使用されるＮｏｔＦｏｕｎｄ画像に類似する典型的なＮｏｔＦｏｕｎｄ画像であることが好ましい。サンプル画像としてのＮｏｔＦｏｕｎｄ画像は、実際に特定のＷｅｂサイトで使用されているものでもよいし、使用されてない仮想的なものでもよい。
【００６２】
画像フィルタ１２４は、学習データ記憶部１２２に記憶された学習データの中から、サンプル画像記憶部１２３に記憶された複数のサンプル画像の少なくとも１つに類似する収集画像を検出する。画像フィルタ１２４は、検出した収集画像をＮｏｔＦｏｕｎｄ画像であると判定し、検出した収集画像とそれに対応するテキストを学習データから除去する。画像フィルタ１２４は、除去せずに残ったテキストと画像を学習部１２５に提供する。収集画像とサンプル画像の間の類似度の判定については後述する。
【００６３】
学習部１２５は、画像フィルタ１２４から提供されるテキストと画像を用いて、テキストから画像を生成する生成モデル４５を学習する。生成モデル４５の学習では、ニューラルネットワークに含まれるシナプスの重みなど、生成モデル４５のパラメータが決定される。モデル記憶部１２６は、学習部１２５が学習した生成モデル４５の情報を記憶する。例えば、モデル記憶部１２６は、ニューラルネットワークに含まれるシナプスの重みなど、決定した生成モデル４５のパラメータを記憶する。
【００６４】
画像生成部１２７は、モデル記憶部１２６から生成モデル４５の情報を読み出す。画像生成部１２７は、ユーザから新規テキストの入力を受け付けると、生成モデル４５に新規テキストを入力し、生成モデル４５から出力される新規画像を取得する。画像生成部１２７は、新規テキストに対応して生成された新規画像をユーザに提示する。例えば、画像生成部１２７は、生成された新規画像を表示装置１１１に表示する。ただし、画像生成部１２７は、生成された新規画像をＨＤＤ１０３などのストレージ装置に保存してもよく、機械学習装置１００に接続された他の出力デバイスに出力してもよい。また、画像生成部１２７は、生成された新規画像を他のコンピュータに送信してもよい。
【００６５】
次に、収集した学習データの中からサンプル画像に類似する収集画像を検出する方法について説明する。画像フィルタ１２４は、各収集画像が、予め用意された複数のサンプル画像のうちの少なくとも１つに類似しているか否かを判定する。このとき、１つの収集画像の特徴と１つのサンプル画像の特徴とを一対一に対比する方法では、対比回数が膨大になり類似判定が非効率になる。そこで、画像フィルタ１２４は、複数のサンプル画像全体の特徴を示す統計情報を算出し、１つの収集画像の特徴と複数のサンプル画像全体の統計情報とを対比して、類似判定を効率化することとする。
【００６６】
ただし、単一の画像の特徴と画像集合の特徴とを対比する一対多の対比では、判定精度が低下することがあり、類似と非類似を分ける境界周辺では判定の信頼性が低くなるおそれがある。そこで、画像フィルタ１２４は、一対多の対比では類似か非類似かを明確に判定することが難しい一部の収集画像に対して、その収集画像の特徴と複数のサンプル画像それぞれの特徴とを対比する一対一の対比を補完的に実行する。このような一対多の対比である第一次分類と一対一の対比である第二次分類とを通じて、画像フィルタ１２４は、類似判定の効率と判定精度を両立させることができる。第一次分類では類似度の指標としてＦＩＤを使用し、第二次分類では類似度の指標としてｐＨａｓｈ値を使用する。
【００６７】
図７は、ＦＩＤ閾値の計算例を示す図である。
まず、画像フィルタ１２４は、学習データに適合するように、第一次分類に使用するＦＩＤ閾値を計算する。ＦＩＤ閾値の計算には、学習データに含まれる全ての収集画像ではなく一部の収集画像のみを使用する。学習データには、Ｍ枚（Ｍは正の整数）の収集画像が含まれている。Ｍは、例えば、数万枚程度である。画像フィルタ１２４は、学習データに含まれるＭ枚の収集画像の中から５００枚の収集画像（収集画像５１−１〜５１−５００）を抽出する。収集画像５１−１〜５１−５００は、Ｍ枚の収集画像の中からランダムに選択してもよい。なお、第２の実施の形態では、ＦＩＤ閾値の計算に用いる収集画像を５００枚に固定しているが、他の枚数としてもよいし、学習データに含まれる収集画像の枚数や用意したサンプル画像の枚数に応じて可変にしてもよい。
【００６８】
画像フィルタ１２４は、抽出した収集画像５１−１〜５１−５００それぞれのＦＩＤを計算する。ＦＩＤは、ある画像集合と別の画像集合の間の距離を示す指標である。ＦＩＤが小さいほど２つの画像集合の間の類似度が高いことを示し、ＦＩＤが大きいほど２つの画像集合の間の類似度が低いことを示す。サンプル画像記憶部１２３には、Ｎ枚（Ｎは正の整数）のサンプル画像（サンプル画像５２−１〜５２−Ｎ）が記憶されている。Ｎは、例えば、数枚から数十枚程度である。よって、ここで計算される各収集画像のＦＩＤは、当該１つの収集画像とサンプル画像５２−１〜５２−Ｎの間の距離を示す。
【００６９】
ＦＩＤの計算には、Inceptionモデルが使用される。Inceptionモデルは、学習済みの画像認識モデルとしての畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）である。Inceptionモデルは、著名な学習データを用いて学習された著名なモデルである。画像フィルタ１２４は、収集画像５１−１〜５１−５００それぞれをInceptionモデルに入力し、収集画像５１−１〜５１−５００に対応する特徴ベクトル５３−１〜５３−５００をInceptionモデルから読み出す。特徴ベクトル５３−１〜５３−５００は、例えば、Inceptionモデルの特定の中間層に含まれる複数のノードで計算される数値を列挙した多次元ベクトルである。同様に、画像フィルタ１２４は、サンプル画像５２−１〜５２−ＮそれぞれをInceptionモデルに入力し、サンプル画像５２−１〜５２−Ｎに対応する特徴ベクトル５４−１〜５４−ＮをInceptionモデルから読み出す。
【００７０】
画像フィルタ１２４は、各収集画像について特徴ベクトルの平均μｘと分散共分散行列Σｘを計算する。ある収集画像の平均μｘは、その収集画像に対応する特徴ベクトル自体である。各収集画像の分散共分散行列Σｘは、零行列である。また、画像フィルタ１２４は、Ｎ枚のサンプル画像の統計情報として、特徴ベクトル５４−１〜５４−Ｎの平均μｙと分散共分散行列Σｙを計算する。平均μｙは、特徴ベクトル５４−１〜５４−Ｎの各次元の数値を平均化したものである。分散共分散行列Σｙは、特徴ベクトル５４−１〜５４−Ｎの各次元の分散および異なる２つの次元の共分散を示す正方行列である。分散共分散行列Σｙのｉ行ｉ列（ｉは正の整数）はｉ番目の次元の分散を示し、ｉ行ｊ列（ｊはｉと異なる正の整数）はｉ番目の次元とｊ番目の次元の間の共分散を示す。
【００７１】
画像フィルタ１２４は、ある収集画像の平均μｘおよび分散共分散行列Σｘと、サンプル画像集合の平均μｙおよび分散共分散行列Σｙから、数式（１）のようにＦＩＤを計算する。数式（１）において、ｔｒ（・）は行列の対角和を示す行列演算子である。これにより、画像フィルタ１２４は、収集画像５１−１〜５１−５００に対応するＦＩＤ５５−１〜５５−５００を計算する。例えば、収集画像５１−１のＦＩＤ５５−１は「７４」、収集画像５１−２のＦＩＤ５５−２は「８７」、収集画像５１−３のＦＩＤ５５−３は「１２１」、収集画像５１−５００のＦＩＤ５５−５００は「１４０」である。
【００７２】
【数１】
2020098521.tif 000003
【００７３】
画像フィルタ１２４は、ＦＩＤ５５−１〜５５−５００を、ＦＩＤが小さい下位集合６１とＦＩＤが大きい上位集合６２の２つのクラスタに分類する。ＦＩＤ５５−１〜５５−５００のクラスタリングは、ＦＩＤ５５−１〜５５−５００の分布をできる限り明確に２つの塊に分割するものであり、下位集合６１に属するＦＩＤの個数と上位集合６２に属するＦＩＤの個数の間に偏りがあってもよい。ＦＩＤ５５−１〜５５−５００のクラスタリングには、例えば、k-means法（ｋ平均法）を使用する。
【００７４】
k-means法では、画像フィルタ１２４は、まずＦＩＤ５５−１〜５５−５００をランダムに２つのクラスタ（クラスタＣ１，Ｃ２）に割り振る。画像フィルタ１２４は、クラスタＣ１に属するＦＩＤの平均Ｖ１と、クラスタＣ２に属するＦＩＤの平均Ｖ２を計算する。画像フィルタ１２４は、ＦＩＤ５５−１〜５５−５００それぞれと平均Ｖ１との間の距離（差）を計算し、ＦＩＤ５５−１〜５５−５００それぞれと平均Ｖ２との間の距離（差）を計算する。画像フィルタ１２４は、ＦＩＤ５５−１〜５５−５００それぞれが、距離の小さい方のクラスタに属するように割り振りをし直す。画像フィルタ１２４は、割り振りが収束するまで、平均Ｖ１，Ｖ２の計算と再割り振りを繰り返す。小さいＦＩＤのクラスタが下位集合６１に相当し、大きいＦＩＤのクラスタが上位集合６２に相当する。
【００７５】
例えば、下位集合６１は、収集画像５１−１のＦＩＤ５５−１「７４」や、収集画像５１−２のＦＩＤ５５−２「８７」を含む。上位集合６２は、収集画像５１−３のＦＩＤ５５−３「１２１」や、収集画像５１−５００のＦＩＤ５５−５００「１４０」を含む。
【００７６】
画像フィルタ１２４は、下位集合６１および上位集合６２に基づいて、ＦＩＤ閾値７１を決定する。ＦＩＤ閾値７１は、下位集合６１と上位集合６２の何れからも同程度に離れているＦＩＤである。例えば、画像フィルタ１２４は、下位集合６１に属するＦＩＤの平均と、上位集合６２に属するＦＩＤの平均を計算する。画像フィルタ１２４は、下位集合６１の平均と上位集合６２の平均の中間値をＦＩＤ閾値７１とする。例えば、ＦＩＤ閾値７１は「９７」である。適切なＦＩＤ閾値は学習データに応じて変わり得る。
【００７７】
図８は、ＦＩＤ分布とＦＩＤ閾値の例を示すグラフである。
収集画像５１−１〜５１−５００に対応するＦＩＤ５５−１〜５５−５００は、図８のグラフのように分布する。下位集合平均７２は、下位集合６１に属するＦＩＤの平均である。上位集合平均７３は、上位集合６２に属するＦＩＤの平均である。ＦＩＤ閾値７１は、下位集合平均７２と上位集合平均７３の間に存在するＦＩＤであって、下位集合６１と上位集合６２の両方から最も離れたＦＩＤである。よって、ＦＩＤ閾値７１は、下位集合平均７２と上位集合平均７３の平均、すなわち、両者の中間のＦＩＤである。
【００７８】
図９は、収集画像の第一次分類例を示す図である。
ＦＩＤ閾値７１が決定されると、画像フィルタ１２４は、学習データに含まれる全ての収集画像であるＭ枚の収集画像（収集画像５１−１〜５１−Ｍ）について、ＦＩＤを用いた第一次分類を行う。画像フィルタ１２４は、５００枚の収集画像の場合と同様に、収集画像５１−１〜５１−ＭのＦＩＤ５５−１〜５５−Ｍを計算する。
【００７９】
すなわち、画像フィルタ１２４は、収集画像５１−１〜５１−ＭそれぞれをInceptionモデルに入力して、Ｍ個の特徴ベクトル（特徴ベクトル５３−１〜５３−Ｍ）を生成する。画像フィルタ１２４は、前述のサンプル画像５２−１〜５２−Ｎの統計情報と特徴ベクトル５３−１〜５３−Ｍから、数式（１）に従ってＦＩＤ５５−１〜５５−Ｍを計算する。サンプル画像５２−１〜５２−Ｎの統計情報は、ＦＩＤ閾値７１を決定する際に計算したものを流用してよい。また、ＦＩＤ５５−１〜５５−５００は計算済みのものを流用してもよく、特徴ベクトル５３−１〜５３−５００の計算は省略してもよい。
【００８０】
例えば、収集画像５１−１のＦＩＤ５５−１は「７４」、収集画像５１−２のＦＩＤ５５−２は「８７」、収集画像５１−３のＦＩＤ５５−３は「１２１」、収集画像５１−５００のＦＩＤ５５−５００は「１４０」である。また、収集画像５１−５０１のＦＩＤ５５−５０１は「１００」、収集画像５１−ＭのＦＩＤ５５−Ｍは「５８」である。
【００８１】
画像フィルタ１２４は、ＦＩＤ５５−１〜５５−ＭそれぞれとＦＩＤ閾値７１とを比較して、ＦＩＤ５５−１〜５５−Ｍを下位集合６３と上位集合６４に分類する。下位集合６３は、ＦＩＤ閾値７１以下のＦＩＤの集合である。上位集合６４は、ＦＩＤ閾値７１より大きいＦＩＤの集合である。例えば、下位集合６３は、収集画像５１−ＭのＦＩＤ５５−Ｍ「５８」、収集画像５１−１のＦＩＤ５５−１「７４」、収集画像５１−２のＦＩＤ５５−２「８７」などを含む。上位集合６４は、収集画像５１−５０１のＦＩＤ５５−５０１「１００」、収集画像５１−３のＦＩＤ５５−３「１２１」、収集画像５１−５００のＦＩＤ５５−５００「１４０」などを含む。
【００８２】
画像フィルタ１２４は、下位集合６３と上位集合６４の分類結果に基づいて、識別困難ＦＩＤ範囲を決定する。識別困難ＦＩＤ範囲は、ＦＩＤ閾値７１の周辺のＦＩＤ範囲である。識別困難ＦＩＤ範囲は、ＦＩＤだけでは類似判定の信頼性が低い収集画像の集合を表している。ＦＩＤは統計情報を利用した簡易的な指標であることから、ＦＩＤ閾値７１から離れたＦＩＤをもつ収集画像については類似判定の信頼性が高い一方、ＦＩＤ閾値７１の周辺のＦＩＤをもつ収集画像については類似判定の信頼性が低いと考えられる。ただし、ＦＩＤの分布はサンプル画像の枚数Ｎにも依存することから、識別困難ＦＩＤ範囲は、下位集合６３および上位集合６４の分布に基づいて個別に決定することが好ましい。
【００８３】
そこで、第２の実施の形態では、画像フィルタ１２４は、下位集合６３に属するＦＩＤのうちの上位ａ％（ａは正の実数であり、例えば、５％などとする）と、上位集合６４に属するＦＩＤのうちの下位ａ％とを特定する。画像フィルタ１２４は、ＦＩＤ閾値７１を含み、下位集合６３の上位ａ％と上位集合６４の下位ａ％とを包含するＦＩＤ範囲を識別困難ＦＩＤ範囲に決定する。識別困難ＦＩＤ範囲の下限は、下位集合６３に属するＦＩＤのうち大きい方からａ％に位置するＦＩＤである。識別困難ＦＩＤ範囲の上限は、上位集合６４に属するＦＩＤのうち小さい方からａ％に位置するＦＩＤである。
【００８４】
画像フィルタ１２４は、第一次分類の結果として、収集画像５１−１〜５１−Ｍを除外集合６５、識別困難集合６６および採用集合６７に分類する。除外集合６５は、サンプル画像の少なくとも１つに類似すると判定した収集画像の集合である。除外集合６５に属する収集画像は機械学習に使用されない。識別困難集合６６は、ＦＩＤだけではサンプル画像の少なくとも１つに類似するか否か判定することが難しい収集画像の集合である。識別困難集合６６に属する収集画像に対しては、ｐＨａｓｈ値による第二次分類が行われる。採用集合６７は、何れのサンプル画像にも類似しないと判定した収集画像の集合である。採用集合６７に属する収集画像は機械学習に使用される。
【００８５】
画像フィルタ１２４は、下位集合６３から識別困難ＦＩＤ範囲に属するＦＩＤを抽出し、抽出したＦＩＤに対応する収集画像を識別困難集合６６に分類する。同様に、画像フィルタ１２４は、上位集合６４から識別困難ＦＩＤ範囲に属するＦＩＤを抽出し、抽出したＦＩＤに対応する収集画像を識別困難集合６６に分類する。また、画像フィルタ１２４は、下位集合６３から識別困難ＦＩＤ範囲に属さないＦＩＤ（ＦＩＤ閾値７１の周辺ではなくＦＩＤ閾値７１より小さいＦＩＤ）を抽出し、抽出したＦＩＤに対応する収集画像を除外集合６５に分類する。また、画像フィルタ１２４は、上位集合６４から識別困難ＦＩＤ範囲に属さないＦＩＤ（ＦＩＤ閾値７１の周辺ではなくＦＩＤ閾値７１より大きいＦＩＤ）を抽出し、抽出したＦＩＤに対応する収集画像を採用集合６７に分類する。
【００８６】
例えば、除外集合６５は、ＦＩＤ５５−Ｍ「５８」をもつ収集画像５１−Ｍ、ＦＩＤ５５−１「７４」をもつ収集画像５１−１などを含む。識別困難集合６６は、ＦＩＤ５５−２「８７」をもつ収集画像５１−２、ＦＩＤ５５−５０１「１００」をもつ収集画像５１−５０１などを含む。採用集合６７は、ＦＩＤ５５−３「１２１」をもつ収集画像５１−３、ＦＩＤ５５−５００「１４０」をもつ収集画像５１−５００などを含む。
【００８７】
図１０は、ＦＩＤ分布と３つの集合の例を示すグラフである。
収集画像５１−１〜５１−Ｍに対応するＦＩＤ５５−１〜５５−Ｍは、図１０のグラフのように分布する。下位集合６３からは、下位集合６３の上位ａ％に位置するＦＩＤ７４が計算される。上位集合６４からは、上位集合６４の下位ａ％に位置するＦＩＤ７５が計算される。除外集合６５に属する収集画像は、ＦＩＤ７４より小さいＦＩＤをもつ収集画像である。識別困難集合６６に属する収集画像は、ＦＩＤ７４からＦＩＤ７５までの識別困難ＦＩＤ範囲に属するＦＩＤをもつ収集画像である。採用集合６７に属する収集画像は、ＦＩＤ７５より大きいＦＩＤをもつ収集画像である。
【００８８】
図１１は、収集画像の第二次分類例を示す図である。
第一次分類の後、画像フィルタ１２４は、識別困難集合６６に属する収集画像について、ｐＨａｓｈ値を用いた第二次分類を行う。第二次分類によって、識別困難集合６６に属する収集画像も最終的に除外集合６５および採用集合６７に振り分けられる。
【００８９】
画像フィルタ１２４は、識別困難集合６６に属する収集画像それぞれに対してｐＨａｓｈ値を算出する。ｐＨａｓｈは、１枚の画像から６４ビットのハッシュ値を出力するハッシュ関数であり、類似する画像からは類似するハッシュ値を出力する性質をもつ。第２の実施の形態で言うｐＨａｓｈは、Perceptual Hashであればよい。Perceptual Hashには、ａＨａｓｈ，ｄＨａｓｈ，ｗＨａｓｈなどと言われるものもある。
【００９０】
ｐＨａｓｈ値の計算では、画像フィルタ１２４は、収集画像を所定サイズに縮小し、グレースケール化して各画素の輝度値を抽出する。画像フィルタ１２４は、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）によりグレースケール画像を周波数成分に変換する。そして、画像フィルタ１２４は、離散コサイン変換の変換結果のうちの低周波成分から６４ビットのｐＨａｓｈ値を計算する。低周波成分を使用するため、類似する収集画像からは類似するｐＨａｓｈ値が計算される。
【００９１】
例えば、収集画像５１−２からｐＨａｓｈ値５６−２が計算され、収集画像５１−５０１からｐＨａｓｈ値５６−５０１が計算される。同様にして、画像フィルタ１２４は、サンプル画像５２−１〜５２−Ｎに対応するｐＨａｓｈ値５７−１〜５７−Ｎを計算する。
【００９２】
画像フィルタ１２４は、識別困難集合６６に属する収集画像それぞれに対してハミング距離を計算する。ハミング距離の計算では、画像フィルタ１２４は、ある収集画像のｐＨａｓｈ値とサンプル画像５２−１〜５２−ＮのｐＨａｓｈ値５７−１〜５７−Ｎそれぞれとを比較して、ハミング距離を計算する。ハミング距離は、同じ長さの２つのビット列の間で値が異なるビットの個数である。ｐＨａｓｈ値は６４ビットのビット列であるため、ハミング距離は０以上６４以下の整数である。画像フィルタ１２４は、ある収集画像に対して、Ｎ個のサンプル画像との間で計算したＮ個のハミング距離のうち最小のハミング距離を採用する。これは、サンプル画像５２−１〜５２−Ｎのうち当該収集画像に最も類似するサンプル画像を選択して類似度を判定することを意味する。
【００９３】
ある収集画像のハミング距離が小さいことは、サンプル画像５２−１〜５２−Ｎの中に当該収集画像に類似するサンプル画像が存在することを意味する。ある収集画像のハミング距離が大きいことは、サンプル画像５２−１〜５２−Ｎの中に当該収集画像に類似するサンプル画像が存在しないことを意味する。例えば、収集画像５１−２のハミング距離５８−２が「３１」、収集画像５１−５０１のハミング距離５８−５０１が「８」である。
【００９４】
画像フィルタ１２４は、識別困難集合６６に属する収集画像それぞれのハミング距離と所定の閾値とを比較する。ここで計算されるハミング距離は０以上６４以下の整数であるため、ハミング距離の閾値は０より大きく６４より小さい整数である。例えば、ハミング距離の閾値を「２０」とする。画像フィルタ１２４は、閾値以下のハミング距離をもつ収集画像を識別困難集合６６から除外集合６５に移動させる。また、画像フィルタ１２４は、閾値より大きいハミング距離をもつ収集画像を識別困難集合６６から採用集合６７に移動させる。これにより、全ての収集画像が除外集合６５と採用集合６７に分類される。
【００９５】
例えば、ハミング距離５８−２「３１」をもつ収集画像５１−２が識別困難集合６６から採用集合６７に移動し、ハミング距離５８−５０１「８」をもつ収集画像５１−５０１が識別困難集合６６から除外集合６５に移動する。ＦＩＤのみに基づいて収集画像５１−２，５１−５０１を分類した場合、収集画像５１−２は除外集合６５に分類され、収集画像５１−５０１は採用集合６７に分類されていたことになる。よって、ＦＩＤ閾値７１の周辺のＦＩＤをもつ収集画像については、収集画像とサンプル画像を一対一に対比する他の指標に基づいて判定することで、分類精度を向上させることができる。
【００９６】
図１２は、フィルタリング管理テーブルの例を示す図である。
上記の収集画像５１−１〜５１−Ｍのフィルタリングにあたり、画像フィルタ１２４はフィルタリング管理テーブル１２８を使用する。フィルタリング管理テーブル１２８は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域に記憶される。
【００９７】
フィルタリング管理テーブル１２８は、画像ＩＤ、特徴ベクトル、ＦＩＤ、ｐＨａｓｈ値、ハミング距離および除外フラグの項目を含む。画像ＩＤは、収集画像５１−１〜５１−Ｍを識別する識別子である。特徴ベクトルは、収集画像５１−１〜５１−Ｍそれぞれに対してInceptionモデルにより計算される多次元数値ベクトルである。ＦＩＤは、収集画像５１−１〜５１−Ｍそれぞれに対して特徴ベクトルから計算されるスカラ値である。
【００９８】
ｐＨａｓｈ値は、識別困難集合６６に属する各収集画像に対して計算される６４ビットのビット列である。ハミング距離は、識別困難集合６６に属する各収集画像に対してｐＨａｓｈ値から計算される整数である。ＦＩＤに基づいて除外集合６５または採用集合６７に分類された収集画像については、ｐＨａｓｈ値およびハミング距離を計算しなくてよい。除外フラグは、学習データから除外される収集画像であるか否かを示す。学習データから除外される収集画像は、ＮｏｔＦｏｕｎｄ画像と判定された収集画像であり、機械学習に使用されない。最終的に除外集合６５に分類された収集画像は、除外フラグがＹＥＳになり、最終的に採用集合６７に分類された収集画像は、除外フラグがＮＯになる。
【００９９】
次に、機械学習装置１００の処理手順について説明する。
図１３は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）クローラ１２１は、Ｗｅｂサーバ３１，３２，３３から画像とテキストのペアを収集し、学習データとして学習データ記憶部１２２に格納する。
【０１００】
（Ｓ１１）画像フィルタ１２４は、学習データ記憶部１２２に記憶されたＭ枚の収集画像の中から５００枚の収集画像を選択する。
（Ｓ１２）画像フィルタ１２４は、Inceptionモデルを用いて、サンプル画像記憶部１２３に記憶されたＮ枚のサンプル画像それぞれの特徴ベクトルを算出する。
【０１０１】
（Ｓ１３）画像フィルタ１２４は、ステップＳ１２で算出したＮ枚のサンプル画像に対応するＮ個の特徴ベクトルから、それら特徴ベクトルの統計情報を算出する。統計情報は、例えば、それら特徴ベクトルの平均と分散共分散行列とを含む。
【０１０２】
（Ｓ１４）画像フィルタ１２４は、Inceptionモデルを用いて、ステップＳ１１で選択した５００枚の収集画像それぞれの特徴ベクトルを算出する。
（Ｓ１５）画像フィルタ１２４は、ステップＳ１３の統計情報とステップＳ１４の特徴ベクトルとに基づいて、５００枚の収集画像それぞれのＦＩＤを算出する。
【０１０３】
（Ｓ１６）画像フィルタ１２４は、ステップＳ１５で算出した５００個のＦＩＤを、k-means法などのクラスタリング方法により下位集合６１と上位集合６２に分類する。
（Ｓ１７）画像フィルタ１２４は、ステップＳ１６で分類された下位集合６１と上位集合６２に基づいてＦＩＤ閾値７１を決定する。例えば、画像フィルタ１２４は、下位集合６１に属するＦＩＤの平均である下位集合平均７２と、上位集合６２に属するＦＩＤの平均である上位集合平均７３を算出する。画像フィルタ１２４は、下位集合平均７２と上位集合平均７３の中間のＦＩＤをＦＩＤ閾値７１とする。
【０１０４】
（Ｓ１８）画像フィルタ１２４は、学習データ記憶部１２２に記憶されたＭ枚の収集画像のうちステップＳ１１で選択されなかった他の収集画像について、Inceptionモデルを用いて、それら他の収集画像それぞれの特徴ベクトルを算出する。
【０１０５】
（Ｓ１９）画像フィルタ１２４は、ステップＳ１３の統計情報とステップＳ１８の特徴ベクトルとに基づいて、他の収集画像それぞれのＦＩＤを算出する。
（Ｓ２０）画像フィルタ１２４は、ステップＳ１７で決定したＦＩＤ閾値７１を用いて、ステップＳ１５，Ｓ１９で算出されたＭ個のＦＩＤを下位集合６３と上位集合６４に分類する。下位集合６３に属するＦＩＤは、ＦＩＤ閾値７１以下のＦＩＤである。上位集合６４に属するＦＩＤは、ＦＩＤ閾値７１より大きいＦＩＤである。
【０１０６】
（Ｓ２１）画像フィルタ１２４は、ステップＳ２０で分類された下位集合６３と上位集合６４に基づいて識別困難ＦＩＤ範囲を決定する。識別困難ＦＩＤ範囲は、ＦＩＤ閾値７１の周辺であると言えるＦＩＤ範囲である。例えば、画像フィルタ１２４は、下位集合６３の上位ａ％と上位集合６４の下位ａ％のカバー範囲を識別困難ＦＩＤ範囲とする。
【０１０７】
図１４は、機械学習の手順例を示すフローチャート（続き）である。
（Ｓ２２）画像フィルタ１２４は、サンプル画像記憶部１２３に記憶されたＮ枚のサンプル画像それぞれのｐＨａｓｈ値を算出する。
【０１０８】
（Ｓ２３）画像フィルタ１２４は、Ｍ枚の収集画像のうちの１つを選択する。
（Ｓ２４）画像フィルタ１２４は、選択した収集画像のＦＩＤが、ステップＳ２１で決定した識別困難ＦＩＤ範囲に属するか判断する。識別困難ＦＩＤ範囲に属する場合はステップＳ２６に進み、属さない場合はステップＳ２５に進む。
【０１０９】
（Ｓ２５）画像フィルタ１２４は、選択した収集画像のＦＩＤが下位集合６３に属するか判断する。下位集合６３に属する場合はステップＳ２９に進む。下位集合６３に属さない場合、すなわち、上位集合６４に属する場合はステップＳ３０に進む。その場合、選択した収集画像は採用集合６７に分類されることになる。
【０１１０】
（Ｓ２６）画像フィルタ１２４は、選択した収集画像のｐＨａｓｈ値を算出する。
（Ｓ２７）画像フィルタ１２４は、ステップＳ２２で算出したＮ個のｐＨａｓｈ値それぞれとステップＳ２６のｐＨａｓｈ値との間のハミング距離を算出する。画像フィルタ１２４は、算出したＮ個のハミング距離のうちの最小のハミング距離を選択する。
【０１１１】
（Ｓ２８）画像フィルタ１２４は、ステップＳ２７で算出した最小のハミング距離が、所定の閾値以下であるか判断する。ハミング距離が閾値以下である場合はステップＳ２９に進む。ハミング距離が閾値より大きい場合はステップＳ３０に進む。その場合、選択した収集画像は採用集合６７に分類されることになる。
【０１１２】
（Ｓ２９）画像フィルタ１２４は、選択した収集画像を除外集合６５に分類する。
（Ｓ３０）画像フィルタ１２４は、ステップＳ２３においてＭ枚の収集画像の全てを選択したか判断する。全ての収集画像を選択した場合はステップＳ３１に進み、未選択の収集画像がある場合はステップＳ２３に進む。
【０１１３】
（Ｓ３１）画像フィルタ１２４は、学習データ記憶部１２２に記憶された学習データから、除外集合６５に属する画像とそれに対応するテキストを除外し、採用集合６７に属する画像とそれに対応するテキストを抽出する。
【０１１４】
（Ｓ３２）学習部１２５は、ステップＳ３１で抽出された画像とテキストのペアを用いて、機械学習により生成モデル４５を学習する。
第２の実施の形態の機械学習装置１００によれば、多数の収集画像の中からＮｏｔＦｏｕｎｄ画像が取り除かれて機械学習に使用される。よって、学習される生成モデルの精度を向上させることができる。また、予めＮｏｔＦｏｕｎｄ画像のサンプルを幾つか用意しておくことで、収集画像の中からＮｏｔＦｏｕｎｄ画像を検出することが可能となる。
【０１１５】
また、ＮｏｔＦｏｕｎｄ画像の検出では、ＦＩＤを類似度の指標として用いた第一次分類が行われ、ＦＩＤによる判定の信頼性が低い収集画像について、ｐＨａｓｈ値を類似度の指標として用いた第二次分類が行われる。第一次分類では、１つの収集画像の特徴ベクトルと複数のサンプル画像の統計情報とを対比する一対多の対比が行われる。よって、ＮｏｔＦｏｕｎｄ画像である可能性が著しく高い収集画像やＮｏｔＦｏｕｎｄ画像である可能性が著しく低い収集画像を、効率的に判定することができる。また、第二次分類では、１つの収集画像のｐＨａｓｈ値と１つのサンプル画像のｐＨａｓｈ値とを対比する一対一の対比が行われる。よって、ＦＩＤではＮｏｔＦｏｕｎｄ画像であるか否か判定が難しい収集画像について、判定精度を向上させることができる。
【符号の説明】
【０１１６】
１０  情報処理装置
１１  記憶部
１２  処理部
１３ａ，１３ｂ  サンプルデータ
１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆ  対象データ
１５  統計情報
１６ａ，１６ｂ，１６ｃ，１６ｄ，１６ｅ，１６ｆ，１６ｇ，１６ｈ  評価値
１７ａ，１７ｂ，１７ｃ，１７ｄ，１７ｅ  範囲
【図１】
2020098521.tif 000004
【図２】
2020098521.tif 000005
【図３】
2020098521.tif 000006
【図４】
2020098521.tif 000007
【図５】
2020098521.tif 000008
【図６】
2020098521.tif 000009
【図７】
2020098521.tif 000010
【図８】
2020098521.tif 000011
【図９】
2020098521.tif 000012
【図１０】
2020098521.tif 000013
【図１１】
2020098521.tif 000014
【図１２】
2020098521.tif 000015
【図１３】
2020098521.tif 000016
【図１４】
2020098521.tif 000017