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

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

▶ 株式会社東芝の特許一覧

特開2025-1280情報処理装置、情報処理方法およびプログラム
<>
  • 特開-情報処理装置、情報処理方法およびプログラム 図1
  • 特開-情報処理装置、情報処理方法およびプログラム 図2
  • 特開-情報処理装置、情報処理方法およびプログラム 図3
  • 特開-情報処理装置、情報処理方法およびプログラム 図4
  • 特開-情報処理装置、情報処理方法およびプログラム 図5
  • 特開-情報処理装置、情報処理方法およびプログラム 図6
  • 特開-情報処理装置、情報処理方法およびプログラム 図7
  • 特開-情報処理装置、情報処理方法およびプログラム 図8
  • 特開-情報処理装置、情報処理方法およびプログラム 図9
  • 特開-情報処理装置、情報処理方法およびプログラム 図10
  • 特開-情報処理装置、情報処理方法およびプログラム 図11
  • 特開-情報処理装置、情報処理方法およびプログラム 図12
  • 特開-情報処理装置、情報処理方法およびプログラム 図13
  • 特開-情報処理装置、情報処理方法およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025001280
(43)【公開日】2025-01-08
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
   G06N 3/096 20230101AFI20241225BHJP
   G06N 3/082 20230101ALI20241225BHJP
