(57)【要約】【課題】蒸留を用いた深層学習において、適切な温度を自動的に求めることを可能とする。【解決手段】学習装置は、生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部と、教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部と、前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部と、を備える。
2020161935.tif 000002
【特許請求の範囲】
【請求項１】
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部と、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部と、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部と、
を備える学習装置。
【請求項２】
前記温度計算部は、正解ラベルに対する前記第１の推定部が生成する第１の推定結果の損失、及び、前記第２の推定部が生成する第２の推定結果に対する前記第１の推定結果の損失の少なくとも一方に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項３】
前記温度計算部は、正解ラベルに対する前記第１の推定部が生成する第１の推定結果の損失と、前記第２の推定部が生成する第２の推定結果に対する前記第１の推定結果の損失との加重平均に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項４】
前記温度計算部は、前記第１の推定部が生成するロジット、及び、前記第２の推定部が生成するロジットの少なくとも一方に基づいて、前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項５】
前記温度計算部は、前記第１の推定部又は第２の推定部が生成するロジットの正負に応じて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項６】
前記温度計算部は、前記第１の推定部が生成する推定結果、及び、前記第２の推定部が生成する推定結果の少なくとも一方に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項７】
前記温度計算部は、前記第２の推定部が生成する推定結果のエントロピーに基づいて前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項８】
前記温度計算部は、前記第２の推定部が生成する推定結果のエントロピーに関する単調減少関数として温度パラメータを計算する請求項６に記載の学習装置。
【請求項９】
前記温度計算部は、前記第１の推定部又は前記第２の推定部が生成する各クラスの推定結果の大小バランスが補正されるように前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１０】
前記温度計算部は、前記第１の推定部又は前記第２の推定部が生成する各クラスの推定結果のオーダーが揃うように前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１１】
前記温度計算部は、前記第２の推定部が生成する各クラスの推定結果のうち、最も確率の高いクラスの値と、次に確率の高いクラスの値との比に基づいて、前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１２】
学習装置により実行される学習方法であって、
生徒モデルに基づき、温度パラメータを用いて推定を行い、
教師モデルに基づき、温度パラメータを用いて推定を行い、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する学習方法。
【請求項１３】
コンピュータを備える学習装置により実行されるプログラムであって、
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部、
として前記コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習に関し、特に蒸留に関する。
【背景技術】
【０００２】
多層に接続されたニューロンを有するＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を利用して言語認識や画像認識の学習を行うディープラーニングに関する技術が知られている。しかし、一般にＤＮＮはパラメータ数と推定精度とに比例関係があり、軽量な計算量で動作するＤＮＮは精度が悪いという問題があった。【０００３】
これに対し、蒸留と呼ばれる学習方法を用いることで軽量なＤＮＮでも推定精度を向上させることができることが知られている（例えば、特許文献１、非特許文献１を参照）。蒸留では、学習データの正解ラベルに加えて、既に学習済みのＤＮＮ（「教師モデル」と呼ぶ。）の推定結果も正解レベルとして用いる。教師モデルは一般に、これから学習させたいＤＮＮ（「生徒モデル」と呼ぶ。）よりもパラメータ数が多く高精度なＤＮＮが選ばれる。蒸留の１つとして、「温度」と呼ばれるハイパーパラメータＴを導入することにより、教師モデルの出力を生徒モデルの学習に効果的に反映させることが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開公報  ＵＳ２０１５／０３５６４６１  Ａ１
【非特許文献】
【０００５】
【非特許文献１】Ｄｉｓｔｉｌｌｉｎｇ  ｔｈｅ  Ｋｎｏｗｌｅｄｇｅ  ｉｎ  ａ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ，Ｇｅｏｆｆｒｅｙ  Ｈｉｎｔｏｎ，Ｏｒｉｏｌ  Ｖｉｎｙａｌｓ，Ｊｅｆｆ  Ｄｅａｎ
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、温度の値によっては、学習後の生徒モデルの精度が蒸留を用いない場合と比べて大差なかったり、むしろ下がってしまったりすることが知られている。そのため、いくつかの異なる温度に設定して学習した生徒モデル同士の精度を比較して、最も高精度となったものを採用する、「グリッドサーチ」と呼ばれる手法も提案されている。しかし、これには多くの学習時間を要するという問題のほか、離散的な値を設定せざるを得ないために最高精度を与える温度を省いてしまう可能性があるという問題もある。最高精度を与える適切な温度は、教師モデルや生徒モデルの構造や大きさ、解く問題の種類や難易度、学習に用いる他のハイパーパラメータによって様々に変化することが実験的に知られているが、それらを定量的に評価したり、自動的に適切な温度を求めたりする手法は公開されていない。【０００７】
本発明の目的は、蒸留を用いた深層学習において、適切な温度を自動的に求めることを可能とすることにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点では、学習装置は、生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部と、教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部と、前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部と、を備える。【０００９】
本発明の他の観点では、学習装置により実行される学習方法は、生徒モデルに基づき、温度パラメータを用いて推定を行い、教師モデルに基づき、温度パラメータを用いて推定を行い、前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する。【００１０】
本発明の更に他の観点では、コンピュータを備える学習装置により実行されるプログラムは、生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部、教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部、前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部、として前記コンピュータを機能させる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る学習装置のハードウェア構成を示すブロック図である。
【図２】実施形態に係る学習装置の基本的機能構成を示すブロック図である。
【図３】第１実施形態に係る学習装置の機能構成を示すブロック図である。
【図４】第１実施形態による学習処理のフローチャートである。
【図５】第２実施形態に係る学習装置の機能構成を示すブロック図である。
【図６】第２実施形態による学習処理のフローチャートである。
【図７】第３実施形態に係る学習装置の機能構成を示すブロック図である。
【図８】第３実施形態による学習処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の好適な実施形態について説明する。
［装置構成］
図１は、実施形態に係る学習装置のハードウェア構成を示すブロック図である。学習装置１は、コンピュータにより構成され、プロセッサ１と、メモリ２とを備える。学習装置１には、正解ラベル付きの学習データが入力される。学習装置１は蒸留を用いた学習を行う装置であり、学習データ及び教師モデルを用いて生徒モデルの学習を行う。
【００１３】
詳細には、メモリ２は、生徒モデル及び教師モデルを構成する内部パラメータ、並びに、蒸留に用いる温度パラメータを記憶する。プロセッサ１は、メモリ２に記憶されている各パラメータに基づき、生徒モデル及び教師モデルに学習データを適用し、各パラメータを更新することにより学習を行う。さらに、プロセッサ１は、生徒モデル及び教師モデルによる推定処理により得られる情報（以下、「推定情報」と呼ぶ。）に基づいて、温度パラメータを自動的に更新する。
【００１４】
［基本的構成］
図２は、実施形態に係る学習装置の基本的な機能構成を示すブロック図である。図示のように、学習装置１は、推定部５と、推定部６と、温度計算部７とを備える。推定部５は、生徒モデルを構成する推定部であり、温度パラメータＴを用いて学習データの推定処理を行って推定情報を出力する。一方、推定部６は、教師モデルを構成する推定部であり、温度パラメータＴを用いて学習データの推定処理を行って推定情報を出力する。温度計算部７は、推定部５が生成する推定情報、及び、推定部６が生成する推定情報に基づいて、温度パラメータＴを計算し、推定部５及び６に供給する。こうして、推定部５及び６が用いる温度パラメータＴが自動的に更新される。一例では、推定情報として、生徒モデル及び教師モデルにより生成されるロジットもしくは推定結果が用いられる。他の例では、推定情報として、生徒モデルの推定結果の正解ラベルに対する損失、及び、生徒モデルの推定結果の教師モデルの推定結果に対する損失が用いられる。
【００１５】
［第１実施形態］
次に、第１実施形態について説明する。第１実施形態は、生徒モデルにより生成される推定結果の正解ラベルに対する損失、及び、生徒モデルにより生成される推定結果の教師モデルにより生成される推定結果に対する損失に基づいて温度パラメータを更新するものである。損失は本発明の推定情報の一例である。
【００１６】
（機能構成）
図３は、第１実施形態に係る学習装置１００の機能構成を示すブロック図である。学習装置１００には、学習データが入力される。学習データは、文字列や画像など、学習すべき特徴を示す学習データＸと、その正解ラベルＹとの組からなる。例えば、画像に写っているのが犬か猫かを判定するＤＮＮを学習させる場合、学習データＸは犬の画像であり、正解ラベルＹは（犬クラス１，猫クラス０）といった、その画像の属する正解クラスに「１」を、その他の不正解クラスに「０」を持つバイナリ値のベクトルである。
【００１７】
学習装置１００は、大別して推定部１０ａと、推定部１０ｂと、最適化部３０とを備える。推定部１０ａは、生徒モデルを構成するＤＮＮに相当し、ロジット計算器１１ａと、活性化器１２ａとを備える。生徒モデルは、学習の対象となるモデルである。推定部１０ａは、入力された学習データＸに対して推定結果Ｙａを出力する。詳細には、ロジット計算器１１ａは、内部パラメータＰＡに基づき、入力された学習データＸをロジットｙａに変換する。活性化器１２ａは、式（１）に示すソフトマックス関数などの予め定められた関数に基づいて、ロジットｙａを確率分布である推定結果Ｙａに変換する。
【００１８】
【数１】
2020161935.tif 000003
なお、活性化器１２ａは、温度パラメータＴを用いて推定結果Ｙａを計算するが、その詳細は後述する。推定結果Ｙａは、一般的に（犬クラス０．８，猫クラス０．２）といった、不正解クラスにも「０」以外の値を持つベクトルである。推定結果Ｙａは、最適化部３０へ供給される。
【００１９】
一方、推定部１０ｂは、教師モデルを構成するＤＮＮに相当し、ロジット計算器１１ｂと、活性化器１２ｂとを備える。教師モデルは、既に学習済みのモデルであり、一般的に生徒モデルよりもパラメータ数が多く高精度なＤＮＮが用いられる。推定部１０ｂは、入力された学習データＸに対して推定結果Ｙｂを出力する。詳細には、ロジット計算器１１ｂは、内部パラメータＰＢに基づき、入力された学習データＸをロジットｙｂに変換する。活性化器１２ｂは、上記の式（１）に示すソフトマックス関数などの予め定められた関数に基づいて、ロジットｙｂを確率分布である推定結果Ｙｂに変換する。なお、活性化器１２ｂも温度Ｔを用いて推定結果Ｙｂを計算するが、その詳細は後述する。推定結果Ｙｂは、推定結果Ｙａと同様に不正解クラスにも「０」以外の値を持つベクトルである。推定結果Ｙｂは、最適化部３０へ供給される。
【００２０】
最適化部３０は、損失計算器３１と、加重平均計算器３２と、パラメータ更新器３３と、温度更新器３４とを備える。損失計算器３１には、推定部１０ａで生成された推定結果Ｙａと、推定部１０ｂで生成された推定結果Ｙｂと、学習データの正解ラベルＹとが入力される。損失計算器３１は、式（２）に示すカテゴリカルクロスエントロピーなどの予め定められた関数に基づいて、推定結果Ｙａの正解ラベルＹに対する損失Ｌａ、及び、推定結果Ｙａの推定結果Ｙｂに対する損失Ｌｂを計算する。「損失」は、推定結果Ｙａと正解ラベルＹ、又は、推定結果Ｙａと推定結果Ｙｂがどれくらい離れているかを表す。
【００２１】
【数２】
2020161935.tif 000004
【００２２】
学習データの数がクラス間で偏っている場合、損失ＬａやＬｂに偏りを補正する効果を加えてもよい。具体的には、式（３）により、クラスごとの損失に補正のための係数ｗｉをかける。例えば、ｗｉは、式（４）又は（５）により算出される。
【００２３】
【数３】
2020161935.tif 000005
ここに、ｎｉはｉ番目のクラスに属する学習データの総数である。他の例では、ｗｉは、学習データの総数ｎｉの代わりに、教師モデルが全学習データもしくはミニバッチにおいて算出した推定結果Ｙｂのクラスごとの総和を用いてもよい。
【００２４】
加重平均計算器３２は、予め決められた重みを用いて、損失Ｌａと損失Ｌｂの加重平均Ｌａｖを計算する。パラメータ更新器３３は、式（６）に示す勾配降下法などの予め定められた関数に基づいて、加重平均された損失Ｌａｖが小さくなるようにロジット計算器１１ａの内部パラメータＰＡを更新し、ロジット計算器１１ａに供給する。
【００２５】
【数４】
2020161935.tif 000006
これにより、ロジット計算器１１ａの内部パラメータＰＡが更新される。なお、推定部１０ｂのロジット計算器１１ｂの内部パラメータＰＢは更新されない。
【００２６】
温度更新器３４は、推定部１０ａの活性化器１２ａ及び推定部１０ｂの活性化器１２ｂが用いる温度パラメータＴを更新する。ここで、活性化器１２ａ、１２ｂによる、温度Ｔを用いた蒸留処理について詳しく説明する。推定部１０ａ、１０ｂはそれぞれ推定結果Ｙａ、Ｙｂを出力するが、推定結果Ｙｂは学習済みの高精度な教師モデルによる出力であるから、例えば（犬クラス０．９９９，猫クラス０．００１）のようにベクトルの要素がバイナリ値に近くなってしまい、（犬クラス１，猫クラス０）のような正解ラベルＹのみを用いた場合とほとんど変わりがない学習工程となってしまう。そこで、新たに「温度パラメータ」と呼ばれるハイパーパラメータＴを導入する。温度パラメータＴは、式（７）に示すように、活性化器の活性化関数内に導入されており、一般にＴ≧１を用いる。
【００２７】
【数５】
2020161935.tif 000007
こうすることで、実際は（犬クラス０．９９９，猫クラス０．００１）である推定結果Ｙｂが、（犬クラス０．９，猫クラス０．１）のようになだらかな分布となり、「猫クラス０．１」の数値が学習工程に影響を与え、生徒モデルを効率的に学習させることが可能となる。即ち、温度パラメータＴは、教師モデルが出力する正解ラベルのうち、正解クラスと不正解クラスの桁の不整合を調整するために導入される。
【００２８】
パラメータ更新器３３が損失を用いて生徒モデルの内部パラメータＰＡを最適化するのと同様に、温度更新器３４は、損失を用いて温度パラメータＴを逐次的に最適化する。具体的には、温度更新器３４は、加重平均された損失Ｌａｖが小さくなるように温度パラメータＴを更新する。温度更新器３４は、例えば式（８）により温度パラメータＴを更新することができる。
【００２９】
【数６】
2020161935.tif 000008
式（８）において、「ε」は式（６）の学習率「ε」と同様の働きをする定数であり、学習の間中同じ値を用いてもよいし、プラトー（ｐｌａｔｅａｕ）のように学習の進行に応じて変化させてもよい。また、「ε」は式（６）と同じ値を用いてもよいし、異なる値を用いてもよい。なお、式（８）は一般的な勾配降下法を表すが、モデルの内部パラメータＰのときと同様に、重み減衰や重み上限などの正則化手法を合わせて用いてもよい。また、温度更新器３４が温度パラメータＴの更新に用いる最適化手法は式（８）の勾配降下法には限られず、ｍｏｍｅｎｔｕｍ、ａｄａｇｒａｄ、ａｄａｄｅｌｔａ、ａｄａｍなどの他の最適化手法を用いてもよい。
【００３０】
こうして、最適化部３０は、推定部１０ａの内部パラメータＰＡ及び温度パラメータＴの更新を、更新量が十分に小さくなるまで繰り返し行う。更新量が所定値より小さくなった場合に、学習は終了する。なお、学習が終了した生徒モデルを推論に用いる際には、温度パラメータをＴ＝１とする。即ち、温度パラメータは、学習時にＴ≧１とし、推論時にＴ＝１とする。
【００３１】
（処理フロー）
次に、第１実施形態による学習処理の流れについて説明する。図４は、第１実施形態による学習処理のフローチャートである。この処理は、図１に示すプロセッサ１が予め用意されたプログラムを実行することにより実現される。
【００３２】
学習装置１００に学習データＸが入力されると、生徒モデルに相当する推定部１０ａにおいて、ロジット計算器１１ａは学習データＸのロジットｙａを計算する（ステップＳ１１）。次に、活性化器１２ａは、前述のように温度パラメータＴを用いてロジットｙａから推定結果Ｙａを計算する（ステップＳ１２）。同様に、教師モデルに相当する推定部１０ｂにおいては、ロジット計算器１１ｂは学習データＸのロジットｙｂを計算する（ステップＳ１３）。次に、活性化器１２ｂは、前述のように温度パラメータＴを用いてロジットｙｂから推定結果Ｙｂを計算する（ステップＳ１４）。
【００３３】
次に、最適化部３０において、損失計算器３１は、正解ラベルＹに対する推定結果Ｙａの損失Ｌａ、及び、推定結果Ｙｂに対する推定結果Ｙａの損失Ｌｂを計算する（ステップＳ１５）。次に、加重平均計算器３２は、損失Ｌａと損失Ｌｂの加重平均Ｌａｖを計算する（ステップＳ１６）。
【００３４】
次に、パラメータ更新器３３は、加重平均された損失Ｌａｖに基づいて、ロジット計算器１１ａの内部パラメータＰＡを更新する（ステップＳ１７）。次に、温度更新器３４は、加重平均された損失Ｌａｖに基づいて、活性化器１２ａ及び１２ｂが使用する温度パラメータＴを更新する（ステップＳ１８）。
【００３５】
学習装置１００は、パラメータ更新器３３による内部パラメータＰＡの更新量が所定値より小さくなるまで処理を繰り返し、更新量が所定値より小さくなったときに処理を終了する。処理が終了したときにロジット計算器１１ａに設定されている内部パラメータＰＡ及び活性化器１２ａに設定されている温度パラメータＴにより生徒モデルが規定される。そして、推論時には、この生徒モデルにおいて温度パラメータＴ＝１として推論処理が実行される。
【００３６】
（変形例）
上記の第１実施形態では、温度更新器３４は、正解ラベルＹに対する推定結果Ｙａの損失Ｌａ、及び、推定結果Ｙｂに対する推定結果Ｙａの損失Ｌｂの両方を用いて温度パラメータＴを更新している。その代わりに、温度更新器３４は、正解ラベルＹに対する推定結果Ｙａの損失Ｌａ、及び、推定結果Ｙｂに対する推定結果Ｙａの損失Ｌｂのいずれか一方を用いて温度パラメータＴを更新しても良い。
【００３７】
（実施例）
第１実施形態の１つの実施例では、温度パラメータＴの初期値を「１」に設定する。温度更新器３４は、パラメータ更新器３３がロジット計算器１１ａの内部パラメータＰＡを更新するのと同じタイミングで、温度パラメータＴを更新する。温度更新器３４は、確率的勾配降下法を用いて温度パラメータＴを更新し、学習率はε＝１．０×１０−４とする。
【００３８】
以上の工程を、同様の学習データの１つのサンプルもしくは複数のサンプルのセット（「ミニバッチ」という。）で繰り返し行う。繰り返しは、温度パラメータＴの更新量もしくはロジット計算器１１ａの内部パラメータＰＡの更新量が十分小さくなるか、既定の繰り返し回数（例えば１００回）に達した段階で終了する。その後、別の学習データのサンプルもしくはミニバッチで同様の工程を行い、ロジット計算器１１ａの内部パラメータＰＡの更新量が十分小さくなるまで繰り返す。このとき、サンプルもしくはミニバッチが変更されるたびに温度パラメータＴの初期値は「１」に設定する。
【００３９】
［第２実施形態］
次に、第２実施形態について説明する。第２実施形態は、推定部内のロジット計算器により計算されるロジットに基づいて温度パラメータを更新するものである。ロジットは、本発明の推定情報の一例である。なお、第２実施形態に係る学習装置２００のハードウェア構成は、図１に示す第１実施形態の学習装置１００と同様である。
【００４０】
（機能構成）
図５は、第２実施形態に係る学習装置２００の機能構成を示すブロック図である。図３と比較するとわかるように、学習装置２００は、基本的構成は第１実施形態の学習装置１００と同様であり、推定部１０ａと、推定部１０ｂと、最適化部３０とを備える。但し、第２実施形態の学習装置２００は、第１実施形態における温度更新器３４の代わりに、温度計算器２１を備える。
【００４１】
温度計算器２１には、推定部１０ａのロジット計算器１１ａが出力するロジットｙａと、推定部１０ｂのロジット計算器１１ｂが出力するロジットｙｂとが入力される。温度計算器２１は、予め定められた関数に基づいて、ロジットｙａ及びｙｂを用いて適切な温度パラメータＴを計算する。前述のように、温度パラメータＴは、教師モデルが出力する正解ラベルのうち、正解クラスと不正解クラスの桁の不整合を調整するために導入されている。学習データによって不整合の強さは変化するため、それに応じて温度パラメータＴを変化させる。具体的には、温度計算器２１は、ロジットｙａとｙｂの不整合が大きい場合には温度パラメータＴに大きな値を設定し、不整合が小さい場合には温度パラメータＴに「１」に近い値を設定する。これにより、どのような学習データも平等に学習することが可能となる。
【００４２】
温度計算器２１は、計算した温度パラメータＴを活性化器１２ａ及び１２ｂに供給する。活性化器１２ａは、ロジット計算器１１ａから入力されたロジットｙａと、温度パラメータＴとに基づいて推定結果Ｙａを計算し、最適化部３０の損失計算器３１へ供給する。また、活性化器１２ｂは、ロジット計算器１１ｂから入力されたロジットｙｂと、温度パラメータＴとに基づいて推定結果Ｙｂを計算し、最適化部３０の損失計算器３１へ供給する。
【００４３】
最適化部３０において、損失計算器３１は入力された推定結果Ｙａの正解ラベルＹに対する損失Ｌａ、及び、推定結果Ｙａの推定結果Ｙｂに対する損失Ｌｂを計算し、加重平均計算器３２は損失Ｌａ、Ｌｂの加重平均された損失Ｌａｖを計算する。そして、パラメータ更新器３３は、加重平均された損失Ｌａｖに基づいて、推定部１０ａ内のロジット計算器１１ａの内部パラメータＰＡを更新する。
【００４４】
学習データの数がクラス間で偏っている場合、損失ＬａやＬｂに偏りを補正する効果を加えてもよい。具体的には、前述の式（３）により、クラスごとの損失に補正のための係数ｗｉをかける。例えば、ｗｉは、前述の式（４）又は（５）により算出される。ここに、ｎｉはｉ番目のクラスに属する学習データの総数である。他の例では、ｗｉは、学習データの総数ｎｉの代わりに、教師モデルが全学習データもしくはミニバッチにおいて算出した推定結果Ｙｂのクラスごとの総和を用いてもよい。
【００４５】
（処理フロー）
次に、第２実施形態による学習処理の流れについて説明する。図６は、第２実施形態による学習処理のフローチャートである。この処理は、図１に示すプロセッサ１が予め用意されたプログラムを実行することにより実現される。
【００４６】
学習装置２００に学習データＸが入力されると、生徒モデルに相当する推定部１０ａにおいて、ロジット計算器１１ａは学習データＸのロジットｙａを計算する（ステップＳ２１）。教師モデルに相当する推定部１０ｂにおいては、ロジット計算器１１ｂは学習データＸのロジットｙｂを計算する（ステップＳ２２）。次に、温度計算器２１は、予め定められた関数に基づき、ロジットｙａ及びｙｂから温度パラメータＴを決定する（ステップＳ２３）。決定された温度パラメータＴは、活性化器１２ａ及び１２ｂに供給される。
【００４７】
次に、活性化器１２ａは、温度パラメータＴを用いてロジットｙａから推定結果Ｙａを計算し、活性化器１２ｂは、温度パラメータＴを用いてロジットｙｂから推定結果Ｙｂを計算する（ステップＳ２４）。
【００４８】
次に、最適化部３０において、損失計算器３１は、正解ラベルＹに対する推定結果Ｙａの損失Ｌａ、及び、推定結果Ｙｂに対する推定結果Ｙａの損失Ｌｂを計算する（ステップＳ２５）。次に、加重平均計算器３２は、損失Ｌａと損失Ｌｂの加重平均Ｌａｖを計算する（ステップＳ２６）。次に、パラメータ更新器３３は、加重平均された損失Ｌａｖに基づいて、ロジット計算器１１ａの内部パラメータＰＡを更新する（ステップＳ２７）。
【００４９】
学習装置２００は、パラメータ更新器３３による内部パラメータＰＡの更新量が所定値より小さくなるまで上記の処理を繰り返し、更新量が所定値より小さくなったときに処理を終了する。処理が終了したときにロジット計算器１１ａに設定されている内部パラメータＰＡ及び活性化器１２ａに設定されている温度パラメータＴにより生徒モデルが規定される。そして、推論時には、この生徒モデルにおいて温度パラメータＴ＝１として推論処理が実行される。
【００５０】
（変形例）
上記の第２実施形態では、温度計算器２１は、生徒モデルに相当する推定部１０ａが生成するロジットｙａ、及び、教師モデルに相当する推定部１０ｂが生成するロジットｙｂの両方を用いて温度パラメータＴを計算している。その代わりに、温度計算器２１は、生徒モデルに相当する推定部１０ａが生成するロジットｙａ、及び、教師モデルに相当する推定部１０ｂが生成するロジットｙｂのいずれか一方を用いて温度パラメータＴを計算しても良い。
【００５１】
（実施例）
第２実施形態の１つの実施例では、温度パラメータＴは、生徒モデルに相当する推定部１０ａ又は教師モデルに相当する推定部１０ｂが出力するロジットの値が正のときに正の値に設定され、負のときに負の値に設定される。例えば、ロジットの値が負の場合には温度パラメータＴ＝−５とし、ロジットの値が正の場合には温度パラメータＴ＝１とする。好適には、温度パラメータＴは、−１００〜１００の範囲で決定される。例えば、温度計算器２１は、生徒モデルに相当する推定部１０ａが出力するロジットが正のときに温度パラメータＴを０〜１００の値に設定し、負のときに温度パラメータＴを−１００〜０の値に設定する。活性化器１２ａ及び１２ｂの活性化関数にはシグモイド関数を用いる。
【００５２】
［第３実施形態］
次に、第３実施形態について説明する。第３実施形態は、推定部により計算される推定結果に基づいて温度パラメータを更新するものである。推定結果は、本発明の推定情報の一例である。なお、第３実施形態に係る学習装置３００のハードウェア構成は、図１に示す第１実施形態の学習装置１００と同様である。
（機能構成）
【００５３】
図７は、第３実施形態に係る学習装置３００の機能構成を示すブロック図である。図５と比較するとわかるように、学習装置３００は、第２実施形態の学習装置２００に加えて、活性化器２２ａ及び２２ｂを備える。なお、推定部１０ａ及び１０ｂ、並びに最適化部３０の構成は第２実施形態の学習装置２００と同様である。
【００５４】
温度計算器２１は、予め定められた関数に基づき、推定部１０ａ及び１０ｂから供給された推定結果Ｙａ及びＹｂから温度パラメータＴを計算し、これを活性化器２２ａ及び２２ｂに供給する。活性化器２２ａは、予め定められた関数及び温度パラメータＴに基づき、ロジット計算器１１ａが出力するロジットｙａから推定結果Ｙ’ａを計算し、最適化部３０の損失計算器３１へ供給する。同様に、活性化器２２ｂは、予め定められた関数及び温度パラメータＴに基づき、ロジット計算器１１ｂが出力するロジットｙｂから推定結果Ｙ’ｂを計算し、最適化部３０の損失計算器３１へ供給する。
【００５５】
最適化部３０の構成は、第２実施形態と同様である。即ち、損失計算器３１は入力された推定結果Ｙ’ａの正解ラベルＹに対する損失Ｌａ、及び、推定結果Ｙ’ａの推定結果Ｙ’ｂに対する損失Ｌｂを計算し、加重平均計算器３２は損失Ｌａ、Ｌｂの加重平均された損失Ｌａｖを計算する。そして、パラメータ更新器３３は、加重平均された損失Ｌａｖに基づいて、推定部１０ａ内のロジット計算器１１ａの内部パラメータＰＡを更新する。
【００５６】
学習データの数がクラス間で偏っている場合、損失ＬａやＬｂに偏りを補正する効果を加えてもよい。具体的には、前述の式（３）により、クラスごとの損失に補正のための係数ｗｉをかける。例えば、ｗｉは、前述の式（４）又は（５）により算出される。ここに、ｎｉはｉ番目のクラスに属する学習データの総数である。他の例では、ｗｉは、学習データの総数ｎｉの代わりに、教師モデルが全学習データもしくはミニバッチにおいて算出した推定結果Ｙｂのクラスごとの総和を用いてもよい。
【００５７】
（処理フロー）
次に、第３実施形態による学習処理の流れについて説明する。図８は、第３実施形態による学習処理のフローチャートである。この処理は、図１に示すプロセッサ１が予め用意されたプログラムを実行することにより実現される。
【００５８】
学習装置３００に学習データＸが入力されると、生徒モデルに相当する推定部１０ａは学習データＸから推定結果Ｙａを計算する（ステップＳ３１）。推定結果Ｙａを計算する際、推定部１０ａの活性化器１２ａは温度パラメータＴ＝１を用いる。教師モデルに相当する推定部１０ｂは、学習データＸから推定結果Ｙｂを計算する（ステップＳ３２）。推定結果Ｙｂを計算する際、推定部１０ｂの活性化器１２ｂは温度パラメータＴ＝１を用いる。
【００５９】
次に、温度計算器２１は、予め定められた関数に基づき、推定結果Ｙａ及びＹｂから温度パラメータＴを決定する（ステップＳ３３）。決定された温度パラメータＴは、活性化器２２ａ及び２２ｂに供給される。
【００６０】
次に、活性化器２２ａは、温度パラメータＴを用いて、ロジット計算器１１ａが出力したロジットｙａから推定結果Ｙ’ａを計算する。また、活性化器２２ｂは、温度パラメータＴを用いて、ロジット計算器１１ｂが出力したロジットｙｂから推定結果Ｙ’ｂを計算する（ステップＳ３４）。
【００６１】
次に、最適化部３０において、損失計算器３１は、正解ラベルＹに対する推定結果Ｙ’ａの損失Ｌａ、及び、推定結果Ｙ’ｂに対する推定結果Ｙ’ａの損失Ｌｂを計算する（ステップＳ３５）。次に、加重平均計算器３２は、損失Ｌａと損失Ｌｂの加重平均Ｌａｖを計算する（ステップＳ３６）。そして、パラメータ更新器３３は、加重平均された損失Ｌａｖに基づいて、ロジット計算器１１ａの内部パラメータＰＡを更新する（ステップＳ３７）。
【００６２】
学習装置３００は、パラメータ更新器３３による内部パラメータＰＡの更新量が所定値より小さくなるまで上記の処理を繰り返し、更新量が所定値より小さくなったときに処理を終了する。処理が終了したときにロジット計算器１１ａに設定されている内部パラメータＰＡ及び活性化器２２ａに設定されている温度パラメータＴにより生徒モデルが規定される。そして、推論時には、この生徒モデルにおいて温度パラメータＴ＝１として推論処理が実行される。
【００６３】
（変形例）
上記の第３実施形態では、温度計算器２１は、生徒モデルに相当する推定部１０ａが生成する推定結果Ｙａ、及び、教師モデルに相当する推定部１０ｂが生成する推定結果Ｙｂの両方を用いて温度パラメータＴを計算している。その代わりに、温度計算器２１は、生徒モデルに相当する推定部１０ａが生成する推定結果Ｙａ、及び、教師モデルに相当する推定部１０ｂが生成する推定結果Ｙｂのいずれか一方を用いて温度パラメータＴを計算しても良い。
【００６４】
（実施例）
第３実施形態の第１の実施例では、温度計算器２１は、推定部１０ｂから出力される推定結果Ｙｂの各クラスの確率推定値の大小バランスを補正するように、具体的には、各クラスの推定結果のオーダーが揃うように温度パラメータＴを設定する。例えば、温度計算器２１は、確率推定値の最大値／最小値が１０５以上の場合には温度パラメータＴ＝５とし、それ以下の場合は温度パラメータＴ＝１とする。好適には、温度パラメータＴは１〜１００の範囲で決定される。活性化器２２ａ及び２２ｂの活性化関数にはソフトマックス関数を用いる。
【００６５】
第３実施形態の第２の実施例では、教師モデルに相当する推定部１０ｂから出力される推定結果Ｙｂのうち、最も確率の高いクラスの値を「ｐ１」、次に確率の高いクラスの値を「ｐ２」としたときに、温度計算器２１は、それらの値の比：ｒ＝ｐ１／ｐ２に基づいて温度パラメータＴを決定する。一例では、温度計算器２１は、ｒ＜４のときＴ＝１とし、４≦ｒ＜５のときＴ＝２とし、ｒ≧５のときＴ＝３とする。他の例では、温度計算器２１は、より連続的にｒに関するシグモイド関数で温度パラメータＴを定める。例えば、温度計算器２１は、ｒが十分小さいときにＴ＝１となり、ｒが十分大きいときにＴ＝３となり、ｒ＝４のときにＴ＝２となるように、温度パラメータＴを
Ｔ＝２／（１＋ｅ（−ｒ＋４））＋１
と定める。
【００６６】
第３実施形態の第３の実施例では、教師モデルに相当する推定部１０ｂから出力される推定結果ＹｂのエントロピーＥに基づいて温度パラメータＴを決定する。エントロピーＥは、ｉ番目のクラスの推定結果をＹｂｉとしたとき、以下の式（９）により与えられる。
【００６７】
【数７】
2020161935.tif 000009
温度パラメータＴは、推定結果ＹｂのエントロピーＥに関する単調減少関数として与えられる。一例では、Ｅが最小値のときＴ＝１０となり、Ｅが最大値のときＴ＝１となるように、温度パラメータＴを式（１０）のように定める。ここに、Ｎは教師モデルが分類するクラス数である。
【００６８】
【数８】
2020161935.tif 000010
【００６９】
［他の実施形態］
上記の第１実施形態と、第２実施形態又は第３実施形態とを組み合わせてもよい。例えば、第１実施形態と第２実施形態とを組み合わせた場合、第２実施形態の手法によりロジットに基づいて温度パラメータＴの初期値を決定し、その後は第１実施形態の手法により損失に基づいて温度パラメータＴを更新すればよい。また、第１実施形態と第３実施形態とを組み合わせた場合、第３実施形態の手法により推定結果に基づいて温度パラメータＴの初期値を決定し、その後は第１実施形態の手法により損失に基づいて温度パラメータＴを更新すればよい。
【００７０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７１】
（付記１）
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部と、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部と、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部と、
を備える学習装置。
【００７２】
（付記２）
前記温度計算部は、正解ラベルに対する前記第１の推定部が生成する第１の推定結果の損失、及び、前記第２の推定部が生成する第２の推定結果に対する前記第１の推定結果の損失の少なくとも一方に基づいて前記温度パラメータを計算する付記１に記載の学習装置。
【００７３】
（付記３）
前記温度計算部は、正解ラベルに対する前記第１の推定部が生成する第１の推定結果の損失と、前記第２の推定部が生成する第２の推定結果に対する前記第１の推定結果の損失との加重平均に基づいて前記温度パラメータを計算する付記１に記載の学習装置。
【００７４】
（付記４）
前記温度計算部は、前記第１の推定部が生成するロジット、及び、前記第２の推定部が生成するロジットの少なくとも一方に基づいて、前記温度パラメータを計算する付記１に記載の学習装置。
【００７５】
（付記５）
前記温度計算部は、前記第１の推定部又は第２の推定部が生成するロジットの正負に応じて前記温度パラメータを計算する付記１に記載の学習装置。
【００７６】
（付記６）
前記温度計算部は、前記第１の推定部が生成する推定結果、及び、前記第２の推定部が生成する推定結果の少なくとも一方に基づいて前記温度パラメータを計算する付記１に記載の学習装置。
【００７７】
（付記７）
前記温度計算部は、前記第２の推定部が生成する推定結果のエントロピーに基づいて前記温度パラメータを計算する付記６に記載の学習装置。
【００７８】
（付記８）
前記温度計算部は、前記第２の推定部が生成する推定結果のエントロピーに関する単調減少関数として温度パラメータを計算する付記６に記載の学習装置。
【００７９】
（付記９）
前記温度計算部は、前記第１の推定部又は前記第２の推定部が生成する各クラスの推定結果の大小バランスが補正されるように前記温度パラメータを計算する付記６に記載の学習装置。
【００８０】
（付記１０）
前記温度計算部は、前記第１の推定部又は前記第２の推定部が生成する各クラスの推定結果のオーダーが揃うように前記温度パラメータを計算する付記６に記載の学習装置。
【００８１】
（付記１１）
前記温度計算部は、前記第２の推定部が生成する各クラスの推定結果のうち、最も確率の高いクラスの値と、次に確率の高いクラスの値との比に基づいて、前記温度パラメータを計算する付記６に記載の学習装置。
【００８２】
（付記１２）
学習装置により実行される学習方法であって、
生徒モデルに基づき、温度パラメータを用いて推定を行い、
教師モデルに基づき、温度パラメータを用いて推定を行い、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する学習方法。
【００８３】
（付記１３）
コンピュータを備える学習装置により実行されるプログラムであって、
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定部、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定部、
前記第１の推定部及び前記第２の推定部が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算部、
として前記コンピュータを機能させるプログラム。
【００８４】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８５】
１  プロセッサ
２  メモリ
５、６、１０ａ、１０ｂ  推定部
７、２１  温度計算器
１１ａ、１１ｂ  ロジット計算器
１２ａ、１２ｂ、２２ａ、２２ｂ  活性化器
３０  最適化部
３１  損失計算器
３２  加重平均計算器
３３  パラメータ更新器
３４  温度更新器
【図１】
2020161935.tif 000011
【図２】
2020161935.tif 000012
【図３】
2020161935.tif 000013
【図４】
2020161935.tif 000014
【図５】
2020161935.tif 000015
【図６】
2020161935.tif 000016
【図７】
2020161935.tif 000017
【図８】
2020161935.tif 000018
【手続補正書】
【提出日】令和3年7月16日(2021.7.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定手段と、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定手段と、
前記第１の推定手段及び前記第２の推定手段が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算手段と、
を備える学習装置。
【請求項２】
前記温度計算手段は、正解ラベルに対する前記第１の推定手段が生成する第１の推定結果の損失、及び、前記第２の推定手段が生成する第２の推定結果に対する前記第１の推定結果の損失の少なくとも一方に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項３】
前記温度計算手段は、正解ラベルに対する前記第１の推定手段が生成する第１の推定結果の損失と、前記第２の推定手段が生成する第２の推定結果に対する前記第１の推定結果の損失との加重平均に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項４】
前記温度計算手段は、前記第１の推定手段が生成するロジット、及び、前記第２の推定手段が生成するロジットの少なくとも一方に基づいて、前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項５】
前記温度計算手段は、前記第１の推定手段又は第２の推定手段が生成するロジットの正負に応じて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項６】
前記温度計算手段は、前記第１の推定手段が生成する推定結果、及び、前記第２の推定手段が生成する推定結果の少なくとも一方に基づいて前記温度パラメータを計算する請求項１に記載の学習装置。
【請求項７】
前記温度計算手段は、前記第２の推定手段が生成する推定結果のエントロピーに基づいて前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項８】
前記温度計算手段は、前記第２の推定手段が生成する推定結果のエントロピーに関する単調減少関数として温度パラメータを計算する請求項６に記載の学習装置。
【請求項９】
前記温度計算手段は、前記第１の推定手段又は前記第２の推定手段が生成する各クラスの推定結果の大小バランスが補正されるように前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１０】
前記温度計算手段は、前記第１の推定手段又は前記第２の推定手段が生成する各クラスの推定結果のオーダーが揃うように前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１１】
前記温度計算手段は、前記第２の推定部が生成する各クラスの推定結果のうち、最も確率の高いクラスの値と、次に確率の高いクラスの値との比に基づいて、前記温度パラメータを計算する請求項６に記載の学習装置。
【請求項１２】
学習装置により実行される学習方法であって、
生徒モデルに基づき、温度パラメータを用いて第１の推定を行い、
教師モデルに基づき、温度パラメータを用いて第２の推定を行い、
前記第１の推定及び前記第２の推定により生成された推定情報に基づいて、前記温度パラメータを計算する学習方法。
【請求項１３】
コンピュータを備える学習装置により実行されるプログラムであって、
生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定手段、
教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定手段、
前記第１の推定手段及び前記第２の推定手段が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算手段、
として前記コンピュータを機能させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の１つの観点では、学習装置は、生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定手段と、教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定手段と、前記第１の推定手段及び前記第２の推定手段が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算手段と、を備える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の他の観点では、学習装置により実行される学習方法は、生徒モデルに基づき、温度パラメータを用いて第１の推定を行い、教師モデルに基づき、温度パラメータを用いて第２の推定を行い、前記第１の推定及び前記第２の推定により生成された推定情報に基づいて、前記温度パラメータを計算する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明の更に他の観点では、コンピュータを備える学習装置により実行されるプログラムは、生徒モデルに基づき、温度パラメータを用いて推定を行う第１の推定手段、教師モデルに基づき、温度パラメータを用いて推定を行う第２の推定手段、前記第１の推定手段及び前記第２の推定手段が生成する推定情報に基づいて、前記温度パラメータを計算する温度計算手段、として前記コンピュータを機能させる。
【国際調査報告】
2020161935.tif 000019
2020161935.tif 000020
2020161935.tif 000021