(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】計算機、ラベルの推定方法、及びモデルの学習方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20240918BHJP
G06N 20/00 20190101ALI20240918BHJP
【FI】
G06T7/00 300F
G06T7/00 350B
G06N20/00 130
(21)【出願番号】P 2020082857
(22)【出願日】2020-05-08
【審査請求日】2023-02-02
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】廣池 敦
(72)【発明者】
【氏名】クリンキグト マルティン
(72)【発明者】
【氏名】森田 健一
(72)【発明者】
【氏名】福田 竣
(72)【発明者】
【氏名】廣木 桂一
(72)【発明者】
【氏名】伊藤 良起
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2017-130182(JP,A)
【文献】特開2019-128804(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
画像に付与する、当該画像の特徴を表し、かつ、言語によって定義されるラベルを推定する計算機であって、
演算装置、前記演算装置に接続される記憶装置、前記演算装置に接続されるインタフェースを備え、
複数のラベルの各々のベクトル表現である言語ベクトルを格納する変換情報と、学習処理によって生成され、画像から前記言語ベクトルと同じベクトル空間の特徴量ベクトルを、2以上である所定数、出力するモデルの情報と、を保持し、
前記モデルの情報を用いて、入力画像から複数の前記特徴量ベクトルを算出する特徴量ベクトル算出部と、
前記複数の特徴量ベクトル及び前記変換情報に格納される前記複数の言語ベクトルを用いて、前記入力画像及び前記複数のラベルの各々の言語的な類似性を評価し、前記評価の結果に基づいて、前記入力画像に付与する前記ラベルを推定するラベル推定部と、を備えることを特徴とする計算機。
【請求項2】
請求項1に記載の計算機であって、
前記ラベル推定部は、
前記特徴量ベクトル及び前記言語ベクトルの組合せ毎に、前記特徴量ベクトルと前記言語ベクトルとの間の距離を算出し、
前記距離の大きさに基づいて、所定の数の前記ラベルを選択し、
前記選択されたラベルを、前記入力画像に付与する前記ラベルの候補として出力することを特徴とする計算機。
【請求項3】
請求項1に記載の計算機であって、
前記学習処理を実行する学習部を備え、
前記学習部は、
学習用画像と複数の学習用ラベルとから構成される学習データの入力を受け付け、
前記モデルの情報を用いて前記学習用画像から、複数の学習用の前記特徴量ベクトルを算出し、
前記変換情報を用いて、前記各学習用ラベルから学習用の前記言語ベクトルを算出し、
前記複数の学習用の特徴量ベクトルと、前記複数の学習用の言語ベクトルとの比較結果に基づいて、複数の教師ベクトルを算出し、
前記複数の学習用の特徴量ベクトルと、前記複数の教師ベクトルとを用いた機械学習を実行することによって前記モデルの情報を更新し、
前記更新されたモデルの情報を前記記憶装置に格納することを特徴とする計算機。
【請求項4】
請求項3の記載の計算機であって、
前記学習部は、
前記学習用の特徴量ベクトル及び前記学習用の言語ベクトルの組合せ毎に、前記学習用の特徴量ベクトルと前記学習用の言語ベクトルとの間の距離を算出し、
前記距離に基づいて、前記学習用の特徴量ベクトルと類似する前記学習用の言語ベクトルを検索し、
前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在する場合、前記学習用の言語ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出し、
前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在しない場合、前記学習用の特徴量ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出することを特徴とする計算機。
【請求項5】
計算機が実行する、画像に付与する、当該画像の特徴を表し、かつ、言語によって定義されるラベルの推定方法であって、
前記計算機は、
演算装置、前記演算装置に接続される記憶装置、前記演算装置に接続されるインタフェースを有し、
複数のラベルの各々のベクトル表現である言語ベクトルを格納する変換情報と、学習処理によって生成され、画像から前記言語ベクトルと同じベクトル空間の特徴量ベクトルを、2以上である所定数、出力するモデルの情報と、を保持し、
前記ラベルの推定方法は、
前記計算機が、前記モデルの情報を用いて、入力画像から複数の前記特徴量ベクトルを算出する第1のステップと、
前記計算機が、前記複数の特徴量ベクトル及び前記変換情報に格納される前記複数の言語ベクトルを用いて、前記入力画像及び前記複数のラベルの各々の言語的な類似性を評価する第2のステップと、
前記計算機が、前記評価の結果に基づいて、前記入力画像に付与する前記ラベルを推定する第3のステップと、を含むことを特徴とするラベルの推定方法。
【請求項6】
請求項5に記載のラベルの推定方法であって、
前記第2のステップは、前記計算機が、前記特徴量ベクトル及び前記言語ベクトルの組合せ毎に、前記特徴量ベクトルと前記言語ベクトルとの間の距離を算出するステップを含み、
前記第3のステップは、
前記計算機が、前記距離の大きさに基づいて、所定の数の前記ラベルを選択するステップと、
前記計算機が、前記選択されたラベルを、前記入力画像に付与する前記ラベルの候補として出力するステップと、を含むことを特徴とするラベルの推定方法。
【請求項7】
請求項5に記載のラベルの推定方法であって、
前記ラベルの推定方法は、
前記計算機が、学習用画像と複数の学習用ラベルとから構成される学習データの入力を受け付ける第4のステップと、
前記計算機が、前記モデルの情報を用いて前記学習用画像から、複数の学習用の前記特徴量ベクトルを算出する第5のステップと、
前記計算機が、前記変換情報を用いて、前記各学習用ラベルから学習用の前記言語ベクトルを算出する第6のステップと、
前記計算機が、前記複数の学習用の特徴量ベクトルと、前記複数の学習用の言語ベクトルとの比較結果に基づいて、複数の教師ベクトルを算出する第7のステップと、
前記計算機が、前記複数の学習用の特徴量ベクトルと、前記複数の教師ベクトルとを用いた機械学習を実行することによって前記モデルの情報を更新する第8のステップと、
前記計算機が、前記更新されたモデルの情報を前記記憶装置に格納する第9のステップと、を含むことを特徴とするラベルの推定方法。
【請求項8】
請求項7の記載のラベルの推定方法であって、
前記第7のステップは、
前記計算機が、前記学習用の特徴量ベクトル及び前記学習用の言語ベクトルの組合せ毎に、前記学習用の特徴量ベクトルと前記学習用の言語ベクトルとの間の距離を算出するステップと、
前記計算機が、前記距離に基づいて、前記学習用の特徴量ベクトルと類似する前記学習用の言語ベクトルを検索するステップと、
前記計算機が、前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在する場合、前記学習用の言語ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出するステップと、
前記計算機が、前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在しない場合、前記学習用の特徴量ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出するステップと、を含むことを特徴とするラベルの推定方法。
【請求項9】
計算機が実行する、画像に付与する、当該画像の特徴を表し、かつ、言語によって定義されるラベルの推定処理に用いられるデータを生成するためのモデルの学習方法であって、
前記ラベルの推定処理では、入力画像から算出された、2以上の所定数の特徴量ベクトルと、前記特徴量ベクトルと同じベクトル空間の
複数のラベルの各々のベクトル表現である言語ベクトルと、を用いて、前記入力画像及び前記複数のラベルの各々の言語的な類似性を評価し、前記評価の結果に基づいて、前記入力画像に付与する前記ラベルが推定され、
前記モデルは、複数の前記特徴量ベクトルを算出するためのモデルであって、
前記計算機は、
演算装置、前記演算装置に接続される記憶装置、前記演算装置に接続されるインタフェースを有し、
前記言語ベクトルを格納する変換情報と、前記モデルの情報と、を保持し、
前記モデルの学習方法は、
前記計算機が、学習用画像と複数の学習用ラベルとから構成される学習データの入力を受け付ける第1のステップと、
前記計算機が、前記モデルの情報を用いて、前記学習用画像から複数の学習用の前記特徴量ベクトルを算出する第2のステップと、
前記計算機が、前記変換情報を用いて、前記各学習用ラベルから学習用の前記言語ベクトルを算出する第3のステップと、
前記計算機が、前記複数の学習用の特徴量ベクトルと、前記複数の学習用の言語ベクトルとの比較結果に基づいて、複数の教師ベクトルを算出する第4のステップと、
前記計算機が、前記複数の学習用の特徴量ベクトルと、前記複数の教師ベクトルとを用いた機械学習を実行することによって前記モデルの情報を更新する第5のステップと、
前記計算機が、前記更新されたモデルの情報を前記記憶装置に格納する第6のステップと、を含むことを特徴とするモデルの学習方法。
【請求項10】
請求項9の記載のモデルの学習方法であって、
前記第4のステップは、
前記計算機が、前記学習用の特徴量ベクトル及び前記学習用の言語ベクトルの組合せ毎に、前記学習用の特徴量ベクトルと前記学習用の言語ベクトルとの間の距離を算出するステップと、
前記計算機が、前記距離に基づいて、前記学習用の特徴量ベクトルと類似する前記学習用の言語ベクトルを検索するステップと、
前記計算機が、前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在する場合、前記学習用の言語ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出するステップと、
前記計算機が、前記学習用の特徴量ベクトルに類似する前記学習用の言語ベクトルが存在しない場合、前記学習用の特徴量ベクトルを用いて、当該学習用の特徴量ベクトルに対する前記教師ベクトルを算出するステップと、を含むことを特徴とするモデルの学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像の特徴を表すラベルを推定するための情報処理に関する。
【背景技術】
【0002】
記憶装置の容量の大規模化、計算機の演算性能の向上、ネットワークの転送速度の高速化等によって、各種業務において、大量の情報の蓄積が可能となった。また、情報には、書誌的な情報だけではなく、映像、画像等の多様なメディア情報を含めることが可能となった。
【0003】
業務において取得された画像に対して、業務の効率化を目的として、キーワード等、画像の特徴を表すラベルが付与される。従来は、ラベルは人手で行われていたため、自動的に画像にラベルを付与する技術の要望が多い。これに対して、特許文献1に記載の技術、及び深層型ニューラルネットワーク(DNN)を用いて画像に付与するラベルを推定する技術が知られている。
【0004】
ラベルが付与された画像を用いたDNNの学習処理ではCross-Entropy Lossを用いる方式等が一般的である。このような方式では、ラベルの異なり数分の出力値を出力するネットワークが構成される。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Oriol Vinyals, Alexander Toshev, Samy Bengio, Dumitru Erhan、“Show and Tell: A Neural Image Caption Generator”、2014年12月17日、[令和2年4月6日検索]、インターネット<URL: https://arxiv.org/abs/1411.4555>
【発明の概要】
【発明が解決しようとする課題】
【0007】
キーワード付与では、事前に付与されるキーワードの異なり数を想定することが困難な場合も多い。また、想定する異なり数が極端に大きい場合、ネットワークモデルの構成上及び処理の実行上、課題が発生する。
【0008】
一方、キーワードをラベルとして扱う場合、本来、キーワード間に存在する言語的な関連性は、ネットワークの学習に反映されない。言語情報をより積極的に用いたモデルとしては、非特許文献1のLSTMを用いた画像の注釈推定モデルが知られている。本モデルは、ラベルの異なり数に関する制限はない。ただし、モデルの複雑性が高いため、学習には大量の教師データが必要となる。したがって、任意個数のラベルへの対応、ラベル間の言語的関連性の反映とともに、効率的な学習を実現するモデルが必要とされる。
【0009】
本発明は、画像に付与する、言語により定義されるラベルを推定するための技術を提供する。
【課題を解決するための手段】
【0010】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、画像に付与する、当該画像の特徴を表し、かつ、言語によって定義されるラベルを推定する計算機であって、演算装置、前記演算装置に接続される記憶装置、前記演算装置に接続されるインタフェースを備え、複数のラベルの各々のベクトル表現である言語ベクトルを格納する変換情報と、学習処理によって生成され、画像から前記言語ベクトルと同じベクトル空間の特徴量ベクトルを、2以上である所定数、出力するモデルの情報と、を保持し、前記モデルの情報を用いて、入力画像から複数の前記特徴量ベクトルを算出する特徴量ベクトル算出部と、前記複数の特徴量ベクトル及び前記変換情報に格納される前記複数の言語ベクトルを用いて、前記入力画像及び前記複数のラベルの各々の言語的な類似性を評価し、前記評価の結果に基づいて、前記入力画像に付与する前記ラベルを推定するラベル推定部と、を備える。
【発明の効果】
【0011】
本発明によれば、画像に付与する、言語により定義されるラベルを推定できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】実施例1の学習処理の概要を説明する図である。
【
図2】実施例1の学習処理を実現するシステムの構成の一例を示す図である。
【
図3】実施例1の変換情報のデータ構造の一例を示す図である。
【
図4】実施例1の計算機が実行する学習処理の一例を説明するフローチャートである。
【
図5】実施例1の計算機が実行する教師ベクトル構成処理の一例を説明するフローチャートである。
【
図6】実施例1のラベル推定処理の概要を説明する図である。
【
図7】実施例1のラベル推定処理を実現するシステムの構成の一例を示す図である。
【
図8】実施例1の計算機が実行するラベル推定処理の一例を説明するフローチャートである。
【
図9】実施例1の計算機が実行する類似キーワード検索処理の一例を説明するフローチャートである。
【
図10】実施例2の学習処理の概要を説明する図である。
【
図11】実施例2の学習処理を実現するシステムの構成の一例を示す図である。
【
図12】実施例2の変換情報のデータ構造の一例を示す図である。
【
図13】実施例2の分類コードの定義情報の一例を示す図である。
【
図14】実施例2のラベル推定処理の概要を説明する図である。
【
図15】実施例2のラベル推定処理を実現するシステムの構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例1】
【0014】
実施例1では、画像の特徴を表すラベルとしてキーワードを想定する。実施例1では、画像から、キーワードの分散表現である単語ベクトルと比較可能な特徴量ベクトルを算出するモデルの学習方法、及び、当該モデルを用いた画像に付与するキーワードの推定方法について説明する。
【0015】
図1は、実施例1の学習処理の概要を説明する図である。
図2は、実施例1の学習処理を実現するシステムの構成の一例を示す図である。
【0016】
まず、システムの構成について説明する。システムは一つの計算機200から構成される。計算機200は、プロセッサ201、接続インタフェース202、及びメモリ203を有する。各ハードウェアはバスを介して互いに接続される。なお、計算機200は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置を有してもよい。
【0017】
プロセッサ201は、メモリ203に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該モジュールを実現するプログラムを実行していることを示す。
【0018】
接続インタフェース202は、外部装置と接続するためのインタフェースである。接続インタフェース202は、例えば、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスプレイ等の出力装置と接続するIOインタフェース、又は、ネットワークを介して外部装置と接続するネットワークインタフェースである。計算機200は、接続インタフェース202を介して、複数の学習データ110からなる学習データセットの入力を受け付ける。
【0019】
学習データ110は、画像111と、複数のキーワード(単語)を含むキーワード群112とから構成される。画像111は、学習部100のDNN150に入力される。キーワード群112は、単語ベクトル算出処理部120に入力される。
【0020】
メモリ203は、プロセッサ201が実行するプログラム及びプログラムが使用するデータを格納する。メモリ203は、プログラムが一時的に使用するワークエリアとしても用いられる。メモリ203は、学習部100及び単語ベクトル算出処理部120を実現するプログラムを格納する。また、メモリ203は、モデル情報130及び変換情報135を格納する。
【0021】
計算機200は、学習データセットを用いて、入力された画像111から、当該画像111の特徴量である特徴量ベクトルを算出する深層型ニューラルネットワーク(DNN)150をモデルとして生成する。DNN150を定義するパラメータ等はモデル情報130に格納される。
【0022】
単語ベクトル算出処理部120は、キーワード群112に含まれる各キーワードを、キーワードの分散表現である単語ベクトルに変換する。具体的には、単語ベクトル算出処理部120は、大規模な言語コーパスに対してWord2vec技術を適用することによって生成された、単語及びベクトルの対応関係を示す変換情報135を用いて、キーワードを単語ベクトルに変換する。Word2vec技術はキーワード(単語)を固定長のベクトルに変換する技術である。ここでは、単語ベクトルはd次元のベクトルとする。
【0023】
学習部100は、単語ベクトル算出処理部120と連携して、DNN150を定義するモデル情報130を生成/更新するための学習処理を実行する。学習部100は教師ベクトル構成処理部160を含む。
【0024】
DNN150は、複数のノードを含む複数の層から構成されるネットワークであり、画像111からn個の特徴量ベクトルを出力する。
図1では一つの丸が一つのノードに対応する。出力層151の一つのノードの出力が一つの特徴量ベクトルに対応する。一つの特徴量ベクトルは、単語ベクトルと同じベクトル空間のd次元のベクトルであり、単語(ラベル)を推定するために用いられる。DNN150は、特徴量ベクトルを算出する機能部として稼働する。なお、本説明では、説明を容易にするために、出力層151を、d次元の特徴量ベクトルを出力するノードn個から構成されるものとして表現しているが、d×n次元のベクトルを出力するものとしても、ベクトルを出力する処理としては同等である。
【0025】
教師ベクトル構成処理部160は、学習データ110に対する教師データを生成する。
【0026】
なお、システムは複数の計算機200を備えてもよい。また、計算機200が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0027】
図3は、実施例1の変換情報135のデータ構造の一例を示す図である。
【0028】
変換情報135は、単語301、単語ID302、及び単語ベクトル303から構成されるエントリを格納する。一つのキーワードに対して一つのエントリが存在する。
【0029】
単語301は、単語を格納するフィールドである。単語301には単語を表す文字列が格納される。単語ID302は、単語の識別するための識別情報を格納するフィールドである。単語ID302には例えば整数値が格納される。単語ベクトル303は、単語301に格納される単語の分散表現であるd次元の単語ベクトルを格納するフィールドである。単語ベクトル303には、例えば、単語ベクトルに対応する浮動小数点配列が格納される。
【0030】
次に、
図1、
図4、及び
図5を用いて、実施例1の学習処理について説明する。
図4は、実施例1の計算機200が実行する学習処理の一例を説明するフローチャートである。
図5は、実施例1の計算機200が実行する教師ベクトル構成処理の一例を説明するフローチャートである。
【0031】
計算機200は、学習データセットの入力を受け付けた場合、学習処理を開始する。
【0032】
学習部100は、モデル情報130に基づいてDNN150を構築する(ステップS401)。
【0033】
学習部100は、学習データセットから一つの学習データ110を取得する(ステップS402)。ここでは、学習データ110のキーワード群112にはm個のキーワードが含まれるものとする。
【0034】
学習部100は、選択した学習データ110に含まれる画像111をDNN150に入力する(ステップS403)。DNN150からはd次元の特徴量ベクトルv_iがn個出力される。特徴量ベクトルv_iのj番目の要素をv_i,jと記載する。iは1からnまでの自然数であり、jは1からdまでの自然数である。DNN150の出力はd×n次元の行列170として扱うことができる。
【0035】
学習部100は、選択した学習データ110に含まれるキーワード群112を単語ベクトル算出処理部120に入力し(ステップS404)、単語ベクトル算出処理部120からの応答を待つ。
【0036】
単語ベクトル算出処理部120は、変換情報135を用いて、キーワード群112に含まれる各キーワードをd次元の単語ベクトルw_iに変換する(ステップS405)。単語ベクトル算出処理部120は、m個のd次元の単語ベクトルw_iを含む単語ベクトル情報140を応答として学習部100に出力する。単語ベクトルw_iのj番目の要素をw_i,jと記載する。iは1からmまでの自然数であり、jは1からdまでの自然数である。
【0037】
例えば、単語ベクトル算出処理部120は、式(1)のように、Word2vec技術を用いて算出されたベクトルに対して、ノルムの正規化を適用したものを単語ベクトルとして算出する。
【0038】
【0039】
ここで、W_i,jは、Word2vec技術を用いて算出されたi番目の単語ベクトルW_iのj番目の要素を表す。iは1からmまでの自然数であり、jは1からdまでの自然数である。
【0040】
学習部100は、単語ベクトル算出処理部120から応答を受信した場合、行列170及び単語ベクトル情報140を教師ベクトル構成処理部160に入力して、教師ベクトル構成処理を実行する(ステップS406)。ここで、
図5を用いて教師ベクトル構成処理を説明する。
【0041】
教師ベクトル構成処理部160は、特徴量ベクトルv_i及び単語ベクトルw_i’の各組合せの距離を算出することによって距離行列を生成する(ステップS501)。ここでは、二つのベクトルの2乗距離が算出されるものとする。距離行列はn×mの行列である。iは1からnまでの自然数であり、i’は1からmまでの自然数である。
【0042】
教師ベクトル構成処理部160は、カウンタnc及びカウンタmcを0に初期化する(ステップS502)。カウンタncは処理した特徴量ベクトルの数を計測するためのカウンタであり、カウンタmcは処理した単語ベクトルの数を計測するためのカウンタである。
【0043】
教師ベクトル構成処理部160は、距離行列を参照し、選択されていない特徴量ベクトルv_i及び単語ベクトルw_i’の組合せの中から距離が最小の組合せを選択する(ステップS503)。すなわち、特徴量ベクトルv_iに対して、類似する単語ベクトルw_i’の対応づけが行われる。当該対応づけは、距離が小さい順に行われる。教師ベクトル構成処理部160は、選択された組合せをワークエリアに格納する。
【0044】
なお、教師ベクトル構成処理部160は、ワークエリアを参照することによって、選択されていない特徴量ベクトルv_i及び単語ベクトルw_i’の組合せを特定できる。
【0045】
教師ベクトル構成処理部160は、カウンタnc及びカウンタmcの各々に1をインクリメントする(ステップS504)。
【0046】
教師ベクトル構成処理部160は、条件(1)及び条件(2)のいずれかを満たすか否かを判定する(ステップS505)。
【0047】
(条件1)カウンタncがnに一致する。
(条件2)カウンタmcがmに一致する。
【0048】
n>mの場合、(n-m)個の特徴量ベクトルv_iには、単語ベクトルw_i’が対応づけられない。一方、n<mの場合、(m-n)個の単語ベクトルは、特徴量ベクトルv_iとの対応づけは行われない。
【0049】
条件(1)及び条件(2)のいずれも満たさない場合、教師ベクトル構成処理部160は、ステップS503に戻り、同様の処理を実行する。
【0050】
条件(1)及び条件(2)のいずれかを満たす場合、教師ベクトル構成処理部160は、特徴量ベクトルv_i及び単語ベクトルw_i’の対応づけの結果に基づいて、教師ベクトルo_iを生成し(ステップS506)、教師ベクトル構成処理を終了する。教師ベクトルo_iはi番目の特徴量ベクトルv_iに対応するd次元のベクトルである。
【0051】
具体的には、教師ベクトル構成処理部160は、式(2)のように定義された要素o_i,jから構成される教師ベクトルo_iを生成する。w_j(i)はi番目の特徴量ベクトルv_iと対応づけられた単語ベクトルw_i’のj番目の要素を表す。αは式(3)に示す範囲で定義されたパラメータである。
【0052】
【0053】
【0054】
α=0の場合、対応する特徴量ベクトルがゼロベクトルになるようにDNN150の学習が実行される。α=1の場合、対応する特徴量ベクトルの損失関数への影響は0となり、学習には全く寄与しなくなる。αが式(4)に示す範囲の場合、特徴量ベクトルの各要素の絶対値が一定の比率で縮小するようにDNN150の学習が行われる。
【0055】
【0056】
なお、教師ベクトルo_iも特徴量ベクトルv_iと同様に、d×n次元の行列180と見なすことができる。
図4の説明に戻る。
【0057】
学習部100は、特徴量ベクトルv_i及び教師ベクトルo_iを用いて、DNN150を定義するパラメータを更新するためのモデル更新処理を実行する(ステップS407)。
【0058】
例えば、学習部100は、式(5)に示すように、特徴量ベクトルv_iと教師ベクトルo_iとの偏差の2乗和として定義された損失関数Lが最小となるようにDNN150を定義するパラメータを更新する。すなわち、モデル情報130が更新される。
【0059】
【0060】
学習部100は、終了条件を満たすか否かを判定する(ステップS408)。例えば、学習部100は、テスト用の画像を用いてDNN150の出力精度を算出し、当該精度が閾値より大きい場合、又は学習処理の実行回数が閾値より大きい場合に、終了条件を満たすと判定する。
【0061】
終了条件を満たさない場合、学習部100は、ステップS402に戻り、同様の処理を実行する。
【0062】
終了条件を満たす場合、学習部100は学習処理を終了する。
【0063】
次に、学習処理によって生成されたDNN150を用いたラベル推定処理について説明する。
【0064】
図6は、実施例1のラベル推定処理の概要を説明する図である。
図7は、実施例1のラベル推定処理を実現するシステムの構成の一例を示す図である。
【0065】
まず、システムの構成について説明する。システムは一つの計算機700から構成される。計算機700は、画像610に付与するキーワードを推定する。計算機700は計算機200と同一のハードウェア構成である。
【0066】
メモリ203は、ラベル推定部600及び推定結果出力部620を実現するプログラムを格納する。また、メモリ203は、モデル情報130及び変換情報135を格納する。
【0067】
ラベル推定部600は、画像610に付与するキーワードを推定し、キーワード推定結果630を出力する。ラベル推定部600はキーワード検索部640を含む。
【0068】
推定結果出力部620は、接続インタフェース202を介して外部装置にキーワード推定結果630を出力する。
【0069】
なお、システムは複数の計算機700を備えてもよい。また、計算機700が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0070】
次に、
図6、
図8、及び
図9を用いて、実施例1のラベル推定処理について説明する。
図8は、実施例1の計算機700が実行するラベル推定処理の一例を説明するフローチャートである。
図9は、実施例1の計算機700が実行する類似キーワード検索処理の一例を説明するフローチャートである。
【0071】
計算機700は、画像610の入力を受け付けた場合、ラベル推定処理を開始する。
【0072】
ラベル推定部600は、モデル情報130に基づいてDNN150を構築する(ステップS801)。
【0073】
ラベル推定部600は、DNN150に画像610を入力する(ステップS802)。DNN150からはd次元の特徴量ベクトルq_iがn個出力される。iは1からnまでの自然数である。DNN150の出力はd×n次元の行列650として扱うことができる。
【0074】
ラベル推定部600は、行列650をキーワード検索部640に入力して、類似キーワード検索処理を実行する(ステップS803)。ここで、
図9を用いて類似キーワード検索処理を説明する。
【0075】
キーワード検索部640は、クエリとして特徴量ベクトルq_iの入力を受け付ける。キーワード検索部640は、変数i、jを1に初期化する(ステップS901)。変数iは特徴量ベクトルを識別する添字であり、1からnまでの自然数である。変数jはキーワードを識別する添字であり、1からmまでの自然数である。mは変換情報135に登録されているキーワードの数を表す。
【0076】
キーワード検索部640は、未処理の特徴量ベクトルq_iの中からターゲット特徴量ベクトルq_iを一つ選択する(ステップS902)。ここでは、変数iに対応する特徴量ベクトルq_iが選択される。
【0077】
キーワード検索部640は、未選択の単語ベクトルw_jの中からターゲット単語ベクトルw_jを一つ選択する(ステップS903)。ここでは、変数jに対応する単語ベクトルw_jが選択される
【0078】
キーワード検索部640は、ターゲット特徴量ベクトルq_i及びターゲット単語ベクトルw_jの距離を算出し、結果集合に結果データを登録する(ステップS904)。
【0079】
例えば、キーワード検索部640は、式(6)にターゲット特徴量ベクトルq_i及びターゲット単語ベクトルw_jを入力することによって、2乗距離D_ijを算出する。
【0080】
【0081】
キーワード検索部640は、ターゲット特徴量ベクトルq_i及びターゲット単語ベクトルw_jのペアと、2乗距離D_ijとから構成される結果データを結果集合に登録する。
【0082】
キーワード検索部640は、添字jがmに一致するか否かを判定する(ステップS905)。すなわち、ターゲット特徴量ベクトルq_iに対して全ての単語ベクトルw_jとの距離が算出されたか否かが判定される。
【0083】
添字jがmに一致しない場合、キーワード検索部640は、添字jの値を1インクリメントした後(ステップS906)、ステップS903に戻り、同様の処理を実行する。
【0084】
添字jがmに一致する場合、キーワード検索部640は、添字iがnに一致するか否かを判定する(ステップS907)。すなわち、全ての特徴量ベクトルq_iの処理が完了したか否かが判定される。
【0085】
添字iがnに一致しない場合、キーワード検索部640は、添字iの値を1インクリメントし、添字jを1に初期化した後(ステップS908)、ステップS902に戻り、同様の処理を実行する。
【0086】
添字iがnに一致する場合、キーワード検索部640は、距離に基づいて結果集合に含まれる結果データをソートする(ステップS909)。具体的には、キーワード検索部640は、距離の小さい順に結果データをソートする。
【0087】
キーワード検索部640は、ソート結果に基づいて類似キーワードリストを生成し(ステップS910)、類似キーワード検索処理を終了する。
【0088】
例えば、キーワード検索部640は、変換情報135に登録されている各キーワードについて、最初に出現する結果データを特定する。キーワード検索部640は、結果データに含まれる単語ベクトルに対応するキーワードと、結果データに含まれる距離とから構成されるエントリを類似キーワードリストに登録する。さらに、キーワード検索部640は、距離の小さい順に類似キーワードリストのエントリをソートする。
【0089】
【0090】
ラベル推定部600は、類似キーワードリストに基づいて、キーワード推定結果630を生成し(ステップS804)、ラベル推定処理を終了する。
【0091】
例えば、ユーザに対して、画像に付与するキーワードの候補を提示する場合、ラベル推定部600は、類似キーワードリストの上から順に所定の数のエントリを選択し、当該エントリを画面として表示するためのキーワード推定結果630を生成する。実施例1では、最大でn個のラベルがユーザに提示される。
【0092】
例えば、画像610に自動的にキーワードを付与する場合、ラベル推定部600は、距離が閾値より小さいキーワード群をキーワード推定結果630として生成する。
【0093】
以上で説明したように、実施例1によれば、システムは、画像に対して、画像の特徴を表すキーワードを精度よく推定することができる。また、システムは、推定結果に基づいて、自動的に、画像にキーワードを付与できる。
【実施例2】
【0094】
実施例2では、画像の特徴を表すラベルとして分類コードを想定する。分類コードは、キーワードのようにそのものに意味が存在せず、所定のルールに沿って規定されたラベルの一例である。分類コードには、分類コードの意味内容を示す説明文が予め設定されているものとする。実施例2では、分類コードのベクトル表現である分類コードベクトルを算出するモデルの学習方法、及び、当該モデルを用いた画像に付与する分類コードの推定方法について説明する。以下、実施例1との差異を中心に実施例2について説明する。
【0095】
図10は、実施例2の学習処理の概要を説明する図である。
図11は、実施例2の学習処理を実現するシステムの構成の一例を示す図である。
【0096】
実施例2のシステムのハードウェア構成は実施例1と同一である。実施例2のシステムのソフトウェア構成は実施例1と一部異なる。具体的には、計算機700は、単語ベクトル算出処理部120の代わりに、分類コードベクトル算出処理部1010を含む。また、実施例2では、変換情報135のデータ構造が実施例1と異なる。
【0097】
図12は、実施例2の変換情報135のデータ構造の一例を示す図である。
図13は、実施例2の分類コードの定義情報の一例を示す図である。
【0098】
変換情報135は、分類コード1201及び分類コードベクトル1202から構成されるエントリを格納する。一つの分類コードに対して一つのエントリが存在する。
【0099】
分類コード1201は、分類コードを格納するフィールドである。分類コードベクトル1202は、分類コードを表現するd次元の分類コードベクトルを格納するフィールドである。
【0100】
実施例2では、分類コードの定義情報1300に基づいて、分類コードベクトルが算出される。定義情報1300は、分類コード1301及び説明文1302から構成されるエントリを格納する。
【0101】
分類コード1301は分類コード1201と同一のフィールドである。説明文1302は、分類コードを定義する説明文を格納するフィールドである。
【0102】
システムは、形態解析等の手法を用いて、説明文を単語の集合に変換し、Word2vec技術を用いて、説明文をベクトルに変換する。例えば、システムは、式(7)に示すように、説明文に含まれる各単語のベクトルを加算し、ノルム1に正規化することによって、分類コードベクトルを算出する。
【0103】
【0104】
ここで、c_i,jは、i番目の分類コードの分類コードベクトルc_iのj番目の要素を表し、W_k,j(i)は、i番目の分類コードの説明文に含まれる単語群のk番目の単語ベクトルのj番目の要素を表す。N(i)は、i番目の分類コードに含まれる単語の要素数を表し、dは単語ベクトル及び分類コードベクトルの次元数を表す。
【0105】
実施例2の学習データ110は、キーワード群112の代わりに、分類コード群1000を含む。
【0106】
実施例2の学習処理は実施例1の学習処理と一部異なる。
【0107】
ステップS401からステップS403の処理は実施例1と同一である。
【0108】
ステップS404では、学習部100は、選択した学習データ110に含まれる分類コード群1000を分類コードベクトル算出処理部1010に入力し、分類コードベクトル算出処理部1010からの応答を待つ。
【0109】
ステップS405では、分類コードベクトル算出処理部1010は、変換情報135を用いて、分類コード群1000に含まれる各分類コードをd次元の分類コードベクトルに変換する。分類コードベクトル算出処理部1010は、d次元の分類コードベクトルを含む分類コードベクトル情報1020を応答として学習部100に出力する。
【0110】
ステップS406の教師ベクトル構成処理では、単語ベクトルの代わりに分類コードベクトルが入力されるが、処理の内容は同一である。
【0111】
ステップS407の学習処理は実施例1と同一である。ステップS408の処理は実施例1と同一である。
【0112】
次に、学習処理によって生成されたDNN150を用いたラベル推定処理について説明する。
【0113】
図14は、実施例2のラベル推定処理の概要を説明する図である。
図15は、実施例2のラベル推定処理を実現するシステムの構成の一例を示す図である。
【0114】
実施例2のシステムのハードウェア構成は実施例1と同一である。実施例2のシステムのソフトウェア構成は実施例1と同一であるが、ラベル推定部600は、キーワード検索部640に代わりに、分類コード検索部1410を含む。
【0115】
実施例2のラベル推定処理は実施例1と同様の処理であるため詳細な説明は省略する。ただし、実施例2のラベル推定処理では、ステップS803において、類似分類コード検索処理が実行される。ステップS804では、キーワード推定結果630の代わりに分類コード推定結果1420が生成される。
【0116】
類似分類コード検索処理は、類似キーワード検索処理と同様の処理であるため詳細な説明は省略する。類似分類コード検索処理では、単語ベクトルの代わりに、分類コードベクトルが用いられる点が異なる。ステップS904では、ターゲット特徴量ベクトルq_i及びターゲット分類コードベクトルc_jのペアと、2乗距離D_ijとから構成される結果データが登録される。ステップS909では、類似キーワードリストの代わりに、類似分類コードリストが生成される。類似分類コードリストには、分類コードと距離とから構成されるエントリが格納される。
【0117】
実施例2によれば、システムは、画像に対して、画像の特徴を表す分類コードを精度よく推定することができる。また、システムは、推定結果に基づいて、自動的に、画像に分類コードを付与できる。
【0118】
本発明は、特許、商標、及び意匠の審査業務に活用することができる。審査業務では、出願に係る書類及び図面、並びに、業務において付与された書誌情報等が蓄積される。図面にラベルを付与することによって、審査業務の効率化を実現できる。
【0119】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0120】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0121】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0122】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0123】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0124】
100 学習部
110 学習データ
111、610 画像
112 キーワード群
120 単語ベクトル算出処理部
130 モデル情報
135 変換情報
140 単語ベクトル情報
150 深層型ニューラルネットワーク(DNN)
160 教師ベクトル構成処理部
200、700 計算機
201 プロセッサ
202 接続インタフェース
203 メモリ
600 ラベル推定部
620 推定結果出力部
630 キーワード推定結果
640 キーワード検索部
1000 分類コード群
1010 分類コードベクトル算出処理部
1020 分類コードベクトル情報
1300 定義情報
1410 分類コード検索部
1420 分類コード推定結果