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

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

▶ 窪田 望の特許一覧

<>
  • 特開-学習モデルの軽量化 図1
  • 特開-学習モデルの軽量化 図2
  • 特開-学習モデルの軽量化 図3
  • 特開-学習モデルの軽量化 図4
  • 特開-学習モデルの軽量化 図5
  • 特開-学習モデルの軽量化 図6
  • 特開-学習モデルの軽量化 図7
  • 特開-学習モデルの軽量化 図8
  • 特開-学習モデルの軽量化 図9
  • 特開-学習モデルの軽量化 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023163102
(43)【公開日】2023-11-09
(54)【発明の名称】学習モデルの軽量化
(51)【国際特許分類】
   G06N 20/20 20190101AFI20231101BHJP
   G06N 20/00 20190101ALI20231101BHJP
【FI】
G06N20/20
G06N20/00 130
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022113601
(22)【出願日】2022-07-15
(62)【分割の表示】P 2022073380の分割
【原出願日】2022-04-27
(71)【出願人】
【識別番号】520040304
【氏名又は名称】窪田 望
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】窪田 望
(57)【要約】      (修正有)
【課題】ニューラルネットワークを用いる学習済みモデルを、学習精度を保ちつつ、より適切に軽量化する情報処理方法、プログラム及び情報処理装置を提供する。
【解決手段】方法は、所定の学習データを取得することS102と、ニューラルネットワークを用いる所定の学習モデルに対して、各軽量化モデルの少なくとも2つのモデルを含む各モデルがそれぞれ重み付けされた重み学習モデルに、所定のデータを入力して機械学習を行うことS104と、重み学習モデルごとに、所定の学習データを入力して機械学習が行われた場合の学習結果を取得することS106と、各重み学習モデルと、各重み学習モデルで学習されたときの各学習結果とを含む学習データを用いて、教師あり学習を行うことS108と、教師あり学習により、任意の学習データを入力する場合に、各重みの集合ごとに学習結果を予測する予測モデルを生成することS110と、を含む。
【選択図】図9
【特許請求の範囲】
【請求項1】
情報処理装置に含まれる1又は複数のプロセッサが、
所定の学習データを取得すること、
ニューラルネットワークを用いる所定の学習モデルに対して、蒸留処理された第1学習
モデル、枝刈り処理された第2学習モデル、及び量子化処理された第3学習モデルの少な
くとも2つのモデルを含む各モデルがそれぞれ重み付けされた重み学習モデルに、所定の
データを入力して機械学習を行うこと、
前記各モデルそれぞれの重みが変更された重み学習モデルごとに、前記所定の学習デー
タを入力して前記機械学習が行われた場合の学習結果を取得すること、
変更された各重みが重み付けされた各重み学習モデルと、前記各重み学習モデルで学習
されたときの各学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により、任意の学習データを入力する場合に、各重みの集合ごとに学
習結果を予測する予測モデルを生成すること、
を実行する、情報処理方法。
【請求項2】
前記1又は複数のプロセッサは、
任意の学習データを前記予測モデルに入力し、前記各重みの集合ごとに、前記重み学習
モデルを実行した場合の学習結果を予測することを実行する、請求項1に記載の情報処理
方法。
【請求項3】
前記1又は複数のプロセッサが、
前記任意の学習データを前記所定の学習モデルに入力した場合の学習結果と、前記予測
モデルにより予測された学習結果とが、軽量化に関する所定条件を満たすか否かを判定す
ること、
前記所定条件の判定結果に基づいて、前記各重みの有効性を判定すること、
をさらに実行する請求項2に記載の情報処理方法。
【請求項4】
前記1又は複数のプロセッサが、
前記軽量化に関する所定条件に関するユーザ操作を受け付けること、
前記ユーザ操作に基づいて、前記軽量化に関する所定条件を設定すること、
をさらに実行する請求項3に記載の情報処理方法。
【請求項5】
前記プロセッサは、
前記学習結果に含まれる学習精度を第1変数、前記学習結果に含まれるモデルサイズに
関する値を第2変数とし、前記第1変数及び前記第2変数と、前記各重みとを対応付ける
関係情報を生成すること、
を実行する請求項1に記載の情報処理方法。
【請求項6】
前記プロセッサは、
前記第1変数の第1値及び前記第2変数の第2値を取得すること、
前記関係情報に基づいて、前記第1値及び前記第2値に対応する各重みを特定すること

