(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】学習装置、学習方法、推論装置、推論方法、及び、プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241008BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2023503320
(86)(22)【出願日】2021-03-05
(86)【国際出願番号】 JP2021008691
(87)【国際公開番号】W WO2022185529
(87)【国際公開日】2022-09-09
【審査請求日】2023-08-28
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】吉田 周平
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2020-042403(JP,A)
【文献】特開2020-091813(JP,A)
【文献】特開2020-053073(JP,A)
【文献】特開2020-091846(JP,A)
【文献】国際公開第2020/162294(WO,A1)
【文献】Maximilian Nickel 等,Poincare Embeddings for Learning Hierarchical Representations,arXiv.org,2017年05月31日,1-10頁,https://arxiv.org/abs/1705.08039
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
入力データを第1の特徴表現に変換する特徴抽出手段と、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する射影手段と、
前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力する分類手段と、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失を計算する損失計算手段と、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新する更新手段と、
を備え
、
前記分類手段は、前記階層構造の末端クラスについてスコアを出力し、
前記損失計算手段は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する学習装置。
【請求項2】
前記損失計算手段は、前記末端クラスの階層については正解クラスのスコアを最大化する損失を計算し、前記末端クラスの階層より上位の階層については、当該階層において前記正解クラスが属するクラスのスコアを最大化する損失を計算する請求項
1に記載の学習装置。
【請求項3】
前記分類手段は、前記階層構造の知識を用いて、各階層について前記スコアを出力し、
前記損失計算手段は、各階層について出力された前記スコアに基づいて前記階層的損失を計算する請求項1
又は2に記載の学習装置。
【請求項4】
前記射影手段は、前記階層構造の知識に基づいて、各階層について前記第2の特徴表現を出力し、
前記分類手段は、各階層について出力された前記第2の特徴表現に基づいて、前記各階層について前記スコアを出力する請求項
3に記載の学習装置。
【請求項5】
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失
の計算
を行い、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新
し、
前記分類は、前記階層構造の末端クラスについてスコアを出力することで行われ、
前記階層的損失の計算は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する学習方法。
【請求項6】
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失
の計算
を行い、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新
し、
前記分類は、前記階層構造の末端クラスについてスコアを出力することで行われ、
前記階層的損失の計算は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習モデルの学習方法に関する。
【背景技術】
【0002】
近年、機械学習に基づく認識技術は、画像認識の分野を中心に極めて高い性能を示している。このような機械学習に基づく認識技術の高い精度は、大量の正解付きデータにより支えられている。即ち、大量の正解付きデータを用意して学習を行うことにより、高い精度が実現されている。例えば、特許文献1は、階層構造を持つカテゴリの識別について学習する手法を開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、画像認識技術の用途などによっては、大量の正解付きデータを用意することなく、低コストで精度の高い機械学習を実現することが求められている。
【0005】
本開示の1つの目的は、低コストで精度の高い機械学習モデルを生成することにある。
【課題を解決するための手段】
【0006】
本開示の一つの観点では、学習装置は、
入力データを第1の特徴表現に変換する特徴抽出手段と、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する射影手段と、
前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力する分類手段と、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失を計算する損失計算手段と、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新する更新手段と、
を備え、
前記分類手段は、前記階層構造の末端クラスについてスコアを出力し、
前記損失計算手段は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する。
【0007】
本開示の他の観点では、学習方法は、
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失の計算を行い、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新し、
前記分類は、前記階層構造の末端クラスについてスコアを出力することで行われ、
前記階層的損失の計算は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する。
【0008】
本開示のさらに他の観点では、プログラムは、
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失の計算を行い、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新し、
前記分類は、前記階層構造の末端クラスについてスコアを出力することで行われ、
前記階層的損失の計算は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する処理をコンピュータに実行させる。
【0009】
本開示のさらに他の観点では、推論装置は、
入力データを第1の特徴表現に変換する特徴抽出手段と、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する射影手段と、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する分類手段と、を備える。
【0010】
本開示のさらに他の観点では、推論方法は、
入力データを第1の特徴表現に変換し、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する。
【0011】
本開示のさらに他の観点では、プログラムは、
入力データを第1の特徴表現に変換し、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する処理をコンピュータに実行させる。
【発明の効果】
【0012】
本開示によれば、クラスの構造の知識を用いることにより、低コストで精度の高い機械学習モデルを生成することが可能となる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態の学習装置のハードウェア構成を示すブロック図である。
【
図2】第1実施形態の学習装置の機能構成を示すブロック図である。
【
図4】第1実施形態の学習装置による学習処理のフローチャートである。
【
図5】第1実施形態の推論装置の機能構成を示すブロック図である。
【
図6】第1実施形態の推論装置による推論処理のフローチャートである。
【
図7】第2実施形態の学習装置の機能構成を示すブロック図である。
【
図8】階層的双曲分類器を構成する複数の分類器による分担の一例を示す。
【
図9】階層的双曲分類器を構成する複数の分類器による分担の他の例を示す。
【
図10】第2実施形態の学習装置による学習処理のフローチャートである。
【
図11】第2実施形態の推論装置の機能構成を示すブロック図である。
【
図12】第2実施形態の推論装置による推論処理のフローチャートである。
【
図13】第3実施形態の学習装置の機能構成を示すブロック図である。
【
図15】特徴表現及び差分を概念的に説明する図である。
【
図16】第3実施形態の学習装置による学習処理のフローチャートである。
【
図17】第3実施形態の推論装置の機能構成を示すブロック図である。
【
図18】第3実施形態の推論装置による推論処理のフローチャートである。
【
図19】第4実施形態の学習装置の機能構成を示すブロック図である。
【
図20】第4実施形態の学習装置による学習処理のフローチャートである。
【
図21】第5実施形態の推論装置の機能構成を示すブロック図である。
【
図22】第5実施形態の推論装置による推論処理のフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本開示の好適な実施形態について説明する。
<概念説明>
前述のように、大量の正解付き学習データを用いて学習を行えば高精度の認識モデルを得ることができるが、少量のデータから低コストで高精度なモデルを生成することが求められる場合もある。少量のデータから高精度なモデルを学習するためには、学習データ以外の情報を利用することが不可欠である。多クラス分類を行う場合、クラスの階層構造に関する知識は汎用性が高く、容易に入手できる場合が多い。そこで、以下の実施形態では、分類対象のクラスの階層構造を示す知識を利用することにより、少量のデータでも高精度の分類モデルを得ることが可能な学習方法を提供する。
【0015】
<第1実施形態>
[学習装置]
まず、第1実施形態の学習装置について説明する。
(ハードウェア構成)
図1は、第1実施形態の学習装置100のハードウェア構成を示すブロック図である。図示のように、学習装置100は、インタフェース(I/F)11と、プロセッサ12と、メモリ13と、記録媒体14と、データベース(DB)15と、を備える。
【0016】
インタフェース11は、外部装置との間でデータの入出力を行う。具体的に、学習に使用される正解付きデータは、インタフェース11を通じて入力される。
【0017】
プロセッサ12は、CPU(Central Processing Unit)などのコンピュータであり、予め用意されたプログラムを実行することにより学習装置100の全体を制御する。なお、プロセッサ12は、GPU(Graphics Processing Unit)またはFPGA(Field-Programmable Gate Array)であってもよい。プロセッサ12は、後述する学習処理を実行する。
【0018】
メモリ13は、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成される。メモリ13は、プロセッサ12による各種の処理の実行中に作業メモリとしても使用される。
【0019】
記録媒体14は、ディスク状記録媒体、半導体メモリなどの不揮発性で非一時的な記録媒体であり、学習装置100に対して着脱可能に構成される。記録媒体14は、プロセッサ12が実行する各種のプログラムを記録している。学習装置100が各種の処理を実行する際には、記録媒体14に記録されているプログラムがメモリ13にロードされ、プロセッサ12により実行される。DB15は、必要に応じて、学習のための正解付きデータなどを記憶する。
【0020】
(機能構成)
図2は、第1実施形態の学習装置100の機能構成を示すブロック図である。学習装置100は、特徴抽出部21と、双曲射影部22と、双曲分類部23と、階層的損失計算部24と、勾配計算部25と、更新部26とを備える。
【0021】
正解付きデータは、入力データと、その入力データに対応する正解ラベルとを含む。例えば画像認識モデルを学習する場合、入力データは学習に使用される画像であり、正解ラベルはその画像に含まれる対象物のクラスを示す情報である。正解付きデータのうち、入力データは特徴抽出部21に入力され、正解ラベルは階層的損失計算部24へ入力される。
【0022】
特徴抽出部21は、入力データを前特徴表現に変換する。なお、特徴抽出部21が出力する特徴表現を、後述する双曲射影部22が出力する特徴表現と区別する意味で「前特徴表現」と呼ぶ。「前特徴表現」及び「特徴表現」は、いずれも入力データの特徴を表す情報である。具体的に、画像認識モデルを学習する場合、特徴抽出部21は、深層畳み込みニューラルネットワーク(CNN)などで構成され、入力された画像の特徴を示す実数値の列(ベクトル)を前特徴表現として双曲射影部22へ出力する。
【0023】
双曲射影部22は、前特徴表現を特徴表現に変換する。ここで、「特徴表現」は何らかの多様体上の点であり、具体的な射影部を選択することは、特徴表現が属する多様体(特徴量空間)を選択することと等価である。一般的には、特徴量空間として線形空間(ユークリッド空間)を用い、射影部として線形射影部を使用するか、特徴量空間として高次元超球面を用い、射影部として球面射影部を使用することが多い。これに対し、本実施形態は、特徴量空間として双曲空間を用いる。
【0024】
前述のように、本実施形態は、クラスの階層構造に関する知識を利用することにより、少量の学習データで高精度なモデルを得るものであるが、階層構造(木構造)は指数関数的に広がる性質を有する。一般的には特徴量空間としてユークリッド空間や超球面を使用するが、ユークリッド空間や超球面は多項式的にしか広がらないので木構造の埋め込みには適さない。即ち、ユークリッド空間や超球面の上で階層構造を表現すると、低次元では歪が避けられない。よって、ユークリッド空間や超球面の上で階層構造(木構造)を歪なく表現するには、クラス数に関して指数関数的に高次元の特徴量空間を使用する必要がある。
【0025】
この点から、本実施形態では、特徴量空間として双曲空間を用いる。双曲空間には、木構造を効率的に埋め込むことができる。指数関数的に広がる双曲空間は、2次元でも木構造を歪なく埋め込むことができる。よって、双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換し、双曲分類部23へ出力する。特徴表現も前特徴表現と同様に実数値の列(ベクトル)であるが、特徴量空間である双曲空間上の座標値とみなすことができる。双曲射影部22は、具体的な双曲空間のモデルに応じて、ポアンカレ射影、ローレンツ射影などを用いることができる。
【0026】
双曲分類部23は、双曲射影部22が出力した双曲空間上の1つの特徴表現から分類を行い、その特徴表現に対して得られる各クラスのスコアを階層的損失計算部24へ出力する。なお、双曲分類部23は、クラスの階層構造における末端クラスのスコアだけを出力する。双曲分類部23としては、双曲超平面分類器や双曲最近傍分類器を用いることができる。双曲超平面分類器は、線形分類器を双曲空間に拡張し、双曲空間中の超平面を識別平面とする分類器である。双曲最近傍分類器は、双曲空間上での最近傍則に従う分類器である。なお、双曲分類部23の具体的な表式は、双曲射影部22で選択した双曲空間のモデルによって定まる。
【0027】
階層的損失計算部24は、双曲分類部23から入力された各クラスのスコアと、正解付きデータに含まれる正解ラベルとから損失関数を計算する。この際、階層的損失計算部24は、分類対象となるクラスの階層構造の知識を利用する。具体的には、階層的損失計算部24は、双曲分類部23が出力する各クラスのスコアから、階層毎のスコアを計算し、階層毎のスコアが各階層で正しいクラスを予測できるように階層毎の損失(ロス)を計算する。なお、階層的損失計算部24は、例えばクロスエントロピー損失など、一般的な多値分類向け損失関数を用いることができる。
【0028】
ここで、階層的損失計算部24による損失の計算方法について例を挙げて説明する。
図3は、クラスの階層構造の例を示す。この例は、ルートノードを「商品」とする階層構造(木構造)を示し、第1~第3階層を有する。第1階層は、「商品」の子ノードとして、3つのクラス「食品」、「飲料」、「医薬品」を含む。第2階層は、「食品」の子ノードとして3つのクラス「弁当」、「パン」、「おにぎり」を含み、「飲料」の子ノードとして3つのクラス「お茶」、「ジュース」及び「水」を含む。また、第3階層は、「弁当」の子ノードとして「弁当A」~「弁当C」を含み、「パン」の子ノードとして「パンA」~「パンC」を含み、「おにぎり」の子ノードとして「おにぎりA」~「おにぎりC」を含む。なお、医薬品の第2~第3階層、及び、飲料の第3階層については便宜上図示を省略する。
【0029】
前述のように、双曲分類部23は、クラスの階層構造における末端クラスのスコアだけを出力する。
図3の例では、双曲分類部23は、「弁当A」~「弁当C」、「パンA」~「パンC」、「おにぎりA」~「おにぎりC」などの末端クラスのスコアのみを出力する。いま、ある入力データが入力され、その正解ラベルが「弁当B」であるとする。この場合、階層的損失計算部24は、末端クラスの階層である第3階層について、正解クラスである「弁当B」のスコアを最大化するような損失を計算し、第3階層の損失とする。
【0030】
また、階層的損失計算部24は、末端クラスより上位の階層の損失を計算する際には、各ノードの子孫である末端クラスのスコアを統合して損失計算に使用する。具体的に、双曲分類部23が出力するスコアが末端クラスの確率であれば、上位階層の各クラスのスコアはその子孫である末端クラスの確率の和となる。
【0031】
例えば、
図3の例において、第2階層の「弁当」のスコアは、その子ノードである「弁当A」~「弁当C」のスコアの和となる。同様に、第2階層の「パン」のスコアは、その子ノードである「パンA」~「パンC」のスコアの和となり、第2階層の「おにぎり」のスコアは、その子ノードである「おにぎりA」~「おにぎりC」のスコアの和となる。そして、階層的損失計算部24は、第2階層について、正解クラス「弁当B」を子孫ノードに有する「弁当」のスコアを最大化するような損失を計算する。
【0032】
また、第1階層の「食品」のスコアは、その孫ノードである末端クラスの「弁当A」~「弁当C]、「パンA」~「パンC」、「おにぎりA」~「おにぎりC」のスコアの和となる。同様に、第1階層の「飲料」や「医薬品」のスコアも、その孫ノードである末端クラスのスコアの和となる。階層的損失計算部24は、第1階層について、正解クラス「弁当B」を子孫ノードに有する「食品」のスコアを最大化するような損失を計算する。そして、階層的損失計算部24は、各階層について計算した損失の重み付き和を計算し、階層的損失として勾配計算部25へ出力する。
【0033】
勾配計算部25は、階層的損失計算部24から入力された階層的損失の勾配を計算し、更新部26へ出力する。更新部26は、勾配を用いて特徴抽出部21、双曲射影部22及び双曲分類部23のパラメータを更新する。
【0034】
(学習処理)
図4は、第1実施形態の学習装置100による学習処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図2に示す各要素として動作することにより実現される。
【0035】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS11)。次に、双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換する(ステップS12)。次に、双曲分類部23は、特徴表現から各クラスのスコアを算出する(ステップS13)。次に、階層的損失計算部24は、クラスの階層構造の知識を用いて、各クラスのスコアと正解ラベルとから階層的損失を計算する(ステップS14)。次に、勾配計算部25は、階層的損失の勾配を計算する(ステップS15)。次に、更新部26は勾配に基づいて特徴抽出部21、双曲射影部22及び双曲分類部23のパラメータを更新する(ステップS16)。以上の処理が、所定の学習終了条件が具備されるまで繰り返し行われ、学習処理は終了する。
【0036】
以上のように、第1実施形態の学習装置100によれば、クラスの階層構造の知識を利用して、少ない学習データでも高精度のモデルを学習することが可能となる。
【0037】
[推論装置]
次に、第1実施形態の推論装置について説明する。
(ハードウェア構成)
第1実施形態の推論装置200のハードウェア構成は、
図1に示す学習装置100と同様であるので説明を省略する。
【0038】
(機能構成)
図5は、第1実施形態の推論装置200の機能構成を示すブロック図である。推論装置200は、特徴抽出部21と、双曲射影部22と、双曲分類部23とを備える。なお、特徴抽出部21、双曲射影部22及び双曲分類部23には、先の学習処理により得られたパラメータが設定される。
【0039】
特徴抽出部21には、入力データが入力される。この入力データは、実際にクラス分類の対象となる画像などのデータである。特徴抽出部21は、入力データを前特徴表現に変換し、双曲射影部22へ出力する。双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換し、双曲分類部23へ出力する。双曲分類部23は、クラスの階層構造における末端クラスについてスコアを計算し、推論結果として出力する。こうして、入力データのクラス分類が行われる。
【0040】
(推論処理)
図6は、第1実施形態の推論装置200による推論処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図5に示す各要素として動作することにより実現される。
【0041】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS21)。次に、双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換する(ステップS22)。次に、双曲分類部23は、特徴表現から各末端クラスのスコアを算出し、推論結果として出力する(ステップS23)。以上の処理が入力データ毎に行われる。
【0042】
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、クラスの階層構造の知識を用いて双曲分類部も階層化したものである。
【0043】
[学習装置]
まず、第2実施形態の学習装置について説明する。
(ハードウェア構成)
第2実施形態の学習装置100aのハードウェア構成は、
図1に示す学習装置100と同様であるので説明を省略する。
【0044】
(機能構成)
図7は、第2実施形態の学習装置100aの機能構成を示すブロック図である。
図2に示す第1実施形態の学習装置100と比較するとわかるように、第2実施形態の学習装置100aは、双曲分類部23の代わりに階層的双曲分類部23xを有する。
【0045】
階層的双曲分類部23xは、クラスの階層構造の知識を用い、双曲射影部22から入力される双曲空間上の1つの特徴表現から、階層構造の各階層におけるスコアを出力する。
図8は、階層的双曲分類部23xを構成する複数の分類器による分担方法の一例を示す。太線で示す枠91~93の各々が1つの分類器に対応する部分を示す。
図8の例では、クラスの階層構造における階層毎に1つの分類器を設ける。即ち、階層的双曲分類部23xは、第1~第3階層にそれぞれ対応する3つの分類器により構成される。各分類器は、同じ階層に属するノードを、部分木をまたいで識別する分類器である。この例では、階層的双曲分類部23xは、3つの分類器による階層毎の分類結果を出力する。
【0046】
図9は、階層的双曲分類部23xを構成する複数の分類器による分担方法の他の例を示す。太線で示す枠91~93の各々が1つの分類器に対応する部分を示す。
図9の例では、第3階層において、枠93で示すように、同じ親ノードに属する兄弟ノードを識別する複数の分類器を設ける。即ち、同じ親ノード「弁当」に属するノード「弁当A」~「弁当C」に対応して1つの分類器が用意され、同じ親ノード「パン」に属するノード「パンA」~「パンC」に対応して1つの分類器が用意される。なお、第3階層については、第2階層の「弁当」、「パン」以外の全ての親ノードに属する兄弟ノードに対しても同様に1つの分類器が用意されるが、便宜上図示を省略する。この例では、階層的双曲分類部23xは、複数の分類器それぞれによる分類結果を出力する。即ち、階層的双曲分類部23xは、第1階層については枠91に対応する分類結果を出力し、第2階層については枠92に対応する分類結果を出力し、第3階層については複数の枠93に対応する分類結果を出力する。
【0047】
上記のいずれかの構成により、階層的双曲分類部23xは、各階層について分類結果(スコア)を計算し、階層的損失計算部24へ出力する。階層的損失計算部24は、階層的双曲分類部23xから入力された各階層の分類結果に対して損失を計算し、それらの重みづけ和を階層的損失として勾配計算部25へ出力する。なお、上記のように、第2実施形態では階層的双曲分類部23xは、末端クラスのスコアのみでなく、上位階層のクラスのスコアも出力するため、階層的損失計算部24は、第1実施形態の場合のように末端クラスのスコアを統合して上位階層のスコアを算出する必要はない。
【0048】
なお、第2実施形態の学習装置100aにおける特徴抽出部21、勾配計算部25及び更新部26の構成及び動作は第1実施形態と同様であるので、説明を省略する。
【0049】
(学習処理)
図10は、第2実施形態の学習装置100aによる学習処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図7に示す各要素として動作することにより実現される。
【0050】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS31)。次に、双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換する(ステップS32)。次に、階層的双曲分類部23xは、クラスの階層構造の知識を用いて、特徴表現から各階層について各クラスのスコアを算出する(ステップS33)。次に、階層的損失計算部24は、各階層についての各クラスのスコアと、正解ラベルとから階層的損失を計算する(ステップS34)。次に、勾配計算部25は、階層的損失の勾配を計算する(ステップS35)。次に、更新部26は勾配に基づいて特徴抽出部21、双曲射影部22及び階層的双曲分類部23xのパラメータを更新する(ステップS36)。以上の処理が、所定の学習終了条件が具備されるまで繰り返し行われ、学習処理は終了する。
【0051】
[推論装置]
次に、第2実施形態の推論装置について説明する。
(ハードウェア構成)
推論装置200のハードウェア構成は、
図1に示す学習装置100と同様であるので説明を省略する。
【0052】
(機能構成)
図11は、第2実施形態の推論装置200aの機能構成を示すブロック図である。推論装置200aは、特徴抽出部21と、双曲射影部22と、階層的双曲分類部23xとを備える。なお、特徴抽出部21、双曲射影部22及び階層的双曲分類部23xには、先の学習処理により得られたパラメータが設定される。
【0053】
特徴抽出部21には、入力データが入力される。この入力データは、実際にクラス分類の対象となる画像などのデータである。特徴抽出部21は、入力データを前特徴表現に変換し、双曲射影部22へ出力する。双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換し、階層的双曲分類部23xへ出力する。階層的双曲分類部23xは、クラスの階層構造の知識を用いて、各階層の各クラスについてスコアを計算し、推論結果として出力する。こうして、入力データのクラス分類が行われる。
【0054】
(推論処理)
図12は、第2実施形態の推論装置200aによる推論処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図11に示す各要素として動作することにより実現される。
【0055】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS41)。次に、双曲射影部22は、前特徴表現を双曲空間上の特徴表現に変換する(ステップS42)。次に、階層的双曲分類部23xは、クラスの階層構造の知識を利用し、特徴表現から各階層について各クラスのスコアを算出し、推論結果として出力する(ステップS43)。以上の処理が入力データ毎に行われる。
【0056】
<第3実施形態>
次に、第3実施形態について説明する。第3実施形態は、クラスの階層構造の知識を用いて双曲射影部22も階層化したものである。
【0057】
[学習装置]
まず、第3実施形態の学習装置について説明する。
(ハードウェア構成)
第3実施形態の学習装置100bのハードウェア構成は、
図1に示す第1実施形態の学習装置100と同様であるので説明を省略する。
【0058】
(機能構成)
図13は、第3実施形態の学習装置100bの機能構成を示すブロック図である。
図7に示す第2実施形態の学習装置100aと比較するとわかるように、第2実施形態の学習装置100bは、双曲射影部22の代わりに、階層的双曲射影部22xを有する。
【0059】
階層的双曲射影部22xは、クラスの階層構造の知識を用い、特徴抽出部21から入力される前特徴表現から、階層構造の各階層における特徴表現を出力する。
図14は、階層的双曲射影部22xの概略構成を示す。階層的双曲射影部22xは、第1~第3埋め込みネットワーク(NW)と、加算器31、32とを備える。
【0060】
第1~第3埋め込みNWには、特徴抽出部21から前特徴表現が入力される。第1埋め込みNWは、クラスの階層構造の知識を用い、第1階層のノードに対応するクラスの双曲空間上における点を示すベクトルを特徴表現C1として出力する。
【0061】
第2埋め込みNWは、第2階層のノードについて、そのノードの親ノードに対応するクラスの特徴表現C1と、そのノードの特徴表現との差分D1を出力する。そして、加算器31は、親ノードの特徴表現C1と差分D1との和を、第2階層のそのノードに対応する特徴表現C2として出力する。特徴表現C2は、特徴表現C1と同様に、双曲空間上における点を示すベクトルとなる。
【0062】
同様に、第3埋め込みNWは、第3階層のノードについて、そのノードの親ノードに対応するクラスの特徴表現C2と、そのノードの特徴表現との差分D2を出力する。そして、加算器32は、親ノードの特徴表現C2と差分D2との和を、第3階層のそのノードに対応する特徴表現C3として出力する。特徴表現C3は、特徴表現C1と同様に、双曲空間上における点を示すベクトルとなる。
【0063】
図15は、上記の特徴表現C1~C3及び差分D1~D2を概念的に説明する図である。
図15では、双曲空間を便宜上2次元空間で示している。いま
図3に示すクラスの階層構造を前提とすると、丸(●)は第1階層のクラスの特徴表現C1を示し、四角(■)は第2階層のクラスの特徴表現C2を示し、三角(▲)は第3階層のクラスの特徴表現C3を示す。この場合、差分D1は、丸で示す第1階層のクラス「食品」から、四角で示す第2階層のクラス「弁当」、「パン」、「おにぎり」を指すベクトルと考えることができる。同様に、差分D2は、四角で示す第2階層のクラス「パン」から、三角で示す第3階層のクラス「パンA」~「パンC」を指すベクトルと考えることができる。なお、数学的には、上記「差分」は親ノードのクラスの特徴表現における双曲空間の接ベクトルであり、「和」は指数写像により実現される。
【0064】
こうして、階層的双曲射影部22xは、1つの入力データに対して階層毎の特徴表現C1~C3を階層的双曲分類部23xへ出力する。階層的双曲分類部23xは、階層毎の特徴表現を受け取り、階層毎に分類を行って分類結果を階層的損失計算部24へ出力する。
【0065】
なお、第3実施形態の学習装置100bにおける特徴抽出部21、勾配計算部25及び更新部26の構成及び動作は第1実施形態と同様であるので、説明を省略する。
【0066】
(学習処理)
図16は、第3実施形態の学習装置100bによる学習処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図13に示す各要素として動作することにより実現される。
【0067】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS51)。次に、階層的双曲射影部22xは、前特徴表現を階層毎に双曲空間上の特徴表現に変換する(ステップS52)。次に、階層的双曲分類部23xは、階層的双曲射影部22xから入力された階層毎の特徴表現から、各階層について各クラスのスコアを算出する(ステップS53)。次に、階層的損失計算部24は、各階層についての各クラスのスコアと、正解ラベルとから階層的損失を計算する(ステップS54)。次に、勾配計算部25は、階層的損失の勾配を計算する(ステップS55)。次に、更新部26は勾配に基づいて特徴抽出部21、階層的双曲射影部22x及び階層的双曲分類部23xのパラメータを更新する(ステップS56)。以上の処理が、所定の学習終了条件が具備されるまで繰り返し行われ、学習処理は終了する。
【0068】
[推論装置]
次に、第3実施形態の推論装置200bについて説明する。
(ハードウェア構成)
推論装置200bのハードウェア構成は、
図1に示す学習装置100と同様であるので説明を省略する。
【0069】
(機能構成)
図17は、第3実施形態の推論装置200bの機能構成を示すブロック図である。推論装置200bは、特徴抽出部21と、階層的双曲射影部22xと、階層的双曲分類部23xとを備える。なお、特徴抽出部21、階層的双曲射影部22x及び階層的双曲分類部23xには、先の学習処理により得られたパラメータが設定される。
【0070】
特徴抽出部21には、入力データが入力される。この入力データは、実際にクラス分類の対象となる画像などのデータである。特徴抽出部21は、入力データを前特徴表現に変換し、階層的双曲射影部22xへ出力する。階層的双曲射影部22xは、クラスの階層構造の知識を用いて、前特徴表現を階層毎に双曲空間上の特徴表現に変換し、階層的双曲分類部23xへ出力する。階層的双曲分類部23xは、階層毎の特徴表現に基づき、各階層の各クラスについてスコアを計算し、推論結果として出力する。こうして、入力データのクラス分類が行われる。
【0071】
(推論処理)
図18は、第3実施形態の推論装置200bによる推論処理のフローチャートである。この処理は、
図1に示すプロセッサ12が予め用意されたプログラムを実行し、
図17に示す各要素として動作することにより実現される。
【0072】
まず、特徴抽出部21は、入力データを前特徴表現に変換する(ステップS61)。次に、階層的双曲射影部22xは、前特徴表現を階層毎に双曲空間上の特徴表現に変換する(ステップS62)。次に、階層的双曲分類部23xは、階層毎の特徴表現から、各階層について各クラスのスコアを算出し、推論結果として出力する(ステップS63)。以上の処理が入力データ毎に行われる。
【0073】
<第4実施形態>
図19は、第4実施形態の学習装置の機能構成を示すブロック図である。学習装置70は、特徴抽出手段71と、射影手段72と、分類手段73と、損失計算手段74と、更新手段75とを備える。
【0074】
図20は、第4実施形態の学習装置70による学習処理のフローチャートである。まず、特徴抽出手段71は、入力データを第1の特徴表現に変換する(ステップS71)。次に、射影手段72は、第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する(ステップS72)。次に、分類手段73は、第2の特徴表現に基づいて分類を行い、入力データが各クラスに属する可能性を示すスコアを出力する(ステップS73)。次に、損失計算手段74は、各クラスが属する階層構造の知識と、入力データに付与された正解ラベルと、スコアとに基づいて階層的損失を計算する(ステップS74)。次に、更新手段75は、階層的損失に基づいて、特徴抽出手段、射影手段及び分類手段のパラメータを更新する(ステップS75)。第4実施形態によれば、クラスの階層構造の知識を用いることにより、少ない入力データでも高精度のモデルを生成することが可能となる。
【0075】
<第5実施形態>
図21は、第5実施形態の推論装置の機能構成を示すブロック図である。推論装置80は、特徴抽出手段81と、射影手段82と、分類手段83とを備える。
【0076】
図22は、第5実施形態の推論装置80による推論処理のフローチャートである。まず、特徴抽出手段81は、入力データを第1の特徴表現に変換する(ステップS81)。次に、射影手段82は、第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する(ステップS82)。次に、分類手段83は、第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する(ステップS83)。第4実施形態によれば、クラスの階層構造の知識を利用して学習したモデルを用いて、高精度に推論を行うことが可能となる。
【0077】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0078】
(付記1)
入力データを第1の特徴表現に変換する特徴抽出手段と、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する射影手段と、
前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力する分類手段と、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失を計算する損失計算手段と、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新する更新手段と、
を備える学習装置。
【0079】
(付記2)
前記分類手段は、前記階層構造の末端クラスについてスコアを出力し、
前記損失計算手段は、前記末端クラスのスコアを統合して当該末端クラスの階層より上位の階層の損失を計算し、各階層の損失の重み付け和を前記階層的損失として計算する付記1に記載の学習装置。
【0080】
(付記3)
前記損失計算手段は、前記末端クラスの階層については正解クラスのスコアを最大化する損失を計算し、前記末端クラスの階層より上位の階層については、当該階層のクラスのうち前記正解クラスが属するクラスのスコアを最大化する損失を計算する付記2に記載の学習装置。
【0081】
(付記4)
前記分類手段は、前記階層構造の知識を用いて、各階層について前記スコアを出力し、
前記損失計算手段は、各階層について出力された前記スコアに基づいて前記階層的損失を計算する付記1乃至3のいずれか一項に記載の学習装置。
【0082】
(付記5)
前記射影手段は、前記階層構造の知識に基づいて、各階層について前記第2の特徴表現を出力し、
前記分類手段は、各階層について出力された前記第2の特徴表現に基づいて、前記各階層について前記スコアを出力する付記4に記載の学習装置。
【0083】
(付記6)
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失を計算し、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新する学習方法。
【0084】
(付記7)
特徴抽出手段を用いて、入力データを第1の特徴表現に変換し、
射影手段を用いて、前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
分類手段を用いて、前記第2の特徴表現に基づいて分類を行い、前記入力データが各クラスに属する可能性を示すスコアを出力し、
前記各クラスが属する階層構造の知識と、前記入力データに付与された正解ラベルと、前記スコアとに基づいて階層的損失を計算し、
前記階層的損失に基づいて、前記特徴抽出手段、前記射影手段及び前記分類手段のパラメータを更新する処理をコンピュータに実行させるプログラムを記録した記録媒体。
【0085】
(付記8)
入力データを第1の特徴表現に変換する特徴抽出手段と、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換する射影手段と、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する分類手段と、
を備える推論装置。
【0086】
(付記9)
前記射影手段は、前記階層構造の知識に基づいて、各階層について前記第2の特徴表現を出力し、
前記分類手段は、前記各階層について出力された前記第2の特徴表現に基づいて、各階層について前記スコアを出力する付記1乃至4のいずれか一項に記載の学習装置。
【0087】
(付記10)
入力データを第1の特徴表現に変換し、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する推論方法。
【0088】
(付記11)
入力データを第1の特徴表現に変換し、
前記第1の特徴表現を、双曲空間上の点を示す第2の特徴表現に変換し、
前記第2の特徴表現に基づいて分類を行い、各クラスが属する階層構造の知識を用いて、前記入力データが各クラスに属する可能性を示すスコアを各階層について算出する処理をコンピュータに実行させるプログラムを記録した記録媒体。
【0089】
以上、実施形態及び実施例を参照して本開示を説明したが、本開示は上記実施形態及び実施例に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0090】
21 特徴抽出部
22 双曲射影部
22x 階層的双曲射影部
23 双曲分類部
23x 階層的双曲分類部
24 階層的損失計算部
25 勾配計算部
26 更新部
100、100a、100b 学習装置
200、200a、200b 推論装置