(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】学習システム、学習装置、および学習方法
(51)【国際特許分類】
G06N 3/08 20230101AFI20240409BHJP
【FI】
G06N3/08
(21)【出願番号】P 2021550747
(86)(22)【出願日】2019-09-30
(86)【国際出願番号】 JP2019038498
(87)【国際公開番号】W WO2021064787
(87)【国際公開日】2021-04-08
【審査請求日】2022-03-18
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】高本 亮
【審査官】渡辺 順哉
(56)【参考文献】
【文献】WANG, Zihan ほか,CrossWeigh: Training Named Entity Tagger from Imperfect Annotations,arXiv[online],2019年09月03日,[retrieved on 2023.10.30], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1909.01441.pdf>
【文献】ROMERO, Adriana ほか,FitNets: Hints for Thin Deep Nets,arXiv[online],2015年03月27日,pp.1-13,[retrieved on 2019.12.10], Retrieved from the Internet: <URL: https://arxiv.org/pdf/1412.6550v4>
【文献】ラベルの付け間違いが分かる!?,The Labellio Blog[online],2019年07月04日,[retrieved on 2019.12.10], Retrieved from the Internet: <URL: https://www.kccs.co.jp/labellio_blog_j
【文献】yuzupepper,論文メモ:Making Deep Neural Networks Robust to Label Noise: a Loss Correction Approach,Qiita[online],2017年08月20日,[retrieved on 2019.12.10], Retrieved from the Internet: <URL: https://qiita.com/yuzupepper/items/b15
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
教師DNN(Deep Neural Network )と、該教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習システムであって、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する教師DNN特徴量抽出手段と、
前記教師DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段と、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出する生徒DNN特徴量抽出手段と、
前記生徒DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算する生徒DNN推定値計算手段と、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段と、
前記第1推定値と複数の前記第2推定値
の各々との差を表す
複数の関数の値を計算し、
前記複数の関数の値の差がなくなるように前記生徒DNNにおける重みを更新する更新手段とを備え、
前記更新手段は、前記関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にする
ことを特徴とする学習システム。
【請求項2】
前記更新手段は、前記関数の値の計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する
請求項1記載の学習システム。
【請求項3】
前記更新手段は、前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する
請求項2記載の学習システム。
【請求項4】
教師DNNと、該教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習方法であって、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出し、
前記教師DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算し、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出し、
前記生徒DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算し、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定し、
前記第1推定値と複数の前記第2推定値
の各々との差を表す
複数の関数の値を計算し、
前記複数の関数の値の差がなくなるように前記生徒DNNにおける重みを更新し、
前記関数の値を計算するときに、前記関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にする
ことを特徴とする学習方法。
【請求項5】
前記関数の値の計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する
請求項4記載の学習方法。
【請求項6】
前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する
請求項5記載の学習方法。
【請求項7】
教師DNNと、該教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習プログラムであって、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する処理と、
前記教師DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する処理と、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出する処理と、
前記生徒DNN特徴量を用いて複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算する処理と、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定する処理と、
前記第1推定値と複数の前記第2推定値
の各々との差を表す
複数の関数の値を計算し、
前記複数の関数の値の差がなくなるように前記生徒DNNにおける重みを更新する処理とをコンピュータに実行させ、
前記コンピュータに、前記関数の値を計算するときに、前記関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にさせる
ための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープニューラルネットワークを含む学習システムおよび学習装置、ならびに、ディープニューラルネットワークを用いる学習方法に関する。
【背景技術】
【0002】
ディープニューラルネットワーク(以下、DNN(Deep Neural Network )は、中間層が複数の層からなるニューラルネットワークである。DNNの一例として、2以上の隠れレイヤを有するCNN(Convolutional Neural Network)がある。
【0003】
DNNにおいて、多くのパラメータが使用される。それに起因して、DNNを実現する計算機での計算量が多くなる。その結果、計算機の能力(演算速度や記憶容量)が比較的低い携帯端末などにDNNを適用することは難しい。
【0004】
計算コストを下げるために、すなわち、計算量を減らすために、隠れレイヤの数を減らしたり、隠れレイヤにおけるノード数を減らしてDNNの次元数を減らすことが考えられる。隠れレイヤの数やノード数が減ることによって、DNNモデルのサイズを小さくすることができる。しかし、DNNモデルのサイズが小さくなることによって計算量は少なくなるが、DNNの精度は低下する。
【0005】
精度の低下を押さえつつ計算コストを下げる手法として、モデル圧縮としての蒸留という手法がある。蒸留では、まず、例えば教師あり学習の方法でモデルが訓練され、教師モデルが作成される。次いで、教師モデルとは別のよりサイズが小さいモデルである生徒モデルが、教師モデルの出力を正解ラベルの代わりに使用して訓練される(例えば、特許文献1参照)。
【0006】
なお、非特許文献1にも、蒸留が紹介されている。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【文献】G. Chen et al., "Learning Efficient Object Detection Models with Knowledge Distillation", 31st International Conference on Neural Information Processing Systems (NIPS2017)
【発明の概要】
【発明が解決しようとする課題】
【0009】
教師データにおいて、ラベルにノイズが含まれることがある。ノイズが含まれた教師データは、DNNの精度に影響を与える。特許文献1には、教師モデルの出力を正解ラベルの代わりに使用して訓練された生徒モデルが記載されているが、特許文献1において、ノイズが含まれた教師データは、考慮されていない。
【0010】
非特許文献1にも、教師モデルの出力を正解ラベルの代わりに使用して訓練された生徒モデルが記載されている。しかし、非特許文献1において、ノイズが含まれた教師データに対する対応策は検討されていない。
【0011】
本発明は、教師DNNが学んだ情報を効率よく生徒DNNに学習させることができる学習システム、学習装置、および学習方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明による学習システムは、教師DNNと、教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習システムであって、複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する教師DNN特徴量抽出手段と、教師DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段と、複数の訓練データの各々の特徴量を生徒DNN特徴量として抽出する生徒DNN特徴量抽出手段と、生徒DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第2推定値を計算する生徒DNN推定値計算手段と、訓練データに対応するラベルと第1推定値とに基づいて、訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段と、第1推定値と複数の第2推定値の各々との差を表す複数の関数の値を計算し、複数の関数の値の差がなくなるように生徒DNNにおける重みを更新する更新手段とを含み、更新手段は、関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にする。
【0014】
本発明による学習方法は、教師DNNと、教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習方法であって、複数の訓練データの各々の特徴量を教師DNN特徴量として抽出し、教師DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第1推定値を計算し、複数の訓練データの各々の特徴量を生徒DNN特徴量として抽出し、生徒DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第2推定値を計算し、訓練データに対応するラベルと第1推定値とに基づいて、訓練データに対応するラベルがノイズを含むラベルであるか否か判定し、第1推定値と複数の第2推定値の各々との差を表す複数の関数の値を計算し、複数の関数の値の差がなくなるように生徒DNNにおける重みを更新し、関数の値を計算するときに、関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にする。
【0015】
本発明による学習プログラムは、教師DNNと、教師DNNのサイズよりも小さいサイズの生徒DNNとを使用して回帰問題を扱う学習プログラムであって、複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する処理と、教師DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第1推定値を計算する処理と、複数の訓練データの各々の特徴量を生徒DNN特徴量として抽出する処理と、生徒DNN特徴量を用いて複数の訓練データの各々に対応する各ラベルの第2推定値を計算する処理と、訓練データに対応するラベルと第1推定値とに基づいて、訓練データに対応するラベルがノイズを含むラベルであるか否か判定する処理と、第1推定値と複数の第2推定値の各々との差を表す複数の関数の値を計算し、複数の関数の値の差がなくなるように生徒DNNにおける重みを更新する処理とをコンピュータに実行させ、コンピュータに、関数の値を計算するときに、関数として重み付き関数を用い、ノイズを含むと判定されたラベルに対応する推定値に対する重みを0にさせる。
【発明の効果】
【0016】
本発明によれば、教師DNNが学んだ情報を効率よく生徒DNNに学習させることができる。
【図面の簡単な説明】
【0017】
【
図1】第1の実施形態の学習システムの構成例を示すブロック図である。
【
図2】第1の実施形態における教師DNNから生徒DNNを学習させる例を示す説明図である。
【
図5】第1の実施形態の学習システムの動作を示すフローチャートである。
【
図6】第2の実施形態の学習システムの構成例を示すブロック図である。
【
図7】第2の実施形態における教師DNNから生徒DNNを学習させる例を示す説明図である。
【
図8】CPUを有するコンピュータの一例を示すブロック図である
【
図9】学習システムの主要部を示すブロック図である。
【
図10】学習装置の主要部を示すブロック図である。
【発明を実施するための形態】
【0018】
実施形態1.
以下、本発明の第1の実施形態を、図面を参照して説明する。第1の実施形態の学習システムは、蒸留の手法が適用された学習システムである。
【0019】
図1は、学習システムの構成例を示すブロック図である。本実施形態の学習システム200は、データ読み込み部201と、ラベル読み込み部202と、教師DNN特徴量抽出部203と、教師DNN推定値計算部204と、生徒DNN特徴量抽出部205と、生徒DNN推定値計算部206と、生徒DNN特徴量学習部207と、ノイズラベル修正部208と、生徒DNN学習部209と、出力統合部210と、出力部211とを含む。
【0020】
データ読み込み部201には、例えば画像や音声、文章等のデータが入力される。なお、入力されたデータは、一時的にメモリに保存される。その後、データ読み込み部201は、教師DNN特徴量抽出部203および生徒DNN特徴量抽出部205に、入力されたデータを出力する。
【0021】
ラベル読み込み部202には、データ読み込み部201に入力されたデータに対応するラベルが入力される。なお、入力されたラベルは、一時的にメモリに保存される。ラベル読み込み部202は、ノイズラベル修正部208および生徒DNN学習部209に、入力されたラベルを出力する。
【0022】
教師DNN特徴量抽出部203は、データ読み込み部201から入力されたデータをスカラ配列の特徴量に変換する。
【0023】
教師DNN推定値計算部204は、教師DNN特徴量抽出部203から入力されるスカラ配列の特徴量を用いてラベル推定値を計算する。
【0024】
生徒DNN特徴量抽出部205は、教師DNN特徴量抽出部203と同様に、データ読み込み部201から入力されたデータをスカラ配列の特徴量に変換する。
【0025】
生徒DNN推定値計算部206は、生徒DNN特徴量抽出部205から入力されるスカラ配列の特徴量を用いてラベル推定値を計算する。生徒DNN推定値計算部206は、統計平均のために複数の推定値を出力する。生徒DNN推定値計算部206は、ノイズラベル修正部208からの出力の推定値や、教師DNN推定値計算部204からの出力の推定値等を出力する。
【0026】
生徒DNN特徴量学習部207は、教師DNN特徴量抽出部203と生徒DNN特徴量抽出部205とのそれぞれから特徴量を受け取り、それらの差の関数を計算する。そして、生徒DNN特徴量学習部207は、関数の値を小さくする勾配を計算する。勾配は、生徒DNNの重みを更新するために用いられる。
【0027】
ノイズラベル修正部208は、ラベル読み込み部202から入力されたラベル値と、教師DNN推定値計算部204から入力されるラベル推定値とを比較する。ノイズラベル修正部208は、ラベル値とラベル推定値との差が大きなラベルを誤っているラベル(ノイズを含むラベル)と見なす。
【0028】
ノイズラベル修正部208は、誤っているラベルを修正する。修正方法として、例えば、教師DNN推定値計算部204から入力されるラベル推定値をそのまま修正ラベルとして用いることが考えられる。なお、修正方法は、教師DNN推定値計算部204からのラベル推定値をそのまま修正ラベルとして用いる方法に限定されず、他の方法が用いられてもよい。
【0029】
生徒DNN学習部209は、ラベル読み込み部202からラベルを入力し、教師DNN推定値計算部204からラベル推定値を入力し、ノイズラベル修正部208から修正ラベルを入力する。また、生徒DNN学習部209は、生徒DNN推定値計算部206からラベル推定値を入力する。生徒DNN学習部209は、例えば、修正ラベルを参照しつつ、教師DNN推定値計算部204からのラベル推定値と生徒DNN推定値計算部206からのラベル推定値(教師DNN推定値計算部204からの出力の推定値)との差を計算する。生徒DNN学習部209は、関数の値を小さくする勾配を計算し、生徒DNNの重みの更新に用いる。関数として、例えば、平均二乗誤差、平均絶対値誤差、Wing-Lossが使用可能である。
【0030】
出力統合部210は、生徒DNN推定値計算部206から出力を受け取り、その値を統合する。統合方法として、例えば統計平均がある。
【0031】
出力部211は、訓練フェーズ(学習フェーズ)が終了した後の運用(適用フェーズ)時に、出力統合部210からの出力を入力し、生徒DNNの推定値として出力する。
【0032】
なお、出力統合部210および出力部211は、適用フェーズで活用されるので、訓練フェーズでは存在しなくてもよい。
【0033】
また、教師DNN(教師DNN特徴量抽出部203および教師DNN推定値計算部204が含まれる。)は、要求される精度を学習で実現するのに十分な数のパラメータを持つ比較的大きなサイズのDNNモデルである。教師モデルとして、一例として、チャンネル数の多いResNetやWider ResNetが使用可能である。DNNモデルのサイズは、例えば、パラメータ数に相当するが、層数、特徴マップサイズ、カーネルサイズに相当してもよい。
【0034】
また、生徒DNN(生徒DNN特徴量抽出部205、生徒DNN推定値計算部206、生徒DNN特徴量学習部207および生徒DNN学習部209を含む。)のサイズは、教師DNNのサイズよりも小さい。例えば、生徒DNNにおけるパラメータ数は比較的少ない。生徒DNNにおけるパラメータ数は、教師DNNにおけるパラメータ数よりも少ない。生徒DNNは、例えば、実装が想定されるデバイスに実際に実装されることが可能な程度の小さなサイズのDNNモデルである。生徒DNN501として、一例として、Mobile Netやチャンネル数を十分減少させたResNetやWider ResNetが考えられる。
【0035】
図2は、教師DNNから生徒DNNを学習させる例を示す説明図である。
図2を参照して、パラメータ数が多い教師DNNの出力を正解ラベルの代わりに使用して、パラメータ数が小さい生徒DNNを訓練する(学習させる)例を説明する。
【0036】
学習システム300において、生徒DNN301は、データ読み込み部310からデータを入力する。特徴量抽出部321は、データを特徴量に変換する。推定値計算部331は、特徴量を推定値341に変換する。データ読み込み部310、特徴量抽出部321および推定値計算部331は、
図1に示された学習システム200におけるデータ読み込み部201、生徒DNN特徴量抽出部205および生徒DNN推定値計算部206に対応する。すなわち、学習システム300は、表現方法が異なっているが、
図1に示された学習システム200と同様のシステムである。
【0037】
また、教師DNN302は、データ読み込み部310からデータを入力する。特徴量抽出部322は、データを特徴量に変換する。推定値計算部332は、特徴量を推定値342に変換する。データ読み込み部310、特徴量抽出部322および推定値計算部332は、
図1に示された学習システム200におけるデータ読み込み部201、教師DNN特徴量抽出部203および教師DNN推定値計算部204に対応する。
【0038】
学習システム300において、誤差信号計算部350は、得られた各特徴量と、変換された各推定値とから誤差信号を計算する。そして、学習システム300は、生徒DNN301のネットワークパラメータを更新するための逆伝搬によって重みを更新する。
【0039】
なお、
図1に示された学習システム200では、誤差信号計算部350の処理は、生徒DNN学習部209によって実行される。
【0040】
【0041】
教師DNNモデル400における教師DNN401は、特徴量抽出部406と、推定値計算部407とを含む。特徴量抽出部406は、複数の隠れレイヤ404を含む。隠れレイヤは、複数のノード403からなる。各ノードは、対応する重みパラメータを有する。重みパラメータは学習により更新される。
【0042】
データは、データ読み込み部402から供給される。特徴量抽出部406によって抽出された特徴量は、特徴量抽出部406の最終層から推定値計算部407に出力される。推定値計算部407は、入力した特徴量をラベル推定値405に変換する。
【0043】
なお、データ読み込み部402、特徴量抽出部406および推定値計算部407は、
図1に示された学習システム200におけるデータ読み込み部201、教師DNN特徴量抽出部203および教師DNN推定値計算部204に対応する。
【0044】
【0045】
生徒DNNモデル500における生徒DNN501は、特徴量抽出部506と、推定値計算部507とを含む。特徴量抽出部506は、複数の隠れレイヤ504を含む。隠れレイヤは、複数のノード503からなる。各ノードは、対応する重みパラメータを有する。重みパラメータは学習により更新される。
【0046】
特徴量抽出部506によって抽出された特徴量は、特徴量抽出部506の最終層から推定値計算部507に出力される。推定値計算部507は、入力した特徴量を複数のラベル推定値505に変換する。
【0047】
なお、データ読み込み部502、特徴量抽出部506および推定値計算部507は、
図1に示された学習システム200におけるデータ読み込み部201、生徒DNN特徴量抽出部205および生徒DNN推定値計算部206に対応する
【0048】
次に、
図5のフローチャートを参照して第1の実施形態の学習システム300の動作を説明する。
【0049】
まず、学習システム300は、第1DNNモデルを教師DNNモデルとして決定する(ステップS110)。
図1に示された構成例では、教師DNNには、教師DNN特徴量抽出部203および教師DNN推定値計算部204が含まれる。
【0050】
次に、学習システム300は、第2DNNモデルを生徒DNNモデルとして初期化する(ステップS120)。初期化に際して、例えば、平均0、分散1の正規分布する乱数を用いて初期値を与える。
図1に示された学習システム200では、生徒DNNモデルには、生徒DNN特徴量抽出部205、生徒DNN推定値計算部206、生徒DNN特徴量学習部207および生徒DNN学習部209が含まれる。
【0051】
そして、学習システム300は、1組のラベル付き訓練データを、教師DNNモデルと生徒DNNモデルとの入力として受け取る(ステップS130)。
図1に示された学習システム200では、データ読み込み部201およびラベル読み込み部202が、ラベル付き訓練データを入力する。なお、データ読み込み部201とラベル読み込み部202とは、一体化されていてもよい。また、以下の説明において、訓練データは、ラベル付き訓練データを意味する。
【0052】
学習システム300において、教師DNN401および生徒DNN501は、受け取った訓練データの部分集合を使用して、出力の計算を行う(ステップS140)。
【0053】
図1に示された学習システム200では、教師DNN推定値計算部204の出力が、教師DNN401の出力に相当する。また、生徒DNN推定値計算部206の出力が、生徒DNN501の出力に相当する。
【0054】
次に、学習システム300において、教師DNN401の出力を用いて訓練データの誤ったラベルデータ(ノイズラベル)が判定される (ステップS150)。
図1に示された学習システム200では、ノイズラベル修正部208が、訓練データにおけるラベルが誤っているか否か判定する。
【0055】
学習システム300において、生徒DNN501の出力が、教師DNN401の出力および修正された訓練データのラベル(修正ラベル)と比較されることによって評価される(ステップS160)。
図1に示された学習システム200では、生徒DNN学習部209が、評価を行う。
【0056】
学習システム300において、ある判定基準を用いてステップS140~ステップS160の処理を繰り返すか否か決定される(ステップS165)。判定基準として、例えば生徒DNN501の出力とラベルとの平均二乗誤差を計算し、その値があるしきい値を上回る(または、下回る)ことが考えられる。
図1に示された学習システム200では、生徒DNN学習部209が、ステップS165の判定処理を実行する。
【0057】
ステップS165において、繰り返すと判定された場合には、学習システム300において、評価に基づいて生徒DNN501の重みパラメータ(具体的には、生徒DNN特徴量抽出部205を構成するレイヤにおけるノードの重み)が更新される(ステップS170)。ステップS165において、繰り返すと判定されなかった場合、すなわち、訓練を終了すると判定された場合には、学習システム300は、訓練された生徒DNN501を提供する(ステップS180)。
【0058】
なお、例えば携帯端末などのデバイスにDNNが実装される場合には、生徒DNNモデル500が実装の対象である。訓練された生徒DNN501を提供するということは、デバイスに実行可能な生徒DNN501が決定されたことを意味する。
【0059】
次に、
図1を参照して、より具体的な実施例を説明する。
【0060】
回帰問題として学習させたいデータセットとラベルとを用意する。そしてデータセットを学習させるのに十分に大きなサイズの第1DNNモデルを教師モデルとして採用し学習をさせる。
【0061】
教師モデルには、例えば乱数や何らかのデータセットを用いて学習済みの重みが初期値として設定されている。学習時に、データセットの部分集合が教師DNN特徴量抽出部203に与えられる。教師DNN推定値計算部204からの出力値y
outputと、ラベルの値y
labelとが比較される。出力値y
outputとラベルの値y
labelとの差の関数、例えば平均二乗誤差(Σ(y
output-y
label)
2/N)が計算される。なお、比較の処理および計算の処理は、例えば、
図1には示されていない教師特徴量学習部によって実行される。
【0062】
そして、関数の値を減少させる方向に、誤差逆伝播等を用いて勾配が計算され、確率的勾配降下法等によって重みパラメータが更新される。勾配の計算および重みパラメータの更新の処理は、ある判定基準、例えば出力とラベルの平均二乗誤差があるしきい値以下になるまで続けられる。以上の処理によって教師DNN401が得られる。なお、勾配の計算および重みパラメータの更新の処理は、例えば、
図1には示されていない教師特徴量学習部によって実行される。
【0063】
生徒DNN501にも、教師DNN401と同様に乱数や何らかのデータセットを用いて学習済みの重みが初期値として設定されている。
【0064】
学習時に、データセットの部分集合が、教師DNN特徴量抽出部203と生徒DNN特徴量抽出部205とに与えられる。教師DNN特徴量抽出部203および生徒DNN特徴量抽出部205の最終層(
図3参照)の値z
teacher、z
studentと、教師DNN推定値計算部204および生徒DNN推定値計算部206の出力y
teacher、y
student,iとが計算される。生徒DNN推定値計算部206は、複数のデータを出力するので、出力の値に添え字iが付されている。
【0065】
生徒DNN特徴量学習部207は、zteacher、zstudentの差の関数、例えば平均二乗誤差(Σ(zstudent-zteacher)2/N)を計算する。なお、生徒DNN特徴量学習部207は、教師DNN401と生徒DNN501との各特徴量出力zteacher、zstudentの出力の次元が異なる場合は、両者の次元を揃える。例えば、生徒DNN特徴量学習部207は、適当なCNNを教師DNNの特徴量出力に作用させる。例えば、次元を揃えることが意図される中間層の出力を畳み込み層に供給し、畳み込み演算によって次元が調整される。
【0066】
教師DNN推定値計算部204の出力は、ノイズラベル修正部208においてラベルの修正に用いられる。ノイズラベルであるか否かを判定する場合、例えば教師DNN401の推定値とラベルの値とを比較し、差があるしきい値より小さければ正しいラベルであるとみなし、差があるしきい値より大きいときには誤ったラベル(ノイズラベル)であると見なす方法がある。
【0067】
生徒DNN学習部209は、例えばi=1の生徒DNN推定値計算部206の出力ystudent,1と、教師DNN推定値計算部204の出力yteacherとの平均二乗誤差(Σ(ystudent,1-yteacher)2/N)を計算する。また、生徒DNN学習部209は、i=2の生徒DNN推定値計算部206の出力ystudent,2とラベルの値ylabelとの差の関数を、ノイズラベル修正部208の結果を反映して計算する。
【0068】
例えば、生徒DNN学習部209は、重み付き平均二乗誤差(Σwj(yj
student,1-yj
teacher)2/N)を計算し、誤ったラベルと判定されたラベルに対して重みw=0を、それ以外のラベルに対してw=1を設定する。
【0069】
その後、生徒DNN学習部209は、計算された複数の差の関数の値を減少させる方向に、誤差逆伝播等を用いて勾配を計算する。また、生徒DNN学習部209は、確率的勾配降下法等により重みパラメータを更新する。以上のように、生徒DNN学習部209は、ノイズを含むラベルの影響を低下させながら、教師DNN特徴量抽出部203が抽出した特徴量と生徒DNN特徴量抽出部205が抽出した特徴量との差がなくなるように生徒DNNにおける重みを更新する。
【0070】
なお、重みパラメータの更新に関する処理は、ある判定基準、例えば出力とラベルの平均二乗誤差があるしきい値以下になるまで続けられる。以上のような処理によって生徒DNN501が得られる。
【0071】
学習が終了した後に、生徒DNN501が推定値を出力するときには、出力統合部210は、例えば出力の統計平均を計算する。出力部211は、それを最終推定値として出力する。
【0072】
次に、第1の実施形態の学習システムの効果を説明する。
【0073】
本実施形態では、生徒DNN501は、生徒DNN特徴量学習部207を用いて、生徒DNN特徴量抽出部205の出力を教師DNN特徴量抽出部203の出力を再現するように学習する。その結果、学習システムは、教師DNNの学んだ情報を効率よく生徒DNNに学習させることができる。一般に、教師DNN401を再現するように生徒DNN501を学習させる場合、教師DNN401のどの出力を学習させるかについて自由度がある。DNNの特徴量抽出部の最終層の出力は、線形回帰装置の場合の基底ベクトルに相当する。基底ベクトルを再現できることは、教師DNN401の特徴抽出器が完全に再現されたことを意味する。基底ベクトルを再現できれば、一般に学習は容易である。
【0074】
また、誤ったラベルに起因する学習の困難を減らすことが可能になる。なぜなら、教師DNN401は、学習の過程で訓練データのラベルの正誤を暗に学習する。そして、教師DNN401において、ノイズラベル修正部208が、教師DNN推定値計算部204の出力とラベル読み込み部202から供給されたラベルデータとを比較することによって、入力されたラベルが誤ったラベルである否か推測し、誤ったラベルを修正するからである。
【0075】
さらに、生徒DNN501の出力の統計的誤差を減らすことが可能になる。一般に、DNNの出力には、ランダムな統計的誤差が含まれるが、本実施形態では、生徒DNN501は複数の結果が出力され、出力統合部210がそれらの出力の統計平均を取るからである。
【0076】
実施形態2.
第2の実施形態の学習システムでは、生徒DNN501は、教師DNN401における最終層以外の任意の層からの出力を受け取る。
【0077】
本実施形態による学習システムの構成を説明する。
図6は、学習システムの構成例を示すブロック図である。第2の実施形態の学習システム600は、データ読み込み部201と、ラベル読み込み部202と、教師DNN特徴量抽出部203と、教師DNN推定値計算部204と、生徒DNN特徴量抽出部205と、生徒DNN推定値計算部206と、生徒DNN特徴量学習部207と、ノイズラベル修正部208と、生徒DNN学習部209と、出力統合部210と、出力部211とを含む。学習システム600は、さらに、生徒DNN中間特徴量学習部612を含む。
【0078】
生徒DNN中間特徴量学習部612は、教師DNN特徴量抽出部203と、生徒DNN特徴量抽出部205とから最終層以外の任意の層からの出力を入力する。生徒DNN中間特徴量学習部612は、それらの差の関数を計算する。生徒DNN中間特徴量学習部612は、その差の関数を小さくする勾配を計算し、生徒DNNの重みの更新に用いる。
【0079】
生徒DNN中間特徴量学習部612以外の構成は、第1の実施形態の学習システム200の構成と同じである。
【0080】
図7は、第2の実施形態のDNNの学習システムの例を示す説明図である本発明の学習システム700は、
図2に示された学習システム300と同様に、生徒DNN701と、教師DNN702とを含む。なお、学習システム700は、表現方法が異なっているが、
図6に示された学習システム600と同様のシステムである。
【0081】
図7を参照して、パラメータ数が多い教師DNNの出力を正解ラベルの代わりに使用して、パラメータ数が小さい生徒DNNを訓練する(学習させる)例を説明する。
【0082】
生徒DNN701は、データ読み込み部310からデータ(訓練データ)を入力する。特徴量抽出部321は、データを特徴量に変換する。推定値計算部331は、特徴量を推定値341に変換する。
【0083】
教師DNN702は、データ読み込み部310からデータ(訓練データ)を入力する。特徴量抽出部322は、データを特徴量に変換する。推定値計算部332は、特徴量を推定値342に変換する。
【0084】
学習システム700において、誤差信号計算部750は、得られた最終層の特徴量と、中間層の特徴量と、各推定値とから誤差信号を計算する。そして、学習システム700は、生徒DNN701のネットワークパラメータを更新するための逆伝搬によって重みを更新する。
【0085】
学習システム600は、
図5のフローチャートに示された第1の実施形態の学習システム200の処理と同様の処理を行う。ただし、本実施形態では、ステップS140,S160の処理が、第1の実施形態における処理とは異なる。
【0086】
すなわち、ステップS140で、生徒DNN501(具体的には、生徒DNN推定値計算部206)は、教師DNN401における中間層から特徴量を(中間特徴量)入力する処理も実行する。教師DNN401において複数の中間層が存在する場合には、生徒DNN501は、あらかじめ定められた1または複数の中間層から特徴量を入力する。
【0087】
また、ステップS160で、生徒DNN501(具体的には、生徒DNN学習部209)は、教師DNN401における中間層から特徴量と、生徒DNN501における中間層から特徴量とを比較する処理も実行する。
【0088】
本実施形態では、教師DNN401の中間特徴量を生徒DNN501に学習させることによって、より多くの教師DNN401の知識を生徒DNN501に伝えることができる。
【0089】
上記の各実施形態の学習システム200,600は、回帰問題を取り扱うデバイスに適用可能である。一例として、物体検出器をDNNで構築する場合、物体の位置を回帰問題として取り扱うことができる。また、人体、物体の姿勢も回帰問題として取り扱うことが可能である。
【0090】
上記の各実施形態における各機能(各処理)を、CPU(Central Processing Unit )等のプロセッサやメモリ等を有するコンピュータで実現可能である。例えば、記憶装置(記憶媒体)に上記の実施形態における方法(処理)を実施するためのプログラムを格納し、各機能を、記憶装置に格納されたプログラムをCPUで実行することによって実現してもよい。
【0091】
図8は、CPUを有するコンピュータの一例を示すブロック図である。コンピュータは、学習システムに実装される。CPU1000は、記憶装置1001に格納されたプログラムに従って処理を実行することによって、上記の各実施形態における各機能を実現する。すなわち、コンピュータは、
図1,
図7に示された教師DNN特徴量抽出部203、教師DNN推定値計算部204、生徒DNN特徴量抽出部205、生徒DNN推定値計算部206、生徒DNN特徴量学習部207、ノイズラベル修正部208、生徒DNN学習部209、および出力統合部210の機能を実現する。
【0092】
記憶装置1001は、例えば、非一時的なコンピュータ可読媒体(non-transitory computer readable medium )である。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の具体例として、磁気記録媒体(例えば、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory )、CD-R(Compact Disc-Recordable )、CD-R/W(Compact Disc-ReWritable )、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM)がある。
【0093】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
【0094】
メモリ1002は、例えばRAM(Random Access Memory)で実現され、CPU1000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ1002に、記憶装置1001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU1000がメモリ1002内のプログラムに基づいて処理を実行するような形態も想定しうる。
【0095】
図9は、本発明による学習システムの主要部を示すブロック図である。学習システム800は、複数の訓練データの各々の特徴量を抽出する教師DNN特徴量抽出手段801(例えば、教師DNN特徴量抽出部203)と、複数の訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段802(例えば、教師DNN推定値計算部204)と、複数の訓練データの各々の特徴量を抽出する生徒DNN特徴量抽出手段803(例えば、生徒DNN特徴量抽出部205)と、複数の訓練データの各々に対応する各ラベルの第2推定値を計算する生徒DNN推定値計算手段804(例えば、生徒DNN推定値計算部206)と、訓練データに対応するラベルと第1推定値とに基づいて、訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段805(例えば、ノイズラベル修正部208)と、ノイズを含むラベルの影響を低下させながら、教師DNN特徴量抽出手段801が抽出した特徴量と生徒DNN特徴量抽出手段803が抽出した特徴量との差がなくなるように生徒DNNにおける重みを更新する更新手段806(例えば、生徒DNN学習部209)とを備える。
【0096】
図10は、本発明による学習装置の主要部を示すブロック図である。学習装置900は、入力データの特徴量を抽出する生徒DNN特徴量抽出手段803(例えば、生徒DNN特徴量抽出部205)と、入力データに対応するラベルの複数の推定値を計算する生徒DNN推定値計算手段804(例えば、生徒DNN推定値計算部206)と、複数の推定値を統合する出力統合手段807(例えば、出力統合部210)とを備え、生徒DNN特徴量抽出手段803の重みが、複数の訓練データの各々の特徴量を抽出する教師DNN特徴量抽出手段801(例えば、教師DNN特徴量抽出部203)、複数の訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段802(例えば、教師DNN推定値計算部204)、訓練データに対応するラベルと第1推定値とに基づいて、訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段805(例えば、ノイズラベル修正部208)、およびノイズを含むラベルの影響を低下させながら、教師DNN特徴量抽出手段801が抽出した特徴量と生徒DNN特徴量抽出手段803が抽出した特徴量との差がなくなるように生徒DNNにおける重みを更新する更新手段806(例えば、生徒DNN学習部209)を含む教師DNN910によって更新される。
【0097】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【0098】
(付記1)教師DNN(Deep Neural Network )と、該教師DNNのサイズよりも小さいサイズの生徒DNNとを使用する学習システムであって、
複数の訓練データの各々の特徴量を抽出する教師DNN特徴量抽出手段と、
複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段と、
複数の前記訓練データの各々の特徴量を抽出する生徒DNN特徴量抽出手段と、
複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算する生徒DNN推定値計算手段と、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段と、
前記ノイズを含むラベルの影響を低下させながら、前記教師DNN特徴量抽出手段が抽出した特徴量と前記生徒DNN特徴量抽出手段が抽出した特徴量との差がなくなるように前記生徒DNNにおける重みを更新する更新手段と
を備えることを特徴とする学習システム。
【0099】
(付記2)前記更新手段は、複数の前記第1推定値と複数の前記第2推定値との差を表す関数において前記ノイズを含むラベルの影響を低下させて、前記関数の値を計算し、計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する
付記1の学習システム。
【0100】
(付記3)前記更新手段は、前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する
付記2の学習システム。
【0101】
(付記4)前記ノイズラベル修正手段は、前記訓練データに対応するラベルがノイズを含むラベルであると判定したときに、該ラベルを修正する
付記1から付記3のいずれかの学習システム。
【0102】
(付記5)生徒DNNを使用する学習装置であって、
入力データの特徴量を抽出する生徒DNN特徴量抽出手段と、
前記入力データに対応するラベルの複数の推定値を計算する生徒DNN推定値計算手段と、
前記複数の推定値を統合する出力統合手段とを備え、
前記生徒DNN特徴量抽出手段の重みが、
複数の訓練データの各々の特徴量を抽出する教師DNN特徴量抽出手段、
複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する教師DNN推定値計算手段、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定するノイズラベル修正手段、および
前記ノイズを含むラベルの影響を低下させながら、前記教師DNN特徴量抽出手段が抽出した特徴量と前記生徒DNN特徴量抽出手段が抽出した特徴量との差がなくなるように前記生徒DNNにおける重みを更新する更新手段を含む教師DNNによって更新される
ことを特徴とする学習装置。
【0103】
(付記6)教師DNNと、該教師DNNのサイズよりも小さいサイズの生徒DNNとを使用する学習方法であって、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出し、
複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算し、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出し、
複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算し、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定し、
抽出された教師DNN特徴量と前記生徒DNN特徴量との差がなくなるように前記生徒DNNにおける重みを更新する
ことを特徴とする学習方法。
【0104】
(付記7)複数の前記第1推定値と複数の前記第2推定値との差を表す関数において前記ノイズを含むラベルの影響を低下させて、前記関数の値を計算し、計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する
付記6の学習方法。
【0105】
(付記8)前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する
付記7の学習方法。
【0106】
(付記9)前記訓練データに対応するラベルがノイズを含むラベルであると判定したときに、該ラベルを修正する
付記6から付記8のいずれかの記載の学習方法。
【0107】
(付記10)学習プログラムが格納されたコンピュータ読み取り可能な記録媒体であって、
前記学習プログラムは、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する処理と、
複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する処理と、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出する処理と、
複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算する処理と、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定する処理と、
抽出された教師DNN特徴量と前記生徒DNN特徴量との差がなくなるように前記生徒DNNにおける重みを更新する処理と
をプロセッサに実行させる記録媒体。
【0108】
(付記11)前記学習プログラムは、
複数の前記第1推定値と複数の前記第2推定値との差を表す関数において前記ノイズを含むラベルの影響を低下させて、前記関数の値を計算し、計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する処理をプロセッサに実行させる付記10の記録媒体。
【0109】
(付記12)前記学習プログラムは、
前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する処理をプロセッサに実行させる付記11の記録媒体。
【0110】
(付記13)前記学習プログラムは、
前記訓練データに対応するラベルがノイズを含むラベルであると判定したときに、該ラベルを修正する処理をプロセッサに実行させる
付記10から付記12のいずれかの記録媒体。
【0111】
(付記14)コンピュータに、
複数の訓練データの各々の特徴量を教師DNN特徴量として抽出する処理と、
複数の前記訓練データの各々に対応する各ラベルの第1推定値を計算する処理と、
複数の前記訓練データの各々の特徴量を生徒DNN特徴量として抽出する処理と、
複数の前記訓練データの各々に対応する各ラベルの第2推定値を計算する処理と、
前記訓練データに対応するラベルと前記第1推定値とに基づいて、前記訓練データに対応するラベルがノイズを含むラベルであるか否か判定する処理と、
抽出された教師DNN特徴量と前記生徒DNN特徴量との差がなくなるように前記生徒DNNにおける重みを更新する処理と
を実行させるための学習プログラム。
【0112】
(付記15)コンピュータに、複数の前記第1推定値と複数の前記第2推定値との差を表す関数において前記ノイズを含むラベルの影響を低下させて、前記関数の値を計算し、計算結果に応じて、前記生徒DNNを構成するレイヤにおけるノードの重みを更新する処理を実行させる付記14の学習プログラム。
【0113】
(付記16)コンピュータに、
前記関数の値を小さくする勾配を計算し、勾配降下法で重みを更新する処理を実行させる付記15の学習プログラム。
【0114】
(付記17)コンピュータに、
前記訓練データに対応するラベルがノイズを含むラベルであると判定したときに、該ラベルを修正する処理を実行させる
付記14から付記16のいずれかの学習プログラム。
【0115】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0116】
200,600,700 学習システム
201,310,402 データ読み込み部
202 ラベル読み込み部
203 教師DNN特徴量抽出部
204 教師DNN推定値計算部
205 生徒DNN特徴量抽出部
206 生徒DNN推定値計算部
207 生徒DNN特徴量学習部
208 ノイズラベル修正部
209 生徒DNN学習部
210 出力統合部
211 出力部
300 学習システム
301,501,701 生徒DNN
302,401,702 教師DNN
350,750 誤差信号計算部
403,503 ノード
404,504 隠れレイヤ
500 生徒DNNモデル
612 生徒DNN中間特徴量学習部
800 学習システム
801 教師DNN特徴量抽出手段
802 教師DNN推定値計算手段
803 生徒DNN特徴量抽出手段
804 生徒DNN推定値計算手段
805 ノイズラベル修正手段
806 更新手段
807 出力統合手段
900 学習装置
910 教師DNN