を実行する請求項5に記載の情報処理方法。
【請求項7】
前記重み学習モデルは、前記第1学習モデル、前記第2学習モデル、及び前記第3学習
モデルそれぞれに重みが付与されて線形結合されたモデルを含む、請求項1に記載の情報
処理方法。
【請求項8】
メモリと、1又は複数のプロセッサとを備える情報処理装置であって、
前記メモリは、
ニューラルネットワークを用いる所定の学習モデルと、
前記所定の学習モデルに対して、蒸留処理された第1学習モデル、枝刈り処理された第
2学習モデル、及び量子化処理された第3学習モデルの少なくとも2つのモデルを含む各
モデルがそれぞれ重み付けされた重み学習モデルと、を記憶し、
前記1又は複数のプロセッサは、
所定の学習データを取得すること、
前記重み学習モデルに、前記所定の学習データを入力して機械学習を行うこと、
前記各モデルそれぞれの重みが変更された重み学習モデルごとに、前記所定の学習デー
タを入力して前記機械学習が行われた場合の学習結果を取得すること、
変更された各重みが重み付けされた各重み学習モデルと、前記各重み学習モデルで学習
されたときの各学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により、任意の学習データを入力する場合に、各重みの集合ごとに学
習結果を予測する予測モデルを生成すること、
を実行する、情報処理装置。
【請求項9】
情報処理装置に含まれる1又は複数のプロセッサに、
所定の学習データを取得すること、
ニューラルネットワークを用いる所定の学習モデルに対して、蒸留処理された第1学習
モデル、枝刈り処理された第2学習モデル、及び量子化処理された第3学習モデルの少な
くとも2つのモデルを含む各モデルがそれぞれ重み付けされた重み学習モデルに、所定の
学習データを入力して機械学習を行うこと、
前記各モデルそれぞれの重みが変更された重み学習モデルごとに、前記所定の学習デー
タを入力して前記機械学習が行われた場合の学習結果を取得すること、
変更された各重みが重み付けされた各重み学習モデルと、前記各重み学習モデルで学習
されたときの各学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により、任意の学習データを入力する場合に、各重みの集合ごとに学
習結果を予測する予測モデルを生成すること、
を実行させる、プログラムを記録したコンピュータ読み取り可能な非一時的な記憶媒体





