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

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

▶ 富士通株式会社の特許一覧

<>
  • 特許-推論プログラム及び推論方法 図1
  • 特許-推論プログラム及び推論方法 図2
  • 特許-推論プログラム及び推論方法 図3
  • 特許-推論プログラム及び推論方法 図4
  • 特許-推論プログラム及び推論方法 図5
  • 特許-推論プログラム及び推論方法 図6
  • 特許-推論プログラム及び推論方法 図7
  • 特許-推論プログラム及び推論方法 図8
  • 特許-推論プログラム及び推論方法 図9
  • 特許-推論プログラム及び推論方法 図10
  • 特許-推論プログラム及び推論方法 図11
  • 特許-推論プログラム及び推論方法 図12
  • 特許-推論プログラム及び推論方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】推論プログラム及び推論方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240918BHJP
   G06T 7/00 20170101ALI20240918BHJP
【FI】
G06N20/00
G06T7/00 350C
【請求項の数】 6
(21)【出願番号】P 2020190388
(22)【出願日】2020-11-16
(65)【公開番号】P2022079284
(43)【公開日】2022-05-26
【審査請求日】2023-08-04
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】廣本 正之
【審査官】新井 則和
(56)【参考文献】
【文献】特開2019-045984(JP,A)
【文献】特開2020-004322(JP,A)
【文献】国際公開第2010/053160(WO,A1)
【文献】特開2010-286861(JP,A)
【文献】国際公開第2020/174311(WO,A1)
【文献】米国特許出願公開第2020/0380027(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
学習対象の画像情報と意味情報とクラスとを含む複数の第1の種類の訓練データのそれぞれについて、画像情報から画像超次元ベクトルを生成し、意味情報から意味超次元ベクトルを生成し、生成した画像超次元ベクトルと意味超次元ベクトルを統合して統合超次元ベクトルとして前記クラスと対応付けて記憶部に格納し、
学習対象の意味情報とクラスとを含み画像情報を含まない第2の種類の訓練データについて、意味情報から意味超次元ベクトルを生成し、生成した意味超次元ベクトルに基づいて前記記憶部を検索し、該意味超次元ベクトルとの一致度が高いほうから所定の数の統合超次元ベクトルに基づいて前記第2の種類の訓練データの統合超次元ベクトルを生成し、生成した統合超次元ベクトルを前記第2の種類の訓練データのクラスと対応付けて前記記憶部に格納する
処理を実行させることを特徴とする推論プログラム。
【請求項2】
前記コンピュータに、
特定対象の画像情報から画像超次元ベクトルを生成し、生成した画像超次元ベクトルに基づいて前記記憶部を検索し、該画像超次元ベクトルとの一致度が最も高い統合超次元ベクトルに対応付けられたクラスを取得する処理をさらに実行させることを特徴とする請求項1に記載の推論プログラム。
【請求項3】
画像情報から画像超次元ベクトルを生成する処理は、画像情報の特徴を示す画像特徴をニューラルネットワークを用いて抽出し、抽出した画像特徴に基づいて画像超次元ベクトルを生成し、
意味情報から意味超次元ベクトルを生成する処理は、意味情報の特徴を示す意味特徴をニューラルネットワークを用いて抽出し、抽出した意味特徴に基づいて意味超次元ベクトルを生成することを特徴とする請求項1又は2に記載の推論プログラム。
【請求項4】
画像超次元ベクトルと意味超次元ベクトルを統合して統合超次元ベクトルを生成する処理は、画像超次元ベクトルに画像属性超次元ベクトルを乗じて画像属性空間ベクトルを生成し、意味超次元ベクトルに意味属性超次元ベクトルを乗じて意味属性空間ベクトルを生成し、前記画像属性空間ベクトル及び前記意味属性空間ベクトルに基づいて統合超次元ベクトルを生成することを特徴とする請求項1、2又は3に記載の推論プログラム。
【請求項5】
画像情報から画像超次元ベクトルを生成する処理は、画像情報の特徴を示す画像特徴をニューラルネットワークを用いて抽出し、抽出した画像特徴から意味情報への写像行列を特定し、特定した写像行列の擬似逆行列を用いて意味情報に含まれる属性ごとの想像画像を生成し、生成した属性ごとの想像画像に基づいて画像超次元ベクトルを生成することを特徴とする請求項1~4のいずれか1つに記載の推論プログラム。
【請求項6】
コンピュータが、
学習対象の画像情報と意味情報とクラスとを含む複数の第1の種類の訓練データのそれぞれについて、画像情報から画像超次元ベクトルを生成し、意味情報から意味超次元ベクトルを生成し、生成した画像超次元ベクトルと意味超次元ベクトルを統合して統合超次元ベクトルとして前記クラスと対応付けて記憶部に格納し、
学習対象の意味情報とクラスとを含み画像情報を含まない第2の種類の訓練データについて、意味情報から意味超次元ベクトルを生成し、生成した意味超次元ベクトルに基づいて前記記憶部を検索し、該意味超次元ベクトルとの一致度が高いほうから所定の数の統合超次元ベクトルに基づいて前記第2の種類の訓練データの統合超次元ベクトルを生成し、生成した統合超次元ベクトルを前記第2の種類の訓練データのクラスと対応付けて前記記憶部に格納する
処理を実行することを特徴とする推論方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論プログラム及び推論方法に関する。
【背景技術】
【0002】
近年、画像認識などの分野でニューラルネットワーク(NN:Neural Network)の利用が盛んである。特に、深層学習(DL:Deep Learning)を用いることで、画像認識の精度が非常に向上している。
【0003】
ただし、DLを用いた認識は、訓練データとして与えられたものしか認識できない。これに対して、人間は、実際に見たことのない画像でも、他の手がかりとなる情報を与えられれば認識することが可能である。このような人間の認識を実現する技術として、ゼロショット学習(Zero-Shot Learning:ZSL)がある。ゼロショット学習は、他の手がかりとなる情報を与えることで、訓練データなしで認識を可能とする。
【0004】
図12は、ゼロショット学習を説明するための図である。図12(a)は、ゼロショット学習における訓練を示し、図12(b)は、ゼロショット学習における推論を示す。図12(a)に示すように、訓練データには2種類のデータがある。
【0005】
第1の種類の訓練データは、クラスと画像情報と意味情報とを含む。ここで、意味情報は、認識の手がかりとなる情報である。例えば、「シマウマ」は、意味情報として「4足歩行」、「縞模様」及び「草食」に対応付けられ、「ライオン」は、意味情報として「4足歩行」、「茶色」及び「肉食」に対応付けられる。「4足歩行」、「縞模様」、「草食」、「茶色」、「肉食」などは、認識対象の属性を示す。
【0006】
第2の種類の訓練データは、クラスと意味情報とを含み、画像情報を含まない。例えば、「トラ」は、意味情報として「4足歩行」、「縞模様」、「茶色」及び「肉食」に対応付けられるが、「トラ」には、対応付けられる画像情報はない。
【0007】
そして、図12(b)に示すように、推論装置は、「トラ」の画像情報が与えられ、「この動物は?」と尋ねられると、「トラ」を推論結果として回答する。推論装置は、訓練において「トラ」の画像情報が与えられなかったにもかかわらず、意味情報を手がかりとして「トラ」を回答する。
【0008】
なお、従来技術として、意味内容が同一又は近しいコンテンツを、精度よく、かつ効率的に発見する特徴量生成装置がある。この特徴量生成装置は、特徴量生成対象のコンテンツを表現する一つ以上の初期特徴量ベクトルが入力されたときに、統合特徴量ベクトルを生成して出力する。すなわち、この特徴量生成装置は、初期特徴量ベクトルの各々を、予め定めた複数の量子と複数の量子の各々に対応する代表ベクトルとによって規定される量子化器に基づいて、一つ以上の量子に割り当てる。そして、この特徴量生成装置は、量子ごとに、量子に割り当てた初期特徴量ベクトルと、量子に対応する代表ベクトルとの残差ベクトルを求める。そして、この特徴量生成装置は、量子ごとに計算した残差ベクトルを統合した統合特徴量ベクトルを求め、求めた統合特徴量ベクトルに、予め定めた変換行列を適用して無相関化処理を施して得られた統合特徴量ベクトルを、コンテンツの特徴量として出力する。
【0009】
また、従来技術として、クエリ画像に基づいて検索を行うシステムがある。このシステムは、クエリ画像から抽出した特徴から、クエリ画像を表す視覚的な単語のセットを生成し、インデックス画像の視覚的な単語と比較する。そして、このシステムは、比較において1つ以上の視覚的な単語とマッチした候補画像のセットをインデックス画像から生成する。そして、このシステムは、マルチレベルのランキングを実施して、候補画像のセットをソートし、マルチレベルのランキングの結果を、クエリ画像を提供したユーザ装置に返す。
【0010】
また、従来技術として、精度よくテキスト間の類似度を算出するテキスト類似度算出装置がある。このテキスト類似度算出装置は、第1テキストを変換した、第1テキストに対応する第1画像情報と、第2テキストを変換した、第2テキストに対応する第2画像情報との類似度である画像類似度を算出する。また、このテキスト類似度算出装置は、第1テキストを表す第1テキストベクトルと、第2テキストを表す第2テキストベクトルとの類似度であるテキストベクトル類似度を算出する。そして、このテキスト類似度算出装置は、画像類似度と、テキストベクトル類似度とに基づいて、第1テキストと、第2テキストとの類似度を算出する。
【0011】
また、従来技術として、脳内の情報表現に着目した非ノイマンコンピューティング技術の1つであるHDC(HyperDimensional Computing:超次元コンピューティング)がある。
【先行技術文献】
【特許文献】
【0012】
【文献】特開2017-162009号公報
【文献】米国特許出願公開第2019/0236167号明細書
【文献】特開2020-4322号公報
【非特許文献】
【0013】
【文献】P. Kanerva, “Hyperdimensional Computing: An Introduction to Computing in Distributed Representation with High-Dimensional Random Vectors,” Cognitive Computation, vol.1, no.2, pp.139-159, 2009.
【発明の概要】
【発明が解決しようとする課題】
【0014】
ゼロショット学習では、推論装置は、第2の種類の訓練データに含まれる意味情報と第1の種類の訓練データとに基づいて第2の種類の訓練データにおいて不足する画像を想像し、想像画像を知識に加える。そして、推論装置は、クエリ画像を受け取ると、想像画像を含めてクエリ画像に最も近い画像を探し、クエリ画像のクラスを回答する。
【0015】
図13は、ゼロショット学習における訓練と推論を説明するための図である。図13に示すように、訓練においては、第1の種類の訓練データとして、北極グマ(polar bear)及びシマウマ(zebra)の画像情報と意味情報が与えられる。北極グマの意味情報には、黒(black)がない(no)、白(white)がある(yes)、茶色(brown)がある、縞模様(stripes)がない、水中の生物(water)である、魚を食べる生物(eats fish)である、が含まれる。また、シマウマの意味情報には、黒がある、白がある、茶色がない、縞模様がある、水中の生物でない、魚を食べる生物でない、が含まれる。
【0016】
また、第2の種類の訓練データとして、カワウソ(otter)及びトラ(tiger)の意味情報が与えられる。カワウソの意味情報には、黒がある、白がない、茶色がある、縞模様がない、水中の生物である、魚を食べる生物である、が含まれ、トラの意味情報には、黒がある、白がある、茶色がない、縞模様がある、水中の生物でない、魚を食べる生物でない、が含まれる。
【0017】
そして、北極グマ及びシマウマの画像情報と意味情報、カワウソの意味情報からカワウソの想像画像が生成され、北極グマ及びシマウマの画像情報と意味情報、トラの意味情報からトラの想像画像が生成される。
【0018】
そして、推論においては、トラの画像がクエリとして与えられと、想像画像も含めて、北極グマ、シマウマ、カワウソ、トラの画像とのマッチングが行われ、最も類似する画像としてトラの画像が検索され、トラが回答される。
【0019】
しかしながら、従来のゼロショット学習では、想像画像の生成に主としてGAN(Generative Adversarial Networks)などのニューラルネットワークを基本とする生成モデルが用いられ、想像画像の生成に時間がかかるという問題がある。ここで、GANは、正解データを与えることなく特徴を学習する「教師なし学習」の一手法である。また、生成モデルは、「今観測できているデータは、なんらかの確率分布に基づいて生成されているはずだ」という考えに基づいて、そのデータを生成している確率分布そのものをモデル化することである。
【0020】
本発明は、1つの側面では、想像画像の生成を短時間に行うことを目的とする。
【課題を解決するための手段】
【0021】
1つの態様では、推論プログラムは、コンピュータに、学習対象の画像情報と意味情報とクラスとを含む複数の第1の種類の訓練データのそれぞれについて、画像情報から画像超次元ベクトルを生成し、意味情報から意味超次元ベクトルを生成する処理を実行させる。そして、前記推論プログラムは、前記コンピュータに、生成した画像超次元ベクトルと意味超次元ベクトルを統合して統合超次元ベクトルとして前記クラスと対応付けて記憶部に格納する処理を実行させる。そして、前記推論プログラムは、前記コンピュータに、学習対象の意味情報とクラスとを含み画像情報を含まない第2の種類の訓練データについて、意味情報から意味超次元ベクトルを生成する処理を実行させる。そして、前記推論プログラムは、前記コンピュータに、生成した意味超次元ベクトルに基づいて前記記憶部を検索する処理を実行させる。そして、前記推論プログラムは、前記コンピュータに、前記意味超次元ベクトルとの一致度が高いほうから所定の数の統合超次元ベクトルに基づいて前記第2の種類の訓練データの統合超次元ベクトルを生成する処理を実行させる。そして、前記推論プログラムは、前記コンピュータに、生成した統合超次元ベクトルを前記第2の種類の訓練データのクラスと対応付けて前記記憶部に格納する処理を実行させる。
【発明の効果】
【0022】
1つの側面では、本発明は、想像画像の生成を短時間に行うことができる。
【図面の簡単な説明】
【0023】
図1図1は、HVを説明するための図である。
図2図2は、加算による集合の表現例を示す図である。
図3図3は、HDCにおける学習と推論を説明するための図である。
図4図4は、実施例に係る推論装置の動作を説明するための図である。
図5図5は、推論装置の機能構成を示す図である。
図6図6は、推論装置による処理のフローを示すフローチャートである。
図7図7は、第1の訓練の処理のフローを示すフローチャートである。
図8図8は、第2の訓練の処理のフローを示すフローチャートである。
図9図9は、推論処理のフローを示すフローチャートである。
図10図10は、意味情報に含まれる属性ごとの画像特徴の分解を説明するための図である。
図11図11は、実施例に係る推論プログラムを実行するコンピュータのハードウェア構成を示す図である。
図12図12は、ゼロショット学習を説明するための図である。
図13図13は、ゼロショット学習における訓練と推論を説明するための図である。
【発明を実施するための形態】
【0024】
以下に、本願の開示する推論プログラム及び推論方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例
【0025】
まず、HDCについて説明する。HDCでは、データ表現にHV(Hyperdimensional Vector:超次元ベクトル)を用いる。図1は、HVを説明するための図である。HVは、データを10000次元以上の超次元ベクトルで分散表現する。HVは、様々な種類のデータを同じビット長のベクトルで表現する。
【0026】
図1(a)に示すように、通常のデータ表現では、a、b、cなどのデータは、それぞれまとめて表現される。一方、図1(b)に示すように、超次元ベクトルでは、a、b、cなどのデータは、分散されて表現される。HDCでは、加算、乗算などの単純な演算でデータの操作が可能である。また、HDCでは、加算や乗算でデータ間の関係性を表現することが可能である。
【0027】
図2は、加算による集合の表現例を示す図である。図2では、ネコ#1の画像、ネコ#2の画像及びネコ#3の画像からそれぞれネコ#1のHV、ネコ#2のHV及びネコ#3のHVがHVエンコーダ2により生成される。HVの各要素は「+1」又は「-1」である。ネコ#1~ネコ#3は、それぞれ10000次元のHVで表される。
【0028】
図2に示すように、ネコ#1のHV~ネコ#3のHVを加算して得られるHVは、ネコ#1とネコ#2とネコ#3を含む集合、すなわち「ネコたち」を表す。ここで、HVの加算は要素ごとの加算である。加算結果が正の場合は加算結果は「+1」に置き換えられ、加算結果が負の場合は加算結果は「-1」に置き換えられる。加算結果が「0」の場合は加算結果は所定のルールの下で「+1」又は「-1」に置き換えられる。HDCでは、「ネコ」同士は遠いが各「ネコ」と「ネコたち」は近いという状態が両立可能である。HDCでは、「ネコたち」はネコ#1~ネコ#3を統合した概念として扱うことが可能である。
【0029】
図3は、HDCにおける学習と推論を説明するための図である。図3に示すように、学習のフェーズでは、ネコ#1の画像、ネコ#2の画像及びネコ#3の画像からそれぞれネコ#1のHV、ネコ#2のHV及びネコ#3のHVがHVエンコーダ2により生成される。そして、ネコ#1のHV、ネコ#2のHV及びネコ#3のHVが加算されて「ネコたち」のHVが生成され、生成されたHVは「ネコたち」と対応付けてHVメモリ15に格納される。
【0030】
そして、推論のフェーズでは、別のネコの画像からHVが生成され、生成されたHVと最近傍マッチングするHVとして「ネコたち」のHVがHVメモリ15から検索され、「ネコ」が推論結果として出力される。ここで、最近傍マッチングとは、HV間のドット積によりHV間の一致度を算出し、一致度が最も高いクラスを出力することである。2つのHVをHi、Hjとすると、ドット積p=Hi・HjはHiとHjが一致するとD(HVの次元)であり、HiとHjが直行すると-Dである。HVメモリ15は連想メモリであるため、最近傍マッチングは高速に行われる。
【0031】
なお、実施例に係る推論装置は、HVは、HVエンコーダ2ではなく、NNにより抽出された特徴量に基づいて生成される。実施例に係る推論装置は、画像からの特徴量抽出というパターン的処理はNNにより行い、HVメモリ15へのHVの蓄積及びHVメモリ15を用いた連想という記号的処理はHDCにより行う。このように、NNとHDCの得意な点を利用することで、実施例に係る推論装置は、効率よく訓練と推論を行うことができる。
【0032】
次に、実施例に係る推論装置の動作について説明する。図4は、実施例に係る推論装置の動作を説明するための図である。図4に示すように、訓練においては、実施例に係る推論装置1は、第1の種類の訓練データと第2の種類の訓練データを用いて訓練を行う。
【0033】
第1の種類の訓練データについては、画像NN11aが、画像情報を入力して画像特徴ベクトルを生成する。そして、画像HV生成部12aが、画像特徴ベクトルに基づいて画像HVを生成する。また、意味NN11bが、意味情報を入力して意味特徴ベクトルを生成する。なお、意味情報が意味の特徴を表す場合には、推論装置1は、意味NN11bを用いることなく、意味情報から意味特徴ベクトルを生成してもよい。そして、意味HV生成部12bが、意味特徴ベクトルに基づいて意味HVを生成する。
【0034】
そして、推論装置1は、画像HVに画像属性HVを乗じて画像属性空間HVを生成し、意味HVに意味属性HVを乗じて意味属性空間HVを生成する。ここで、画像属性HV及び意味属性HVの次元は、画像HV及び意味HVの次元と同じである。
【0035】
HVに属性HVを乗じる演算は、HVを部分空間に写像することである。例えば、画像HVに画像属性HVを乗じることは、画像HVを画像属性部分空間に写像することであり、意味HVに意味属性HVを乗じることは、意味HVを意味属性部分空間に写像することである。このように、推論装置1は、HVに属性HVを乗じてHVを部分空間に写像することで、統合後の統合HVにおいて統合前の各HVを他のHVと分離することができる。
【0036】
そして、推論装置1は、画像属性空間HVと意味属性空間HVを加えて統合HVを生成する。そして、推論装置1は、統合HVを知識としてHVメモリ15に格納する。なお、2つのHVの乗算は要素ごとの乗算である。
【0037】
一方、第2の種類の訓練データについては、意味NN11bが、意味情報を入力して意味特徴ベクトルを生成する。なお、意味情報が意味の特徴を表す場合には、推論装置1は、意味NN11bを用いることなく、意味情報から意味特徴ベクトルを生成してもよい。そして、意味HV生成部12bが、意味特徴ベクトルに基づいて意味HVを生成する。
【0038】
そして、推論装置1は、意味HVに意味属性HVを乗じて意味属性空間HVを生成し、意味属性空間HVを用いてHVメモリ15を検索する。そして、推論装置1は、意味属性空間HVと一致度が高いほうから所定の数の統合HVをHVメモリ15から取得し、取得した所定の数の統合HVを加えることで想像画像を表す統合HVを生成する。図4では、所定の数は2である。また、生成された想像画像は、トラの想像画像である。そして、推論装置1は、想像画像を表す統合HVと意味属性空間HVとを加えてHVメモリ15に格納する。
【0039】
このように、推論装置1は、HVメモリ15の検索と統合HVの加算により想像画像を表す統合HVを生成するので、想像画像を高速に生成することができる。
【0040】
推論においては、画像NN11aが、未知のクラスの動物の画像情報を入力して画像特徴ベクトルを生成する。そして、画像HV生成部12aが、画像特徴ベクトルに基づいて画像HVを生成する。そして、推論装置1は、画像HVに画像属性HVを乗じて画像属性空間HVを生成し、画像属性空間HVを用いてHVメモリ15を検索する。そして、推論装置1は、最近傍マッチングによりクラスを抽出する。図4では、トラが推論結果として出力される。
【0041】
次に、推論装置1の機能構成について説明する。図5は、推論装置1の機能構成を示す図である。図5に示すように、推論装置1は、画像NN11aと、意味NN11bと、画像HV生成部12aと、意味HV生成部12bと、統合部13と、蓄積部14と、HVメモリ15と、想像画像生成部16と、連想部17とを有する。
【0042】
画像NN11aは、画像情報を入力して画像特徴ベクトルを出力する。画像特徴ベクトルは、例えば、画像NN11aの出力層のノードの出力値のベクトルである。画像NN11aは、学習フェーズでは、第1の種類の訓練データの画像情報を入力し、推論フェーズでは、未知データの画像情報を入力する。
【0043】
意味NN11bは、意味情報を入力して意味特徴ベクトルを出力する。意味特徴ベクトルは、例えば、意味NN11bの出力層のノードの出力値のベクトルである。意味NN11bは、学習フェーズにおいて、第1の種類の訓練データ及び第2の種類の訓練データの意味情報を入力する。
【0044】
画像NN11a、意味NN11bの実装には、例えば、GPU(Graphics Processing Unit)、DL向け専用プロセッサが用いられる。
【0045】
画像HV生成部12aは、画像特徴ベクトルに基づいて画像HVを生成する。具体的には、画像特徴ベクトルをx、xの次元をnとすると、画像HV生成部12aは、xをセンタリングする。すなわち、画像HV生成部12aは、以下の式(1)を用いて、xの平均値ベクトルを計算し、式(2)に示すように、xからxの平均値ベクトルを引く。式(1)において、Dbaseはxの集合であり、|Dbase|は、xの集合のサイズである。
【数1】
【数2】
【0046】
そして、画像HV生成部12aは、xを正規化する。すなわち、画像HV生成部12aは、以下の式(3)に示すように、xのL2ノルムでxを割る。なお、画像HV生成部12aは、センタリング及び正規化を行わなくてもよい。
【数3】
【0047】
そして、画像HV生成部12aは、xの各要素をQステップに量子化してq={q1,q2,・・・,qn}を生成する。画像HV生成部12aは、線形量子化を行ってもよいし、対数量子化を行ってもよい。
【0048】
また、画像HV生成部12aは、以下の式(4)に示すベースHV(Li)を生成する。式(4)で、Dは、HVの次元であり、例えば10000である。画像HV生成部12aは、L1をランダムに生成し、ランダムな位置のD/Qビットをフリップして順にL2~LQを生成する。隣り合うLiは近く、L1とLQは直交する。
【数4】
【0049】
そして、画像HV生成部12aは、以下の式(5)に示すチャネルHV(Ci)を生成する。画像HV生成部12aは、全てのCiがほぼ直交するように、Ciをランダムに生成する。
【数5】
【0050】
そして、画像HV生成部12aは、以下の式(6)を用いて画像HVを計算する。式(6)において、「・」はドット積である。
【数6】
【0051】
意味HV生成部12bは、意味特徴ベクトルに基づいて意味HVを生成する。意味HV生成部12bは、意味特徴ベクトルをxとして、画像HV生成部12aと同様に、ベースHVとチャネルHVを用いて意味HVを計算する。
【0052】
統合部13は、第1の種類の訓練データについては、画像HVと画像属性HVを乗じて画像属性空間HVを生成し、意味HVと意味属性HVを乗じて意味属性空間HVを生成する。そして、統合部13は、画像属性空間HVと意味属性空間HVを加えることで統合HVを生成する。そして、統合部13は、統合HVを蓄積部14に渡す。
【0053】
統合部13は、第2の種類の訓練データについては、意味HVと意味属性HVを乗じて意味属性空間HVを統合HVとして生成する。そして、統合部13は、統合HVを想像画像生成部16に渡す。
【0054】
蓄積部14は、第1の種類の訓練データについて、統合部13により生成された統合HVをHVメモリ15にクラスと対応付けて蓄積する。
【0055】
HVメモリ15は、統合HVをクラスと対応付けて記憶する。例えば、HVメモリ15は、クラスに対応するアドレスに統合HVを記憶する。あるいは、HVメモリ15は、クラスと統合HVを対応付けて記憶する。HVメモリ15は、連想メモリである。HVメモリ15は、ReRAM(Resistive Random Access Memory)、メモリスタなどの活用により、高速化、高密度化が可能である。
【0056】
想像画像生成部16は、第2の種類の訓練データについて、統合部13により生成された統合HVを用いてHVメモリ15を検索する。そして、想像画像生成部16は、統合部13により生成された統合HVと一致度が高いほうから所定の数の統合HVをHVメモリ15から取得し、取得した所定の数の統合HVを加えることで想像画像を表す統合HVを生成する。そして、想像画像生成部16は、想像画像を表す統合HVと統合部13により生成された統合HVとを加えてHVメモリ15に格納する。
【0057】
連想部17は、推論フェーズにおいて、統合部13により生成された統合HVからHVメモリ15により連想されるクラスを推論結果として出力する。すなわち、連想部17は、統合部13により生成された統合HVと最も一致度が高い統合HVに対応するクラスを出力する。連想部17は、統合HVとHVメモリ15が記憶するHVとのマッチングを高速に行う。
【0058】
次に、推論装置1による処理のフローについて図6図9を用いて説明する。図6は、推論装置1による処理のフローを示すフローチャートである。図6に示すように、推論装置1は、第1の訓練、すなわち、画像情報と意味情報がセットになっているクラスの訓練を行う(ステップS1)。そして、推論装置1は、第2の訓練、すなわち、意味情報のみが与えられているクラスの訓練を行う(ステップS2)。そして、推論装置1は、クラスが未知の画像情報を受け取って、推論を行い(ステップS3)、推論結果としてクラスを出力する。
【0059】
図7は、第1の訓練の処理のフローを示すフローチャートである。図7に示すように、推論装置1は、画像情報を画像NN11aに入力し画像特徴ベクトルに変換する(ステップS11)。そして、推論装置1は、画像特徴ベクトルを画像HVに変換する(ステップS12)。そして、推論装置1は、意味情報を意味NN11bに入力し意味特徴ベクトルに変換する(ステップS13)。そして、推論装置1は、意味特徴ベクトルを意味HVに変換する(ステップS14)。
【0060】
なお、推論装置1は、ステップS13とステップS14の処理をステップS11とステップS12の処理より先に行ってもよい。あるいは、推論装置1は、ステップS13とステップS14の処理をステップS11とステップS12の処理と並列に行ってもよい。
【0061】
そして、推論装置1は、画像HVに画像属性HVを乗じ、意味HVに意味属性HVを乗じ、2つの乗算結果を加算し統合HVを生成する(ステップS15)。そして、推論装置1は、生成した統合HVをHVメモリ15に格納する(ステップS16)。
【0062】
このように、推論装置1は、画像HVと意味HVに基づいて統合HVを生成し、生成したHVをHVメモリ15に格納するので、HVメモリ15に知識を蓄積することができる。
【0063】
図8は、第2の訓練の処理のフローを示すフローチャートである。図8に示すように、推論装置1は、意味情報を意味NN11bに入力し意味特徴ベクトルに変換する(ステップS21)。そして、推論装置1は、意味特徴ベクトルを意味HVに変換し、意味属性HVと乗算して意味属性空間HVを生成する(ステップS22)。そして、推論装置1は、HVメモリ15を検索し、意味属性空間HVと最も似た所定数の統合HVを選択する(ステップS23)。
【0064】
そして、推論装置1は、選択した所定数の統合HVを加算し、想像画像HVを生成する(ステップS24)。そして、推論装置1は、想像画像HVと意味属性空間HVを加算し画像と意味を統合した統合HVを生成する(ステップS25)。そして、推論装置1は、生成したHVをHVメモリ15に格納する(ステップS26)。
【0065】
このように、推論装置1は、HVメモリ15から選択した所定数の統合HVに基づいて想像画像HVを生成するので、訓練データに画像情報がない対象についても、画像情報からクラスを特定することができる。
【0066】
図9は、推論処理のフローを示すフローチャートである。図9に示すように、推論装置1は、未知のクラスから新たな画像情報をクエリとして入力する(ステップS31)。そして、推論装置1は、画像情報を画像NN11aに入力し画像特徴ベクトルに変換する(ステップS32)。そして、推論装置1は、画像特徴ベクトルを画像HVに変換し、画像属性HVと乗算して画像属性空間HVを生成する(ステップS33)。
【0067】
そして、推論装置1は、HVメモリ15を検索し、画像属性空間HVと最も似た統合HVを選択する(ステップS34)。そして、推論装置1は、選択した統合HVに対応するクラスを出力する(ステップS35)。
【0068】
このように、推論装置1は、想像画像HVが含まれるHVメモリ15を検索することで、訓練データに画像情報が含まれない対象についても、クラスを特定することができる。
【0069】
なお、推論装置1は、単語データベースや常識データベース等を活用し、意味情報を変換してから利用してもよい。変換例としては、Word2Vec、Numberbatchがある。Word2Vecは、単語をベクトル表現に変換する。Word2Vecでは、ベクトル表現に単語同士の意味関係が含まれる。Numberbatchは、常識データベースConceptNetを利用して、単語をベクトル表現に変換する。Numberbatchは、単語同士の意味関係を、より幅広く表現可能にする。Word2Vec、Numberbatchなどを用いて意味情報を変換することで、意味特徴ベクトルの次元を増やすことができる。
【0070】
また、推論装置1は、想像画像を生成するときに、HVメモリ15を検索して一致度が高い所定数の統合HVを加算する代わりに、意味情報に含まれる属性ごとに画像特徴を分解してから加算してもよい。図10は、意味情報に含まれる属性ごとの画像特徴の分解を説明するための図である。図10に示すように、推論装置1は、例えば、「しましま」の統合HV、「4足」の統合HV、「地面」の統合HVなどから「シマウマ」の想像画像を生成する。
【0071】
図10は、属性ごとの画像特徴を用いて想像画像を生成するイメージを示すが、実際には、推論装置1は、行列計算により想像画像を生成する。具体的には、第1の種類の訓練データの画像特徴行列をncls行nvis列の行列Fとし、画像特徴から属性への写像行列をnvis行natt列の行列Wとし、第1の種類の訓練データの属性行列をncls行natt列の行列Aとすると、FW=Aである。ここで、nclsはクラス数であり、nvisは画像特徴数であり、nattは属性数である。
【0072】
推論装置1は、画像特徴から意味情報への線形写像Wを決定する(t1)。すなわち、推論装置1は、W=F+AによりWを計算する。ここで、F+はFの擬似逆行列である。そして、推論装置1は、Wの擬似逆行列W+を計算する。そして、推論装置1は、W+から属性ごとの画像特徴を算出する(t2)。すなわち、推論装置1は、F′=A′W+により属性A′に対応する想像画像F′を生成する。そして、推論装置1は、第2の訓練データの属性の画像HVを重み付けして加算する(t3)ことで、想像画像を生成する。なお、推論装置1は、W+=A+FによりW+を直接計算してもよい。
【0073】
上述してきたように、実施例では、第1の種類の訓練データについて、画像HV生成部12aが、画像特徴ベクトルに基づいて画像HVを生成し、意味HV生成部12bが、意味特徴ベクトルに基づいて意味HVを生成する。そして、統合部13が、画像HVと意味HVに基づいて統合HVを生成し、蓄積部14が、統合HVをHVメモリ15に格納する。また、第2の種類の訓練データについて、意味HV生成部12bが、意味特徴ベクトルに基づいて意味HVを生成し、統合部13が、意味HVに基づいて統合HVを生成する。そして、想像画像生成部16が、統合HVを用いてHVメモリ15を検索し、統合部13により生成された統合HVと一致度が高いほうから所定の数の統合HVをHVメモリ15から取得し、取得した所定の数の統合HVを加えて想像画像を表す統合HVを生成する。そして、想像画像生成部16は、想像画像を表す統合HVと統合部13により生成された統合HVとを加えてHVメモリ15に格納する。したがって、推論装置1は、想像画像の生成を短時間に行うことができる。なお、いくつかのデータセットを用いて既存の手法と比較した結果、推論装置1は、同等の精度を実現している。
【0074】
また、実施例では、クラスが未知の画像情報について、画像HV生成部12aが、画像特徴ベクトルに基づいて画像HVを生成し、統合部13が、画像HVに基づいて統合HVを生成する。そして、連想部17が、想像画像を表す統合HVを含む統合HVを記憶するHVメモリ15を検索し、統合部13により生成された統合HVと最も一致度が高い統合HVに対応付けられたクラスを推論結果として出力する。したがって、推論装置1は、画像情報が訓練で与えられない場合にも、画像情報からクラスを推論することができる。
【0075】
また、実施例では、画像NN11aが、画像情報を入力して画像特徴ベクトルを生成するので、推論装置1は、画像特徴ベクトルを効率よく生成することができる。
【0076】
また、実施例では、統合部13は、画像HVと画像属性HVを乗じ、意味HVと意味属性HVを乗じ、2つの乗算結果を加えることで統合HVを生成する。したがって、推論装置1は、統合HVにおいて統合前の各HVを他のHVと分離することができる。
【0077】
また、実施例では、推論装置1は、画像特徴から意味情報への写像行列を特定し、特定した写像行列の擬似逆行列を用いて意味情報に含まれる属性ごとの想像画像を生成し、属性ごとの想像画像から画像超次元ベクトルを生成する。したがって、推論装置1は、より精度の高い想像画像を生成することができる。
【0078】
なお、実施例では、推論装置1について説明したが、推論装置1が有する構成をソフトウェアによって実現することで、同様の機能を有する推論プログラムを得ることができる。そこで、推論プログラムを実行するコンピュータについて説明する。
【0079】
図11は、実施例に係る推論プログラムを実行するコンピュータのハードウェア構成を示す図である。図11に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0080】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0081】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
【0082】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0083】
そして、コンピュータ50において実行される推論プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、推論プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた推論プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0084】
また、実施例では、画像情報と意味情報を用いる場合について説明したが、推論装置は、画像情報の代わりに、例えば音声情報など他の情報を用いてもよい。
【符号の説明】
【0085】
1 推論装置
2 HVエンコーダ
11a 画像NN
11b 意味NN
12a 画像HV生成部
12b 意味HV生成部
13 統合部
14 蓄積部
15 HVメモリ
16 想像画像生成部
17 連想部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13