【FI】
G06N3/096
G06N3/082
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023100781
(22)【出願日】2023-06-20
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】夏井 裕介
(57)【要約】
【課題】サイズを小さくしたモデルの蒸留による学習をより高精度に実行する。
【解決手段】情報処理装置は、対象モデル学習部、変更部、選択部および生徒モデル学習部を備える。対象モデル学習部は、サイズの削減の対象となる対象モデルを学習する。変更部は、対象モデルを、対象モデルよりサイズが小さい生徒モデルに変更する。選択部は、対象モデルのサイズと生徒モデルのサイズとの比較結果に応じて、対象モデルと、対象モデルよりサイズが小さい1つ以上の中間モデルと、を含む複数のモデルのうちいずれか1つを、教師モデルとして選択する。生徒モデル学習部は、選択された教師モデルを用いた蒸留により生徒モデルを学習する。
【選択図】図1
【特許請求の範囲】
【請求項1】
サイズの削減の対象となる対象モデルを学習する対象モデル学習部と、
前記対象モデルを、前記対象モデルよりサイズが小さい生徒モデルに変更する変更部と、
前記対象モデルのサイズと前記生徒モデルのサイズとの比較結果に応じて、前記対象モデルと、前記対象モデルよりサイズが小さい1つ以上の中間モデルと、を含む複数のモデルのうちいずれか1つを、教師モデルとして選択する選択部と、
選択された前記教師モデルを用いた蒸留により前記生徒モデルを学習する生徒モデル学習部と、
を備える情報処理装置。
【請求項2】
前記選択部は、さらに、前記生徒モデルのパラメータの初期値を、前記対象モデルのパラメータから選択し、
前記生徒モデル学習部は、選択された前記初期値を用いて前記生徒モデルを学習する、
請求項1に記載の情報処理装置。
【請求項3】
前記対象モデルは、複数の要素をそれぞれ含む複数のレイヤを含むニューラルネットワークモデルであり、
前記生徒モデルは、複数の要素をそれぞれ含む複数のレイヤを含むニューラルネットワークモデルであり、
前記変更部は、前記対象モデルに含まれる要素の一部を削除することにより、前記対象モデルを前記生徒モデルに変更し、
前記選択部は、前記生徒モデルに含まれる要素のパラメータの前記初期値を、前記生徒モデルに含まれる要素に対応する、前記対象モデルまたは前記中間モデルに含まれる要素のパラメータから選択する、
請求項2に記載の情報処理装置。
【請求項4】
前記中間モデルは、複数の要素をそれぞれ含む複数のレイヤを含むニューラルネットワークモデルであり、
前記選択部は、前記中間モデルに含まれる複数の前記レイヤを表す第1レイヤそれぞれについて、前記第1レイヤに含まれる1つ以上の要素をそれぞれ含む複数の要素群を選択し、複数の要素群のうち評価値が他の前記要素群より大きい前記要素群に含まれる要素に対応する、前記対象モデルまたは前記中間モデルに含まれる要素のパラメータを前記初期値として選択する、
請求項3に記載の情報処理装置。
【請求項5】
前記評価値は、
前記要素群に含まれる要素に対応する、前記対象モデルまたは前記中間モデルに含まれる要素のパラメータを前記初期値として設定した前記生徒モデルを用いた推論の精度を表す値である、
請求項4に記載の情報処理装置。
【請求項6】
前記評価値は、
複数の前記第1レイヤそれぞれについて、前記要素群に含まれる要素に対応する、前記対象モデルまたは前記中間モデルに含まれる要素のパラメータを前記初期値として設定した前記生徒モデルを用いた推論を複数のデータに対して実行したときの、前記生徒モデルに含まれる対応するレイヤの出力の統計量と、前記第1レイヤの出力の統計量との差分が小さいほど大きくなる値である、
請求項4に記載の情報処理装置。
【請求項7】
前記評価値は、
複数の前記第1レイヤそれぞれについて、前記要素群に含まれる要素に対応する、前記対象モデルまたは前記中間モデルに含まれる要素のパラメータを前記初期値として設定した前記生徒モデルを用いたバックワード処理を複数のデータに対して実行したときの、前記生徒モデルに含まれる対応するレイヤに対して算出される勾配の統計量と、前記第1レイヤに対して算出される勾配の統計量との差分が小さいほど大きくなる値である、
請求項4に記載の情報処理装置。
【請求項8】
前記対象モデル、前記中間モデルおよび前記生徒モデルは、複数のレイヤを含むニューラルネットワークモデルであり、
前記変更部は、
前記対象モデルに対するプルーニングによって前記中間モデルを生成するプルーニング部と、
前記中間モデルに含まれる複数の前記レイヤそれぞれのサイズを、指定された比率で増減することにより前記生徒モデルを生成する生成部と、を備える、
請求項1に記載の情報処理装置。
【請求項9】
前記対象モデル学習部は、事前学習用の第1データセットを用いて前記対象モデルを事前学習し、事前学習した前記対象モデルを、前記第1データセットとは異なる第2データセットを用いて学習する、
請求項1に記載の情報処理装置。
【請求項10】
サイズの削減の対象となる対象モデルを学習する対象モデル学習部と、
前記対象モデルを、前記対象モデルよりサイズが小さい生徒モデルに変更する変更部と、
前記生徒モデルのパラメータの初期値を、前記対象モデルのパラメータから選択する選択部と、
選択された前記初期値を用いて前記生徒モデルを学習する生徒モデル学習部と、
を備える情報処理装置。
【請求項11】
情報処理装置で実行される情報処理方法であって、
サイズの削減の対象となる対象モデルを学習する対象モデル学習ステップと、
前記対象モデルを、前記対象モデルよりサイズが小さい生徒モデルに変更する変更ステップと、
前記対象モデルのサイズと前記生徒モデルのサイズとの比較結果に応じて、前記対象モデルと、前記対象モデルよりサイズが小さい1つ以上の中間モデルと、を含む複数のモデルのうちいずれか1つを、教師モデルとして選択する選択ステップと、
選択された前記教師モデルを用いた蒸留により前記生徒モデルを学習する生徒モデル学習ステップと、
を含む情報処理方法。
【請求項12】
コンピュータに、
サイズの削減の対象となる対象モデルを学習する対象モデル学習ステップと、
前記対象モデルを、前記対象モデルよりサイズが小さい生徒モデルに変更する変更ステップと、
前記対象モデルのサイズと前記生徒モデルのサイズとの比較結果に応じて、前記対象モデルと、前記対象モデルよりサイズが小さい1つ以上の中間モデルと、を含む複数のモデルのうちいずれか1つを、教師モデルとして選択する選択ステップと、
選択された前記教師モデルを用いた蒸留により前記生徒モデルを学習する生徒モデル学習ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
ディープニューラルネットワーク(DNN:Deep Neural Network)などのニューラルネットワークでは、エッジ端末などの演算リソースが限られた環境でモデルを高速に学習させることを考慮し、モデルの演算量および記憶容量の削減などのために、モデルのサイズを削減する処理が行われる場合がある。また、サイズ削減後のモデルの精度向上のため、サイズ削減前のモデルを教師モデルとする蒸留(知識蒸留ともいう)により、サイズ削減後のモデルである生徒モデルを学習する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2022-509892号公報
【特許文献2】特開2022-056412号公報
【特許文献3】特表2022-549806号公報
【非特許文献】
【0004】
【非特許文献1】Hao Li, et al., “PRUNING FILTERS FOR EFFICIENT CONVNETS”, arXiv:1608.08710v3 10 Mar 2017
【非特許文献2】A. Yaguchi, et al., “Adam Induces Implicit Weight Sparsity in Rectifier Neural Networks”, Proc. of 17th IEEE International Conference on Machine Learning and Applications (ICMLA) 2018.
【非特許文献3】Tao Huang, et al., “Knowledge Distillation from A Stronger Teacher”, arXiv:2205.10536v3 28 Dec 2022
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、サイズを小さくしたモデルの蒸留による学習をより高精度に実行することができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態の情報処理装置は、対象モデル学習部、変更部、選択部および生徒モデル学習部を備える。対象モデル学習部は、サイズの削減の対象となる対象モデルを学習する。変更部は、対象モデルを、対象モデルよりサイズが小さい生徒モデルに変更する。選択部は、対象モデルのサイズと生徒モデルのサイズとの比較結果に応じて、対象モデルと、対象モデルよりサイズが小さい1つ以上の中間モデルと、を含む複数のモデルのうちいずれか1つを、教師モデルとして選択する。生徒モデル学習部は、選択された教師モデルを用いた蒸留により生徒モデルを学習する。
【図面の簡単な説明】
【0007】
図1】実施形態の情報処理装置のブロック図。
図2】対象モデルを生徒モデルに変更する例を示す図。
図3】対象モデルから中間モデルおよび生徒モデルを生成する例を示す図。
図4】変更部のブロック図。
図5】生徒モデルの例を示す図。
図6】選択部のブロック図。
図7】初期パラメータの選択処理の概要を説明するための図。
図8】組み合わせを求める処理の例を示す図。
図9】評価値を用いた組み合わせの選択を模式的に示す図。
図10】評価値を用いた組み合わせの選択を模式的に示す図。
図11】評価値を用いた組み合わせの選択を模式的に示す図。
図12】実施形態における学習処理のフローチャート。
図13】変形例の情報処理装置のブロック図。
図14】実施形態の情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0009】
モデルのサイズを削減する処理では、生徒モデルのサイズの教師モデルのサイズに対する比率(サイズの削減率)は変動しうる。例えば削減率が大きい場合、生徒モデルと教師モデルとの差異が大きいことに起因して蒸留による学習の精度が低下する可能性がある。
【0010】
以下の実施形態は、蒸留により学習する生徒モデル(サイズ削減後のモデル)のサイズに応じて教師モデルを選択する。また、生徒モデルの学習時のパラメータの初期値(初期パラメータ)を、サイズの削減の対象となるモデル(以下、対象モデル)のパラメータから選択する。これにより、サイズを小さくしたモデルの蒸留による学習をより高精度に実行することが可能となる。
【0011】
また、従来技術では、対象モデルで事前学習が必要な場合、サイズ削減後の生徒モデルについても事前学習が必要になる。実施形態では、初期パラメータを適切に選択することにより、生徒モデルの事前学習を不要とすることができる。これにより、学習のコストを削減可能となる。
【0012】
実施形態では、生徒モデルと対象モデルのサイズの比率に応じて、対象モデルと1つ以上の中間モデルとを含む複数のモデルのうちいずれかが教師モデルとして選択される。中間モデルは、対象モデルよりサイズが小さいモデルである。また、生徒モデルの初期パラメータが、対象モデルの初期パラメータから評価値に基づいて選択される。
【0013】
なお、以下では、モデル(対象モデル、中間モデル、生徒モデル)がニューラルネットワークモデル(以下、単にニューラルネットワークともいう)である場合を例に説明する。モデルはこれに限られず、その他のどのような構造のモデルであってもよい。ニューラルネットワークは、複数の要素をそれぞれ含む複数のレイヤ(層)を含む。
【0014】
例えばニューラルネットワークが畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の場合、複数の要素は、畳み込み層に含まれる複数のチャンネルであってもよい。要素はこれに限られず、その他のどのような要素であってもよい。例えば要素は、ニューラルネットワークの各レイヤに含まれるノードであってもよい。以下では、チャンネルを要素とする場合を例に説明する。
【0015】
図1は、実施形態の情報処理装置100の構成の一例を示すブロック図である。図1に示すように、情報処理装置100は、受付部101と、対象モデル学習部102と、生徒モデル学習部103と、出力制御部104と、変更部110と、選択部120と、記憶部131と、を備えている。
【0016】
受付部101は、情報処理装置100で用いられる各種情報の入力を受け付ける。例えば受付部101は、対象モデルを示す情報(例えば、重みおよびバイアスなどのパラメータ)、および、モデルの学習に用いる複数の学習データ(学習データセット)などを受け付ける。
【0017】
対象モデル学習部102は、サイズの削減の対象となる対象モデルを学習する。例えば対象モデル学習部102は、学習用の学習データセットを用いて、対象モデルを学習する。
【0018】
変更部110は、対象モデルを、対象モデルよりサイズが小さい生徒モデルに変更する。生徒モデルは、教師モデルを用いた蒸留によって学習されるモデルである。例えば変更部110は、対象モデルに含まれる複数のレイヤそれぞれに含まれるチャンネルの一部を削除することにより、対象モデルを生徒モデルに変更する。なお、対象モデルを生徒モデルに変更することは、対象モデルから生徒モデルを生成することに相当すると解釈することもできる。
【0019】
変更部110による生徒モデルへの変更方法はどのような方法でもよいが、例えば以下の(M1)~(M3)に示す方法を適用できる。なお、以下に示す各方法では、生徒モデルとともに1つ以上の中間モデルが生成できる。
【0020】
(M1)対象モデルに含まれる複数のレイヤそれぞれのチャンネルの個数(チャンネル数)を一様に削減することにより生徒モデルを生成する。例えば、対象モデルの各レイヤのチャンネル数を、指定された比率(以下、スケールともいう)で減少させる。以下、指定されたスケールでチャンネル数を変更(増減)することをスケーリングという場合がある。
【0021】
なお、スケーリングにより減少させるチャンネルはどのように選択されてもよい。例えば、ランダムに選択する方法、および、特定の位置(先頭、中間、末尾など)からスケールに応じた個数のチャンネルを連続的に選択する方法などを適用できる。
【0022】
図2は、(M1)により対象モデル201を生徒モデル202に変更する例を示す図である。対象モデル201は、4つのレイヤL1~L4を含む。生徒モデル202は、4つのレイヤL1-2~L4-2を含む。各レイヤの下部に記載された数値は、対応するレイヤに含まれるチャンネルの個数を示す。図2は、スケールとして0.5が指定された例を示す。図2に示されるように、対象モデル201に含まれる4つのレイヤそれぞれのチャンネル数がスケール0.5に応じて削減され、生徒モデル202が生成される。
【0023】
なお、変更部110は、複数のスケールに従い対象モデルを複数のモデルに変更し、変更後のモデルのうちいずれかを生徒モデルとし、残りを中間モデルとしてもよい。例えば変更部110は、スケール0.75を用いて対象モデルを中間モデルにスケーリングし、スケール0.5を用いて対象モデルを生徒モデルにスケーリングしてもよい。このように、中間モデルは、生徒モデルよりサイズが大きいモデルであってもよい。中間モデルは、生徒モデルと同じサイズ、または、生徒モデルよりサイズが小さいモデルであってもよい。
【0024】
(M2)対象モデルに対するプルーニングによって生徒モデルを生成する。プルーニングは、例えば、対象モデルにより実現される複数の演算のうち、削減可能な演算を見つけ、当該演算を削減したモデルを生成する処理である。プルーニングはどのような手法でもよいが、例えば非特許文献1、非特許文献2の手法を適用できる。
【0025】
変更部110は、プルーニングの強度を変更して複数のサイズのモデルを生成し、生成したモデルのうちいずれかを生徒モデルとし、残りを中間モデルとしてもよい。例えば非特許文献1のようにチャンネルごとに重要度を算出する手法では、削減するチャンネルを決定するための閾値(重要度の閾値)を変更することにより強度を操作することができる。非特許文献2のように、重みの中に0が多く含まれるスパースなモデルを学習するコンパクト化を用いた手法では、学習時のパラメータ(例えばWeight decay)を変えることで強度を操作することができる。
【0026】
図3は、(M2)により対象モデル201から中間モデル301および生徒モデル302を生成する例を示す図である。中間モデル301は、4つのレイヤL1-3~L4-3を含む。生徒モデル302は、4つのレイヤL1-4~L4-4を含む。中間モデル301は、小さい強度で生成されたモデルに相当する。生徒モデル302は、中間モデル301より大きい強度で生成されたモデルに相当する。強度が相対的に小さいため、中間モデル301の精度の劣化の程度は、生徒モデル302より相対的に小さい。
【0027】
(M3)対象モデルに対するプルーニングによって1つ以上の中間モデルを生成し、生成された中間モデルのうち1つに対するスケーリングによって生徒モデルを生成する。
【0028】
図4は、(M3)を適用する場合の変更部110の構成例を示すブロック図である。図2に示すように、変更部110は、プルーニング部111と、生成部112と、を含む。
【0029】
プルーニング部111は、対象モデルに対するプルーニングによって1つ以上の中間モデルを生成する。生成部112は、中間モデルのうち1つに含まれる複数のレイヤそれぞれのサイズを、指定されたスケールでスケーリングすることにより生徒モデルを生成する。
【0030】
図5は、(M3)により生成される生徒モデル501の例を示す図である。生徒モデル501は、4つのレイヤL1-5~L4-5を含む。各レイヤの上部に記載された数値は、対応するレイヤに含まれるプルーニング前後のチャンネル数を示す。記号「/」の右の数値がプルーニング前のチャンネル数を示し、記号「/」の左の数値がプルーニング後のチャンネル数を示す。各レイヤの下部に記載された数値は、対応するレイヤに含まれるスケーリング後のチャンネル数を示す。この例では、スケールは0.5である。
【0031】
図1に戻り、選択部120は、生徒モデルの蒸留による学習で用いる教師モデルを選択する。また、選択部120は、生徒モデルの学習時のパラメータの初期値(初期パラメータ)を選択する。パラメータは、例えば重みおよびバイアスである。
【0032】
図6は、選択部120の詳細な機能構成例を示すブロック図である。図6に示すように、選択部120は、教師モデル選択部121と、初期パラメータ選択部122と、を含む。
【0033】
教師モデル選択部121は、例えば、対象モデルのサイズと生徒モデルのサイズとの比較結果に応じて、対象モデルと1つ以上の中間モデルとを含む複数のモデルのうちいずれか1つを、教師モデルとして選択する。例えば教師モデル選択部121は、対象モデルのサイズに対する生徒モデルのサイズの比率(=生徒モデルのサイズ/対象モデルのサイズ)を算出する。サイズはどのように算出されてもよいが、例えば、モデルのパラメータのサイズ(データサイズ)、および、モデルを用いた推論時の演算数(FLOPs)により算出される。
【0034】
教師モデル選択部121は、算出した比率と、閾値と、を比較し、比率が閾値より大きい場合に、対象モデルを教師モデルとして選択し、比率が閾値以下の場合に、中間モデルを教師モデルとして選択する。2つ以上の中間モデルが生成される場合、教師モデル選択部121は、複数の閾値を用いて、比率の大きさに応じたサイズの中間モデルを選択してもよい。閾値は、例えば、対象モデルの種類に応じて予め定められる。
【0035】
初期パラメータ選択部122は、対象モデルに含まれる複数のレイヤのパラメータから、生徒モデルに含まれる複数のレイヤの初期パラメータ(初期値)を選択する。
【0036】
初期パラメータは、例えば、学習開始時の各レイヤに含める1つ以上のチャンネルに対して設定するパラメータの初期値である。例えば初期パラメータ選択部122は、生徒モデルに含まれる複数のレイヤそれぞれに含める1つ以上のチャンネルに対する初期パラメータを、対象モデルに含まれる複数のレイヤに含まれる複数のチャンネルのパラメータから選択する。
【0037】
対象モデルに含まれる複数のレイヤに含まれる複数のチャンネルのパラメータは、対象モデルの学習前のパラメータ(パラメータの初期値)であってもよいし、対象モデルを学習した後のパラメータであってもよい。
【0038】
初期パラメータの選択方法としては、例えば、以下の方法を適用できる。まず、初期パラメータ選択部122は、中間モデルに含まれる複数のレイヤ(第1レイヤ)それぞれについて、当該レイヤに含まれる複数のチャンネルから選択される一部のチャンネルを含む複数の組み合わせ(複数の要素群)を求める。初期パラメータ選択部122は、複数の組み合わせのうち、評価値が他の組み合わせより大きい組み合わせに含まれるチャンネルを選択する。初期パラメータ選択部122は、選択したチャンネルに対して、対象モデルの対応するレイヤの対応するチャンネルに設定されているパラメータを、初期パラメータとして選択する。
【0039】
図7は、初期パラメータの選択処理の概要を説明するための図である。図7は、生徒モデルに含まれる4つのレイヤL1~L4のうち、レイヤL3について初期パラメータを選択する例を示す。他のレイヤL1、L2およびL4についても同様の処理が実行される。
【0040】
また、図7では、対象モデル701のレイヤL3のチャンネル数は8であり、プルーニングによりレイヤL3のチャンネル数が6の中間モデル702が生成された例が示されている。初期パラメータ選択部122は、中間モデル702のレイヤL3に含まれる6つのチャンネルから、3つのチャンネルを含む複数の組み合わせを求める。
【0041】
図8は、3つの組み合わせを求める場合の例を示す図である。中間モデル702内の数値は、チャンネルを識別する情報である。初期パラメータ選択部122は、中間モデル702の6つのチャンネルから、相互に異なる3つのチャンネルを選択して、3つの組み合わせ703-1、703-2、703-3を求める。なお、組み合わせの個数は3つに限られず、2つまたは4つ以上であってもよい。
【0042】
図7に戻り、初期パラメータ選択部122は、3つの組み合わせのうち、評価値が大きい組み合わせに含まれる3つのチャンネルを選択する。選択された3つのチャンネルを含むモデルが生徒モデル703に相当する。初期パラメータ選択部122は、生徒モデル703のレイヤL3に含まれる各チャンネルの初期パラメータを、対象モデル701のレイヤL3の対応するチャンネルのパラメータから選択して設定する。このとき選択するパラメータは、対象モデル701の学習前のパラメータ(パラメータの初期値)であってもよいし、対象モデル701を学習した後のパラメータであってもよい。初期パラメータ選択部122は、初期パラメータを、プルーニング後の中間モデル702のレイヤL3の対応するチャンネルのパラメータから選択して設定してもよい。
【0043】
評価値は、各組み合わせに含まれるチャンネルが適切かを評価するための値であり、例えば以下の(E1)~(E3)に示すような指標を用いることができる。なお、以下では、組み合わせに含まれるチャンネルに対応する対象モデルのチャンネルのパラメータを初期値として設定した生徒モデルを候補モデルという。評価値は、候補モデルごとに算出される。
(E1)候補モデルを用いた推論の精度(推論の正解率など)を表す値
(E2)候補モデルを用いた推論を複数のデータに対して実行したときの、候補モデルに含まれるレイヤの出力の統計量と、中間モデルに含まれる対応するレイヤの出力の統計量との差分が小さいほど大きくなる値
(E3)候補モデルを用いたバックワード処理を複数のデータに対して実行したときの、候補モデルに含まれるレイヤに対して算出される勾配(Gradient)の統計量と、中間モデルに含まれる対応するレイヤに対して算出される勾配の統計量との差分が小さいほど大きくなる値
【0044】
(E2)および(E3)で用いられる統計量はどのような値であってもよいが、例えば、平均値、分散、最大値、および、最小値である。2つ以上の統計量を組み合わせた値が評価値として用いられてもよい。例えば、複数の統計量の差分の絶対値和または二乗和が、評価値として用いられてもよい。(E3)で実行されるバックワード処理とは、モデルの出力レイヤから入力レイヤに向かう方向に、モデルの誤差に関する各レイヤの勾配(微分)を算出する処理である。
【0045】
図9図11は、それぞれ(E1)~(E3)の評価値を用いた組み合わせ(生徒モデル)の選択を模式的に示す図である。
【0046】
図9では、各組み合わせ703-1、703-2、703-3の評価値(精度)の例が示されている。例えば初期パラメータ選択部122は、各組み合わせに対応する候補モデルを、学習データを用いて学習する。このときの学習の繰り返し回数は、例えば、学習後の候補モデルの精度を比較できる程度の回数であればよい。初期パラメータ選択部122は、学習後の候補モデルそれぞれについて推論を実行し、推論の精度(正解率など)を評価値として算出する。図9の例では、初期パラメータ選択部122は、評価値が最も大きい候補モデルに対応する組み合わせ703-3を選択する。
【0047】
図10では、初期パラメータ選択部122は、候補モデルそれぞれについて、複数のデータを用いて推論を実行する。初期パラメータ選択部122は、レイヤごとに、複数のデータに対して推論を実行したときのレイヤの出力の統計量を、中間モデルの対応するレイヤの出力の統計量と比較する。初期パラメータ選択部122は、統計量が最も近い(差分が小さい)生徒モデル(候補モデル)を選択する。
【0048】
図11では、初期パラメータ選択部122は、候補モデルそれぞれについて、複数のデータを用いて推論およびバックワード処理を実行する。初期パラメータ選択部122は、レイヤごとに、複数のデータに対するバックワード処理により算出される勾配の統計量を、中間モデルの対応するレイヤに対して算出される勾配の統計量と比較する。初期パラメータ選択部122は、統計量が最も近い(差分が小さい)生徒モデル(候補モデル)を選択する。
【0049】
初期パラメータ選択部122は、図9図11のように選択された組み合わせに対応する生徒モデルの各レイヤの初期パラメータを、対象モデルに含まれる対応するレイヤのパラメータから選択する。
【0050】
図1に戻り、生徒モデル学習部103は、教師モデル選択部121により選択された教師モデルを用いた蒸留により生徒モデルを学習する。このとき、生徒モデル学習部103は、初期パラメータ選択部122により選択された初期パラメータを用いて生徒モデルを学習する。
【0051】
出力制御部104は、情報処理装置100で用いられる各種情報の出力を制御する。例えば出力制御部104は、学習済の生徒モデルを示す情報(パラメータなど)を、生徒モデルを用いた推論を実行する外部の装置などに出力する。
【0052】
上記各部(受付部101、対象モデル学習部102、生徒モデル学習部103、出力制御部104、変更部110、および、選択部120)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)およびGPU(Graphics Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0053】
記憶部131は、情報処理装置100で用いられる各種情報を記憶する。例えば記憶部131は、受付部101により受け付けられた情報(対象モデルを示す情報、学習データなど)、および、学習された生徒モデルを示す情報などを記憶する。
【0054】
なお、記憶部131は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0055】
情報処理装置100は、物理的に1つの装置によって構成されてもよいし、物理的に複数の装置によって構成されてもよい。例えば情報処理装置100は、クラウド環境上で構築されてもよい。また、情報処理装置100内の各部は、複数の装置に分散して備えられてもよい。
【0056】
次に、実施形態の情報処理装置100による学習処理について説明する。学習処理は、対象モデルのサイズを削減した生徒モデルを、教師モデルを用いた蒸留により学習する処理である。図12は、実施形態における学習処理の一例を示すフローチャートである。
【0057】
対象モデル学習部102は、学習データセットを用いて対象モデルを学習する(ステップS101)。変更部110は、学習された対象モデルのサイズを変更し、生徒モデルを生成する(ステップS102)。
【0058】
選択部120(教師モデル選択部121)は、生徒モデルの学習に用いる教師モデルとして、対象モデルおよび中間モデルのうちいずれかを選択する(ステップS103)。例えば教師モデル選択部121は、生徒モデルサイズの対象モデルのサイズに対する比率を算出し、比率が閾値より大きい場合に対象モデルを教師モデルとして選択する。比率が閾値以下の場合、教師モデル選択部121は、中間モデルを教師モデルとして選択する。
【0059】
選択部120(初期パラメータ選択部122)は、生徒モデルの学習に用いるパラメータの初期値(初期パラメータ)を選択する(ステップS104)。
【0060】
生徒モデル学習部103は、選択された初期パラメータを用いて、選択された教師モデルを用いた蒸留により、生徒モデルを学習する(ステップS105)。
【0061】
出力制御部104は、学習された生徒モデルを示す情報(パラメータなど)を出力し(ステップS106)、学習処理を終了する。
【0062】
これまでの説明では、選択部120は、教師モデルの選択(教師モデル選択部121)と、初期パラメータの選択(初期パラメータ選択部122)と、の両方を実行した。情報処理装置100は、これらのいずれか一方のみを実行するように構成されてもよい。
【0063】
生徒モデルのサイズを考慮して教師モデルの選択を行う機能が備えられていれば、例えば、生徒モデルと対象モデルとの差異が大きい場合には、より差異が小さい中間モデルを教師モデルとして選択できる。これにより、生徒モデルと教師モデルとの間に差異があることに起因する学習の精度低下を抑制することができる。
【0064】
また、生徒モデルの初期パラメータを対象モデルのパラメータから選択する機能が備えられていれば、例えば初期パラメータを乱数で初期化するような方法と比較してより適切な初期パラメータを設定することができる。これにより、生徒モデルの学習をより高精度に実行することが可能となる。
【0065】
このように、実施形態の情報処理装置では、サイズを小さくしたモデルの蒸留による学習をより高精度に実行することができる。
【0066】
(変形例)
情報処理装置は、対象モデルを事前学習する機能をさらに備えてもよい。変形例では、事前学習機能を備える例を説明する。図13は、変形例の情報処理装置100-2の構成の一例を示すブロック図である。図13に示すように、情報処理装置100-2は、受付部101と、対象モデル学習部102-2と、生徒モデル学習部103と、出力制御部104と、変更部110と、選択部120と、記憶部131と、を備えている。
【0067】
変形例では、対象モデル学習部102-2の機能が上記実施形態と異なっている。その他の構成および機能は、上記実施形態の情報処理装置100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0068】
対象モデル学習部102-2は、対象モデルの事前学習をさらに実行する点が、上記実施形態の対象モデル学習部102と異なっている。例えば対象モデル学習部102-2は、事前学習用の学習データセットDS_A(第1データセット)を用いて対象モデルを事前学習し、事前学習した対象モデルを、学習データセットDS_Aとは異なる学習データセットDS_B(第2データセット)を用いて学習する。
【0069】
学習データセットDS_Aは、例えば、汎用的な特徴を学習可能であり、他のタスクに転移させることが容易である、予め用意された大規模なデータセットである。学習データセットDS_Bは、例えば、特定のタスクにより適したモデルとなるように学習するためのデータセットである。
【0070】
事前学習が実行される場合、初期パラメータ選択部122は、事前学習後の対象モデルのパラメータを、生徒モデルの初期パラメータとして選択してもよい。これにより、例えば、事前学習が必要な対象モデルを用いるような場合であっても、生徒モデルの事前学習を不要とすることができる。これにより、学習のコストを削減可能となる。
【0071】
なお、上記実施形態および変形例の情報処理装置は、さまざまなシステムで用いられるモデルの学習に適用することができる。システムは、モデルを用いた機能を含むシステムであればどのようなシステムであってもよいが、例えば以下のように、記憶容量が小さいエッジ端末上でモデルを使用するシステムであってもよい。
・エッジ端末が検出した情報(例えば撮像装置(カメラ)により得られる画像から検出した情報)を用いて、サーバ装置が人(人流)などのオブジェクトを検出する検出システム。
・エッジ端末が検出した情報(例えばセンサから得られるセンサデータから検出した情報)を用いて、制御装置が制御対象の機器(照明機器、エレベータなど)を制御する制御システム。
【0072】
次に、実施形態の情報処理装置のハードウェア構成について図14を用いて説明する。図14は、実施形態の情報処理装置のハードウェア構成例を示す説明図である。
【0073】
実施形態の情報処理装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0074】
実施形態の情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0075】
実施形態の情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0076】
さらに、実施形態の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0077】
実施形態の情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0078】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0079】
100、100-2 情報処理装置
101 受付部
102、102-2 対象モデル学習部
103 生徒モデル学習部
104 出力制御部
110 変更部
111 プルーニング部
112 生成部
120 選択部
121 教師モデル選択部
122 初期パラメータ選択部
131 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14