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

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

▶ 日本電気株式会社の特許一覧

<>
  • 特許-学習装置、学習方法、及び、プログラム 図1
  • 特許-学習装置、学習方法、及び、プログラム 図2
  • 特許-学習装置、学習方法、及び、プログラム 図3
  • 特許-学習装置、学習方法、及び、プログラム 図4
  • 特許-学習装置、学習方法、及び、プログラム 図5
  • 特許-学習装置、学習方法、及び、プログラム 図6
  • 特許-学習装置、学習方法、及び、プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】学習装置、学習方法、及び、プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241001BHJP
【FI】
G06N20/00 130
【請求項の数】 7
(21)【出願番号】P 2023506589
(86)(22)【出願日】2021-03-17
(86)【国際出願番号】 JP2021010828
(87)【国際公開番号】W WO2022195763
(87)【国際公開日】2022-09-22
【審査請求日】2023-08-30
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】吉田 周平
【審査官】新井 則和
(56)【参考文献】
【文献】特開2004-326200(JP,A)
【文献】PAPANDREOU, George et al.,Weakly- and Semi-Supervised Learning of a Deep ConvolutionalNetwork for Semantic Image Segmentation,arXiv.org, [online],2015年10月05日,[検索日 2024.06.12], Retrieved from the Internet: <url: https://arxiv.org/pdf/1502.02734>
【文献】大賀 隆裕 外,Data and Test Time Augmentationによるアンサンブル学習の効果検証,電子情報通信学会技術研究報告 Vol.117 No.392,2018年01月11日,135~140頁
【文献】YOSHIDA, Shuhei M. et al.,Lower-bounded proper losses for weakly supervised classication,arXiv.org, [online],2021年03月05日,[検索日 2024.06.12], Retrieved from the Internet: <url: https://arxiv.org/pdf/2103.02893>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1の推論を行う第1の推論手段と、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算する第1の損失計算手段と、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2の推論を行う第2の推論手段と、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3の推論を行う第3の推論手段と、
前記第3の推論の結果から疑似ラベルを生成する疑似ラベル生成手段と、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成するマスク生成手段と、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算する第2の損失計算手段と、
前記第1の損失及び前記第2の損失に基づいて、前記第1の推論手段、前記第2の推論手段及び前記第3の推論手段のパラメータを更新する更新手段と、
を備える学習装置。
【請求項2】
前記第1のデータ拡張、前記第2のデータ拡張及び前記第3のデータ拡張は、同一の弱正解付きデータに対して行われる請求項1に記載の学習装置。
【請求項3】
前記第2のデータ拡張及び前記第3のデータ拡張は同一の弱正解付きデータに対して行われ、前記第1のデータ拡張は、前記第2のデータ拡張及び前記第3のデータ拡張とは異なる弱正解付きデータに対して行われる請求項1に記載の学習装置。
【請求項4】
前記更新手段は、前記第1の推論手段及び前記第2の推論手段に対して同一のパラメータを設定する請求項1乃至のいずれか一項に記載の学習装置。
【請求項5】
前記更新手段は、前記第1の推論手段及び前記第2の推論手段に設定したパラメータに基づいて別のパラメータを生成し、前記第3の推論手段に設定する請求項に記載の学習装置。
【請求項6】
コンピュータにより実行される学習方法であって、
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成し、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する学習方法。
【請求項7】
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成し、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習モデルの学習方法に関する。
【背景技術】
【0002】
近年、機械学習に基づく認識技術は、画像認識の分野を中心に極めて高い性能を示している。このような機械学習に基づく認識技術の高い精度は、大量の正解付きデータにより支えられている。即ち、大量の正解付きデータを用意して学習を行うことにより、高い精度が実現されている。
【0003】
しかし、大量の正解付きデータを用意するにはコストと時間を要する。この観点から、特許文献1は、入力された画像の各クラスへの帰属確率、及び、入力された画像の人工画像らしさを表す推定真偽確率を用いて、学習用画像が少ない場合であっても精度よくクラスを識別する手法を開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-16935号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の1つの目的は、データ収集コストを抑えて、高精度な機械学習モデルを生成することにある。
【課題を解決するための手段】
【0006】
本開示の一つの観点では、学習装置は、
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1の推論を行う第1の推論手段と、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算する第1の損失計算手段と、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2の推論を行う第2の推論手段と、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3の推論を行う第3の推論手段と、
前記第3の推論の結果から疑似ラベルを生成する疑似ラベル生成手段と、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成するマスク生成手段と、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算する第2の損失計算手段と、
前記第1の損失及び前記第2の損失に基づいて、前記第1の推論手段、前記第2の推論手段及び前記第3の推論手段のパラメータを更新する更新手段と、
を備える。
【0007】
本開示の他の観点では、学習方法は、
コンピュータにより実行される学習方法であって、
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成し、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する。
【0008】
本開示のさらに他の観点では、プログラムは、
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成し、
前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する処理をコンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、データ収集コストを抑えて、高精度な機械学習モデルを生成することが可能となる。
【図面の簡単な説明】
【0010】
図1】多クラス分類問題の場合のデータセットの例を示す。
図2】第1実施形態の学習装置のハードウェア構成を示すブロック図である。
図3】第1実施形態の学習装置の機能構成を示すブロック図である。
図4】第1実施形態の学習装置による学習処理のフローチャートである。
図5】第1実施形態の推論装置の構成を示す。
図6】第2実施形態の学習装置の機能構成を示すブロック図である。
図7】第2実施形態の学習装置による学習処理のフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本開示の好適な実施形態について説明する。
<第1実施形態>
[概念説明]
(弱いラベル)
本実施形態では、弱いラベル(以下、「弱正解ラベル」とも呼ぶ。)が付いたデータセットを用いて機械学習モデルを学習する。通常の「正解」はそのデータが属する正解クラスを正しくただ一つ指定するのに対し、「弱正解」はあいまいさやノイズなどを含む正解である。
【0012】
いま、データ空間Xの要素xを正解候補集合Yの要素である正解カテゴリー(クラス)yに分類する多クラス分類問題を考える。
(1)多クラス分類問題における通常のデータセット
通常のデータセットは、データ空間Xの要素であるデータxと、正解候補集合Yの要素である正解カテゴリーyとの組(x,y)の集合D
【数1】
である。
【0013】
(2)多クラス分類問題における弱正解データセット
弱正解ラベルz∈Zは、真の正解yが定まっているとき、p(z|y)に従って決まる。弱正解ラベルのデータセットは、下記の形をしている。
【数2】
【0014】
弱正解ラベルを用いた学習の例としては、PU(Positive and Unlabeled)学習、補ラベル(Complementary-label)学習、部分ラベル(Partial-label)学習、エキスパートデータセット学習などがあげられる。
【0015】
(部分ラベル学習)
多クラス分類において、エキスパートデータセットに基づく学習は、部分ラベルに基づく学習の特殊な場合と見なせる。「部分ラベル」とは、分類されるデータxに対して、正解候補全体の集合Yの要素である正解カテゴリーyの代わりに、Yの部分集合Zが正解候補の集合として与えられるものである。ここで、部分集合Zは、本当の正解カテゴリーyを含む。以下、記述の便宜上、集合Aの補集合を「A」と記す。
【0016】
エキスパートデータセットにおいて、ラベルZは上述の意味での部分ラベルZと見なせる。部分集合Zの要素であるラベルzは、上述の意味での部分ラベル{z}と見なせる。
【0017】
なお、上述の意味での部分ラベルは、文献によって、弱ラベル(weak labels)、曖昧ラベル(ambiguous labels)等とも呼ばれる。なお、partial labels、weak labels、ambiguous labelsの語が別の意味で用いられる場合もあるが、本明細書では、上記の部分ラベル、弱ラベル、曖昧ラベルを含む概念として「部分ラベル」の語を用いる。
【0018】
(エキスパートデータセット)
次に、エキスパートデータセットの具体例を説明する。「エキスパートデータセット」とは、多クラス分類のモデルを学習する際に使用できる学習用データセットであり、複数の部分データセットにより構成されるものである。具体的に、エキスパートデータセットは、以下の条件を具備するように構成される。
(A)複数の部分データセットの各々には、認識対象とする全てのカテゴリーの少なくとも一部が責任範囲として割り当てられている。
(B)認識対象とする全てのカテゴリーが、複数の部分データセットのいずれかに割り当てられている。
(C)部分データセットに含まれる各データには、当該部分データセットに割り当てられた責任範囲に属するカテゴリーのいずれか、又は、当該認識対象のカテゴリーが当該部分データセットの責任範囲に属さないことを示す正解ラベルが付与されている。
【0019】
図1は、多クラス分類問題の場合の通常のデータセットと、エキスパートデータセットの例を示す。図1(A)は、学習に使用される通常のデータセットを示す。いま、画像データに基づいて100クラスの多クラス分類を行う物体認識モデルを学習するものとする。通常の学習用データセットとしては、用意された画像データの各々について、100クラス、即ち、100カテゴリーのうちの1つが正解ラベルとして割り当てられる。
【0020】
図1(B)は、エキスパートデータセットの例を示す。なお、このエキスパートデータセットでも、図1(A)の例と同様に全体で100クラスの多クラス分類を行うものとする。エキスパートデータセットでは、複数の部分データセットを用意する。図1(B)の例では、「水生哺乳類」、「人」などの複数の部分データセットが用意される。そして、各部分データセットには、それぞれ責任範囲が設定される。「水生哺乳類」の部分データセットには、5種類の水生哺乳類、「ビーバー」、「イルカ」、「カワウソ」、「アザラシ」、「クジラ」が責任範囲として割り当てられる。「人」の部分データセットには、5種類の人、「赤ん坊」、「男の子」、「女の子」、「男性」、「女性」が責任範囲として割り当てられる。ここで、責任範囲は、認識対象とする全てのクラス(カテゴリー)が、複数の部分データセットのいずれかに割り当てられるように決定されている。即ち、いずれの部分データセットにも割り当てられていないクラスが存在しないように、100個のクラスが複数の部分データセットに割り当てられている。言い換えると、複数の部分データセットにより、100個のクラスの認識対象全てが網羅されるように責任範囲が決定されている。これにより、エキスパートデータセットによっても、図1(A)に示す通常のデータセットと同様に、100クラスの多クラス分類の学習が可能となる。このようなエキスパートデータセットは、弱正解付きデータの一例である。
【0021】
(弱正解ラベルの利用)
上記のような弱正解ラベルは、通常の正解ラベルと比べて正解付け作業が用意であり、低コストで用意することができる。よって、弱正解ラベルと弱正解付き損失を用いることにより、弱正解付きデータから正しいクラス分類を学習することができる。しかし、弱正解は情報量が少なく、弱正解付き損失のみを用いた学習では過学習が生じやすい。そこで、本開示の実施形態では、弱正解付き損失に加え、データ拡張によってモデルの出力が大きく変化しないことを課す正解なし損失を導入して正則化を行うことにより、過学習を防止する。
【0022】
[学習装置]
(ハードウェア構成)
図2は、第1実施形態の学習装置100のハードウェア構成を示すブロック図である。図示のように、学習装置100は、インタフェース(I/F)11と、プロセッサ12と、メモリ13と、記録媒体14と、データベース(DB)15と、を備える。
【0023】
インタフェース11は、外部装置との間でデータの入出力を行う。具体的に、学習に使用される弱正解付きデータは、インタフェース11を通じて入力される。
【0024】
プロセッサ12は、CPU(Central Processing Unit)などのコンピュータであり、予め用意されたプログラムを実行することにより学習装置100の全体を制御する。なお、プロセッサ12は、GPU(Graphics Processing Unit)またはFPGA(Field-Programmable Gate Array)であってもよい。プロセッサ12は、後述する学習処理を実行する。
【0025】
メモリ13は、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成される。メモリ13は、プロセッサ12による各種の処理の実行中に作業メモリとしても使用される。
【0026】
記録媒体14は、ディスク状記録媒体、半導体メモリなどの不揮発性で非一時的な記録媒体であり、学習装置100に対して着脱可能に構成される。記録媒体14は、プロセッサ12が実行する各種のプログラムを記録している。学習装置100が各種の処理を実行する際には、記録媒体14に記録されているプログラムがメモリ13にロードされ、プロセッサ12により実行される。DB15は、必要に応じて、学習のための弱正解付きデータを記憶する。
【0027】
(機能構成)
図3は、第1実施形態の学習装置100の機能構成を示すブロック図である。学習装置100は、データ拡張部21a~21cと、推論部22a~22cと、弱正解付き損失計算部23と、正解なし損失計算部24と、疑似ラベル生成部25と、マスク生成部26と、勾配計算部27と、更新部28と、パラメータ保持部29a、29bと、を備える。
【0028】
弱正解付きデータは、入力データと、その入力データに対応する弱正解ラベルとを含む。例えば画像認識モデルを学習する場合、入力データは学習に使用される画像であり、その画像に対して弱正解ラベルが付与される。弱正解付きデータのうち、入力データはデータ拡張部21a~21cに入力され、弱正解ラベルは弱正解付き損失計算部23へ入力される。
【0029】
データ拡張部21aは、入力データに対してランダムな変換を行い、変換後の入力データを推論部22aに出力する。推論部22aは、機械学習モデルを用いて、入力データに対する推論を行う。例えば画像認識モデルを学習する場合、推論部22aは、入力データに含まれる対象物のクラスを推論し、弱正解付き損失計算部23へ出力する。
【0030】
弱正解付き損失計算部23は、推論部22aから入力される推論結果と、弱正解ラベルとから弱正解付き損失を計算する。弱正解付き損失計算部23は、計算した弱正解付き損失を勾配計算部27へ出力する。
【0031】
データ拡張部21bは、入力データに対してランダムな変換行い、変換後のデータを推論部22bへ出力する。同様に、データ拡張部21cは、入力データに対してランダムな変換を行い、変換後のデータを推論部22cへ出力する。なお、データ拡張部21aを含む3つのデータ拡張部21a~21cは、それぞれ入力データに対して独立にランダムな変換を作用させるが、その変換の種類は同一であってもよく、異なってもよい。なお、好適な例では、データ拡張部21bによる変換は、データ拡張部21a、21cによる変換よりも強い変換とする。強い変換とは、入力データに対する変化が大きい変換を言い、例えば入力データが画像である場合、画像の内容をより大きく変えるような変換である。
【0032】
推論部22bは、機械学習モデルを用いて、データ拡張部21bによる変換後の入力データに対する推論を行い、推論結果を正解なし損失計算部24へ出力する。また、推論部22cは、機械学習モデルを用いて、データ拡張部21cによる変換後の入力データに対する推論を行い、推論結果を疑似ラベル生成部25へ出力する。
【0033】
疑似ラベル生成部25は、推論部22cによる推論結果に基づいて疑似ラベルを生成する。「疑似ラベル」とは、学習途中又は学習済みのモデルの推論結果から生成したラベルをいう。具体的に、疑似ラベル生成部25は、推論部22cの推論結果をワン・ホット(one-hot)ベクトルに変換してもよい。ワン・ホットベクトルは、正解クラスだけが「1」、そのほかのクラスは「0」の値を有するベクトルである。その代わりに、疑似ラベル生成部25は、推論部22cの推論結果を、「0」又は「1」を用いたいわゆるハードなラベルと比べてソフトなラベルに変換するものであってもよい。疑似ラベル生成部25は、生成した疑似ラベルを正解なし損失計算部24へ出力する。
【0034】
マスク生成部26は、推論部22cが出力した推論結果の信頼度のスコア、即ち、各クラスについてのスコアのうちの最大値を所定の閾値と比較し、推論部22cによる推定結果の信頼度が所定の閾値以上であるか否かを示すマスクを生成する。具体的には、マスク生成部26は、推論結果のスコアの最大値が閾値より大きい場合にマスク「1」を生成し、閾値以下である場合にマスク「0」を生成して、正解なし損失計算部24へ出力する。このマスクは、疑似ラベル生成部25が生成した疑似ラベルを、正解なし損失計算部24における損失計算に使用すべきか否かを示す指標となる。
【0035】
正解なし損失計算部24は、推論部22bから入力された推論結果と、疑似ラベル生成部25が生成した疑似ラベルとを用いて、正解なし損失を計算する。ここで、正解なし損失計算部24は、マスク生成部26から入力されたマスクに基づいて、その疑似ラベルを用いた損失計算を行うか否かを決定する。具体的に、正解なし損失計算部24は、マスク生成部26から入力されたマスクが「1」である場合、疑似ラベルの信頼性が高いとして、正解なし損失を計算する。一方、正解なし損失計算部24は、マスク生成部26から入力されたマスクが「0」である場合、疑似ラベルの信頼性が低いとして、正解なし損失を計算しない。そして、正解なし損失計算部24は、正解なし損失を計算した場合、得られた正解なし損失を勾配計算部27へ出力する。
【0036】
勾配計算部27は、入力された弱正解付き損失及び正解なし損失の勾配を計算し、更新部28へ出力する。例えば、勾配計算部27は、弱正解付き損失と正解なし損失の和又は重み付き和の勾配を算出し、更新部28へ出力する。
【0037】
更新部28は、入力された勾配を用いて推論部22a、22bのパラメータ(以下、「パラメータP1」と呼ぶ。)を更新し、パラメータ保持部29aへ出力する。パラメータ保持部29aは、推論部22a、22bに対して更新後のパラメータP1を設定する。こうして、推論部22aと推論部22bに、同一のパラメータP1が設定される。
【0038】
また、更新部28は、入力された勾配を用いて、推論部22cのパラメータ(以下、「パラメータP2」と呼ぶ。)を更新し、パラメータ保持部29bへ出力する。パラメータ保持部29aは、更新後のパラメータP2を推論部22cに設定する。ここで、パラメータ保持部29bが保持するパラメータP2は、パラメータ保持部29aが保持するパラメータP1と同一であってもよく、推論部22a、22bのパラメータP1が更新されるごとに、その指数移動平均を取ったものとしてもよい。
【0039】
上記の構成において、データ拡張部21a及び推論部22aは第1の推論手段の一例であり、弱正解付き損失計算部23は第1の損失計算手段の一例である。データ拡張部21b及び推論部22bは第2の推論手段の一例であり、データ拡張部21c及び推論部22cは第3の推論手段の一例である。疑似ラベル生成部25は疑似ラベル生成手段の一例であり、正解なし損失計算部24は第2の損失計算手段の一例である。勾配計算部27、更新部28、パラメータ保持部29a、29bは、更新手段の一例である。
【0040】
(学習処理)
図4は、第1実施形態の学習装置100による学習処理のフローチャートである。この処理は、図1に示すプロセッサ12が予め用意されたプログラムを実行し、図3に示す各要素として動作することにより実現される。なお、この処理は、弱正解付きデータが入力される毎に繰り返し実行される。
【0041】
まず、弱正解付きデータに含まれる入力データがデータ拡張部21a~21cに入力される。データ拡張部21aは、弱正解付きデータの入力データを変換し、推論部22aへ出力する(ステップS11)。推論部22aは、変換後の入力データから推論を行い、推論結果を弱正解付き損失計算部23へ出力する(ステップS12)。弱正解付き損失計算部23は、推論結果と、弱正解ラベルとから弱正解付き損失を計算し、勾配計算部27へ出力する(ステップS13)。
【0042】
また、ステップS11~S13と並行して、データ拡張部21cは、弱正解付きデータを変換し、推論部22cへ出力する(ステップS14)。推論部22cは、変換後の入力データから推論を行い、推論結果を疑似ラベル生成部25へ出力する(ステップS15)。疑似ラベル生成部25は、推論結果から疑似ラベルを生成し、正解なし損失計算部24へ出力する(ステップS16)。また、マスク生成部26は、推論部22cの推論結果に基づいてマスクを生成し、正解なし損失計算部24へ出力する(ステップS17)。
【0043】
データ拡張部21bは、弱正解付きデータを変換し、推論部22bへ出力する(ステップS18)。推論部22bは、変換後の入力データから推論を行い、推論結果を正解なし損失計算部24へ出力する(ステップS19)。正解なし損失計算部24は、マスク生成部26から入力されたマスクが「1」である場合に、推論部22bから入力された推論結果と、疑似ラベル生成部25から入力された疑似ラベルとから正解なし損失を計算し、勾配計算部27へ出力する(ステップS20)。
【0044】
勾配計算部27は、入力された弱正解付き損失及び正解なし損失の勾配を計算し、更新部28へ出力する(ステップS21)。更新部28は、入力された勾配に基づいて、推論部22a、22bのパラメータP1を更新してパラメータ保持部29aへ出力するとともに、推論部22cのパラメータP2を更新してパラメータ保持部29bへ出力する(ステップS22)。そして、パラメータ保持部29aはパラメータP1を推論部22a、22bに設定し、パラメータ保持部29bはパラメータP2を推論部22cに設定する(ステップS23)。こうして、推論部22a~22cのパラメータが更新される。
【0045】
(変形例)
上記の実施形態では、学習処理の各ステップにおいて、同一の弱正解付きデータの入力データ、即ち入力画像がデータ拡張部21a~21cに入力されている。その代わりに、学習処理の各ステップにおいて、データ拡張部21aに入力される画像と、データ拡張部21b、21cに入力される画像とは異なっていてもよい。即ち、推論部22bが推論に使用する画像と、推論部22cが推論に使用し疑似ラベル生成部25が疑似ラベルの生成に使用する画像とは、同一である必要があるが、その画像と、推論部22aが推論に使用する画像とは異なっていてもよい。
【0046】
[推論装置]
図5は、第1実施形態の推論装置の構成を示す。推論装置200は、推論部201を備える。推論部201には、上記の学習処理により学習された機械学習モデルを使用する。即ち、推論部201には、上記の学習処理により得られたパラメータP1が設定される。
【0047】
推論時には、推論部201に、推論の対象となる入力データが入力される。この入力データは、推論装置200が実際に運用される環境において取得された撮影画像などのデータであり、実際の画像認識などの対象となるデータである。推論部201は、入力データから推論を行い、推論結果を出力する。例えば多クラス分類を行う画像認識の場合、推論部201は、入力画像に基づいて各クラスの確率値を推論結果として出力する。
【0048】
<第2実施形態>
図6は、第2実施形態の学習装置の機能構成を示すブロック図である。学習装置70は、第1の推論手段71と、第1の損失計算手段72と、第2の推論手段73と、第3の推論手段74と、疑似ラベル生成手段75と、第2の損失計算手段76と、更新手段77と、を備える。
【0049】
図7は、第2実施形態の学習装置70による学習処理のフローチャートである。第1の推論手段71は、弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1の推論を行う(ステップS41)。第1の損失計算手段72は、第1の推論の結果と、弱正解付きデータに付与された弱正解とから第1の損失を計算する(ステップS42)。第2の推論手段73は、弱正解データに対して第2のデータ拡張を行い、得られたデータから第2の推論を行う(ステップS43)。第3の推論手段74は、弱正解データに対して第3のデータ拡張を行い、得られたデータから第3の推論を行う(ステップS44)。疑似ラベル生成手段75は、第3の推論の結果から疑似ラベルを生成する(ステップS45)。第2の損失計算手段76は、第2の推論の結果と、疑似ラベルとに基づいて第2の損失を計算する(ステップS46)。更新手段77は、第1の損失及び第2の損失に基づいて、第1の推論手段、第2の推論手段及び第3の推論手段のパラメータを更新する(ステップS47)。
【0050】
第2実施形態の学習装置によれば、弱正解付きデータを用いて高精度な機械学習モデルを生成することが可能となる。
【0051】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0052】
(付記1)
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1の推論を行う第1の推論手段と、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算する第1の損失計算手段と、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2の推論を行う第2の推論手段と、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3の推論を行う第3の推論手段と、
前記第3の推論の結果から疑似ラベルを生成する疑似ラベル生成手段と、
前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算する第2の損失計算手段と、
前記第1の損失及び前記第2の損失に基づいて、前記第1の推論手段、前記第2の推論手段及び前記第3の推論手段のパラメータを更新する更新手段と、
を備える学習装置。
【0053】
(付記2)
前記第3の推論の結果の信頼度が所定値以上であるか否かを示すマスクを生成するマスク生成手段を備え、
前記第2の損失計算手段は、前記マスクに基づき、前記第3の推論の結果の信頼度が所定値以上である場合に、前記第2の損失を計算する付記1に記載の学習装置。
【0054】
(付記3)
前記第1のデータ拡張、前記第2のデータ拡張及び前記第3のデータ拡張は、同一の弱正解付きデータに対して行われる付記1又は2に記載の学習装置。
【0055】
(付記4)
前記第2のデータ拡張及び前記第3のデータ拡張は同一の弱正解付きデータに対して行われ、前記第1のデータ拡張は、前記第2のデータ拡張及び前記第3のデータ拡張とは異なる弱正解付きデータに対して行われる付記1又は2に記載の学習装置。
【0056】
(付記5)
前記更新手段は、前記第1の推論手段及び前記第2の推論手段に対して同一のパラメータを設定する付記1乃至4のいずれか一項に記載の学習装置。
【0057】
(付記6)
前記更新手段は、前記第1の推論手段及び前記第2の推論手段に設定したパラメータに基づいて別のパラメータを生成し、前記第3の推論手段に設定する付記5に記載の学習装置。
【0058】
(付記7)
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する学習方法。
【0059】
(付記8)
弱正解付きデータに対して第1のデータ拡張を行い、得られたデータから第1のモデルを用いて第1の推論を行い、
前記第1の推論の結果と、前記弱正解付きデータに付与された弱正解とから第1の損失を計算し、
弱正解データに対して第2のデータ拡張を行い、得られたデータから第2のモデルを用いて第2の推論を行い、
弱正解データに対して第3のデータ拡張を行い、得られたデータから第3のモデルを用いて第3の推論を行い、
前記第3の推論の結果から疑似ラベルを生成し、
前記第2の推論の結果と、前記疑似ラベルとに基づいて第2の損失を計算し、
前記第1の損失及び前記第2の損失に基づいて、前記第1のモデル、前記第2のモデル及び前記第3のモデルのパラメータを更新する処理をコンピュータに実行させるプログラムを記録した記録媒体。
【0060】
以上、実施形態及び実施例を参照して本開示を説明したが、本開示は上記実施形態及び実施例に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0061】
21a~21c データ拡張部
22a~22c 推論部
23 弱正解付き損失計算部
24 正解なし損失計算部
25 疑似ラベル生成部
26 マスク生成部
27 勾配計算部
28 更新部
29a、29b パラメータ保持部
100 学習装置
200 推論装置
図1
図2
図3
図4
図5
図6
図7