(57)【要約】      （修正有）【課題】計算負荷を高くせずに汎化性能の向上を達成する。【解決手段】訓練装置１は、記憶部１２に格納されているデータから訓練対象となるモデルを構築し、構築されたモデルに入力部１０から入力された訓練データ又は記憶部１２に記憶されている訓練データを順伝播させる順伝播部１４と、乱数に基づいて生成されたスムーズラベルと前記入力データの教師ラベルとを用いて、順伝播部の出力データに対する損失を算出する、損失算出部１８と、を備える。【選択図】図１
2020113059.tif 000002
【特許請求の範囲】
【請求項１】
入力データに関する順伝播処理を実行する、順伝播部と、
乱数に基づいて生成されたスムーズラベルと前記入力データの教師ラベルとを用いて、前記順伝播部の出力データに対する損失を算出する、損失算出部と、
を備える訓練装置。
【請求項２】
前記乱数に基づいて、前記スムーズラベルを生成する、ラベル生成部、をさらに備える、請求項１に記載の訓練装置。
【請求項３】
前記ラベル生成部は、前記教師ラベルを前記乱数に基づいて平滑化して前記スムーズラベルを生成する、請求項２に記載の訓練装置。
【請求項４】
前記ラベル生成部は、ハイパーパラメータとして与えられた前記乱数に基づいて前記スムーズラベルを生成する、請求項２または請求項３に記載の訓練装置。
【請求項５】
前記教師ラベルは、ワンホットベクトルで表される、請求項１乃至請求項４のいずれかに記載の訓練装置。
【請求項６】
前記損失算出部は、温度パラメータにより制御した前記出力データに基づいて前記損失を算出する、請求項１乃至請求項５のいずれかに記載の訓練装置。
【請求項７】
前記損失算出部は、クロスエントロピーに基づいて前記損失を算出する、請求項１乃至請求項６のいずれかに記載の訓練装置。
【請求項８】
入力データに関する順伝播処理を実行し、
乱数に基づいて生成されたスムーズラベルと前記入力データの教師ラベルとを用いて、前記順伝播処理をされたデータに対する損失を算出する、
訓練方法。
【請求項９】
コンピュータを
入力データに関する順伝播処理を実行する、順伝播手段
乱数に基づいて生成されたスムーズラベルと前記入力データの教師ラベルとを用いて、前記順伝播手段の出力データに対する損失を算出する、損失算出手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、訓練装置、訓練方法及びプログラムに関する。
【背景技術】
【０００２】
識別問題における教師あり学習の性能を向上させる研究は、広く行われている。この教師あり学習には、訓練データを生成した真の分布による損失関数の期待値で評価させることが理想的であるが、真の分布は未知であるため、このような学習を行うことは困難である。そこで、学習済みモデルが入力と教師ラベルのペアからなる訓練データ以外の一般のデータにどれだけよく適合したかを意味する汎化性能を向上させるために、教師ラベルをワンホットベクトルで表すハードラベルを用いて分類する手法に対して、ソフトラベルを使用する学習方法が提案されている。ワンホットベクトルは、とりえるラベルの候補数の次元からなるベクトルであり、そのベクトルの要素のうち教師ラベルに対応する要素のみを1とし、それ以外を0とするベクトルである。
【０００３】
ラベルスムージング（Label Smoothing）は、教師ラベル以外のクラスラベルについても値を持たせることにより過学習を抑制して汎化性能を向上させることを目指した手法である。蒸留（Distillation）は、学習器を教師ネットワークとそれよりも規模の小さい生徒ネットワークの２つに分けた上で、計算負荷の重い教師ネットワークで一旦学習を行った上で、教師ラベルとともに教師ネットワークの出力するラベルをもとに計算負荷の低い生徒ネットワークの学習を行う。これによって計算負荷の低い生徒ネットワークでも、教師ネットワークと同等の汎化性能、場合によってはそれを超える汎化性能が得られることがあることが知られている。しかしながら、ラベルスムージングでは、蒸留に比べて汎化性能が劣り、蒸留では、教師ネットワークと生徒ネットワークの学習を並行して行うため、学習における計算負荷が高くなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１５／０３５６４６１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、計算負荷の増加を抑えつつ汎化性能の向上を達成する、訓練装置、訓練方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
一実施形態によれば、訓練装置は、入力データに関する順伝播処理を実行する、順伝播部と、  乱数に基づいて生成されたスムーズラベルと前記入力データの教師ラベルとを用いて、前記順伝播部の出力データに対する損失を算出する、損失算出部と、を備える訓練装置。
を備える。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る訓練装置の機能を示すブロック図。
【図２Ａ】一実施形態に係るラベルの一例を示す図。
【図２Ｂ】一実施形態に係るラベルの一例を示す図。
【図３】一実施形態に係る訓練装置の処理を示すフローチャート。
【図４】一実施形態に係る訓練装置のハードウェア実装例を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態について説明する。
【０００９】
図１は、本実施形態に係る訓練装置の一例について機能を示すブロック図である。訓練装置１は、入力部１０と、記憶部１２と、順伝播部１４と、ラベル生成部１６と、損失算出部１８と、逆伝播部２０と、出力部２２と、を備える。訓練装置１は、学習済みモデルを訓練する装置である。学習済みモデルは、例えば、入力データの分類を行う分類器であり、備えられるニューラルネットワークは、ラベルを用いて訓練が実行されるモデルであればどのようなモデルであってもよい。
【００１０】
入力部１０は、各種データの入力を受け付ける。入力されたデータは、記憶部１２に一時的に格納されてもよい。入力されるデータは、例えば、訓練に用いる教師データ、ネットワークを構成するハイパーパラメータ等、学習済みモデルを訓練するために必要なデータである。また、ラベル生成部１６において使用されるパラメータが、入力部１０を介して入力されてもよい。
【００１１】
記憶部１２は、各種データを記憶する。例えば、入力部１０を介して入力されたデータが記憶部１２に記憶されてもよい。また、ネットワークの種類等を示すデータ等を記憶しておいてもよい。ネットワークのハイパーパラメータ、訓練中における各層のパラメータ又は訓練が終了した後のパラメータ等を記憶してもよい。記憶部１２は、訓練装置１と同じ筐体内に備えられていてもよいし、ネットワーク等を介した別の筐体内に備えられていてもよい。例えば、訓練装置１における揮発性又は不揮発性のメモリであってもよいし、ネットワークで接続されたファイルサーバ上にあってもよい。
【００１２】
順伝播部１４は、訓練対象となるニューラルネットワークにおける順伝播処理を実行する。記憶部１２に格納されているデータから訓練対象となるモデルを構築し、構築されたモデルに入力部１０から入力された訓練データ又は記憶部１２に記憶されている訓練データを順伝播させる。本実施形態において、順伝播部１４は、特に、活性化層に入力するデータを出力してもよい。以下の説明においては、順伝播部１４によるこの出力結果をlogit(x)と記載する。例えば、logitを活性化層に入力することにより、識別器における識別結果が出力される。また、この順伝播部１４は、ニューラルネットワーク等の何らかの調整可能なパラメータをもつ関数近似器によって表現されるものであってもよい。
【００１３】
ラベル生成部１６は、例えば、訓練対象となるモデルが分類器である場合には、ネットワークの最終層である活性化層の出力に対応するパラメータを生成する。
【００１４】
図２Ａ及び図２Ｂは、ラベルの一例を示す図である。例えば、クラスラベルのとりえる数が5通りの場合のハードラベルとランダムスムーズラベルの例を示したものである。ハードラベルは、特定のラベルに対応する要素のみ1をとり、それ以外の要素は0をとる5次元のベクトルで表現される。通常、訓練データの教師ラベルに対応する要素が1をとる。
【００１５】
一方、ランダムスムーズラベルも5次元のベクトルであらわされるが、こちらは図２Ａに示すようにhard label = {0, 1, 0, 0, 0}と表される場合、特定の要素は1−εの値をとり、それ以外の値は残りのεを均等に割った値をとる。ここで、εは0以上1未満の値をとる確率変数である。εが従う確率分布は任意にとれるが、εは１に近づくほど教師データ（ハードラベル）と乖離したものとなるので、ある程度ラベルとして意味を持つように調整可能である。たとえば、［０，0.5]のようなある一定区間内の一様分布としてよい。クラスの個数や数値は、一例として示したものであり、本実施形態における定義を限定するものではない。
【００１６】
図１に戻り、損失算出部１８は、順伝播部１４が出力した結果と、教師データと、に基づいて損失を算出する。この順伝播部１４が出力した結果logitは、上述したように、データxがネットワークに入力された場合に、ネットワークを介して活性化層へと入力されるデータである。損失算出部１８は、例えば、図２Ａ及び図２Ｂに示すそれぞれのラベルを用いて損失を算出する。すなわち、損失算出部１８は、ハードラベルと、ランダムスムーズラベルと、に基づいて、活性化層の前の層で出力した結果を演算して、誤差を算出する。
【００１７】
逆伝播部２０は、上記の数式により求められた損失に基づいてネットワークの逆伝播処理を実行することにより、ネットワークの各層におけるパラメータを更新する。パラメータの更新は、例えば、確率的勾配降下法（SGD：Stochastic Gradient Descent）、Adam（Adaptive moment estimation）等の一般的な方法を用いてもよい。
【００１８】
逆伝播の処理の後は、必要に応じて、最適化が終了するまで順伝播の処理から実行する。訓練の終了は、例えば、所定のエポック数の処理が終了した、等の一般的な判断手法により判断されてもよい。また、上記では特筆しなかったが、学習においても一般的な方法が用いられてもよく、例えば、ミニバッチ等を用いた訓練を行ってもよい。
【００１９】
出力部２２は、最適化が終わった学習済みモデルを出力する。別の例として、最適化が終わった学習済みモデルを記憶部１２へと格納してもよい。この場合、訓練装置１を分類器として用いることも可能である。
【００２０】
損失算出部１８による損失の算出について詳しく説明する。損失算出部１８は、例えば、図２Ａ、図２Ｂに示されるそれぞれのラベルを用いて、以下のような式で損失を算出する。
【数１】
2020113059.tif 000003
【００２１】
ここで、CEはクロスエントロピーを、logitは順伝播部１４の出力を示し、αはハードラベルとランダムスムーズラベルとの混合割合を示すハイパーパラメータであり、Tはソフトマックス温度を示すハイパーパラメータで正の数をとる。ソフトマックス温度とは、ソフトマックス関数の入力値を変換し、ソフトマックス関数の出力を調整するパラメータである。ソフトマックス関数の出力は、Tが大きいほど滑らかに、Tが小さい程ハードラベルに近くなる。
【００２２】
クロスエントロピーは、事象xに対する確率分布pとqに対して以下のように定義される。
【数２】
2020113059.tif 000004
【００２３】
分類器の訓練においては、ハードラベルと活性化層の出力を最小化するように最適化されることがある。本実施形態では、これに対して、ランダムスムーズラベルとのクロスエントロピーを考慮し、これらのクロスエントロピーの重み付け和の最小化をするように最適化が実行される。
【００２４】
ソフトマックス関数は、活性化関数であり、K個のクラスに分類する場合において、k番目のクラスである確率をukとした場合に、以下のように定義される。
【数３】
2020113059.tif 000005
例えば、ある分布だけが突出していた場合に、その突出具合を大きく強調して出力する［数１］のように、クロスエントロピーの中で定義している場合には、クロスエントロピーを計算する際には、ラベルのｋ番目の成分と、ソフトマックス関数の出力のｋ番目の成分とをｋについて１〜Ｋまで足しあわせたものであると定義する。すなわち、ソフトマックス関数を含んだクロスエントロピーは、以下のように定義する。
【数４】
2020113059.tif 000006
【００２５】
［数１］の第２項は、以下に示すように展開される。
【数５】
2020113059.tif 000007
【００２６】
損失を減らす場合、［数５］のｌｏｇ（・）（第２項）は、大きくなるはずである。ｌｏｇの中の分子は、L1ノルムに相当し、分母は、Lpノルムに相当する。logitがハードラベルと同一になるとき以外においては、Lpノルムは常にL1ノルムよりも大きくなる。また、logitがハードラベルに近づくほど、この第２項は、小さくなる。すなわち、この第２項は、出力がハードラベルに近づくほど小さくなり、それにともない、損失が小さくなる程度を抑制し、解が過度に正則化するのを防ぐ効果がある。
【００２７】
このように、ソフトマックス温度を導入し、ハイパーパラメータとして与えられた乱数εにより平滑化したラベルを用いることにより、演算量を少なくした上で、蒸留と同じような効果を得ることが可能となる。
【００２８】
以上のように、本実施形態の訓練装置によれば、蒸留と同様の効果をその演算量を抑制した状態で得ることが可能となる。単純なラベルスムージングとはことなり、ソフトマックス温度を導入することにより、システムの過度な正則化を抑えた状態で訓練を行うことが可能となる。上記においては、例えば、分類器に適用する例を説明したが、他の例として、word2vecのように、単語からベクトルを生成するような訓練にも用いることが可能である。
【００２９】
上述した実施形態に係る訓練装置１の動作例について説明する。図３は、本実施形態に係る処理の流れを示すフローチャートである。
【００３０】
まず、入力部１０を介してデータが入力される（Ｓ１００）。
【００３１】
次に、ラベル生成部１６は、ラベルを生成する（Ｓ１０２）。このラベルは、上述したように、ハイパーパラメータとして与えられた乱数εにより、ハードラベルを図２に示すように平滑化することにより生成される。
【００３２】
次に、順伝播部１４は、順伝播を実行する（Ｓ１０４）。訓練中における順伝播は、最終層としての活性化層を通した結果まで出力してもよいし、活性化層を通す前の状態を出力してもよい。
【００３３】
次に、損失算出部１８は、順伝播部１４が算出した活性化層の前の層の出力を用いて損失を算出する（Ｓ１０６）。損失は、上述した各数式により算出される。
【００３４】
次に、逆伝播部２０は、誤差逆伝播を実行し、ネットワークを更新する（Ｓ１０８）。上述したように、勾配の求め方等の誤差逆伝播に関する処理は、一般的な手法を用いてよい。
【００３５】
次に、学習が終了条件を満たした場合（Ｓ１１０：ＹＥＳ）、訓練を終了し、学習済みモデルについてのデータを出力して（Ｓ１１２）処理を終了する。出力には、記憶部１２に記憶する処理が含まれてもよい。
【００３６】
学習が終了条件を満たしていない場合（Ｓ１１０：ＮＯ）、順伝播の処理から処理を繰り返す（Ｓ１０４〜Ｓ１０８）。この場合、例えば、全ての訓練データについての学習が終了していない場合には、次の訓練データに基づいて学習を行う。バッチ処理やミニバッチ処理であれば、その処理に基づいた学習を引き続き行う。この次の順伝播の処理は、学習の方法により異なるが、一般的な手法に基づいて適切な当該学習の方法に基づいて適切な処理を行う。
【００３７】
このように実行することにより、学習済みモデルの訓練が行われる。
【００３８】
なお、別の実施形態として、εをハイパーパラメータではなく、学習中において変数として扱ってもよい。この場合、例えば、適切な学習の繰り返しごとに、ラベルの生成を異なる乱数値を用いて実行し（Ｓ１０２）、訓練を継続する。この場合の処理は、破線で示す処理の流れとなる。
【００３９】
さらに、この乱数値は、例えば、ミニバッチ処理を行っている場合には、ミニバッチごとに算出し、ミニバッチごとに異なるラベルで訓練を行ってもよい。別の例としては、データごとにεを乱数値として取得し、ラベルの再生成を行ってもよい。
【００４０】
また、さらに別の実施形態として、ε等のハイパーパラメータを、交差検証をすることにより変更してもよい。この場合、例えば、α、ε、T等のハイパーパラメータを適切に調整する。
【００４１】
さらに、ソフトマックス温度Tは、学習中に変化するものであってもよい。例えば、Tは、訓練が進むにつれ低くなるような制御をされてもよいし、これに加えランダムあるいはその前後の損失に合わせて高低するような制御をされてもよい。
【００４２】
前述した実施形態における訓練装置１において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等によるものであってもよい。
【００４３】
上記の全ての記載において、装置、システム等の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ（Central Processing Unit）等が実施をしてもよい。ソフトウェアで構成される場合には、装置、システム等及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ等の回路に実装され、ハードウェアが実行するものであってもよい。ジョブの実行は、例えば、ＧＰＵ（Graphics Processing Unit）等のアクセラレータを使用して行ってもよい。
【００４４】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００４５】
図４は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。前述の実施形態に係る装置、システム等は、プロセッサ７１と、主記憶装置７２と、補助記憶装置７３と、ネットワークインタフェース７４と、デバイスインタフェース７５と、を備え、これらがバス７６を介して接続されたコンピュータ装置７として実現できる。
【００４６】
なお、図４のコンピュータ装置７は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、１台のコンピュータ装置７が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００４７】
プロセッサ７１は、コンピュータの制御装置および演算装置を含む電子回路（処理回路、Processing circuit、Processing circuitry）である。プロセッサ７１は、コンピュータ装置７の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ７１は、コンピュータ装置７のＯＳ（Operating System）や、アプリケーションなどを実行することにより、コンピュータ装置７を構成する各構成要素を制御する。プロセッサ７１は、上記の処理を行うことができれば特に限られるものではない。装置、システム等及びそれらの各構成要素は、プロセッサ７１により実現される。ここで、処理回路とは、１チップ上に配置された１又は複数の電気回路を指してもよいし、２つ以上のチップあるいはデバイス上に配置された１又は複数の電気回路を指してもよい。
【００４８】
主記憶装置７２は、プロセッサ７１が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置７２に記憶された情報がプロセッサ７１により直接読み出される。補助記憶装置７３は、主記憶装置７２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。装置、システム等において各種データを保存するためのメモリ、例えば、記憶部１２は、主記憶装置７２または補助記憶装置７３により実現されてもよい。例えば、前述した各記憶部の少なくとも一部は、この主記憶装置７２又は補助記憶装置７３に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、前述した各記憶部の少なくとも一部は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【００４９】
ネットワークインタフェース７４は、無線または有線により、通信ネットワーク８に接続するためのインタフェースである。ネットワークインタフェース７４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース７４により、通信ネットワーク８を介して通信接続された外部装置９Ａと情報のやり取りが行われてもよい。
【００５０】
外部装置９Ａは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置９Ａは、訓練装置１の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置７は、訓練装置１の処理結果の一部を、クラウドサービスのように通信ネットワーク８を介して受け取ってもよい。
【００５１】
デバイスインタフェース７５は、外部装置９Ｂと直接接続するＵＳＢ（Universal Serial Bus）などのインタフェースである。外部装置９Ｂは、外部記憶媒体でもよいし、ストレージ装置でもよい。各記憶部は、外部装置９Ｂにより実現されてもよい。
【００５２】
外部装置９Ｂは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）、ＰＤＰ（Plasma Display Panel）、スピーカなどがあるが、これらに限られるものではない。
【００５３】
なお、外部装置９Ｂは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置７に与える。入力装置からの信号はプロセッサ７１に出力される。
【００５４】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【００５５】
１：訓練装置、１０：入力部、１２：記憶部、１４：順伝播部、１６：ラベル生成部、１８：損失算出部、２０：逆伝播部、２２：出力部
【図１】
2020113059.tif 000008
【図２Ａ】
2020113059.tif 000009
【図２Ｂ】
2020113059.tif 000010
【図３】
2020113059.tif 000011
【図４】
2020113059.tif 000012