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

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

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人電気通信大学の特許一覧

<>
  • 特開-学習装置、学習方法及びプログラム 図1
  • 特開-学習装置、学習方法及びプログラム 図2
  • 特開-学習装置、学習方法及びプログラム 図3
  • 特開-学習装置、学習方法及びプログラム 図4
  • 特開-学習装置、学習方法及びプログラム 図5
  • 特開-学習装置、学習方法及びプログラム 図6
  • 特開-学習装置、学習方法及びプログラム 図7
  • 特開-学習装置、学習方法及びプログラム 図8
  • 特開-学習装置、学習方法及びプログラム 図9
  • 特開-学習装置、学習方法及びプログラム 図10
  • 特開-学習装置、学習方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190874
(43)【公開日】2022-12-27
(54)【発明の名称】学習装置、学習方法及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221220BHJP
   G06N 20/00 20190101ALI20221220BHJP
   G06N 3/08 20060101ALI20221220BHJP
【FI】
G06T7/00 350C
G06N20/00 130
G06N3/08
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021099368
(22)【出願日】2021-06-15
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】鈴木 聡志
(72)【発明者】
【氏名】谷田 隆一
(72)【発明者】
【氏名】木全 英明
(72)【発明者】
【氏名】庄野 逸
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA02
5L096EA02
5L096EA39
5L096FA39
5L096HA11
5L096KA04
(57)【要約】
【課題】所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を抑制することが可能である学習装置、学習方法及びプログラムを提供する。
【解決手段】学習装置は、学習済の畳み込みニューラルネットワークの画像処理パラメータである教師モデルパラメータを用いる第1画像処理を、学習画像に対して実行する第1画像処理部と、教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、学習画像に対して実行する第2画像処理部と、第1画像処理の中間結果と第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する中間損失導出部と、中間損失関数値を小さくするように追加パラメータを更新することによって、生徒モデルパラメータを更新する最適化処理部とを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
学習済の畳み込みニューラルネットワークの画像処理パラメータである教師モデルパラメータを用いる第1画像処理を、学習画像に対して実行する第1画像処理部と、
前記教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、前記学習画像に対して実行する第2画像処理部と、
前記第1画像処理の中間結果と前記第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する中間損失導出部と、
前記中間損失関数値を小さくするように前記追加パラメータを更新することによって、前記生徒モデルパラメータを更新する最適化処理部と
を備える学習装置。
【請求項2】
前記追加パラメータは、前記第2画像処理においてぼかし処理を実行するための新たな層として、前記生徒モデルパラメータを有する畳み込みニューラルネットワークの階層に追加される、
請求項1に記載の学習装置。
【請求項3】
前記第2画像処理部は、前記第2画像処理の最終結果と正解ラベルとの差分を表す画像損失関数値を導出し、
前記最適化処理部は、前記画像損失関数値と前記中間損失関数値とが線形結合された結果の値を小さくするように前記追加パラメータを更新することによって、前記生徒モデルパラメータを更新する、
請求項1又は請求項2に記載の学習装置。
【請求項4】
前記画像損失関数値と前記中間損失関数値との重み付けを調整する調整部を更に備え、
前記最適化処理部は、重み付けが調整された前記画像損失関数値と前記中間損失関数値とに基づいて、前記追加パラメータを更新する、
請求項3に記載の学習装置。
【請求項5】
学習装置が実行する学習方法であって、
学習済の畳み込みニューラルネットワークの画像処理パラメータである教師モデルパラメータを用いる第1画像処理を、学習画像に対して実行する第1画像処理ステップと、
前記教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、前記学習画像に対して実行する第2画像処理ステップと、
前記第1画像処理の中間結果と前記第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する中間損失導出ステップと、
前記中間損失関数値を小さくするように前記追加パラメータを更新することによって、前記生徒モデルパラメータを更新する最適化処理ステップと
を含む学習方法。
【請求項6】
請求項1から請求項4のいずれか一項に記載の学習装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法及びプログラムに関する。
【背景技術】
【0002】
撮像された物体(被写体)を画像において識別、検出及び領域分割する機械学習技術がある。また、畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)を用いて目視工程を自動化することが、各種の業務において注目されている。
【0003】
目視工程が自動化される場合、畳み込みニューラルネットワークを用いる画像処理の精度が高いことが望ましい。非特許文献1及び2では、画像処理の精度を高めることを目的として、アンチエイリアスな畳み込みニューラルネットワーク(Anti-aliased CNN)が提案されている。アンチエイリアスな畳み込みニューラルネットワークでは、畳み込みニューラルネットワークの中間層の出力に対して、ガウシアンフィルタ等を用いるぼかし処理が実行される。これによって、画像処理において発生した折り返し雑音(aliasing)の発生が抑制されるので、畳み込みニューラルネットワークを用いる画像処理の精度の低下が抑制される。
【0004】
深層学習技術の発展に応じて、畳み込みニューラルネットワークを用いる機械学習の様々なモデルがオンライン上で公開されている。このため、オンライン上で公開されているモデルにおける畳み込みニューラルネットワークの中間層の出力に対してぼかし処理が導入されることが、アンチエイリアスな畳み込みニューラルネットワークの開発手法として実践的である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】R. Zhang, “Making Convolutional Networks Shift-Invariant Again”, 2019
【非特許文献2】S. Sinha, A. Garg, H. Larochelle, “Curriculum by Smoothing”, 2020.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、アンチエイリアスな畳み込みニューラルネットワークの中間層の出力に対してぼかし処理が単に実行された場合、そのアンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理(例えば、画像の特徴を抽出する処理)の精度は低下する。特徴抽出処理の精度を低下させないようにするためには、アンチエイリアスな畳み込みニューラルネットワークを用いるモデルに対して、所定量以上の学習データを用いて、ファイン・チューニング(Fine-tuning)が実行される必要がある。
【0007】
しかしながら、所定量以上の学習データを用意することが難しい場合がある。所定量未満の学習データを用いてファイン・チューニングが実行された場合には、学習データの過学習によって、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度が低下するという問題がある。
【0008】
上記事情に鑑み、本発明は、所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を抑制することが可能である学習装置、学習方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0009】
本発明の一態様は、学習済の畳み込みニューラルネットワークの画像処理パラメータである教師モデルパラメータを用いる第1画像処理を、学習画像に対して実行する第1画像処理部と、前記教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、前記学習画像に対して実行する第2画像処理部と、前記第1画像処理の中間結果と前記第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する中間損失導出部と、前記中間損失関数値を小さくするように前記追加パラメータを更新することによって、前記生徒モデルパラメータを更新する最適化処理部とを備える学習装置である。
【0010】
本発明の一態様は、学習装置が実行する学習方法であって、学習済の畳み込みニューラルネットワークの画像処理パラメータである教師モデルパラメータを用いる第1画像処理を、学習画像に対して実行する第1画像処理ステップと、前記教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、前記学習画像に対して実行する第2画像処理ステップと、前記第1画像処理の中間結果と前記第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する中間損失導出ステップと、前記中間損失関数値を小さくするように前記追加パラメータを更新することによって、前記生徒モデルパラメータを更新する最適化処理ステップとを含む学習方法である。
【0011】
本発明の一態様は、上記の学習装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0012】
本発明により、所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を抑制することが可能である。
【図面の簡単な説明】
【0013】
図1】第1実施形態における、画像処理装置の構成例を示す図である。
図2】第1実施形態における、第1画像処理部と第2画像処理部との各構成例を示す図である。
図3】第1実施形態における、中間損失導出部の構成例を示す図である。
図4】第1実施形態における、画像処理装置の動作例を示すフローチャートである。
図5】第1実施形態における、第1画像処理部の動作例を示すフローチャートである。
図6】第1実施形態における、第2画像処理部の動作例を示すフローチャートである。
図7】第1実施形態における、中間損失導出部の動作例を示すフローチャートである。
図8】第1実施形態における、最適化処理部の動作例を示すフローチャートである。
図9】第2実施形態における、画像処理装置の構成例を示す図である。
図10】第2実施形態における、調整部の動作例を示すフローチャートである。
図11】各実施形態における、画像処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0014】
(概要)
以下の実施形態では、機械学習における知識転移(転移学習)(参考文献1(G. Hinton, O. Vinyals, J. Dean, “Distilling the Knowledge in a Neural Network”, 2015.))が実行される。知識転移とは、学習済の畳み込みニューラルネットワーク(以下「教師モデル」という。)が有する知識を、更新される畳み込みニューラルネットワーク(以下「生徒モデル」という。)に与えることである。教師モデルが有する知識とは、例えば、画像処理における特徴抽出に関する知識である。画像処理とは、例えば、画像における物体識別処理、物体検出処理又は領域分割処理である。知識転移が実行されることによって、学習データ(学習画像)の過学習を抑制しながら、生徒モデルを用いる特徴抽出処理の精度を向上させることが可能である。
【0015】
以下の実施形態では、画像処理装置における第1画像処理部が、教師モデルを用いる画像処理(以下「第1画像処理」という。)を、学習画像に対して実行する。以下、第1画像処理のパラメータを「教師モデルパラメータ」という。モデルパラメータは、畳み込みニューラルネットワークを用いて表されるモデルの画像処理パラメータである。
【0016】
以下の実施形態では、画像処理装置における第2画像処理部が、追加パラメータを教師モデルの中間層に追加することによって、生徒モデルを生成する。追加パラメータは、ぼかし処理を実行するためのブラー層(Blur Layer)のパラメータである。生徒モデルは、追加パラメータによって、アンチエイリアスな畳み込みニューラルネットワークとなる。第2画像処理部は、生徒モデルを用いる画像処理(以下「第2画像処理」という。)を、学習画像に対して実行する。第2画像処理では、折り返し雑音の発生が、ぼかし処理によって抑制される。以下、第2画像処理のパラメータを「生徒モデルパラメータ」という。
【0017】
以下の実施形態では、画像処理装置における最適化処理部は、生徒モデルに対してファイン・チューニングを実行する。生徒モデルにおける教師モデルパラメータ(転移された知識)が固定されているので、ファイン・チューニングでは、生徒モデルにおける追加パラメータが更新される。
【0018】
以下の実施形態では、教師モデルによって抽出された特徴と生徒モデルによって抽出された特徴とが類似するように(参考文献2(A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta, Y. Bengio, “FitNets: Hints for Thin Deep Nets”, 2015.))、生徒モデルが最適化処理される。ここで、生徒モデルのブラー層の直前の中間層の出力と、教師モデルにおける所定の中間層の出力とが類似するという制約が定められる。
【0019】
これらによって、所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を抑制することが可能である。
【0020】
本発明の実施形態について、図面を参照して詳細に説明する。
(第1実施形態)
図1は、画像処理装置1aの構成例を示す図である。画像処理装置1aは、記憶部2と、学習装置3aとを備える。学習装置3aは、第1画像処理部31と、第2画像処理部32と、中間損失導出部33と、最適化処理部34とを備える。
【0021】
記憶部2は、教師モデルパラメータと、学習画像と、正解ラベル(正解データ)と、追加パラメータとを記憶する。学習画像は、学習に用いられる画像である。学習画像は、撮影された物体の画像を含む。
【0022】
第1画像処理部31は、学習画像と教師モデルパラメータとを、記憶部2から取得する。第1画像処理部31は、学習画像に対して第1画像処理を実行する。第1画像処理部31は、第1画像処理の中間結果と、第1画像処理の最終結果とを生成する。第1画像処理の中間結果は、教師モデルの入力層から出力層までの階層における中間層の出力(教師モデルの中間層の出力)である。第1画像処理の最終結果は、教師モデルの出力層の出力である。
【0023】
第1画像処理部31は、第1画像処理の中間結果を、中間損失導出部33に出力する。生徒モデルにおけるブラー層の直前の畳み込み層と、教師モデルにおける所定の畳み込み層とは、予め対応付けられている。第1画像処理部31は、教師モデルにおけるその所定の畳み込み層の出力を、第1画像処理の中間結果として中間損失導出部33に出力する。
【0024】
第2画像処理部32は、教師モデルパラメータと、正解ラベルと、追加パラメータと、学習画像とを、記憶部2から取得する。第2画像処理部32は、第2画像処理部32における教師モデルパラメータの中間層に追加パラメータを追加することによって、生徒モデルパラメータを生成する。生徒モデルパラメータにおける教師モデルパラメータ(転移された知識)は固定される。
【0025】
第2画像処理部32は、学習画像に対して第2画像処理を実行する。第2画像処理部32は、第2画像処理の中間結果と、第2画像処理の最終結果とを生成する。第2画像処理の中間結果は、生徒モデルの中間層の出力である。第2画像処理の最終結果は、生徒モデルの出力層の出力である。第2画像処理部32は、第2画像処理の中間結果を、中間損失導出部33に出力する。第2画像処理部32は、画像損失関数値「Lossrecog.」と生徒モデルパラメータとを、最適化処理部34に出力する。
【0026】
第2画像処理部32は、第2画像処理の最終結果と正解ラベルとの間の差分(誤差)に応じた関数値(以下「画像損失関数値」という。)を導出する。画像損失関数値は、例えば、画像に関する交差エントロピー誤差(Cross-entropy Loss)、又は、画像に関する平均二乗誤差である。第2画像処理の結果と正解ラベルとの差分が小さいほど、画像損失関数値は小さい。第2画像処理部32は、更新後の生徒モデルパラメータ(最適化された生徒モデルパラメータ)を、最適化処理部34から取得する。
【0027】
図2は、第1画像処理部31と第2画像処理部32との各構成例を示す図である。第1画像処理部31は、畳み込み層310と、畳み込み層311と、畳み込み層312と、グローバル・プーリング層313と、全結合層314とを備える。第2画像処理部32は、ブラー層320と、畳み込み層321と、畳み込み層322と、ブラー層323と、畳み込み層324と、グローバル・プーリング層325と、全結合層326とを備える。
【0028】
第1画像処理部31は、畳み込み層310の特徴抽出処理の結果を、第1画像処理の中間結果の一つとして、中間損失導出部33に出力する。第1画像処理部31は、畳み込み層312の処理結果を、第1画像処理の中間結果の一つとして、中間損失導出部33に出力する。第1画像処理部31の畳み込み層310と、第2画像処理部32の畳み込み層321とは、予め対応付けられている。第1画像処理部31の畳み込み層312と、第2画像処理部32の畳み込み層324とは、予め対応付けられている。
【0029】
図2に示された「/n」の「n」は、1以上の整数であり、画像処理におけるサブサンプリングのピクセル間隔を表す。図2において「/1」が付された層(例えば、畳み込み層322)では、学習画像の信号に対して、間引き処理が実行されない。図2において「/2」が付された層(例えば、畳み込み層311)では、学習画像の信号に対して、ピクセル間隔「2」で間引き処理が実行される。この間引き処理の際にナイキスト周波数を超えた信号が、折り返し雑音となる。アンチエイリアスな畳み込みニューラルネットワークのコアアイデアの一つは、このピクセル間隔「2」のサブサンプリングが実行される前に、ローパスのブラーフィルタを信号にかけることである。これによって、学習画像の信号がナイキスト周波数を超えないようにすることが可能である。
【0030】
例えば、畳み込み層321のニューロンは、ブラー層320によってぼかし処理が実行された学習画像から、更に高次の特徴を抽出する。第2画像処理部32は、ぼかし処理を実行するためのブラー層320の後段における畳み込み層であって、次のぼかし処理を実行するブラー層323の直前の畳み込み層321(ブラー層に近い階層)の処理結果を、第2画像処理(特徴抽出処理)の中間結果の一つとして、中間損失導出部33に出力する。
【0031】
例えば、畳み込み層324のニューロンは、ブラー層323によってぼかし処理が実行された学習画像から、更に高次の特徴を抽出する。第2画像処理部32は、ぼかし処理を実行するためのブラー層323の後段における畳み込み層であって、グローバル・プーリング層325の直前の畳み込み層324の処理結果を、第2画像処理の中間結果の一つとして、中間損失導出部33に出力してもよい。
【0032】
教師モデルの畳み込み層のニューロンと生徒モデルの畳み込み層のニューロンとが同様の反応を示すように、生徒モデルの学習が実行される。生徒モデルの学習が実行されることによって、生徒モデルにおいてぼかし処理が導入されていても第1画像処理の中間結果と第2画像処理の中間結果とがほぼ一致する。
【0033】
中間損失導出部33(転移部)は、第1画像処理の中間結果「t」を、第1画像処理部31から取得する。中間損失導出部33は、第2画像処理の中間結果「s」を、第2画像処理部32から取得する。中間損失導出部33は、第1画像処理の中間結果と第2画像処理の中間結果とに基づいて、中間損失関数値(知識損失関数値)を導出する。中間損失関数値は、第1画像処理の中間結果と第2画像処理の中間結果との間の差分(知識損失)を表す関数値である。
【0034】
図3は、中間損失導出部33の構成例を示す図である。中間損失導出部33は、関数処理部330-1「f」と、関数処理部330-2「f」とを備える。関数処理部330-1は、畳み込み層331-1と、グローバル・プーリング層332-1と、全結合層333-1(出力層)とを備える。同様に、関数処理部330-2は、畳み込み層331-2と、グローバル・プーリング層332-2と、全結合層333-2(出力層)とを備える。
【0035】
第1画像処理の中間結果と第2画像処理の中間結果とが類似するという制約条件が、学習処理に与えられる。仮に、中間結果に対するこのような制約条件が、中間層の出力全体の平均二乗誤差(Mean Square Error : MSE)又は平均絶対値誤差(Mean Absolute Error : MAE)に基づく制約である場合(参考文献2、参考文献3(J. Johnson, A. Alahi, L. Fei-Fei, “Perceptual Losses for Real-Time Style Transfer and Super-Resolution”, 2016.)には、物体認識等の画像処理に寄与する本質的な知識だけでなく、折り返し雑音の影響を受けた非本質的な知識(画像処理に寄与しない知識)も生徒モデルに転移されてしまうので、生徒モデルの所望の精度が得られない可能性がある。
【0036】
そこで以下では、折り返し雑音の影響が最大限に低減され、かつ、非本質的な知識が生徒モデルに転移された場合にペナルティが課されるように、中間損失関数値(知識損失関数値)が、平均二乗誤差(MSE)又は平均絶対値誤差(MAE)に追加される。
【0037】
中間損失導出部33は、第1画像処理の中間結果「t」と第2画像処理の中間結果「s」とに基づいて、画素レベル損失関数値を導出する。画素レベル損失関数値「Losspixel」は、式(1)のように表される。
【0038】
【数1】
【0039】
ここで、「D」は、第1画像処理の中間結果「t」と第2画像処理の中間結果「s」との間の差分(距離)を導出するための関数であり、例えば、平均絶対誤差の関数である。画素レベル損失関数値は、第1画像処理の中間結果と第2画像処理の中間結果との間の距離を、画素レベルで表す損失関数値である。画素レベル損失関数値が知識転移されることによって、細かな知識(各画素に関する情報)を転移することが可能であるが、物体認識等の画像処理に寄与する本質的な知識だけでなく、折り返し雑音の影響を受けた非本質的な知識も転移されてしまう。非本質的な知識が転移された場合には、画像処理の精度が低下する。
【0040】
中間損失導出部33は、関数処理部330-1「f」に、第1画像処理の中間結果「t」を入力する。関数処理部330-1は、第1画像処理の中間結果「t」の解像度を低下させる処理(例えば、平均化処理)を実行する。関数処理部330-1は、解像度を低下させる処理の結果に対して、画像処理(特徴抽出処理)を実行する。全結合層333-1によって第1画像処理の中間結果「t」から抽出された特徴は、折り返し雑音をほとんど含まない。すなわち、関数値「f(t)」は、折り返し雑音をほとんど含まない。
【0041】
中間損失導出部33は、関数処理部330-2「f」に、第2画像処理の中間結果「s」を入力する。関数処理部330-2は、第2画像処理の中間結果「t」の解像度を低下させる処理(例えば、平均化処理)を実行する。関数処理部330-2は、解像度を低下させる処理の結果に対して、画像処理(特徴抽出処理)を実行する。
【0042】
中間損失導出部33は、全結合層333-1の出力「f(t)」と全結合層333-2の出力「f(s)」とに基づいて、画像レベル損失関数値を導出する。画像レベル損失関数値「Lossglobal」は、式(2)のように表される。
【0043】
【数2】
【0044】
ここで、「f」は、物体認識等の画像処理に寄与する粗い知識(画像の全体に関する情報)を第1画像処理の中間結果「t」から抽出する関数である。なお、関数「f」の精度が向上するように、関数「f」の訓練に補助損失関数値が用いられてもよい。補助損失関数値は、全結合層333-1の出力と正解ラベルとの間の差分を表す。「f」は、物体認識等の画像処理に寄与する粗い知識(情報)を第2画像処理の中間結果「s」から抽出する関数である。
【0045】
画像レベル損失関数値は、第1画像処理の中間結果と第2画像処理の中間結果との間の距離を、画像レベルで表す損失関数値である。画素レベル損失関数値が知識転移されることによって、折り返し雑音の影響を受けた非本質的な知識が多く転移されるほど、画像レベル損失関数値は大きくなる。
【0046】
中間損失導出部33は、第1画像処理の中間結果「t」と第2画像処理の中間結果「s」とに基づいて、中間損失関数値(知識損失関数値)を導出する。ここで、中間損失導出部33は、画素レベル損失関数値「Losspixel」と画像レベル損失関数値「Lossglobal」とに基づいて、中間損失関数値(知識損失関数値)を導出する。中間損失関数値は、例えば、画素レベル損失関数値と画像レベル損失関数値との合計値「(Losspixel)+(Lossglobal)」である。中間損失関数値は、例えば、画素レベル損失関数値」と画像レベル損失関数値との合計値に所定の結合荷重「λ」が乗算された結果の値「λ((Losspixel)+(Lossglobal))」でもよい。
【0047】
全結合層333-1によって第1画像処理の中間結果「t」から抽出された特徴は、折り返し雑音をほとんど含まない。このため、非本質的な知識を平均二乗誤差(MSE)又は平均絶対値誤差(MAE)が生徒モデルに転移した場合には、中間損失関数値がペナルティを課すことが期待される。
【0048】
最適化処理部34は、生徒モデルパラメータと画像損失関数値「Lossrecog.」とを、第2画像処理部32から取得する。最適化処理部34は、中間損失関数値を、中間損失導出部33から取得する。最適化処理部34は、画像損失関数値と中間損失関数値とに基づいて、損失関数値を導出する。損失関数値「Loss」は、式(3)のように表される。
【0049】
【数3】
【0050】
最適化処理部34は、生徒モデルパラメータにおける追加パラメータに対して最適化処理を実行することによって、生徒モデルパラメータを更新する。すなわち、最適化処理部34は、中間損失関数値(知識損失関数値)が最適化するように(第1画像処理の中間結果と第2画像処理の中間結果とが類似するように)、損失関数値「Loss」を更新する。この最適化とは、特定の最適化に限定されないが、例えば、最小化又は最大化である。最適化処理部34は、生徒モデルパラメータにおける追加パラメータを更新することによって、更新後の生徒モデルパラメータ(更新後の生徒モデルの画像処理パラメータ)を生成する。
【0051】
画像処理装置1aが学習処理を継続する場合、最適化処理部34は、更新後の生徒モデルパラメータを、学習済の畳み込みニューラルネットワークの画像処理パラメータ(学習済モデルパラメータ)として、第2画像処理部32に出力する。画像処理装置1aが学習処理を終了する場合、最適化処理部34は、更新後の生徒モデルパラメータを、学習済の畳み込みニューラルネットワークの画像処理パラメータとして、例えば物体識別処理を実行する推論装置(不図示)に出力する。
【0052】
次に、画像処理装置1aの動作例を説明する。
図4は、画像処理装置1aの動作例を示すフローチャートである。第1画像処理部31は、教師モデルパラメータを記憶部2から取得する。第2画像処理部32は、教師モデルパラメータを記憶部2から取得する(ステップS101)。第1画像処理部31は、学習画像に対して教師モデルパラメータを用いる画像処理の第1画像処理の中間結果を、中間損失導出部33に出力する(ステップS102)。
【0053】
第2画像処理部32は、第2画像処理の中間結果を、中間損失導出部33に出力する(ステップS103)。第2画像処理部32は、第2画像処理の最終結果と正解ラベルとの間の差分に基づいて、画像損失関数値を導出する。第2画像処理部32は、画像損失関数値を最適化処理部34に出力する(ステップS104)。
【0054】
中間損失導出部33は、第1画像処理の中間結果と第2画像処理の中間結果との間の差分を小さくするための中間損失関数値(知識損失関数値)を導出する。中間損失導出部33は、中間損失関数値を最適化処理部34に出力する(ステップS105)。最適化処理部34は、画像損失関数値と中間損失関数値とに基づいて、更新後の生徒モデルパラメータを生成する(ステップS106)。
【0055】
最適化処理部34は、学習処理を終了させるか否かを判定する(ステップS107)。学習処理を継続させると判定された場合(ステップS107:NO)、最適化処理部34は、更新後の生徒モデルパラメータを第2画像処理部32に出力する(ステップS108)。学習処理を終了させると判定された場合(ステップS107:YES)、最適化処理部34は、更新後の生徒モデルパラメータを学習済モデルパラメータとして、例えば推論を実行する推論装置(不図示)に出力する。
【0056】
次に、第1画像処理部31の動作例を説明する。
図5は、第1画像処理部31の動作例を示すフローチャートである。第1画像処理部31は、教師モデルパラメータを、記憶部2から取得する(ステップS201)。第1画像処理部31は、学習画像を記憶部2から取得する(ステップS202)。第1画像処理部31は、学習画像に対して教師モデルパラメータを用いて、第1画像処理の中間結果を生成する(ステップS203)。第1画像処理部31は、第1画像処理の中間結果を中間損失導出部33に出力する(ステップS204)。
【0057】
次に、第2画像処理部32の動作例を説明する。
図6は、第2画像処理部32の動作例を示すフローチャートである。第2画像処理部32は、学習処理の開始時であるか否かを判定する。学習処理の開始時とは、繰り返し実行される学習処理のうちで、最初に実行される学習処理の実行時である(ステップS301)。
【0058】
学習処理の開始時ではないと判定された場合(ステップS401:NO)、第2画像処理部32は、ステップS304に処理を進める。学習処理の開始時であると判定された場合(ステップS301:YES)、第2画像処理部32は、教師モデルパラメータと、追加パラメータ(ブラー層のパラメータ)とを、記憶部2から取得する(ステップS302)。
【0059】
第2画像処理部32は、生徒モデルパラメータの画像処理の中間処理結果に対してぼかし処理を実行するブラー層を、ニューラルネットワークにおける新たな中間層として、生徒モデルパラメータを追加する。
【0060】
ステップS302において取得された生徒モデルパラメータにおける教師モデルパラメータは、最適化処理が事前に実行されたモデルパラメータ(学習済モデルパラメータ)として扱われる。このため、ステップS302において取得された生徒モデルパラメータにおける教師モデルパラメータに対して最適化処理が更に実行されないように(パラメータが更新されないように)、第2画像処理部32は、生徒モデルパラメータにおける教師モデルパラメータを固定する(ステップS303)。
【0061】
第2画像処理部32は、正解ラベルを記憶部2から取得する(ステップS304)。画像処理が物体識別処理である場合、正解ラベルは、識別の対象物の画像が学習画像に含まれているか否かを示すベクトル列である。画像処理が領域分割処理である場合、正解ラベルは、学習画像の各画素が属する領域を示す配列である。
【0062】
第2画像処理部32は、学習画像を記憶部2から取得する(ステップS305)。第2画像処理部32は、学習画像に対して生徒モデルパラメータを用いて、第2画像処理の中間結果を生成する(ステップS306)。第2画像処理部32は、第2画像処理の中間結果を中間損失導出部33に出力する(ステップS307)。第2画像処理部32は、正解ラベル「y」と第2画像処理の中間結果「x」との間の差分を表す画像損失関数値を導出する(ステップS408)。
【0063】
正解ラベル「y」と第2画像処理の中間結果「x」との間の差分が小さいほど、画像損失関数値は小さい。画像損失関数値としての交差エントロピー誤差「Ldist」は、式(4)のように表される。
【0064】
【数4】
【0065】
ここで、「y」は、正解ラベル「y」の確率分布(真の確率分布)を表す。「x’」は、第2画像処理の中間結果「x」の確率分布(推定された確率分布)を表す。第2画像処理部32は、画像損失関数値を最適化処理部34に出力する。
【0066】
次に、中間損失導出部33の動作例を説明する。
図7は、中間損失導出部33の動作例を示すフローチャートである。中間損失導出部33は、第1画像処理の中間結果を第1画像処理部31から取得する。中間損失導出部33は、第2画像処理の中間結果を第2画像処理部32から取得する(ステップS401)。
【0067】
中間損失導出部33は、第1画像処理の中間結果と第2画像処理の中間結果とに基づいて、中間損失関数値を導出する。中間損失関数値は、第1画像処理の中間結果と第2画像処理の中間結果とが類似しているほど小さい(ステップS402)。中間損失導出部33は、中間損失関数値を最適化処理部34に出力する(ステップS403)。
【0068】
次に、最適化処理部34の動作例を説明する。
図8は、最適化処理部34の動作例を示すフローチャートである。最適化処理部34は、画像損失関数値を第2画像処理部32から取得する(ステップS501)。最適化処理部34は、中間損失関数値(知識損失関数値)を、中間損失導出部33から取得する(ステップS502)。最適化処理部34は、生徒モデルパラメータを第2画像処理部32から取得する(ステップS503)。
【0069】
最適化処理部34は、予め定められた第1条件(例えば、第1閾値以下となるという条件)を中間損失関数値が満たすように生徒モデルパラメータにおける追加パラメータを更新することによって、更新後の生徒モデルパラメータを生成する。
【0070】
最適化処理部34は、予め定められた第2条件(例えば、第2閾値以下となるという条件)を画像損失関数値及び中間損失関数値が満たすように、生徒モデルパラメータにおける追加パラメータを更新することによって、更新後の生徒モデルパラメータを生成してもよい。
【0071】
最適化処理部34は、予め定められた第3条件(例えば、第3閾値以下となるという条件)を損失関数値「Loss」が満たすように、生徒モデルパラメータにおける追加パラメータを更新することによって、更新後の生徒モデルパラメータを生成してもよい。損失関数値「Loss」は、画像損失関数値と中間損失関数値とが結合荷重「λ」を用いて線形結合された結果の値である。ここで、画像損失関数値の結合荷重「λ」は例えば「1」であり、中間損失関数値の結合荷重「λ」は例えば「0.02」である。
【0072】
損失関数値(画像損失関数値と中間損失関数値とが線形結合された結果の値)の推移に応じて、人が結合荷重「λ」を任意に調整してもよい。更新後の生徒モデルパラメータの生成には、確率的勾配降下法(Stochastic Gradient Descent : SGD)又はAdam(Adaptive Moment Estimation)等の最適化方法が用いられてもよいし、ニュートン法等の最適化アルゴリズムが用いられてもよい(ステップS504)。
【0073】
最適化処理部34は、学習処理の実行を終了させるか否かを判定する。例えば、最適化処理部34は、予め定められた実行回数に達したか否かに基づいて、学習処理の実行を終了させるか否かを判定する。最適化処理部34は、目的関数値が所定値以下であるか否かに基づいて、学習処理の実行を終了させるか否かを判定してもよい。また、最適化処理部34は、人から与えられた命令信号に基づいて、学習処理の実行を終了させるか否かを判定してもよい(ステップS505)。
【0074】
学習処理の実行を継続させると判定された場合(ステップS505:NO)、最適化処理部34は、更新後の生徒モデルパラメータを、第2画像処理部32に出力する(ステップS506)。学習処理の実行を終了させると判定された場合(ステップS505:YES)、最適化処理部34は、更新後の生徒モデルパラメータを学習済モデルパラメータとして、例えば推論装置(不図示)に出力する(ステップS507)。
【0075】
以上のように、第1画像処理部31は、教師モデルパラメータ(学習済の畳み込みニューラルネットワークの画像処理パラメータ)を用いる第1画像処理を、学習画像に対して実行する。第2画像処理部32は、教師モデルパラメータと追加パラメータとを含む生徒モデルパラメータを用いる第2画像処理を、学習画像に対して実行する。中間損失導出部33は、第1画像処理の中間結果と第2画像処理の中間結果との間の差分を表す中間損失関数値を導出する。最適化処理部34は、中間損失関数値を小さくするように追加パラメータを更新することによって、生徒モデルパラメータを更新する。
【0076】
このように、学習によって教師モデルが得た所定量未満の知識は、生徒モデルに対して実行されるファイン・チューニング(知識転移)において、生徒モデルにおける畳み込みニューラルネットワークの中間層の出力(生徒モデルを用いる特徴抽出処理の中間結果)に対して転移される。ファイン・チューニング(知識転移)では、学習データの過学習は抑制される。これによって、所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を抑制することが可能である。
【0077】
第2画像処理部32は、第2画像処理においてぼかし処理を実行するための新たな層(ブラー層)として、生徒モデルパラメータを有する畳み込みニューラルネットワークの階層に、追加パラメータを追加する。第2画像処理部32は、第2画像処理の最終結果と正解ラベルとの差分を表す画像損失関数値を導出する。最適化処理部34は、損失関数値(画像損失関数値と中間損失関数値とが線形結合された結果の値)を小さくするように追加パラメータを更新することによって、生徒モデルパラメータを更新する。
【0078】
(第2実施形態)
第2実施形態では、画像損失関数値と中間損失関数値との結合荷重(重み付け)が調整される点が、第1実施形態との差分である。第2実施形態では、第1実施形態との差分を中心に説明する。
【0079】
画像損失関数値と中間損失関数値とが適切に調整されることによって、特徴抽出処理の精度の低下はより抑制される。しかしながら、画像損失関数値と中間損失関数値との組み合わせ数は多いので、最適な結合荷重を手動で探索することは現実的ではない。そこで第2実施形態では、一例として、参考文献4(Y. Du, W. M. Czarnecki, S. M. Jayakumar, R. Pascanu, B. Lakshminarayanan, “Adapting Auxiliary Losses Using Gradient Similarity”, 2019.)に記載の手法に基づいて、画像損失関数値と中間損失関数値との結合荷重が調整される。
【0080】
図9は、画像処理装置1bの構成例を示す図である。画像処理装置1bは、記憶部2と、学習装置3bとを備える。学習装置3bは、第1画像処理部31と、第2画像処理部32と中間損失導出部33と、最適化処理部34と、調整部35とを備える。
【0081】
調整部35は、損失関数値の結合荷重と制約関数値の結合荷重とを導出する。調整部35は、損失関数値の結合荷重と制約関数値の結合荷重とを、最適化処理部34に出力する。最適化処理部34は、損失関数値の結合荷重と制約関数値の結合荷重とを用いて、更新前モデルパラメータに対して最適化処理を実行することによって、更新前モデルパラメータを更新する。
【0082】
次に、調整部35の動作例を説明する。
図10は、調整部35の動作例を示すフローチャートである。調整部35は、中間損失関数値を中間損失導出部33から取得する(ステップS601)。調整部35は、画像損失関数値を第2画像処理部32から取得する(ステップS602)。調整部35は、生徒モデルパラメータを、第2画像処理部32から取得する(ステップS603)。
【0083】
調整部35は、生徒モデルパラメータにおいて中間損失関数値を逆伝播させることによって、中間損失関数値の勾配を導出する(ステップS604)。調整部35は、生徒モデルパラメータにおいて画像損失関数値を逆伝播させることによって、画像損失関数値の勾配を導出する(ステップS605)。なお、勾配を導出する方法は、誤差逆伝播法に限られない。
【0084】
調整部35は、中間損失関数値の勾配と画像損失関数値の勾配との間の類似度を導出する。導出された類似度は、例えばコサイン類似度である(ステップS606)。調整部35は、類似度に応じた結合荷重(重み付け)を最適化処理部34に出力する。例えば、画像損失関数値の勾配に対する中間損失関数値の勾配の類似度が高いほど、調整部35は、画像損失関数値の結合荷重を小さくしてもよい。
【0085】
以上のように、調整部35は、画像損失関数値と中間損失関数値との重み付けを調整する。最適化処理部34は、重み付けが調整された画像損失関数値と中間損失関数値とに基づいて、追加パラメータを更新する。これによって、所定量未満の学習データを用いてファイン・チューニングが実行された場合でも、アンチエイリアスな畳み込みニューラルネットワークを用いる特徴抽出処理の精度の低下を更に抑制することが可能である。
【0086】
図11は、各実施形態における、画像処理装置1のハードウェア構成例を示す図である。画像処理装置の各機能部のうちの一部又は全部は、CPU(Central Processing Unit)等のプロセッサ100が、不揮発性の記録媒体(非一時的な記録媒体)を有するメモリ102に記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置101などの非一時的な記録媒体である。
【0087】
画像処理装置の各機能部のうちの一部又は全部は、例えば、LSI(Large Scale Integrated circuit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field Programmable Gate Array)等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。
【0088】
なお、上述した実施形態において、上記のような形態で実施されるプログラムは、単一の装置に依存するものではなく、プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することによって画像処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0089】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0090】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0091】
本発明は、画像処理装置に適用可能である。
【符号の説明】
【0092】
1,1a,1b…画像処理装置、2…記憶部、3a,3b…学習装置、31…第1画像処理部、32…第2画像処理部、33…中間損失導出部、34…最適化処理部、100…プロセッサ、101…記憶装置、102…メモリ、330…関数処理部、331…畳み込み層、332…グローバル・プーリング層、333…全結合層
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11