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

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

▶ 株式会社日立製作所の特許一覧

特開2023-183578計算機システム及びトリプレットの生成方法
<>
  • 特開-計算機システム及びトリプレットの生成方法 図1
  • 特開-計算機システム及びトリプレットの生成方法 図2
  • 特開-計算機システム及びトリプレットの生成方法 図3
  • 特開-計算機システム及びトリプレットの生成方法 図4
  • 特開-計算機システム及びトリプレットの生成方法 図5
  • 特開-計算機システム及びトリプレットの生成方法 図6
  • 特開-計算機システム及びトリプレットの生成方法 図7
  • 特開-計算機システム及びトリプレットの生成方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183578
(43)【公開日】2023-12-28
(54)【発明の名称】計算機システム及びトリプレットの生成方法
(51)【国際特許分類】
   G06N 3/08 20230101AFI20231221BHJP
   G06N 20/00 20190101ALI20231221BHJP
【FI】
G06N3/08
G06N20/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022097163
(22)【出願日】2022-06-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】廣池 敦
(57)【要約】      (修正有)
【課題】マルチラベルのデータのトリプレット(triplet)を生成する。
【解決手段】計算機システムは、複数の入力データを取得し、一つの入力データをクエリ入力データとして選択し、クエリ入力データと類似する入力データである類似入力データを検索する検索処理を実行し、検索処理の結果に基づいて、複数のラベルの各々の出現頻度を分析し、分析の結果に基づいて、複数のラベルの各々について、ラベル及び入力データの特性の関係の程度を評価する指標を算出し、指標に基づいて、クエリ入力データに付与される複数のラベルと、類似入力データに付与される複数のラベルとの間の類似の程度を表すラベル類似度を算出し、複数の類似入力データの各々のラベル類似度の差に基づいて、負事例及び正事例となる類似入力データを選択し、トリプレットを生成する。
【選択図】図5
【特許請求の範囲】
【請求項1】
少なくとも一つの計算機を有する計算機システムであって、
複数のラベルが付与された入力データの特徴量ベクトルを算出するモデルの情報を保持し、
複数の前記入力データを取得し、
一つの前記入力データをクエリ入力データとして選択し、前記特徴量ベクトルに基づいて、前記クエリ入力データと類似する前記入力データである類似入力データを検索する検索処理を実行し、
前記検索処理の結果に基づいて、前記複数のラベルの各々の出現頻度を分析し、
前記分析の結果に基づいて、前記複数のラベルの各々について、前記ラベル及び前記入力データの特性の関係の程度を評価する指標を算出し、
前記指標に基づいて、前記クエリ入力データに付与される前記複数のラベルと、前記類似入力データに付与される前記複数のラベルとの間の類似の程度を表すラベル類似度を算出し、
複数の前記類似入力データの各々の前記ラベル類似度の差に基づいて、負事例となる前記類似入力データ及び正事例となる前記類似入力データを選択し、
前記クエリ入力データ、及び選択された二つの前記類似入力データから構成されるトリプレットを生成することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
複数の前記トリプレットを構成する前記類似入力データの前記ラベル類似度の差が大きい順に、所定の数の前記トリプレットを選択し、
選択された前記トリプレットを出力することを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
前記トリプレットを用いてモデルを更新するための学習処理を実行し、
前記複数のラベルの前記指標の平均値が増大しなくなるまで、前記トリプレットの生成及び前記学習処理を繰り返し実行することを特徴とする計算機システム。
【請求項4】
計算機システムが実行するトリプレットの生成方法であって、
前記計算機システムは、
少なくとも一つの計算機を有し、
複数のラベルが付与された入力データの特徴量ベクトルを算出するモデルの情報を保持し、
前記トリプレットの生成方法は、
前記少なくとも一つの計算機が、複数の前記入力データを取得する第1のステップと、
前記少なくとも一つの計算機が、一つの前記入力データをクエリ入力データとして選択し、前記特徴量ベクトルに基づいて、前記クエリ入力データと類似する前記入力データである類似入力データを検索する検索処理を実行する第2のステップと、
前記少なくとも一つの計算機が、前記検索処理の結果に基づいて、前記複数のラベルの各々の出現頻度を分析し、前記分析の結果に基づいて、前記複数のラベルの各々について、前記ラベル及び前記入力データの特性の関係の程度を評価する指標を算出する第3のステップと、
前記少なくとも一つの計算機が、前記指標に基づいて、前記クエリ入力データに付与される前記複数のラベルと、前記類似入力データに付与される前記複数のラベルとの間の類似の程度を表すラベル類似度を算出する第4のステップと、
前記少なくとも一つの計算機が、複数の前記類似入力データの各々の前記ラベル類似度の差に基づいて、負事例となる前記類似入力データ及び正事例となる前記類似入力データを選択する第5のステップと、
前記少なくとも一つの計算機が、前記クエリ入力データ、及び選択された二つの前記類似入力データから構成されるトリプレットを生成する第6のステップと、を含むことを特徴とするトリプレットの生成方法。
【請求項5】
請求項4に記載のトリプレットの生成方法であって、
前記少なくとも一つの計算機が、複数の前記トリプレットを構成する前記類似入力データの前記ラベル類似度の差が大きい順に、所定の数の前記トリプレットを選択するステップと、
前記少なくとも一つの計算機が、選択された前記トリプレットを出力するステップと、を含むことを特徴とするトリプレットの生成方法。
【請求項6】
請求項4に記載のトリプレットの生成方法であって、
前記少なくとも一つの計算機が、前記トリプレットを用いてモデルを更新するための学習処理を実行する第7のステップを含み、
前記複数のラベルの前記指標の平均値が増大しなくなるまで、前記第2のステップから前記第7のステップが繰り返し実行されることを特徴とするトリプレットの生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、tripletネットワークに用いる学習データの生成技術に関する。
【背景技術】
【0002】
深層型ニューラルネットワークの学習方式の一つにtriplet(トリプレット)ネットワークがある。tripletネットワークでは、同一のラベルが付与されたデータ間では距離が小さく、異なるラベルを持つデータ間では距離が大きくなるような特徴量ベクトルを出力するモデル(例えば、ニューラルネットワーク)が学習される。
【0003】
図8は、従来のtripletネットワークの学習の概念を示す図である。tripletネットワークでは、基準となるデータ(アンカ)801と、アンカ801と同一のラベルが付与されたデータ(正事例)802と、アンカ801と異なるラベルが付与されたデータ(負事例)803とから構成されるtriplet800を用いて学習が行われる。triplet800を構成する各データ801、802、803は、同一の重みを持つニューラルネットワーク810に入力される。ニューラルネットワーク810は、各データ801、802、803に対応した特徴量ベクトル820を出力する。一つのtriplet800について、特徴量ベクトル820を用いて、アンカ801及び正事例802の間の距離Dと、アンカ801及び負事例803の間の距離Dとが算出される。複数のtriplet800の距離D及び距離Dの差の合計値を、学習の目的関数であるloss関数として用いてニューラルネットワーク810の学習が行われる。
【0004】
例えば、非特許文献1には、tripletネットワークを用いて、顔画像による個人認証を行うための特徴量を学習する技術が記載されている。
【0005】
学習セットに対してtripletを構成するデータの組み合わせは無数に存在する。そのため、効率的な学習に適したtripletを構築することが重要である。これに対して、非特許文献2には、類似ベクトル検索処理を用いて、効率的な学習を実現するtripletを生成する方法が記載されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Schroff, Florian, Dmitry Kalenichenko, James Philbin. "Facenet: A unified embedding for face recognition and clustering", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, (2015)
【非特許文献2】池浦 康充、岡本 光一、加嶋 亮平、廣池 敦:IoTデータ向けマルチモーダル深層学習基盤,日立評論,102-3,119-123(2020)
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来技術では、一つのデータに対して一つのラベルが付与されていることを前提としている。そのため、複数のラベルが付与されたデータ(マルチラベルのデータ)の場合、正事例及び負事例の関係を一義的には定義できない。
【0008】
また、データに付与されたラベルが、データの特性を適切に表現するものではない可能性もある。例えば、複数のユーザが、画像等のデータに対して検索用のキーワードを付与する場合を想定する。各ユーザが、各自の判断でキーワードを付与した場合、必ずしも、データの特性を表現しているものとは限らない。
【0009】
本発明は、マルチラベルのデータを扱うモデルに対して、tripletネットワークの学習に用いるtripletを生成するための技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つの計算機を有する計算機システムであって、複数のラベルが付与された入力データの特徴量ベクトルを算出するモデルの情報を保持し、複数の前記入力データを取得し、一つの前記入力データをクエリ入力データとして選択し、前記特徴量ベクトルに基づいて、前記クエリ入力データと類似する前記入力データである類似入力データを検索する検索処理を実行し、前記検索処理の結果に基づいて、前記複数のラベルの各々について、前記ラベルと、前記入力データの特性との間の関係性の程度を評価する指標を算出し、前記指標に基づいて、前記クエリ入力データに付与される前記複数のラベルと、前記類似入力データに付与される前記複数のラベルとの間の類似の程度を示すラベル類似度を算出し、複数の前記類似入力データの各々の前記ラベル類似度の差に基づいて、負事例となる前記類似入力データ及び正事例となる前記類似入力データを選択し、前記クエリ入力データ、及び選択された二つの前記類似入力データから構成されるトリプレットを生成する。
【発明の効果】
【0011】
本発明により、マルチラベルのデータを扱うモデルに対して、tripletネットワークの学習に用いるtripletを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
図1】実施例1の学習装置の機能構成の一例を示す図である。
図2】実施例1の学習装置のハードウェア構成の一例を示す図である。
図3】実施例1の学習データの生成処理の一例を示すフローチャートである。
図4】実施例1の学習装置が実行する学習処理の一例を示すフローチャートである。
図5】実施例1の学習装置が実行するtriplet生成処理の一例を示すフローチャートである。
図6】実施例1の学習装置が実行するtriplet生成処理の詳細を示す図である。
図7】実施例3の学習装置が実行するtriplet生成処理の一例を示すフローチャートである。
図8】従来のtripletネットワークの学習の概念を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0014】
実施例1では、複数の単語がラベルとして付与された画像データを扱うシステムを想定する。図1は、実施例1の学習装置の機能構成の一例を示す図である。図2は、実施例1の学習装置のハードウェア構成の一例を示す図である。
【0015】
学習装置100は、tripletネットワークを用いて、マルチラベルのデータの分類等に用いる特徴量ベクトルを出力するモデルを学習する。学習装置100は、図2に示すように、プロセッサ201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を有する。各ハードウェア要素はバスを介して互いに接続される。なお、学習装置100は、キーボード、マウス、及びタッチパネル等の入力装置を有してもよいし、ディスプレイ及びプリンタ等の出力装置を有してもよい。
【0016】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。
【0017】
主記憶装置202は、DRAM(Dynamic Random Access Memory)等の記憶装置であり、プロセッサ201が実行するプログラム及びプログラム使用するデータを格納する。主記憶装置202はワークエリアとしても用いられる。副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置であり、データを永続的に格納する。
【0018】
なお、主記憶装置202に格納されるプログラム及びデータは、副記憶装置203に格納されてもよい。この場合、プロセッサ201は、副記憶装置203からプログラム及びデータを読み出し、主記憶装置202にロードする。
【0019】
学習装置100は、推論部101、類似ベクトル検索部102、triplet生成部103、モデル更新部104、及びモデル保存部105を有する。また、学習装置100は、データセット110及びモデル情報120を保持する。
【0020】
データセット110は、複数の学習データ111から構成される。学習データ111は、画像及び複数のラベルを含む。
【0021】
モデル情報120は、画像の特徴量ベクトルを出力するモデルを管理するための情報である。モデルは、例えば、深層型ニューラルネットワークである。モデル情報120には、ネットワークの構造及び重み等に関する情報が格納される。学習開始時の深層型ニューラルネットワークの重みは、ランダムに設定されてもよいが、学習の効率化のために事前に任意の値が設定されているものとする。
【0022】
なお、データセット110及びモデル情報120は、予め、学習装置100に設定されてもよいし、外部から取得し、又は、ユーザが入力してもよい。
【0023】
推論部101は、モデル情報120にて定義されるモデルに、学習データ111に含まれる画像を入力することによって特徴量ベクトルを出力する。
【0024】
類似ベクトル検索部102は、特徴量空間において類似する特徴量ベクトルを検索する。
【0025】
triplet生成部103は、検索結果に基づいてアンカ、正事例、及び負事例となる画像(学習データ111)の組を選択することによってtripletを生成する。
【0026】
モデル更新部104は、tripletを用いてモデルの学習処理を実行し、モデルを更新する。なお、本発明は、tripletを用いた学習方法であればよい。
【0027】
モデル保存部105は、学習結果をモデル情報120に反映する。なお、モデル保存部105は、必要に応じて、学習結果を外部に出力してもよい。
【0028】
実施例1では、複数のラベルを含む学習データ111は予め用意されているものとしているが、画像及びテキストを含む文書データを用いて生成してもよい。
【0029】
なお、複数の計算機から構成される計算機システムを用いて、学習装置100が有する機能を実現してもよい。
【0030】
図3は、実施例1の学習データ111の生成処理の一例を示すフローチャートである。ここでは、学習装置100が、複数の文書データを受け付けて、以下の処理を実行するものとして説明する。ここで、文書データはテキスト及び一つ以上の画像を含む。テキストは複数の段落から構成され、画像には識別番号が付されているものとする。なお、以下の処理は一つの文書データに対して実行される処理である。
【0031】
学習装置100は、文書データに含まれる画像を選択する(ステップS101)。
【0032】
学習装置100は、各段落の文書を解析することによって、選択した画像の識別番号が含まれる段落を関連テキストとして抽出する(ステップS102)。学習装置100は、関連テキストが関連付けられた画像をワークエリアに格納する。例えば、HTML形式の文書データの場合、画像のリンクを示すタグを含むテキストが、関連テキストとして抽出される。
【0033】
学習装置100は、文書データに含まれる全ての画像について処理が完了したか否かを判定する(ステップS103)。
【0034】
文書データに含まれる全ての画像について処理が完了していない場合、学習装置100は、ステップS101に戻る。
【0035】
文書データに含まれる全ての画像について処理が完了した場合、学習装置100は、文書データに含まれる画像を選択し(ステップS104)、当該画像に関連付けられる関連テキストに対して形態素解析を行うことによって単語を抽出する(ステップS105)。
【0036】
学習装置100は、抽出された単語をラベルとして付与した画像を学習データ111として生成する(ステップS106)。
【0037】
学習装置100は、文書データに含まれる全ての画像について処理が完了したか否かを判定する(ステップS107)。
【0038】
文書データに含まれる全ての画像について処理が完了していない場合、学習装置100は、ステップS104に戻る。
【0039】
文書データに含まれる全ての画像について処理が完了した場合、学習装置100は学習データ生成処理を終了する。
【0040】
以上の処理によって、複数のラベル(単語)を含む学習データ111を生成することができる。ただし、画像に付与されるラベルの異なり数は膨大であり、単純なラベル推定課題とした扱うことは困難である。一方、マルチラベルの学習データを扱うtripletネットワークでは、ラベルの異なり数に関する製薬はないため、形式上扱うことはできる。ただし、前述の処理によって画像に付与されたラベルは、必ずしも画像の特性を表すものではない。
【0041】
実施例1では、画像の特性とラベルとの間の関連性を考慮したラベル類似度を導入し、tripletを構成する学習データ111を選択する。
【0042】
図4は、実施例1の学習装置100が実行する学習処理の一例を示すフローチャートである。
【0043】
推論部101は、モデル情報120を用いて、学習データ111の特徴量ベクトルを出力するための推論処理を実行する(ステップS201)。
【0044】
類似ベクトル検索部102は、特徴量ベクトルのクラスタリング処理を実行する(ステップS202)。クラスタリング処理では、特徴量空間において、特徴量ベクトルのクラスタが生成される。当該処理は、類似する特徴量ベクトルの検索を高速化するための前処理である。クラスタリング処理は必ずしも実行されてなくてもよい。
【0045】
triplet生成部103は、類似ベクトル検索部102と連携して、triplet生成処理を実行する(ステップS203)。triplet生成処理の詳細は後述する。
【0046】
triplet生成部103は、triplet生成処理において生成されたtripletの中から学習に使用するtripletを選択する(ステップS204)。tripletの選択基準については後述する。triplet生成部103は、選択されたtripletを要素とするtriplet配列をモデル更新部104に出力する。当該配列は、順序づけされてtripletが格納される。
【0047】
モデル更新部104は、選択されたtripletを用いてモデルを更新する(ステップS205)。
【0048】
学習装置100は、学習の終了条件を満たすか否かを判定する(ステップS206)。終了条件については後述する。
【0049】
学習の終了条件を満たさない場合、学習装置100は、ステップS201に戻り、同様の処理を実行する。学習の終了条件を満たす場合、学習装置100は、学習処理を終了する。
【0050】
なお、ステップS201からステップS205までの処理を学習の1周期(1エポック)とする。
【0051】
図5は、実施例1の学習装置100が実行するtriplet生成処理の一例を示すフローチャートである。図6は、実施例1の学習装置100が実行するtriplet生成処理の詳細を示す図である。
【0052】
類似ベクトル検索部102は、画像(学習データ111)の中から一つのクエリ画像を選択する(ステップS301)。クエリ画像の選択は、ランダムでもよいし、選択方法を予め指定してもよい。類似ベクトル検索部102は、選択されたクエリ画像に処理用の識別情報を付与する。ここでは、クエリ画像の識別子を文字iで表現する。
【0053】
類似ベクトル検索部102は、画像の特徴量ベクトルを用いて、クエリ画像に類似する画像を検索する(ステップS302)。例えば、類似ベクトル検索部102は、特徴量ベクトルを用いて、特徴量空間における画像間の距離を算出し、距離が閾値より小さい画像を類似画像として出力する。なお、クエリ画像の特徴量ベクトルが含まれるクラスタを検索範囲とすることによって検索処理を高速化できる。
【0054】
類似ベクトル検索部102は、R個の類似画像を選択する(ステップS303)。例えば、特徴量空間における画像間の距離が小さい順にR個の類似画像が選択される。なお、Rは任意に設定できる。
【0055】
類似ベクトル検索部102は、検索を終了するか否かを判定する(ステップS304)。例えば、検索の回数が所定の閾値より大きい場合、類似ベクトル検索部102は、検索を終了する。なお、すべての画像について検索を行ってもよいが、計算量の制限等の要請により、所定の数の画像について検索を行っている。
【0056】
triplet生成部103は、ラベル集合からラベルを一つ選択する(ステップS305)。具体的には、triplet生成部103は、各画像に付与されたラベルに基づいて、独立したラベルの集合を生成し、当該集合から一つのラベルを選択する。ここで、ラベルの集合に含まれるラベルの数(ラベルの異なり数)をKとし、当該集合に含まれるラベルの識別子を文字kで表現する。
【0057】
triplet生成部103は、選択されたラベルのラベル情報量を算出する(ステップS306)。ラベル情報量は、ラベル及び画像の特性の関連の程度を評価する指標である。以下、ラベル情報量の算出方法について説明する。
【0058】
triplet生成部103は、式(1)を用いて、クエリ画像iに対する類似画像の検索において、選択されたラベルkが付与された画像が検索される対数尤度を算出する。なお、式(1)では、選択されたラベルkが付与された画像の出現頻度は2項分布に従うものと仮定している。
【0059】
【数1】
【0060】
ここで、r_ikは、クエリ画像iに対する類似画像の検索において、ラベルkが付与されている類似画像の数を表す。また、θ_ikは2項分布を規定するパラメータを表す。Cは組み合わせ数を表す記号である。
【0061】
ラベルkが付与された画像の出現頻度が、全画像から無作為に画像を選択した場合と同等と仮定した場合、θ_ikは、式(2)に示すように、クエリ画像iに依存しない値となる。以下、式(2)の値をp_kと記載する。なお、Nは、画像(学習データ111)の数を表し、n_kはラベルkが付与された画像の数を表す。
【0062】
【数2】
【0063】
選択されたラベルkが付与された画像の出現頻度がクエリ画像iに固有の分布に従うものと仮定した場合、θ_ikは、式(3)に示すような、式(1)を最大化する最尤度推定量となる。以下、式(3)の値をq_kと記載する。
【0064】
【数3】
【0065】
2つの仮定の下の対数尤度の差は、クエリ画像iに対する類似画像の検索において、ラベルkが付与された類似画像の出現頻度が、無作為抽出から、どの程度差異があるかを統計的に表した値となる。したがって、式(4)に示すように、全てのクエリ画像について対数尤度の差を平均化したf_kは、ラベルkが付与された画像の出現頻度が、類似画像の検索にどの程度影響を受けるかを表す指標となる。なお、式(4)は、全ての画像について検索が行われた場合の数式である。
【0066】
【数4】
【0067】
実施例1では、f_kをラベルkのラベル情報量として扱う。ラベル情報量f_kは、全検索において、q_k=p_kの場合に0となり、それ以外の場合は0より大きい値となる。
【0068】
式(5)に示す、全ラベルのラベル情報量f_kを平均化した値fは、類似画像の検索がラベルの頻度分布にどの程度、影響を与えているかを表す指標となる。
【0069】
【数5】
【0070】
次に、triplet生成部103は、全ラベルについて処理が完了したか否かを判定する(ステップS307)。
【0071】
全てのラベルについて処理が完了していない場合、triplet生成部103はステップS305に戻る。
【0072】
全てのラベルについて処理が完了した場合、triplet生成部103は、クエリ画像として選択された画像から一つのクエリ画像を選択する(ステップS308)。
【0073】
triplet生成部103は、選択されたクエリ画像と類似画像との間のラベル類似度を算出する(ステップS309)。
【0074】
ラベル類似度は、ラベルに基づく画像間の類似度を表す。画像x及び画像yの組のラベル類似度s(x,y)を式(6)で定義する。ここで、Xは画像xに付与されたラベルの集合を表し、Yは画像yに付与されたラベルの集合を表す。
【0075】
【数6】
【0076】
集合X及び集合Yが一致する場合、ラベル類似度s(x,y)は最大値「1」となり、集合X及び集合Yが全く一致しない場合(集合X及び集合Yの積集合が空集合の場合)、ラベル類似度s(x,y)は最小値「0」となる。ラベル類似度は、ラベル情報量の値が大きいラベルが一致するほど大きい値となる。
【0077】
triplet生成部103は、各類似画像のラベル類似度に基づいて、tripletを生成する(ステップS310)。
【0078】
実施例1では、類似画像の間のラベル類似度の差(ギャップ)を考える。ラベル類似度のギャップg(q,x,y)を式(7)で定義する。ここで、qはクエリ画像を表す。
【0079】
【数7】
【0080】
図6は、クエリ画像と類似画像との間のラベル類似度の関係を示す図である。横軸は特徴量ベクトルの類似の順位(類似順位)を表し、縦軸はラベル類似度を表す。ラベル類似度のギャップが大きい類似画像の組を正事例及び負事例として組み合わせることによって、効率的な学習を実現するtripletを生成することができる。
【0081】
具体的には、triplet生成部103は、一つの類似画像を選択し、当該類似画像より類似順位が低い類似画像との間で、ラベル類似度のギャップを算出する。triplet生成部103は、ラベル類似度のギャップが最大となる類似画像の組み合わせを抽出する。triplet生成部103は、抽出された類似画像の組において、類似順位が低い類似画像を正事例として選択し、類似順位が高い類似画像を負事例として選択する。さらに、triplet生成部103は、クエリ画像と、正事例、及び負事例を含むtripletを生成する。このとき、triplet生成部103は、tripletにラベル類似度のギャップを関連付ける。
【0082】
なお、一つのクエリ画像に対して一つ以上のtripletが生成される。
【0083】
triplet生成部103は、クエリ画像として選択された全ての画像について処理が完了したか否かを判定する(ステップS311)。
【0084】
クエリ画像として選択された全ての画像について処理が完了していない場合、triplet生成部103は、ステップS308に戻る。
【0085】
クエリ画像として選択された全ての画像について処理が完了した場合、triplet生成部103はtriplet生成処理を終了する。
【0086】
ここで、ステップS204のtripletの選択方法について説明する。triplet生成部103は、ラベル類似度のギャップの大きい順に、所定の数のtripletを選択する。
【0087】
ここで、モデルの更新方法について説明する。モデル更新部104は、triplet配列から、ミニバッチ分のtripletを順次読み出し、モデルの学習処理を実行する。
【0088】
本実施の終了条件としては、エポック数が閾値より大きい場合、又は、ラベル情報量の平均の増大がない場合等が考えられる。学習装置100は、エポックの処理を実行してもラベル情報量の平均が増大しない場合、類似画像の検索によるラベルの頻度分布への効果の変動が収束したもの判定する。この場合、学習装置100は、ラベル情報量の平均が最大となったエポックの処理において更新されたモデルを採用するようにすればよい。
【0089】
以上で説明したように、実施例1によれば、マルチラベルのデータに対してラベル類似度を導入することによって、画像の特徴量ベクトルを出力するモデルの学習に有用なtripletを生成することができる。
【0090】
実施例1では、マルチラベルのデータの一例として画像を例に説明したが、本発明は、画像以外のデータに対しても適用することができる。
【0091】
なお、tripletの生成とモデルの学習とを別々の装置として実現してもよい。
【実施例0092】
実施例2では、学習データ111の生成処理及びラベル情報量の算出方法が異なる。以下、実施例1との差異を中心に実施例2について説明する。
【0093】
実施例2の学習装置100のハードウェア構成及び機能構成は実施例1と同一である。
【0094】
実施例2では、学習データ111の生成処理が一部異なる。具体的には、ステップS106において、学習装置100は、単語及び単語の出現頻度を画像に付与することによって、学習データ111を生成する。
【0095】
ここで、画像jに付与されるラベルの数をt_jとする。各画像に付与されるラベルの数の総和をTとする。また、ラベルkの出現頻度m_kとする。このとき、式(8)に示すような関係が成り立つ。
【0096】
【数8】
【0097】
実施例2の学習処理は実施例1と同一である。実施例2のtriplet生成処理は実施例1と同一である。ただし、実施例2では、ラベルが付与された画像の数ではなく、ラベルの出現頻度に基づいてラベル情報量が算出される。
【0098】
画像に付与されるラベルの数は異なるため、類似画像の検索によって検索された類似画像に付与されるラベルの数の総和はクエリ画像ごとに異なる。2項分布を仮定した場合、対数尤度は式(9)で与えられる。ここで、S_iは、クエリ画像iの類似画像に付与されるラベルの数の総和を表す。また、s_ikは、クエリ画像iの類似画像において、ラベルkが出現した頻度を表す。
【0099】
【数9】
【0100】
ラベルkが付与された画像の出現頻度が、無作為に画像を選択した場合と同等と仮定した場合、パラメータθ_ikは式(10)で与えられる。これを、p_kとする。
【0101】
【数10】
【0102】
選択されたラベルが付与された画像の出現頻度がクエリ画像iに固有の分布に従うものと仮定した場合、最大推定量は式(11)で与えられる。これを、q_kとする。
【0103】
【数11】
【0104】
実施例2では、ラベル情報量f_kを式(12)で定義する。
【0105】
【数12】
【0106】
式(13)で定義されるラベル情報量f_kの平均fは、実施例1と同様に、類似画像の検索がラベルの頻度分布にどの程度、影響を与えているかを表す指標となる。
【0107】
【数13】
【0108】
実施例2では、ラベル類似度を式(14)で定義する。ここで、c_k(x)は、画像xにラベルkが出現する頻度を表す。c_k(x)が0又は1の場合、式(14)は式(6)と一致する。
【0109】
【数14】
【0110】
実施例2も実施例1と同様の効果を奏する。
【実施例0111】
実施例1では、複数のクエリ画像の各々の類似画像の検索結果を用いてtripletが生成される。しかし、この方式では、検索結果を保持するために必要な記憶容量が大きいという問題がある。実施例3では、少ない記憶領域でラベル特徴量を算出する処理方式について説明する。
【0112】
実施例3の学習装置100のハードウェア構成及び機能構成は実施例1と同一である。実施例3の学習データ111の生成処理及び学習処理は実施例1と同一である。
【0113】
実施例3のtriplet生成処理は実施例1と異なる。図7は、実施例3の学習装置100が実行するtriplet生成処理の一例を示すフローチャートである。
【0114】
triplet生成部103は、tripletの集合を空集合に初期化し(ステップS401)、また、各ラベルのラベル情報量を初期化する(ステップS402)。ここでは、各ラベルのラベル情報量に0ではない初期値が設定される。
【0115】
類似ベクトル検索部102は、画像の中から一つのクエリ画像を選択する(ステップS403)。ステップS403の処理はステップS301の処理と同一である。
【0116】
類似ベクトル検索部102は、画像から算出された特徴量ベクトルを用いて、クエリ画像に類似する画像を検索する(ステップS404)。ステップS404の処理はステップS302の処理と同一である。
【0117】
類似ベクトル検索部102は、R個の類似画像を選択する(ステップS405)。ステップS405の処理はステップS303の処理と同一である。
【0118】
triplet生成部103は、一つ前のエポックの処理において算出された各ラベルのラベル情報量を取得する(ステップS406)。1エポック目の処理では、ラベル情報量の初期値が取得される。
【0119】
triplet生成部103は、クエリ画像と類似画像との間のラベル類似度を算出する(ステップS407)。ラベル類似度の算出方法は実施例1又は実施例2と同一である。ただし、実施例3では、一つ前のエポックの処理において算出された各ラベルのラベル情報量を用いる点が異なる。
【0120】
triplet生成部103は、各類似画像のラベル類似度に基づいて、tripletを生成する(ステップS408)。ステップS408の処理はステップS310の処理と同一である。
【0121】
triplet生成部103は、各ラベルのラベル情報量を更新する(ステップS409)。具体的には、triplet生成部103は、ステップS404の検索結果に基づいて、各ラベルのラベル情報量に、検索施行に関わる項(q_kに関わる項)を加算する。
【0122】
triplet生成部103は、検索を終了するか否かを判定する(ステップS410)。ステップS410の処理はステップS304の処理と同一である。
【0123】
検索を終了しない場合、triplet生成部103は、ステップS403に戻る。
【0124】
検索を修了する場合、triplet生成部103は、ラベル情報量の平均を算出し(ステップS411)、その後、triplet生成処理を終了する。
【0125】
実施例3では、各ラベルのラベル情報量と、一つのクエリ画像の検索結果とを保存すればよいため、処理に必要な記憶容量を削減できる。また、演算速度を向上させることができる。
【0126】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0127】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0128】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0129】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0130】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0131】
100 学習装置
101 推論部
102 類似ベクトル検索部
103 triplet生成部
104 モデル更新部
105 モデル保存部
110 データセット
111 学習データ
120 モデル情報
201 プロセッサ
202 主記憶装置
203 副記憶装置
204 ネットワークインタフェース
図1
図2
図3
図4
図5
図6
図7
図8