JP2024064789A - 学習装置、学習方法 - Google Patents
学習装置、学習方法 Download PDFInfo
- Publication number
- JP2024064789A JP2024064789A JP2022173654A JP2022173654A JP2024064789A JP 2024064789 A JP2024064789 A JP 2024064789A JP 2022173654 A JP2022173654 A JP 2022173654A JP 2022173654 A JP2022173654 A JP 2022173654A JP 2024064789 A JP2024064789 A JP 2024064789A
- Authority
- JP
- Japan
- Prior art keywords
- learning
- model
- learning model
- temperature
- student
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000013016 learning Effects 0.000 title claims abstract description 462
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004821 distillation Methods 0.000 claims abstract description 66
- 230000006870 function Effects 0.000 claims description 73
- 230000008569 process Effects 0.000 claims description 33
- 230000004913 activation Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 12
- 210000002569 neuron Anatomy 0.000 claims description 7
- 230000006903 response to temperature Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 241000282326 Felis catus Species 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 241001465754 Metazoa Species 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Air Conditioning Control Device (AREA)
- Image Analysis (AREA)
Abstract
【課題】 より効率的に生徒モデルの蒸留学習を進展させるための技術を提供すること。【解決手段】 第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う。第2学習モデルの学習中に、第1学習モデルのパラメータ、第1学習モデルの構成、第2学習モデルのパラメータ、第2学習モデルの構成、のうち1以上を動的に変化させる。【選択図】 図1
Description
本発明は、学習モデルの蒸留学習技術に関するものである。
近年、機械学習の分野で蒸留学習が注目されている(非特許文献1)。蒸留学習においては、一般的には大規模・高精度な教師モデルの出力を教師データ(ソフトターゲット)とし、より軽量な生徒モデルを、該生徒モデルの出力とソフトターゲットとの間の誤差(ソフトターゲット誤差)を用いて学習する。
ここで、学習とは、例えば階層型のニューラルネットワークを用いた場合、順伝搬計算の結果得られた出力値の誤差を、該ニューラルネットワークにおいて逆伝播させることによって、該ニューラルネットワークにおける重み係数やその他のパラメータの更新を、順次反復的に行うことをいう。
また、教師データとは、入力データに対する望ましい出力(ラベル値ないしはその分布)であり、前述した学習の際には、入力データと教師データとからなる学習データを用いて学習を行う。
また、蒸留学習におけるソフトターゲットとは、例えば、温度付ソフトマックス関数を出力層の活性化関数に使用することにより得られる出力である。温度付ソフトマックス関数には、温度を上げるにつれ、正解クラスに相当するクラスの出力値は小さくなり、逆にそれ以外のクラスの出力値は大きくなるという特性がある。それにより、通常の教師データ(ハードターゲット)を学習に用いた場合よりも、正解クラス以外のクラスの出力値(情報)が学習に寄与することになる。
そして、ソフトターゲット誤差とは、このソフトターゲットと、生徒モデルの出力と、の間で算出される誤差のことである。一般的には、誤差関数には交差エントロピーが用いられる。
そして、蒸留学習における教師モデルとは、蒸留学習において生徒モデルの学習の際に、ソフトターゲットを出力する、一般的には生徒モデルよりも大規模かつ高精度なモデルである。また、生徒モデルとは、一般的には教師モデルよりも軽量なモデルであり、蒸留学習においてはソフトターゲット誤差を用いた学習によって生成する。
従来から、軽量なモデルを取得するために、ニューラルネットワークのレイヤ構造や結合状態を、工夫もしくは探索することにより、効率的アーキテクチャーを構成することが考えられている(非特許文献2)。また、ニューラルネットワークのパラメータである重み係数を小ビット数に量子化することや、寄与度の小さいレイヤや結合を削除する枝刈りなどの手法も用いられている。
その一方、蒸留学習は、教師モデルとして用いる学習済みモデルが必要ではある。しかし、蒸留学習には、軽量で高精度なモデルが得られるという利点だけでなく、正則化効果によって過学習しにくいモデルが得られる、或いは教師なしデータを学習に使用できる等といった、従来の軽量モデルを取得するための手法にはない利点がある。
この、正則化効果や教師なしデータの利用といった利点は、ネットワークサイズを変化させない場合にも有効である。ネットワークサイズを変化させない場合に、こうした蒸留学習の利点を活用する手法として、Born Again(非特許文献3)という手法が提案されている。Born Againにおいては、教師モデルと生徒モデルに、同規模のモデルを用いて、蒸留学習を行う。その際、生徒モデルの初期値にはランダム値を用いる。最初の生徒モデルの蒸留学習が完了したら、今度はそれを教師モデルとして、再度、別の生徒モデルの蒸留学習を行う。この別の生徒モデルの蒸留学習の際にも、初期値にはランダム値を用いる。Born Againにおいては、この生徒モデルのランダム値からの蒸留学習と、教師モデルと生徒モデルの置換という操作を複数回反復し、複数の生徒モデルの蒸留学習を行う。そして最後に、生成した複数の生徒モデルのアンサンブルを、最終的な学習モデルとして使用する。
"Distilling the Knowledge in a Neural Network", G. Hinton et al.(NIPS2014)
"Neural Architecture Search with Reinforcement Learning", B. Zoph et al.(ICLR2017)
"Born-Again Neural Networks", Tommaso Furlanello et al.(ICML2018)
Krizhevsky, A., Sutskever, I., and Hinton, G. E. "ImageNet classification with deep convolutional neural networks" NIPS, pp. 1106?1114, 2012.
K. Simonyan and A. Zisserman. "Very deep convolutional networks for large-scale image recognition" ICLR, 2015.
このBorn Againには、ネットワークサイズを変化させない場合にも蒸留学習の効果が得られるという利点はあるものの、複数の生徒モデルの蒸留学習を、ランダム初期値から行わなければならず、学習のためのコストが高くなるという課題がある。また、学習済みモデルを用いて推論を行う際にも、複数の生徒モデルの出力のアンサンブルを行う必要があり、推論の際の実装及び演算コストが増えるという課題がある。なお、ここで推論とは、学習済モデルに対象となるデータを入力し、例えば入力データがどのクラスに該当するのかというクラス分類をしたい場合には、クラス分類の出力結果を取得する様な工程のことである。本発明では、より効率的に生徒モデルの蒸留学習を進展させるための技術を提供する。
本発明の一様態は、第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習手段と、前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御手段とを備えることを特徴とする。
本発明の構成によれば、より効率的に生徒モデルの蒸留学習を進展させることができる。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
本実施形態では、蒸留学習において、教師モデルおよび生徒モデルのそれぞれの最終出力層の活性化関数に温度付ソフトマックス関数を用い、この温度付ソフトマックス関数の温度に揺らぎを与えて該生徒モデルの自己蒸留学習を行う事例について説明する。先ず、本実施形態に係る学習装置の機能構成例について、図1のブロック図を用いて説明する。
本実施形態では、蒸留学習において、教師モデルおよび生徒モデルのそれぞれの最終出力層の活性化関数に温度付ソフトマックス関数を用い、この温度付ソフトマックス関数の温度に揺らぎを与えて該生徒モデルの自己蒸留学習を行う事例について説明する。先ず、本実施形態に係る学習装置の機能構成例について、図1のブロック図を用いて説明する。
記憶部101には、蒸留学習に用いる学習データが格納されている。学習データは、学習対象のデータと、該学習対象のデータに対応する教師データと、を含む。学習対象のデータは、例えば、静止画像のデータであっても良いし、動画像のデータであっても良いし、音声のデータであっても良い。教師データは、学習対象のデータにおけるクラスを特定するためのデータである。
学習部102は、記憶部101に格納されている学習データを用いて教師モデルの学習を行う。教師モデルには、階層型ニューラルネットワークの一例である、コンボリューション層、プーリング層、フルコネクト層、を有するCNN(コンボリューショナルニューラルネットワーク)を用いる。また、教師モデルの最終出力層の活性化関数には、温度付ソフトマックス関数を用いる。学習部102は、教師モデルの学習が完了すると、学習済みの教師モデルを記憶部103に格納する。
学習部104は、記憶部101に格納されている学習データに含まれている学習対象のデータと、記憶部103に格納されている教師モデルの出力であるソフトターゲットと、を用いた蒸留学習によって、生徒モデルの学習を行う。生徒モデルには、少なくとも教師モデルと部分的に同じ構成を有するモデルを用いる。つまり、生徒モデルは、教師モデルと同じ構成を有するモデルであっても良いし、教師モデルと一部の構成が同じであるモデルであっても良い。いずれにしても、生徒モデルにも、階層型ニューラルネットワークの一例である、コンボリューション層、プーリング層、フルコネクト層、を有するCNN(コンボリューショナルニューラルネットワーク)を用いる。また、生徒モデルの最終出力層の活性化関数にも、温度付ソフトマックス関数を用いる。そして学習部104は生徒モデルの学習が完了すると、学習済みの生徒モデルを記憶部105に格納する。
揺らぎ付与部106は、系全体に与える揺らぎの制御を行う。本実施形態では、揺らぎ付与部106は、教師モデルの最終出力層の活性化関数に用いる温度付ソフトマックス関数、生徒モデルの最終出力層の活性化関数に用いる温度付ソフトマックス関数、のそれぞれの温度に、一定の平均温度と標準偏差を有するガウシアン揺らぎを与えて、該温度を動的に変更させる。
つまり、揺らぎ付与部106は、生徒モデルの学習回数がLN(LNは任意の自然数であり、変動しても良いし、固定値であっても良い)回増加するたびに、一定の平均温度と標準偏差を有するガウス分布に従って発生させた乱数を「教師モデルの最終出力層の活性化関数に用いる温度付ソフトマックス関数の温度(教師温度)」に設定する。これにより、生徒モデルの学習において(学習中に)教師温度を動的に変更することができる。
同様に、揺らぎ付与部106は、生徒モデルの学習回数がLN回増加するたびに、一定の平均温度と標準偏差を有するガウス分布に従って発生させた乱数を「生徒モデルの最終出力層の活性化関数に用いる温度付ソフトマックス関数の温度(生徒温度)」に設定する。これにより、生徒モデルの学習において(学習中に)生徒温度を動的に変更することができる。
次に、本実施形態に係る学習装置による生徒モデルの蒸留学習について、図2のフローチャートに従って説明する。また、図2のフローチャートに従った処理の模式図を図4に示す。
ステップS101では、学習部102は、記憶部101に格納されている学習データを用いて教師モデルの学習を行う。教師モデルのパラメータ(重み係数など)の初期値は特定の値に限らず、ランダムに設定しても良いし、教師モデルに適合する既存のモデルがあれば、そのパラメータを初期値に用いてもよい。図4に示す如く、このような学習部102による学習処理(ハードターゲット学習0)により、教師モデル401が生成される。学習部102は、教師モデルの学習が完了すると、学習済みの教師モデルを記憶部103に格納する。
ステップS102では、学習部104は、記憶部103に格納されている学習済みの教師モデルを読み出し、該学習済みの教師モデルを用いた推論が可能な様にする。ステップS103では、学習部104は、生徒モデルのパラメータ(重み係数など)に初期値を設定する。生徒モデルのパラメータの初期値として、学習済みの教師モデルのパラメータを設定する。図4の例では、教師モデル401のパラメータを、生徒モデル402のパラメータの初期値として設定する。
ステップS104では、教師モデルの出力を用いた蒸留学習により生徒モデルの学習を行う。図4の例では、教師モデル401の出力を用いて生徒モデル402の自己蒸留学習(ソフトターゲット学習1)を行って、生徒モデル403を生成する。ここで、本実施形態に係る生徒モデルの自己蒸留学習について説明する前に、従来技術である蒸留学習について、図5を用いて説明する。
画像501は、教師モデル503に入力する学習対象のデータであり、画像502は、生徒モデル504に入力する学習対象のデータである。画像501および画像502はいずれも、動物であるネコの画像である。一般に、教師モデルには、Alexnet(非特許文献4)やVGG(非特許文献5)といった大規模なモデルが使用される。一方、生徒モデルには、一般には推論時の実装コストや演算コストを削減するために、より軽量なモデルが使用される。
学習対象のデータとして画像501を入力した教師モデル503からは、クラスごとの出力値(該クラスに対する尤度)の分布(ソフトターゲット)505が出力される。p1は1番目のクラスである「cat」に対応する尤度、p2は2番目のクラスである「dog」に対応する尤度、piはi番目のクラスに対応する尤度、を示している。活性化関数として、ソフトマックス関数を用いた場合の出力値の分布は、正解クラスに相当するクラスの出力値(ここでは、クラス「cat」に対応する尤度)が1に近く、それ以外のクラスの出力値は0に近いという特性がある。ここで、i番目のクラスに対応する出力値(尤度)をsoftmax_iとすると、ソフトマックス関数は(式1)に示す関数となる。
ここで、uiは、i番目のクラスに対応するソフトマックス関数への入力値を示しており、ujは、j番目のクラスに対応するソフトマックス関数への入力値を示している。また、(式1)における変数jの範囲は、1~全クラス数である。
しかし、蒸留学習においては、活性化関数に温度付ソフトマックス関数といった、出力値の分布がより滑らかになる関数を使用するため、正解クラスに相当するクラスの出力値(ここでは、「cat」に対応する尤度)以外の出力値も比較的大きな値を有する。ここで、温度付ソフトマックス関数は、設定温度をTとした時に、i番目のクラスに対応する出力値(尤度)をT_softmax_iとすると(式2)に示す関数となる。
ここで、uiは、i番目のクラスに対応する温度付ソフトマックス関数への入力値を示しており、ujは、j番目のクラスに対応する温度付ソフトマックス関数への入力値を示している。また、(式2)における変数jの範囲は、1~全クラス数である。教師モデルの出力値(尤度)piは、上記の(式2)を用いてT_softmax_iとして得られる。
そのため、温度付ソフトマックス関数の出力値(ここではpiの分布)には、正解クラスに相当するクラスの情報のみならず、それ以外のクラスの情報にも、正解クラスとの類似度といった情報が含まれており、それが学習に寄与することになる。
学習対象のデータとして画像502を入力した生徒モデル504からは、クラスごとの出力値(該クラスに対する尤度)の分布506が出力される。q1は1番目のクラスである「cat」に対応する尤度、q2は2番目のクラスである「dog」に対応する尤度、qiはi番目のクラスに対応する尤度、を示している。
一般には、例えば教師モデルと生徒モデルの活性化関数に、温度付ソフトマックス関数を用いた場合には、教師温度と同じ温度を生徒温度にも適用する。蒸留学習においては、この教師モデルの出力値(尤度)piと、生徒モデルの出力値(尤度)qiと、から、以下の(式3)を用いて、ソフトターゲット損失soft_target_lossを求める。
ここで、(式3)における変数iの範囲は、1~全クラス数である。また、生徒モデルの出力値(尤度)qiは、以下の(式4)に従って求めることができる。
ここで、viは、生徒モデルにおいて、i番目のクラスに対応する温度付ソフトマックス関数への入力値を示しており、vjは、生徒モデルにおいて、j番目のクラスに対応する温度付ソフトマックス関数への入力値を示している。また、(式4)における変数jの範囲は、1~全クラス数である。
そして、(式3)に従って求めたソフトターゲット損失soft_target_lossに基づいて生徒モデル504のパラメータを更新することで、該生徒モデル504の学習を行う。つまり、ソフトターゲット損失soft_target_lossを生徒モデル504の学習にフィードバックする。
なお、生徒モデル504の学習には、通常の教師データをさらに用いてもよい。つまり、ソフトターゲットを用いて学習を行った生徒モデルを、教師モデルの学習時に用いた教師データを用いて再学習するようにしても良い。
図5では、教師データの分布(ハードターゲット)507を示している。分布507においては、正解クラスに相当する「cat」(これをk番目のクラスとする)のみの尤度が1となり、それ以外のクラスの尤度は0である。この場合には、以下の(式5)に従ってハードターゲット損失hard_target_lossを求める。
ここで、生徒モデル504の出力値riは、以下の(式6)に従って求めることができる。
ここで、viは、生徒モデル504において、i番目のクラスに対応する温度付ソフトマックス関数への入力値を示しており、vjは、生徒モデル504において、j番目のクラスに対応する温度付ソフトマックス関数への入力値を示している。また、(式6)における変数jの範囲は、1~全クラス数である。そして、このハードターゲット損失hard_target_lossを生徒モデル504の学習にフィードバックする。
以上説明した、従来技術である蒸留学習においては、教師モデルと生徒モデルに異なるモデルを使用したが、本実施形態に係る自己蒸留学習においては、教師モデルと生徒モデルとに同じモデル、或いは少なくとも部分的に同じモデルを使用する。但し、ステップS104では、教師モデルと生徒モデルとで、系に異なる揺らぎを与えることにより、蒸留学習を進展させる。ここで系に与える揺らぎとは、例えば温度付ソフトマックス関数の温度の揺らぎや、モデルの構成の一部を変化させる様な揺らぎ、或いは、モデルへの入力データに印加した揺らぎ等である。本実施形態では、温度付ソフトマックス関数の温度の揺らぎを使用した自己蒸留学習の事例について、図3のフローチャート(ステップS104における処理の詳細を示すフローチャート)を用いて説明する。
ステップS201では、揺らぎ付与部106は、教師モデルおよび生徒モデルのそれぞれに与える揺らぎを設定する。ステップS201における処理について、図6を例に取り説明する。
図6(a)は、教師モデルの温度付ソフトマックス関数に設定する教師温度の分布を模式的に示した図である。横軸は教師温度を表しており、縦軸は頻度を表している。参照番号601は、温度揺らぎにおける中心温度Tcを示しており、参照番号602は、温度揺らぎの標準偏差σTを示している。この温度揺らぎは、中心温度Tcを平均値とし、σTを標準偏差とするガウス分布に従った温度の揺らぎであり、温度をTとすると、その確率分布fT(T)は、以下の(式7)に従う。
然るに、揺らぎ付与部106は、図6(c)に示す如く、生徒モデルの学習回数がLN回増加するたびに、「中心温度Tcを平均値とし、σTを標準偏差とするガウス分布である確率分布fT(T)」に従って発生させた乱数(温度T)を教師温度に設定する。これにより、揺らぎ付与部106は、生徒モデルの学習において教師温度に揺らぎを付与することができる。
図6(b)は、生徒モデルの温度付ソフトマックス関数に設定する生徒温度の分布を模式的に示した図である。横軸は生徒温度を表しており、縦軸は頻度を表している。参照番号603は、温度揺らぎにおける中心温度Tcを示しており、参照番号604は、温度揺らぎの標準偏差σSを示している。この温度揺らぎは、中心温度Tcを平均値とし、σSを標準偏差とするガウス分布をしており、温度をTとすると、その確率分布fS(T)は、以下の(式8)に従う。
然るに、揺らぎ付与部106は、図6(d)に示す如く、生徒モデルの学習回数がLN回増加するたびに、「中心温度Tcを平均値とし、σSを標準偏差とするガウス分布である確率分布fS(T)」に従って発生させた乱数(温度T)を生徒温度に設定する。これにより、揺らぎ付与部106は、生徒モデルの学習において生徒温度に揺らぎを付与することができる。
よって、ステップS201では、揺らぎ付与部106は、確率分布fT(T)に従って発生させた乱数(温度T)を教師温度に設定する。また、揺らぎ付与部106は、確率分布fS(T)に従って発生させた乱数(温度T)を生徒温度に設定する。
なお、ここでは、教師温度および生徒温度の両方に揺らぎを付与する例について説明したが、教師温度および生徒温度の両方に揺らぎを付与することに限らず、いずれか一方のみに揺らぎを付与するようにしても良い。
ステップS202で学習部104はステップS102で記憶部103から読み出した教師モデル401に、記憶部101に格納されている学習データに含まれている学習対象のデータを入力し、教師モデル401の出力値405をソフトターゲットとして求める。
ステップS203では、学習部104は、ステップS103においてパラメータの初期値が設定された生徒モデル402に、記憶部101に格納されている学習データに含まれている学習対象のデータ(ステップS202で教師モデルに入力した学習対象のデータと同じ学習対象のデータ)を入力して、該生徒モデル402の出力値406を求める。
ステップS204では、学習部104は、ステップS202で求めたソフトターゲットである出力値405と、ステップS203で求めた出力値406と、を用いてソフトターゲット損失を求める。そして学習部104は、該求めたソフトターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ソフトターゲット学習1)を行う。
このソフトターゲット損失は、温度揺らぎがなければ0になり、学習は進展しないが、温度揺らぎを与えることによってソフトターゲット損失が0にはならず、学習が進展する。また、ソフトターゲット損失の値をモニターすることにより、その値が小さすぎて学習の進展が遅い場合には、設定する温度揺らぎを更に大きくする(例えば上記の標準偏差をより大きくする)ことも可能である。
ステップS205では、学習部104は、生徒モデルの学習(生徒モデルの自己蒸留学習)の終了条件が満たされたか否かを判断する。終了条件は、例えば、「生徒モデルの学習回数(ステップS201~S204のループ回数)が閾値を超えた」、「生徒モデルの学習を開始してからの経過時間が閾値を超えた」、「ソフトターゲット損失の変化量が規定量以下」、などがある。
このような判断の結果、終了条件が満たされた場合には、処理はステップS105に進む。一方、終了条件が満たされていない場合には、処理はステップS201に進む。処理がステップS105に進んだ時点で、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル403が得られる。
ステップS105では、学習部104は、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル403に、学習データに含まれている学習対象のデータのうち所望の学習対象のデータ(再学習させたい学習対象のデータ)を入力し、上記の(式6)に従って、該生徒モデル403の出力値を求める。そして学習部104は、該出力値を用いて上記の(式5)に従ってハードターゲット損失を求め、該求めたハードターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ハードターゲット学習1)を行う。なお、ハードターゲット学習1は必須ではなく、適宜省いても良い。
ステップS106では、学習部104は、生徒モデルの学習(生徒モデルの自己蒸留学習)の終了条件が満たされたか否かを判断する。終了条件は、例えば、「生徒モデルの学習回数(ステップS102~S105のループ回数)が閾値を超えた」、「生徒モデルの学習を開始してからの経過時間が閾値を超えた」、「ハードターゲット損失の変化量が規定量以下」、などがある。また、終了条件には、「評価用のデータを入力した生徒モデルの出力値に基づいて評価した該生徒モデルの性能が一定以上であることを表すデータが得られた場合」もある。
このような判断の結果、終了条件が満たされた場合には、学習部104は、学習済みの学習モデルである生徒モデル404を記憶部105に格納し、図2のフローチャートに従った処理は終了する。一方、終了条件が満たされていない場合には、処理はステップS102に進む。このように、本実施形態によれば、より効率的に生徒モデルの蒸留学習を進展させることが可能となる。
[第2の実施形態]
本実施形態以降では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態では、教師モデルおよび生徒モデルの最終出力層の活性化関数に温度付ソフトマックス関数を用いた場合において、教師モデルと生徒モデルとで異なる性質の温度揺らぎを与える事例について説明する。これにより、より効率的に自己蒸留学習を進展させることが可能となる。図7(a)~(d)は、本実施形態で設定する温度付ソフトマックス関数の温度揺らぎの様子を模式的に示した図である。
本実施形態以降では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態では、教師モデルおよび生徒モデルの最終出力層の活性化関数に温度付ソフトマックス関数を用いた場合において、教師モデルと生徒モデルとで異なる性質の温度揺らぎを与える事例について説明する。これにより、より効率的に自己蒸留学習を進展させることが可能となる。図7(a)~(d)は、本実施形態で設定する温度付ソフトマックス関数の温度揺らぎの様子を模式的に示した図である。
図7(a)は、教師モデルの温度付ソフトマックス関数に設定する教師温度の分布を模式的に示した図である。横軸は教師温度を表しており、縦軸は頻度を表している。参照番号701は、温度揺らぎにおける中心温度Tcを示しており、参照番号702は、温度揺らぎの標準偏差σ’Tを示している。この温度揺らぎは、中心温度Tcを平均値とし、σ’Tを標準偏差とするガウス分布に従った温度の揺らぎであり、温度をTとすると、その確率分布fT(T)は、以下の(式9)に従う。
但し、σ’Tは、以下の(式10)に従って変動する。
ここで、Nは現在の学習回数を示しており、ωTは、与える変動の周波数を示している。また、Nmaxは、予め定められた学習回数の最大値(最大学習回数)を示しており、σTは、標準偏差σ’Tの最大値を示している。
図7(b)は、生徒モデルの温度付ソフトマックス関数に設定する生徒温度の分布を模式的に示した図である。横軸は生徒温度を表しており、縦軸は頻度を表している。参照番号703は、温度揺らぎにおける中心温度Tcを示しており、参照番号704は、温度揺らぎの標準偏差σ’Sを示している。この温度揺らぎは、中心温度Tcを平均値とし、σ’Sを標準偏差とするガウス分布に従った温度の揺らぎであり、温度をTとすると、その確率分布fS(T)は、以下の(式11)に従う。
但し、σ’Sは、以下の(式12)に従って変動する。
ここで、Nは現在の学習回数を示しており、ωSは、与える変動の周波数を示している。また、Nmaxは、予め定められた学習回数の最大値(最大学習回数)を示しており、σSは、標準偏差σ’Sの最大値を示している。
図7(c)は、教師モデルの温度付ソフトマックス関数に設定する教師温度の時間変化(学習の過程で与える変化)の範囲(つまり、温度揺らぎの標準偏差σ’T)を模式的に示した図である。横軸は学習回数を、縦軸は教師温度を表している。参照番号701’は、中心温度Tcを示しており、参照番号702’は、温度揺らぎの標準偏差σ’Tの大きさの変化を示している。
図7(d)は、生徒モデルの温度付ソフトマックス関数に設定する生徒温度の時間変化(学習の過程で与える変化)の範囲(つまり、温度揺らぎの標準偏差σ’S)を模式的に示した図である。横軸は学習回数を、縦軸は生徒温度を表している。参照番号703’は、中心温度Tcを示しており、参照番号704’は、温度揺らぎの標準偏差σ’Sの大きさの変化を示している。
なお、本実施形態では、標準偏差の最大値σTおよびσSは、学習回数の増加に応じて、徐々に小さくなるように設定してもよい。このように、それぞれの標準偏差を制御するための方法には様々な方法があり、特定の制御方法に限らない。また、確率分布において制御するパラメータは標準偏差に限らない。
このように、本実施形態では、教師モデルと生徒モデルとで、設定する温度揺らぎの位相がずれることにより、より大きなフィードバックが学習に寄与しうる。それにより、より効率的に自己蒸留学習を進展させることが可能となる。
[第3の実施形態]
本実施形態では、教師モデルおよび生徒モデルのそれぞれの構成(モデル構成)に揺らぎを与える事例について説明する。モデル構成の揺らぎとして、以下ではCNNのフルコネクト層をドロップアウト(フルコネクト層におけるニューロン間の結合のうちドロップアウト率に応じた数の結合を削除する(重み係数の値を0にする))させる事例を想定した説明を行う。しかし、モデル構成に与える揺らぎはこれに限定されるものではない。また、フルコネクト層のドロップアウトは、平均的にはランダムに行われるものとする。これにより、より効率的に自己蒸留学習を進展させることが可能となる。
本実施形態では、教師モデルおよび生徒モデルのそれぞれの構成(モデル構成)に揺らぎを与える事例について説明する。モデル構成の揺らぎとして、以下ではCNNのフルコネクト層をドロップアウト(フルコネクト層におけるニューロン間の結合のうちドロップアウト率に応じた数の結合を削除する(重み係数の値を0にする))させる事例を想定した説明を行う。しかし、モデル構成に与える揺らぎはこれに限定されるものではない。また、フルコネクト層のドロップアウトは、平均的にはランダムに行われるものとする。これにより、より効率的に自己蒸留学習を進展させることが可能となる。
図8は、教師モデルおよび生徒モデルのそれぞれのモデル構成に揺らぎを与える工程を模式的に示す図である。以下の説明においては、図8を用いて、モデル構成の揺らぎを使用した自己蒸留学習の事例を、図3のフローチャートを併用して説明する。
ステップS201では、揺らぎ付与部106は、ハードターゲット学習0を行った教師モデル801、パラメータが初期化された生徒モデル802、のそれぞれに揺らぎを設定する。具体的には、教師モデル801および生徒モデル802のそれぞれにドロップアウト率を設定する。揺らぎ付与部106は、教師モデル801と生徒モデル802とで同じドロップアウト率を設定しても良いし、教師モデル801と生徒モデル802とで異なるドロップアウト率を設定しても良い。また、揺らぎ付与部106は、教師モデル801のドロップアウト率および/または生徒モデル802のドロップアウト率を学習回数に応じて変化させても良い。なお、ドロップアウト率はどのように決めても良く、たとえば、上記の確率分布に従って発生させた乱数(0~1の範囲内の実数)をドロップアウト率としても良い。
そして揺らぎ付与部106は、教師モデル801にドロップアウト率r1(r1は0<r1<1を満たす実数)を設定した場合、該教師モデル801のフルコネクト層におけるニューロン間の結合数の(100xr1)%に相当するいずれかの結合を0にする(ドロップアウトする)。フルコネクト層805は、教師モデル801に対してドロップアウトを行った結果得られる、フルコネクト層である。
また、揺らぎ付与部106は、生徒モデル802にドロップアウト率r2(r2は0<r2<1を満たす実数)を設定した場合、該生徒モデル802のフルコネクト層におけるニューロン間の結合数の(100xr2)%に相当するいずれかの結合を0にする(ドロップアウトする)。フルコネクト層806は、生徒モデル802に対してドロップアウトを行った結果得られるフルコネクト層である。
ステップS202では、学習部104は、ドロップアウト済みの教師モデル801に、記憶部101に格納されている学習データに含まれている学習対象のデータを入力して、該教師モデル801の出力値を、ソフトターゲットとして求める。
ステップS203では、学習部104は、ドロップアウト済みの生徒モデル802に、記憶部101に格納されている学習データに含まれている学習対象のデータ(ステップS202で教師モデルに入力した学習対象のデータと同じ学習対象のデータ)を入力して、該生徒モデル802の出力値を求める。
ステップS204では、学習部104は、ステップS202で求めたソフトターゲットである出力値と、ステップS203で求めた出力値と、を用いてソフトターゲット損失を求める。そして学習部104は、該求めたソフトターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ソフトターゲット学習1)を行う。
教師モデルと生徒モデルとでモデル構成が一部異なることに起因し、ソフトターゲット損失は0にはならず、それが生徒モデルの学習にフィードバックされる(ネットワークのパラメータが更新される)。
ステップS205では、学習部104は、生徒モデルの学習(生徒モデルの自己蒸留学習)の終了条件が満たされたか否かを判断する。このような判断の結果、終了条件が満たされた場合には、処理はステップS105に進む。一方、終了条件が満たされていない場合には、処理はステップS201に進む。処理がステップS105に進んだ時点で、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル803が得られる。
なお、ステップS105では、学習部104は、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル803に、学習データに含まれている学習対象のデータのうち所望の学習対象のデータ(再学習させたい学習対象のデータ)を入力し、上記の(式6)に従って、該生徒モデル803の出力値を求める。そして学習部104は、該出力値を用いて上記の(式5)に従ってハードターゲット損失を求め、該求めたハードターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ハードターゲット学習1)を行う。なお、ハードターゲット学習1は必須ではなく、適宜省いても良い。
ステップS106では、学習部104は、生徒モデルの学習(生徒モデルの自己蒸留学習)の終了条件が満たされたか否かを判断する。このような判断の結果、終了条件が満たされた場合には、学習部104は、学習済みの生徒モデル804を記憶部105に格納し、図2のフローチャートに従った処理は終了する。一方、終了条件が満たされていない場合には、処理はステップS102に進む。
このように、教師モデルと生徒モデルとでモデル構成が一部異なることが、学習へのフィードバックを生む。それにより、より効率的に自己蒸留学習を進展させることが可能となる。
[第4の実施形態]
本実施形態では、複数の生徒モデルを自己蒸留学習により生成する事例について説明する。これにより、より効率的に複数の生徒モデルの学習を行って生成することが可能となる。
本実施形態では、複数の生徒モデルを自己蒸留学習により生成する事例について説明する。これにより、より効率的に複数の生徒モデルの学習を行って生成することが可能となる。
図9は、複数の生徒モデルを自己蒸留学習により生成する工程を模式的に示した図である。以下の説明においては、図9を用いて、複数の生徒モデルを自己蒸留学習により生成する事例を、図3のフローチャートを併用して説明する。ここで、枠901内には、複数の生徒モデルを自己蒸留学習により生成する過程を模式的に示しており、枠902内には、生徒モデル904の学習過程をより詳細に示している。
ステップS201では、第1の実施形態と同様に、揺らぎ付与部106は、確率分布fT(T)に従って発生させた乱数を教師温度に設定し、確率分布fS(T)に従って発生させた乱数を生徒温度に設定する。
ステップS202では、学習部104は、ステップS102において記憶部103から読み出した教師モデル903に、記憶部101に格納されている学習データに含まれている学習対象のデータを入力して、該教師モデル903の出力値を、ソフトターゲットとして求める。なお、教師モデル903は、ハードターゲット学習0による学習済みのモデルである。
ステップS203では、学習部104は、ステップS103においてパラメータの初期値が設定された生徒モデル906に、記憶部101に格納されている学習データに含まれている学習対象のデータ(ステップS202で教師モデルに入力した学習対象のデータと同じ学習対象のデータ)を入力して、該生徒モデル906の出力値を求める。
ステップS204では、学習部104は、ステップS202で求めたソフトターゲットである出力値と、ステップS203で求めた出力値と、を用いてソフトターゲット損失を求める。そして学習部104は、該求めたソフトターゲット損失を生徒モデル906の学習にフィードバックして、該生徒モデル906のパラメータを更新することで、生徒モデル907を生成する(ソフトターゲット学習1)。
ステップS205では、学習部104は、生徒モデルの学習の終了条件が満たされたか否かを判断する。このような判断の結果、終了条件が満たされた場合には、処理はステップS105に進む。一方、終了条件が満たされていない場合には、処理はステップS201に進む。処理がステップS105に進んだ時点で、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル907が得られる。
なお、ステップS105では、学習部104は、ソフトターゲット学習1による学習済みの学習モデルである生徒モデル907に、学習データに含まれている学習対象のデータのうち所望の学習対象のデータ(再学習させたい学習対象のデータ)を入力し、上記の(式6)に従って、該生徒モデル907の出力値を求める。そして学習部104は、該出力値を用いて上記の(式5)に従ってハードターゲット損失を求め、該求めたハードターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ハードターゲット学習1)を行う。なお、ハードターゲット学習1は必須ではなく、適宜省いても良い。
ステップS106では、学習部104は、生徒モデルの学習(生徒モデルの自己蒸留学習)の終了条件が満たされたか否かを判断する。このような判断の結果、終了条件が満たされた場合には、学習部104は、学習済みの生徒モデル904を記憶部105に格納し、図2のフローチャートに従った処理は終了する。一方、終了条件が満たされていない場合には、処理はステップS102に進む。
以上で説明した様な、ソフトターゲット学習1とハードターゲット学習1を用いた自己蒸留学習1によって、生徒モデル904が生成される。そして、生徒モデル904のパラメータが初期値として設定された生徒モデルについて、自己蒸留学習1と同様のソフトターゲット学習と、ハードターゲット学習1と同様のハードターゲット学習と、を行うことによって(これを自己蒸留学習2とする)、生徒モデル905が生成される。この生徒モデル905の学習は、生徒モデル904を初期値とすることによって、ランダム値を初期値として学習するよりも、より効率的に学習を進展させることができる。以上の自己蒸留学習をN回反復した場合には、N個の生徒モデルが生成される。推論の際には、N個の生徒モデルの出力のアンサンブルを行えばよい。
[第5の実施形態]
本実施形態では、生徒モデルの学習において該生徒モデルや教師モデルに入力する学習対象のデータに揺らぎを付与する事例について説明する。これにより、より効率的に自己蒸留学習を進展させることが可能となる。
本実施形態では、生徒モデルの学習において該生徒モデルや教師モデルに入力する学習対象のデータに揺らぎを付与する事例について説明する。これにより、より効率的に自己蒸留学習を進展させることが可能となる。
生徒モデルの学習において該生徒モデルに入力する学習対象のデータとしての画像に揺らぎを与えて該生徒モデルの自己蒸留学習を行うケースについて、図10を用いて説明する。
画像1001は、動物であるネコの画像であり、教師モデル1103に入力される学習対象のデータである。また、画像1002は、動物であるネコの画像であり、生徒モデル1104に入力される学習対象のデータである。画像1102における一部もしくは全部の画素の画素値には、揺らぎが付与されている。付与する揺らぎは、中心画素値ICを平均値とし、σSIを標準偏差とするガウス分布に従っており、画素値をIとすると、その確率分布fSI(I)は、以下の(式13)に従う。
然るに、揺らぎ付与部106は、生徒モデルの学習回数がLN回増加するたびに、画像の一部もしくは全ての画素について、「中心画素値ICを平均値とし、σSIを標準偏差とするガウス分布である確率分布fSI(I)」に従って発生させた乱数(画素値I)を該画素の画素値に設定することで画像1002を生成する。これにより、揺らぎ付与部106は、生徒モデルの学習において該生徒モデルに入力する画像に揺らぎを付与することができる。なお、画像がRGB画像である場合には、RGBのそれぞれの画素値に揺らぎを与える。
なお、図10の教師モデル1003と生徒モデル1004は、少なくとも一部は同様の構成を有するネットワークモデルである。ここでは、両者にVGGを用いている。以下においては、教師モデルおよび生徒モデルのそれぞれの最終出力層の活性化関数に温度付ソフトマックス関数を用いた場合の説明を行う。
画像1001を入力した教師モデル1003からは、クラスごとの出力値(該クラスに対する尤度)の分布(ソフトターゲット)1005が出力される。一方、画像1002を入力した生徒モデル1004からは、クラスごとの出力値(該クラスに対する尤度)の分布1006が出力される。
そして、第1の実施形態と同様にして、教師モデル1003の出力値(尤度)と生徒モデル1004の出力値(尤度)とからソフトターゲット損失soft_target_lossを求める。そして、第1の実施形態と同様にして、ソフトターゲット損失soft_target_lossに基づいて生徒モデル1004のパラメータを更新することで、該生徒モデル1004の学習(ソフトターゲット学習)を行う。同じネットワーク構成とパラメータを有する教師モデルと生徒モデルであっても、入力データが異なればソフトターゲット損失は0にはならず、学習へのフィードバックが存在し、学習が進展することになる。
そして、第1の実施形態と同様にして、ソフトターゲット学習による学習済みの学習モデルである生徒モデル1004に、学習データに含まれている学習対象のデータのうち所望の学習対象のデータ(再学習させたい学習対象のデータ)を入力し、上記の(式6)に従って、該生徒モデル1004の出力値を求める。そして、該出力値を用いて上記の(式5)に従ってハードターゲット損失を求め、該求めたハードターゲット損失を生徒モデルの学習にフィードバックして、生徒モデルのパラメータを更新することで、生徒モデルの学習(ハードターゲット学習)を行う。なお、ハードターゲット学習は必須ではなく、適宜省いても良い。
この様に、教師モデルと生徒モデルとで、入力データが一部異なることが、学習へのフィードバックを生む。それにより、より効率的に自己蒸留学習を進展させることが可能となる。
同規模のモデルにおいて、揺らぎを用いた自己蒸留学習を行うことによって、より低コストで蒸留学習及び推論を行うことができる方法及び装置を提供することを目的とするものであり、その目的に合致する限り、いかなる手法や対象にも適用可能である。
本実施形態では、生徒モデル1004に入力する画像1002における一部もしくは全ての画素の画素値に揺らぎを与え、教師モデル1003に入力する画像1001における一部もしくは全ての画素の画素値には揺らぎを与えていない。しかし、これに限らず、画像1001における一部もしくは全ての画素の画素値に揺らぎを与えても良い。
また、本実施形態は、第1~4の実施形態の1以上と組み合わせることができる。例えば、温度(教師温度や生徒温度)に揺らぎを付与すると共に、教師モデルや生徒モデルに入力する画像にも揺らぎを付与するようにしても良い。また例えば、教師モデルや生徒モデルの構成に揺らぎを付与すると共に、教師モデルや生徒モデルに入力する画像にも揺らぎを付与するようにしても良い。
[第6の実施形態]
図1に示した機能部はハードウェアで実装しても良いし、記憶部101,103,105を除く他の機能部をソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このようなコンピュータプログラムを実行可能なコンピュータ装置は、上記の学習装置に適用可能である。学習装置に適用可能なコンピュータ装置のハードウェア構成例について、図11のブロック図を用いて説明する。
図1に示した機能部はハードウェアで実装しても良いし、記憶部101,103,105を除く他の機能部をソフトウェア(コンピュータプログラム)で実装しても良い。後者の場合、このようなコンピュータプログラムを実行可能なコンピュータ装置は、上記の学習装置に適用可能である。学習装置に適用可能なコンピュータ装置のハードウェア構成例について、図11のブロック図を用いて説明する。
CPU1101は、RAM1102やROM1103に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU1101は、コンピュータ装置全体の動作制御を行うと共に、上記の学習装置が行う処理として説明した各種の処理を実行もしくは制御する。
RAM1102は、ROM1103や外部記憶装置1106からロードされたコンピュータプログラムやデータを格納するためのエリア、I/F1107を介して外部から受信したコンピュータプログラムやデータを格納するためのエリア、を有する。さらにRAM1102は、CPU1101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM1102は、各種のエリアを適宜提供することができる。
ROM1103には、コンピュータ装置の設定データ、コンピュータ装置の起動に係るコンピュータプログラムやデータ、コンピュータ装置の基本動作に係るコンピュータプログラムやデータ、などが格納されている。
操作部1104は、キーボード、マウス、タッチパネルなどのユーザインターフェースであり、ユーザが操作することで各種の指示やデータを入力することができる。例えば、ユーザは操作部1104を操作して、上記の説明において既知の情報として説明した情報(閾値、中心温度、中心画素値、標準偏差、最大学習回数など)を入力することができる。
表示部1105は、液晶画面やタッチパネル画面を有し、CPU1101による処理結果を画像や文字などでもって表示することができる。例えば、表示部1105には、学習に係る様々な情報(ソフトターゲット損失、ハードターゲット損失、閾値、中心温度、中心画素値、標準偏差、最大学習回数など)を画像や文字などでもって表示させることができる。これによりユーザは、表示部1105に表示された学習の結果を見て、閾値、中心温度、中心画素値、標準偏差、最大学習回数などのパラメータを操作部1104を操作して入力する(調整する)こともできる。なお、表示部1105は、画像や文字を投影するプロジェクタなどの投影装置であっても良い。
外部記憶装置1106は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置1106には、OS(オペレーティングシステム)、上記の学習装置が行う処理として説明した各種の処理をCPU1101に実行もしくは制御させるためのコンピュータプログラムやデータ、などが保存されている。外部記憶装置1106に保存されているコンピュータプログラムやデータは、CPU1101による制御に従って適宜RAM1102にロードされ、CPU1101による処理対象となる。なお、図1に示した記憶部101,103,105はRAM1102や外部記憶装置1106等のメモリ装置を用いて実装可能である。
I/F1107は、外部の装置との間のデータ通信を行うための通信インターフェースである。CPU1101、RAM1102、ROM1103、操作部1104、表示部1105、外部記憶装置1106、I/F1107はいずれもシステムバス1108に接続されている。なお、図11に示したハードウェア構成は、上記の学習装置に適用可能なコンピュータ装置のハードウェア構成の一例に過ぎず、適宜変形/変更が可能である。
また、上記の各実施形態で使用した数値、処理タイミング、処理順、処理の主体、データ(情報)の取得方法/送信先/送信元/格納場所などは、具体的な説明を行うために一例として挙げたもので、このような一例に限定することを意図したものではない。
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本明細書の発明は、以下の学習装置、学習方法、コンピュータプログラムを含む。
(項目1)
第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習手段と、
前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御手段と
を備えることを特徴とする学習装置。
第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習手段と、
前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御手段と
を備えることを特徴とする学習装置。
(項目2)
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする項目1に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする項目1に記載の学習装置。
(項目3)
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする項目2に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする項目2に記載の学習装置。
(項目4)
前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする項目3に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする項目3に記載の学習装置。
(項目5)
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする項目1に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする項目1に記載の学習装置。
(項目6)
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする項目1ないし5のいずれか1項目に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする項目1ないし5のいずれか1項目に記載の学習装置。
(項目7)
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする項目1に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする項目1に記載の学習装置。
(項目8)
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする項目7に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする項目7に記載の学習装置。
(項目9)
前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする項目8に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする項目8に記載の学習装置。
(項目10)
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする項目1に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする項目1に記載の学習装置。
(項目11)
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする項目1ないし10のいずれか1項目に記載の学習装置。
前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする項目1ないし10のいずれか1項目に記載の学習装置。
(項目12)
前記学習手段は、前記第1学習モデルのパラメータを前記第2学習モデルのパラメータの初期値に設定することを特徴とする項目1ないし11のいずれか1項目に記載の学習装置。
前記学習手段は、前記第1学習モデルのパラメータを前記第2学習モデルのパラメータの初期値に設定することを特徴とする項目1ないし11のいずれか1項目に記載の学習装置。
(項目13)
前記学習手段は、前記第1学習モデルの学習時に用いた教師データを用いて、前記蒸留学習により学習済みの前記第2学習モデルの学習を行うことを特徴とする項目1ないし12のいずれか1項目に記載の学習装置。
前記学習手段は、前記第1学習モデルの学習時に用いた教師データを用いて、前記蒸留学習により学習済みの前記第2学習モデルの学習を行うことを特徴とする項目1ないし12のいずれか1項目に記載の学習装置。
(項目14)
前記学習手段は、前記学習手段により学習済みの第2学習モデルのパラメータを設定した別の第2学習モデルの学習を、前記第1学習モデルの出力を用いた蒸留学習により行うことを特徴とする項目1ないし13のいずれか1項目に記載の学習装置。
前記学習手段は、前記学習手段により学習済みの第2学習モデルのパラメータを設定した別の第2学習モデルの学習を、前記第1学習モデルの出力を用いた蒸留学習により行うことを特徴とする項目1ないし13のいずれか1項目に記載の学習装置。
(項目15)
前記第1学習モデルは学習済みのモデルであることを特徴とする項目1ないし14のいずれか1項目に記載の学習装置。
前記第1学習モデルは学習済みのモデルであることを特徴とする項目1ないし14のいずれか1項目に記載の学習装置。
(項目16)
学習装置が行う学習方法であって、
前記学習装置の学習手段が、第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習工程と、
前記学習装置の制御手段が、前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御工程と
を備えることを特徴とする学習方法。
学習装置が行う学習方法であって、
前記学習装置の学習手段が、第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習工程と、
前記学習装置の制御手段が、前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御工程と
を備えることを特徴とする学習方法。
(項目17)
コンピュータを、項目1ないし15のいずれか1項目に記載の学習装置の各手段として機能させるためのコンピュータプログラム。
コンピュータを、項目1ないし15のいずれか1項目に記載の学習装置の各手段として機能させるためのコンピュータプログラム。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101:記憶部 102:学習部 103:記憶部 104:学習部 105:記憶部 106:揺らぎ付与部
Claims (17)
- 第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習手段と、
前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御手段と
を備えることを特徴とする学習装置。 - 前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする請求項2に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする請求項3に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第1学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルの最終出力層の活性化関数である温度付きソフトマックス関数の温度を、ガウス分布に従った温度の揺らぎに応じて動的に変化させることを特徴とする請求項7に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習回数に応じて、前記ガウス分布のパラメータを動的に変化させることを特徴とする請求項8に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルのフルコネクト層におけるニューロン間の結合を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記制御手段は、前記第2学習モデルの学習中に、前記第2学習モデルに入力する画像における一部もしくは全ての画素の画素値を動的に変化させることを特徴とする請求項1に記載の学習装置。
- 前記学習手段は、前記第1学習モデルのパラメータを前記第2学習モデルのパラメータの初期値に設定することを特徴とする請求項1に記載の学習装置。
- 前記学習手段は、前記第1学習モデルの学習時に用いた教師データを用いて、前記蒸留学習により学習済みの前記第2学習モデルの学習を行うことを特徴とする請求項1に記載の学習装置。
- 前記学習手段は、前記学習手段により学習済みの第2学習モデルのパラメータを設定した別の第2学習モデルの学習を、前記第1学習モデルの出力を用いた蒸留学習により行うことを特徴とする請求項1に記載の学習装置。
- 前記第1学習モデルは学習済みのモデルであることを特徴とする請求項1に記載の学習装置。
- 学習装置が行う学習方法であって、
前記学習装置の学習手段が、第1学習モデルの出力を用いた蒸留学習により、該第1学習モデルと少なくとも部分的に同じ構成を有する第2学習モデルの学習を行う学習工程と、
前記学習装置の制御手段が、前記第2学習モデルの学習中に、前記第1学習モデルのパラメータ、前記第1学習モデルの構成、前記第2学習モデルのパラメータ、前記第2学習モデルの構成、のうち1以上を動的に変化させる制御工程と
を備えることを特徴とする学習方法。 - コンピュータを、請求項1ないし15のいずれか1項に記載の学習装置の各手段として機能させるためのコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022173654A JP2024064789A (ja) | 2022-10-28 | 2022-10-28 | 学習装置、学習方法 |
US18/486,192 US20240144008A1 (en) | 2022-10-28 | 2023-10-13 | Learning apparatus, learning method, and non-transitory computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022173654A JP2024064789A (ja) | 2022-10-28 | 2022-10-28 | 学習装置、学習方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024064789A true JP2024064789A (ja) | 2024-05-14 |
Family
ID=90833717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022173654A Pending JP2024064789A (ja) | 2022-10-28 | 2022-10-28 | 学習装置、学習方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240144008A1 (ja) |
JP (1) | JP2024064789A (ja) |
-
2022
- 2022-10-28 JP JP2022173654A patent/JP2024064789A/ja active Pending
-
2023
- 2023-10-13 US US18/486,192 patent/US20240144008A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240144008A1 (en) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Singh et al. | Hybrid MPSO-CNN: Multi-level particle swarm optimized hyperparameters of convolutional neural network | |
JP6854921B2 (ja) | タスク固有のポリシーおよび共有ポリシーをもつマルチタスクニューラルネットワークシステム | |
JP5943358B2 (ja) | 学習装置、処理装置、予測システム、学習方法、処理方法、およびプログラム | |
EP3711000B1 (en) | Regularized neural network architecture search | |
US11694073B2 (en) | Method and apparatus for generating fixed point neural network | |
US11263524B2 (en) | Hierarchical machine learning system for lifelong learning | |
EP3568810B1 (en) | Action selection for reinforcement learning using neural networks | |
US10592777B2 (en) | Systems and methods for slate optimization with recurrent neural networks | |
CN111581343A (zh) | 基于图卷积神经网络的强化学习知识图谱推理方法及装置 | |
WO2019229733A1 (en) | Mimicking a neural network without the original training dataset | |
US20200285940A1 (en) | Machine learning systems with memory based parameter adaptation for learning fast and slower | |
Bohdal et al. | Meta-calibration: Learning of model calibration using differentiable expected calibration error | |
CN108701253A (zh) | 使用规范化的目标输出训练神经网络 | |
CN113257361B (zh) | 自适应蛋白质预测框架的实现方法、装置及设备 | |
CN114186084A (zh) | 在线多模态哈希检索方法、系统、存储介质及设备 | |
EP3698284A1 (en) | Training an unsupervised memory-based prediction system to learn compressed representations of an environment | |
CN111753995A (zh) | 一种基于梯度提升树的局部可解释方法 | |
US20220414422A1 (en) | Predictive Modeling of Aircraft Dynamics | |
Hu et al. | Incremental learning framework for autonomous robots based on q-learning and the adaptive kernel linear model | |
JP2024064789A (ja) | 学習装置、学習方法 | |
JP7279225B2 (ja) | 破滅的忘却の発生を抑えつつ、転移学習を行う方法、情報処理装置及びプログラム | |
CN110450164A (zh) | 机器人控制方法、装置、机器人及存储介质 | |
JP2023132902A (ja) | サンプル効率の良い強化学習 | |
CN111027709B (zh) | 信息推荐方法、装置、服务器及存储介质 | |
US20230289563A1 (en) | Multi-node neural network constructed from pre-trained small networks |