【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習モデルの軽量化に関する情報処理方法、プログラム及び情報処理装置に
関する。
【背景技術】
【0002】
近年、学習モデルを軽量化する研究が行われている。例えば、下記特許文献1には、パ
ラメータの量子化を用いて学習モデルの軽量化を行う技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-133628号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、学習モデルを軽量化するには、枝刈り(Pruning)、量子化(Quantization)
、蒸留(Distillation)などの手法がある。これらの軽量化手法の少なくとも1つを学習
モデルに適用し、エンジニアが適宜パラメータ調整等を行って軽量化が行われる。
【0005】
しかしながら、学習データや学習モデルなどの様々な条件に応じて適切な軽量化手法は
異なるものと思われるが、エンジニアが適宜パラメータを調整して決定された軽量化手法
が最適なものであるとは限らなかった。
【0006】
そこで、本発明の目的の1つは、学習モデルに対する軽量化手法を、より適切にするこ
とを可能にする情報処理方法、プログラム及び情報処理装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る情報処理方法は、情報処理装置に含まれる1又は複数のプロセッ
サが、所定の学習データを取得すること、ニューラルネットワークを用いる所定の学習モ
デルに対して、蒸留処理された第1学習モデル、枝刈り処理された第2学習モデル、及び
量子化処理された第3学習モデルの少なくとも2つのモデルを含む各モデルがそれぞれ重
み付けされた重み学習モデルに、所定のデータを入力して機械学習を行うこと、前記各モ
デルそれぞれの重みが変更された重み学習モデルごとに、前記所定の学習データを入力し
て前記機械学習が行われた場合の学習結果を取得すること、変更された各重みが重み付け
された各重み学習モデルと、前記各重み学習モデルで学習されたときの各学習結果とを含
む学習データを用いて、教師あり学習を行うこと、前記教師あり学習により、任意の学習
データを入力する場合に、各重みの集合ごとに学習結果を予測する予測モデルを生成する
こと、を実行する。
【発明の効果】
【0008】
本発明によれば、学習モデルに対する軽量化手法を、より適切にすることを可能にする
情報処理方法、プログラム及び情報処理装置を提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態に係るシステム構成の一例を示す図である。
図2】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
図3】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
図4】学習済みモデルの蒸留を説明するための図である。
図5】学習済みモデルの枝刈りを説明するための図である。
図6】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
図7】実施形態に係る関係情報の一例を示す図である。
図8】実施形態に係る関係情報の表示例を示す図である。
図9】実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートである。
図10】実施形態に係るユーザが利用する情報処理装置における処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一
の符号を付したものは、同一又は同様の構成を有する。
【0011】
[実施形態]
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。図1に示す例では、サー
バ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介して
データ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理
装置20とも表記する。
【0012】
サーバ10は、データを収集、分析可能な情報処理装置であり、1つ又は複数の情報処
理装置から構成されてもよい。情報処理装置20は、スマートフォン、パーソナルコンピ
ュータ、タブレット端末、サーバ、コネクティッドカーなど、機械学習を実行可能な情報
処理装置である。なお、情報処理装置20は、脳波をセンシングする侵襲型又は非侵襲型
の電極に直接的又は間接的に接続されており、脳波データを解析、送受信可能な装置でも
よい。
【0013】
図1に示すシステムでは、サーバ10は、例えば、所定の学習データにおいて学習済み
の学習モデルに、様々な軽量化手法(軽量化アルゴリズム)を適用する。様々な軽量化手
法は、既存の軽量化手法1つを適用したり、任意の軽量化手法の組み合わせを適用したり
することを含む。このとき、サーバ10は、所定のデータセット、所定の学習モデル及び
所定の軽量化手法のときの学習結果を関連付けて記憶する。
【0014】
次に、サーバ10は、任意のデータセットと、任意の軽量化手法と、これらの学習結果
(例えば学習精度)とを訓練データとして、学習結果が適切な軽量化手法を特定する予測
モデルを学習して生成する。学習結果の適切さは、例えば、学習精度や、モデルサイズの
圧縮率などにより決定される。
【0015】
これにより、学習済みの学習モデルに対し、軽量化をより適切に行うことが可能になる
。また、サーバ10は、各軽量化手法を重み付けして線形結合したモデルを用いて、各軽
量化手法の適用割合を定める各重みを適切に調整してもよい。
【0016】
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処
理装置10は、演算部に相当する1又は複数のCPU(Central Processing Unit)10
aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するR
OM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと
、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【0017】
実施形態では、情報処理装置10が一台のコンピュータで構成される場合について説明
するが、情報処理装置10は、複数のコンピュータ又は複数の演算部が組み合わされて実
現されてもよい。また、図2で示す構成は一例であり、情報処理装置10はこれら以外の
構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【0018】
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関す
る制御やデータの演算、加工を行う制御部である。CPU10aは、より適切な軽量化手
法を調べるための学習モデルを用いて学習を行うプログラム(学習プログラム)や、任意
のデータを入力したときに適切な軽量化手法を出力する予測モデルを生成するための学習
を行うプログラム(予測プログラム)を実行する演算部である。CPU10aは、入力部
10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに
表示したり、RAM10bに格納したりする。
【0019】
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記
憶素子で構成されてよい。RAM10bは、CPU10aが実行するプログラム、様々な
軽量化手法に関する軽量化データ(例えば軽量化アルゴリズム)、適切な軽量化手法を予
測する予測モデル、学習対象のデータに関する情報と、このデータに対応する適切な軽量
化手法との対応関係を示す関係情報などのデータを記憶してもよい。なお、これらは例示
であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの
一部が記憶されていなくてもよい。
【0020】
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記
憶素子で構成されてよい。ROM10cは、例えば学習プログラムや、書き換えが行われ
ないデータを記憶してよい。
【0021】
通信部10dは、情報処理装置10を他の機器に接続するインターフェースである。通
信部10dは、インターネット等の通信ネットワークに接続されてよい。
【0022】
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボー
ド及びタッチパネルを含んでよい。
【0023】
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば
、LCD(Liquid Crystal Display)により構成されてよい。表示部10fが演算結果を
表示することは、XAI(eXplainable AI:説明可能なAI)に貢献し得る。表示部10
fは、例えば、学習結果や、学習モデルに関する情報を表示してもよい。
【0024】
学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可
能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネッ
トワークを介して提供されてもよい。情報処理装置10では、CPU10aが学習プログ
ラムを実行することにより、後述する図3を用いて説明する様々な動作が実現される。な
お、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例え
ば、情報処理装置10は、CPU10aとRAM10bやROM10cが一体化したLS
I(Large-Scale Integration)を備えていてもよい。また、情報処理装置10は、GP
U(Graphical Processing Unit)やASIC(Application Specific Integrated Circu
it)を備えていてもよい。
【0025】
なお、情報処理装置20の構成は、図2に示す情報処理装置10の構成と同様であるた
め、その説明を省略する。また、情報処理装置10と情報処理装置20とは、データ処理
を行う基本的な構成であるCPU10aやRAM10b等を有していればよく、入力部1
0eや表示部10fは設けられなくてもよい。また、入力部10eや表示部10fは、外
部からインターフェースを用いて接続されてもよい。
【0026】
<処理構成>
図3は、実施形態に係る情報処理装置10の処理ブロックの一例を示す図である。情報
処理装置10は、取得部101、第1学習部102、変更部103、第2学習部104、
予測部105、判定部106、設定部107、関連付け部108、特定部109、表示制
御部110、出力部111、及び記憶部112を備える。例えば、図3に示す第1学習部
102、変更部103、第2学習部104、予測部105、判定部106、設定部107
、関連付け部108、特定部109、表示制御部110は、例えばCPU10aなどによ
り実行されて実現され、取得部101及び出力部111は、例えば通信部10dなどによ
り実現され、記憶部112は、RAM10b及び/又はROM10cなどにより実現され
得る。
【0027】
取得部101は、所定の学習データを取得する。例えば、取得部101は、所定の学習
データとして、画像データ、系列データ、テキストデータなどの公知のデータセットを取
得してもよい。なお、取得部101は、記憶部112に記憶されたデータを取得してもよ
いし、他の情報処理装置により送信されたデータを取得してもよい。
【0028】
第1学習部102は、所定の問題を解くため、ニューラルネットワークを用いる所定の
学習モデル102aに対して、蒸留処理された第1学習モデル、枝刈り処理された第2学
習モデル、及び量子化処理された第3学習モデルの少なくとも2つのモデルを含む各モデ
ルがそれぞれ重み付けされた重み学習モデルに、所定の学習データを入力して機械学習を
行う。
【0029】
ここで、学習済みの学習モデル102aの軽量化手法の例として、蒸留(Distillation
)、枝刈り(Pruning)、及び量子化(Quantization)の各アルゴリズムについて、以下
に簡単に説明する。
【0030】
図4は、学習済みモデルの蒸留を説明するための図である。図4に示す蒸留は、学習済
みモデルM11の予測結果を教師データとして、より小さいモデルM12を学習すること
で軽量化を行う。このとき、この小さいモデルM12は、大きいモデルM11と同程度の
精度を持つ場合がある。
【0031】
例えば、蒸留において、学習済みモデルM11は、Teacherモデル、小さいモデ
ルM12は、Studentモデルと呼ばれる。Studentモデルは、エンジニアが
適宜設計する。
【0032】
図4に示す例では、分類器を例とした学習データについて説明する。モデルM11のT
eacherモデルは、0と1とで表現され、1が正解である教師データを用いて学習を
行なう。これに対し、モデルM12のStudentモデルは、Teacherモデルが
出力した値(例:A=0.7、B=0.3)を教師データとして学習する。実施形態では
、1つの学習モデルM11に対して複数の異なる蒸留後のモデルM12が用意されてもよ
い。
【0033】
図5は、学習済みモデルの枝刈りを説明するための図である。図5に示す枝刈りは、学
習済みモデルM21の重みやノードを削除することで、軽量化が行われたモデルM22が
生成される。これにより計算回数、メモリ使用量の削減を行うことが可能になる。
【0034】
枝刈りの手法は、ノード間の接続において重みの小さいところを対象に削除が行われて
もよい。例えば、枝刈りは、蒸留と違い別途モデルを設計する必要はないが、パラメータ
の削除が行われるため、再学習を行い、学習精度を維持するとよい。例えば、学習への影
響が小さい枝(エッジ)、例えば重みが所定値以下の枝をカットし、軽量化が行われても
よい。
【0035】
量子化は、モデルに含まれるパラメータを少ないビット数で表現する。これにより、ネ
ットワークの構造を変えずにモデルを小さくすることが可能になる。例えば、重みパラメ
ータを6個持つ簡単なネットワークを例にした場合、32ビット精度の場合は合計192
ビットを必要とするが、8ビット精度の制約にすると合計48ビットで表現することとに
なり、軽量化が行われていることになる。
【0036】
図3に戻り、例えば、第1学習部102は、学習済みの学習モデル102aに対して、
第1モデル、第2モデル、及び第3モデルのうちの少なくとも2つの軽量化モデルが選択
され、各モデルに付与される重みとして、デフォルトの重みを設定する。
【0037】
第1モデル、第2モデル、及び第3モデルは、学習済みのモデルのカテゴリごとに予め
設定されていてもよいし、学習済みモデルごとに、所定の基準に従って自動で生成されて
もよい。例えば、第1学習部102は、蒸留の場合、学習済みモデルに適した蒸留後のモ
デルを機械学習により決定してもよく、枝刈りの場合、重みが所定値以下の枝をカットし
て枝刈り後のモデルを生成してもよく、量子化の場合、所定値ビット精度の制約(量子化
)にしてもよい。また、1つの学習済みモデルに対し、複数の第1モデル、複数の第2モ
デル、複数の第3モデルが設定され、それぞれのモデルに重みが付与されてもよい。
【0038】
所定の問題は、例えば画像データ、系列データ及びテキストデータの少なくともいずれ
かについて、分類、生成及び最適化の少なくともいずれかを行う問題を含む。ここで、画
像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株
価のデータを含む。
【0039】
また、所定の学習モデル102aは、ニューラルネットワークを含む学習済みの学習モ
デルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、
強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデ
ル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル102aは、C
NN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN
(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、D
QN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative
Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
【0040】
変更部103は、所定の学習データ及び/又は重み学習モデルの各重みを変更する。例
えば、変更部103は、複数の学習データの中から、第1学習部12に入力される所定の
学習データを1つずつ順に変更する。また、変更部103は、ある1つの重み学習モデル
に対して全ての所定の学習データが入力されて学習が行われた場合、重み学習モデルの別
の各重みを利用するため、複数の各重みの集合(セット)の中から1つのセットを選択し
、用意された全てのセットで学習を行い、学習結果を取得してもよい。
【0041】
また、第1学習部102は、所定の学習データを重み学習モデルに入力し、適切な学習
結果が出力されるように、重み学習モデルのハイパーパラメータ等の学習を行う。このと
き、第1学習部102は、ハイパーパラメータが更新(調整)される際に、重み学習モデ
ルの各モデルに付与される各重みも所定の方法により調整する。
【0042】
例えば、各重みの調整については、あらかじめ設定される初期値から逐次的に各重みが
調整されるとよい。このとき、各重みが全て加算して1になるように調整され、以前に行
った調整と異なる調整が行われればいずれの調整方法が用いられてもよい。例えば、第1
学習部102は、各重みを順に所定値ずつ変更していき、全ての組み合わせについて変更
する。例えば、第1学習部102は、重みwに対して初期値から所定値ずつ減算し、重
みwk+1に対して初期値から所定値ずつ加算し、どちらかの重みが0以下になると、k
に1を加算して、各初期値からの変更を繰り返す。また、各重みが全て加算して1になる
条件は設けなくてもよく、この場合、Softmax関数などを用いて、各重みを加算し
て1になるように最後に調整されればよい。
【0043】
これにより、所定の学習データと所定の各重みのセットとの任意の組み合わせに対して
学習させることが可能になる。例えば、変更部103は、所定の学習データと所定の各重
みのセットとの全ての組み合わせが学習されるように、所定の学習データ及び/又は所定
の各重みのセットを1つずつ順に変更してもよいし、所定の条件が満たされるまで所定の
学習データ及び/又は所定の各重みのセットを1つずつ順に変更してもよい。所定の条件
は、例えば、学習精度やモデルサイズの圧縮率などにより設定されてもよい。
【0044】
取得部101又は第1学習部102は、各モデルそれぞれの重みが変更された重み学習
モデルごとに、所定の学習データを入力して機械学習が行われた場合の学習結果を取得す
る。例えば、取得部101又は第1学習部102は、様々な組み合わせの所定の学習デー
タ及び/又は所定の各重みのセットを用いて学習された学習結果を取得する。
【0045】
ここで、重み学習モデルについて具体例を用いて説明する。例えば、第1学習部102
は、第1モデル、第2モデル、第3モデルにそれぞれ重みw,w,wを付与して線
形結合した重み学習モデルを利用してもよい。この場合の重み学習の関数M(x)として
、式(1)が挙げられるが、一例にすぎない。
(x)=w(x)+w(x)+w(x) …式(1)
:重み(各重みの集合(セット)をWとも表記する)
(x):第nモデル
x:学習データ
【0046】
変更部103は、例えば、w+w+w=1となるように、各重みを所定基準に従
って、1つずつ順に変更する。第1学習部102は、変更後の各重みに対する学習結果を
取得し、各重みのセットに対して学習結果を関連付けておく。学習結果は、学習精度と、
軽量化による効果を示すモデルサイズの圧縮率である。モデルサイズの圧縮率とは、例え
ば、軽量化後の学習済みモデルのパラメータ数の、軽量化前の学習済みモデルのパラメー
タ数に対する割合である。
【0047】
また、変更部103が所定の学習データを変更すると、第1学習部102は、変更後の
学習データに対して、上述されたように各重みのセットでの重み学習モデルを学習し、学
習結果を取得する。これにより、任意の学習データ、任意の各重みのセット、これらの場
合の学習結果を含む訓練データが生成される。
【0048】
第2学習部104は、変更された各重みが重み付けされた各重み学習モデルと、各重み
学習モデルで学習されたときの各学習結果とを含む学習データを用いて、教師あり学習を
行う。例えば、第2学習部104は、任意の学習データ及び任意の各重みのセットを用い
て学習された際の学習結果(例えば学習性能及び/又はモデルサイズの圧縮率)を正解ラ
ベルとする訓練データを用いて、教師あり学習を行う。
【0049】
また、第2学習部104は、教師あり学習により、任意の学習データを入力する場合に
、各重みのセットごとに学習結果を予測する予測モデル104aを生成する。例えば、第
2学習部104は、任意の学習データを入力すると、この学習データに対する各軽量化手
法の各重みのセットごとに、学習精度やモデルサイズの圧縮率を出力する予測モデルを生
成する。
【0050】
以上の構成により、様々な学習データや、様々な軽量化手法により軽量化した各学習モ
デルを用いた学習結果を訓練データとして教師あり学習を行うことにより、各重みのセッ
トごとに、学習結果を予測する予測モデルを生成することができる。その結果、第2学習
部104により生成された予測モデルを用いることで、軽量化手法をより適切にすること
が可能になる。
【0051】
予測部105は、任意の学習データを予測モデル104aに入力し、各モデルそれぞれ
の重みのセットごとに、重み学習モデルを実行した場合の学習結果を予測する。例えば、
予測部105は、学習データとして画像のデータセットを入力した場合、特定の重みセッ
トW(w1n,w2n,w3n)ごとに、学習精度とモデルサイズに関する値(例えば
圧縮率)とを予測する。
【0052】
これにより、任意のデータ(例、データセット)に対して、各軽量化手法をどれくらい
適用するかの各重みのセットごとに、学習結果が予測されるため、この学習結果に基づい
て、より適切な各重みを選択することなどが可能になる。
【0053】
判定部106は、任意の学習データを所定の学習モデル102aに入力した場合の学習
結果と、予測モデル104aにより予測された学習結果とが、軽量化に関する所定条件を
満たすか否かを判定する。例えば、判定部106は、軽量化前の学習済みの学習モデル1
02aに学習データAを入力したときの学習精度A1と、予測モデル104aにより予測
された学習精度B1との第1差分値が、第1閾値内であるか否かを判定する。この第1差
分値が小さければと小さいほど、学習モデルを軽量化後でも学習精度を維持することがで
きており、学習精度B1のときの各重みは適切な軽量化手法となる。
【0054】
また、判定部106は、軽量化前の学習済みの学習モデル102aの圧縮率A2(=1
)と、予測モデル104aにより予測された圧縮率B2との第2差分値が、第2閾値以上
であるか否かを判定する。この第2差分値が大きければ大きいほど、学習モデルがより軽
量化できていることを示す。
【0055】
判定部106は、軽量化に関する判定結果に基づいて、各重みの有効性を判定する。例
えば、判定部106は、第1差分値と第2差分値とに基づいて、圧縮率B2が大きく、学
習精度B1が軽量化前の精度を維持できている各重みに対し、有効な軽量化手法であると
判定する。具体例としては、判定部106は、第1差分値が第1閾値以下、第2差分値が
第2閾値以上の各重みを有効な軽量化手法、それ以外の各重みを有効ではない軽量化手法
と判定してもよい。
【0056】
これにより、モデルサイズに関する値(例えば圧縮率)と学習精度とに基づき、それぞ
れの予測値を参考に、適切な各重みを選定することができる。例えば、判定部106は、
最も学習精度が高い各重みを選定してもよいし、圧縮率が第2閾値以上のもので、学習精
度が最も高い各重みを選定してもよい。
【0057】
設定部107は、軽量化に関する所定条件に関するユーザ操作を受け付ける。例えば、
設定部107は、表示部10fに表示された条件入力画面から、ユーザが入力部10eを
操作して軽量化に関する所定条件を入力した場合、この入力操作を受け付ける。
【0058】
設定部107は、受け付けたユーザ操作に基づいて、軽量化に関する所定条件を判定部
106の判定条件に設定する。例えば、設定部107は、ユーザの入力操作に基づいて、
学習性能に関する第1閾値、及び/又は、モデルサイズに関する第2閾値を設定すること
を可能としてもよい。
【0059】
これにより、ユーザが所望する条件を用いて、有効な軽量化手法を特定することができ
るようになる。
【0060】
関連付け部108は、学習結果に含まれる学習精度を第1変数、学習結果に含まれるモ
デルサイズに関する値(例えば圧縮率)を第2変数とし、第1変数及び第2変数と、各重
みとを対応付ける関係情報を生成する。例えば、関連付け部108は、縦軸を第1変数、
横軸を第2変数とする場合に、それぞれの変数の交点に各重みWを対応付けたマトリック
スを生成してもよい。また、関連付け部108は、各情報処理装置20から取得された学
習精度や圧縮率に基づいて、第1変数及び第2変数と、各重みWとを対応付ける関係情報
(実測関係情報)を生成してもよい。
【0061】
以上の処理により、第1変数又は第2変数が変更された場合に、対応する各重みWを迅
速に特定することが可能になる。また、第1変数と第2変数とは、適宜変更されてもよい
。例えば、第1変数として学習精度、第2変数として各重みWを適用し、特定される情報
モデルサイズに関する値でもよい。
【0062】
また、取得部101は、第1変数の第1値及び第2変数の第2値を取得してもよい。例
えば、取得部101は、ユーザから指定される第1変数の第1値及び第2変数の第2値を
取得する。第1値又は第2値はユーザにより適宜指定される。
【0063】
この場合、特定部109は、関連付け部108により生成された関係情報に基づいて、
第1変数の第1値及び第2変数の第2値に対応する各重みWを特定する。例えば、特定部
109は、関係情報を用いて、変更される第1変数の値、又は第2変数の値に対応する各
重みWを特定する。
【0064】
表示制御部110は、特定部109により特定された各重みWを表示装置(表示部10
f)に表示制御する。また、表示制御部110は、第1変数及び第2変数を変更可能にし
たマトリックスをGUI(Graphical User Interface)で表してもよい(例えば、後述す
図8等)。
【0065】
以上の処理により、ユーザにより指定された第1変数又は第2変数に応じて特定される
各重みWを、ユーザに対して可視化することが可能になる。ユーザは、第1変数又は第2
変数を変更することで、所望の各重みWを特定し、学習済みモデルの軽量化に適用するこ
とができる。
【0066】
出力部111は、第2学習部104により予測された各重みWを、他の情報処理装置2
0に出力してもよい。例えば、出力部111は、所定の学習データを送信した情報処理装
置20であって、適切な各重みWの取得を要求した情報処理装置20に対し、所定の学習
データに対応する適切な各重みWを出力してもよい。また、出力部111は、予測された
各重みWを記憶部112に出力してもよい。
【0067】
記憶部112は、学習に関するデータを記憶する。記憶部112は、所定のデータセッ
ト112aや、軽量化手法112bに関するデータ、上述した関係情報112c、訓練デ
ータ、学習途中のデータ、学習結果に関する情報などを記憶する。
【0068】
図6は、実施形態に係る情報処理装置20の処理ブロックの一例を示す図である。情報
処理装置20は、取得部201、学習部202、出力部203、及び記憶部204を備え
る。情報処理装置20は、汎用のコンピュータで構成されてもよい。
【0069】
取得部201は、他の情報処理装置(例えばサーバ10)により、分散学習の指示とと
もに、所定の重み学習モデルに関する情報や所定のデータセットに関する情報を取得して
もよい。所定の重み学習モデルに関する情報は、各重みを示す情報や、重み学習モデル自
体を示す情報でもよい。所定のデータセットに関する情報は、データセット自体でもよく
、所定のデータセットが格納された格納先を示す情報でもよい。
【0070】
学習部202は、所定の重み学習モデル202aに学習対象の所定のデータセットを入
力して学習を行う。学習部202は、学習後の学習結果をサーバ10にフィードバックす
るように制御する。学習結果は、例えば、学習性能などを含み、モデルサイズに関する情
報をさらに含んでもよい。学習部202は、学習対象のデータセットの種類、及び/又は
、解くべき問題に応じて、学習モデル202aを選択してもよい。
【0071】
また、所定の重み学習モデル202aは、ニューラルネットワークを含む学習モデルで
あり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学
習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の
少なくとも1つをベースに、各軽量化手法が重み付けされたモデルを含む。また、具体例
としては、所定の重み学習モデル202aのベースは、CNN(Convolutional Neural N
etwork)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、L
STM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VA
E(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、fl
ow-based生成モデル等のいずれかでもよい。
【0072】
出力部203は、分散学習の学習結果に関する情報を他の情報処理装置に出力する。例
えば、出力部203は、学習部202による学習結果に関する情報をサーバ10に出力す
る。例えば、分散学習の学習結果に関する情報は、上述したように、学習性能を含み、モ
デルサイズに関する情報をさらに含んでもよい。
【0073】
記憶部204は、学習部202に関するデータを記憶する。記憶部204は、所定のデ
ータセット204aや、サーバ10から取得したデータ、学習途中のデータ、学習結果に
関する情報などを記憶する。
【0074】
これにより、情報処理装置20は、他の情報処理装置(例えばサーバ10)からの指示
により、所定のデータセットに対して、所定の重み学習モデルを適用した分散学習を実行
し、学習結果をサーバ10にフィードバックすることが可能になる。
【0075】
また、出力部203は、所定のデータに関する情報を他の情報処理装置(例えばサーバ
10)に出力する。出力部203は、所定のデータ(例えば学習対象のデータセット)を
出力してもよいし、所定のデータの特徴情報を出力してもよい。
【0076】
取得部201は、他の情報処理装置から、所定のデータに対応する各重みWを取得して
もよい。取得される各重みWは、他の情報処理装置が予測モデルを利用して予測した、所
定のデータに適切な各重みである。
【0077】
学習部202は、取得された各重みを重み学習モデル202aに適用する。このとき、
重み学習モデル202aは、上述した学習に用いられた重み学習モデル22aに各重みを
適用してもよい。また、重み学習モデル202aは、他の情報処理装置10から取得され
る学習モデルでもよいし、自装置で管理する学習モデルでもよい。
【0078】
学習部202は、各重みが適用された重み学習モデル202aに、所定のデータを入力
して学習結果を取得する。この学習結果は、所定のデータに適した各重みを用いて学習し
た結果である。学習部202は、学習性能を保ちつつ適切に軽量化された学習モデルを使
用することができる。
<データ例>
図7は、実施形態に係る関係情報の一例を示す図である。図7に示す例では、関係情報
は、各第1変数(例、P11)及び各第2変数(例、P21)に対応する各重み(例、W
)を含む。第1変数P1nは、例えば学習精度であり、第2変数P2nは例えばモデル
サイズの圧縮率であり、変数としてはいずれかの変数だけでもよい。各重みW(P1n,
P2m)は、第第1変数P1n及び第2変数P2nの場合の重みである。
【0079】
図7に示す関係情報について、サーバ10は、所定の分散インスタンス数とハイパーパ
ラメータの組み合わせで分散学習を行わせた情報処理装置20から、又は、自装置の教師
あり学習の結果から、学習精度(第1変数)と、圧縮率(第2変数)とを取得する。サー
バ10は、取得された学習精度と圧縮率に、各重みWを対応付ける。サーバ10は、教師
あり学習により実測された学習精度と圧縮率とを取得するたびに行うことで、図7に示す
関係情報を生成することが可能になる。また、関係情報は、予測部105により予測され
た結果に基づいて、任意のデータセットに対する予測関係情報が生成されてもよい。
【0080】
<ユーザインタフェースの例>
図8は、実施形態に係る関係情報の表示例を示す図である。図8に示す例では、関係情
報に含まれる第1変数と第2変数とをスライドバーを用いて変更可能にする。ユーザが第
1変数又は第2変数に対してスライドバーを用いて移動させることで、例えば、移動後の
第1変数(P1n)又は第2変数(P2m)に対応する各重みWのセットW(P1n,P
2m)が、対応する点に関連付けて表示される。
【0081】
また、ユーザは、第1変数及び第2変数の二次元のグラフ上に所定の点を指定すること
で、指定された点に対応する学習精度と、圧縮率との組み合わせが表示されるようにして
もよい。
【0082】
これにより、サーバ10は、第1変数と第2変数との組み合わせに対応する、適切な各
重みWを表示可能になる。また、視覚的に対応関係をユーザに示しながら、これから分散
学習が行われる任意のデータセットに対して適切な分散インスタンス数やハイパーパラメ
ータを選択させるユーザインタフェースを提供することが可能になる。
【0083】
<動作>
図9は、実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートで
ある。図9に示す処理は、情報処理装置10により実行される。
【0084】
ステップS102において、情報処理装置10の取得部101は、所定の学習データを
取得する。所定の学習データは、記憶部112のデータセット112aから選択されても
よいし、他の装置からネットワークを介して受信された所定のデータでもよいし、ユーザ
操作に応じて入力された所定のデータを取得してもよい。
【0085】
ステップS104において、情報処理装置10の第1学習部102は、ニューラルネッ
トワークを用いる所定の学習モデルに対して、蒸留処理された第1学習モデル、枝刈り処
理された第2学習モデル、及び量子化処理された第3学習モデルの少なくとも2つのモデ
ルを含む各モデルがそれぞれ重み付けされた重み学習モデルに、所定のデータを入力して
機械学習を行う。
【0086】
ステップS106において、情報処理装置10の第2学習部104は、各モデルそれぞ
れの重みが変更された重み学習モデルごとに、所定の学習データを入力して機械学習が行
われた場合の学習結果を取得する。
【0087】
ステップS108において、情報処理装置10の第2学習部104は、変更された各重
みが重み付けされた各重み学習モデルと、各重み学習モデルで学習されたときの各学習結
果とを含む学習データを用いて、教師あり学習を行う。
【0088】
ステップS110において、情報処理装置10の第2学習部104は、教師あり学習に
より、任意の学習データを入力する場合に、各重みの組み合わせごとに学習結果を予測す
る予測モデルを生成する。
【0089】
以上の処理により、生成された予測モデルを利用することで、ニューラルネットワーク
を用いる学習済みモデルを、学習精度を保ちつつ、より適切に軽量化を行うことを可能に
する。
【0090】
図10は、実施形態に係るユーザが利用する情報処理装置20における処理の一例を示
すフローチャートである。ステップS202において、情報処理装置20の出力部203
は、学習対象の所定の学習データに関する情報を他の情報処理装置(例えばサーバ10)
に出力する。
【0091】
ステップS204において、情報処理装置20の取得部201は、他の情報処理装置(
例えばサーバ10)から、所定の学習データに対応する各重みを示す情報を取得する。
【0092】
ステップS206において、情報処理装置20の学習部202は、取得された各重みを
所定の重み学習モデル202aに適用する。
【0093】
ステップS208において、情報処理装置20の学習部202は、各重みが適用された
学習モデル202aに、所定の学習データを入力して学習結果を取得する。
【0094】
これにより、エッジ側の情報処理装置であっても、学習対象のデータに対して、適切な
軽量化を行った学習モデルを用いて学習を行うことで、学習精度を保つことができる。
【0095】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定
して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件
、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができ
る。また、第1学習部102を備える装置と、第2学習部104を備える装置とは別のコ
ンピュータでもよい。この場合、生成された第1学習部102により学習された学習結果
が、ネットワークを介して、第2学習部104を備える装置に送信されてもよい。
【0096】
また、情報処理装置10は、変更部103を必ずしも設けなくてもよい。例えば、情報
処理装置10は、任意の学習対象のデータと任意の重みのセットとの組の各学習性能を取
得して第2学習部104による学習を行ってもよい。
【符号の説明】
【0097】
10…情報処理装置、10a…CPU、10b…RAM、10c…ROM、10d…通
信部、10e…入力部、10f…表示部、101…取得部、102…第1学習部、102
a…学習モデル、103…変更部、104…第2学習部、104a…予測モデル、105
…予測部、106…判定部、107…設定部、108…関連付け部、109…特定部、1
10…表示制御部、111…出力部、112…記憶部、112a…データセット、112
b…軽量化手法、112c…関係情報、201…取得部、202…学習部、202a…学
習モデル、203…出力部、204…記憶部、204a…データセット
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10