(57)【要約】【課題】所定の制約条件の下で、機械学習モデル１０５を効率的に圧縮する。【解決手段】実施形態の機械学習モデル圧縮システムは、解析部と決定部と探索部とを備える。解析部は、データセットと、前記データセットによって学習された機械学習モデルとを用いて、前記機械学習モデルのレイヤーごとの固有値を解析する。決定部は、前記固有値に基づいて計算された第１の値が、所定の閾値を超える前記固有値の数に基づいて、圧縮モデルの探索範囲を決定する。探索部は、前記探索範囲に含まれる圧縮モデルの構造を決定するパラメータを選択し、前記パラメータを使用して前記圧縮モデルを生成し、所定の制約条件を満たす前記圧縮モデルを探索する。【選択図】図１
2020144482.tif 000002
【特許請求の範囲】
【請求項１】
データセットと、前記データセットによって学習された機械学習モデルとを用いて、前記機械学習モデルのレイヤーごとの固有値を解析する解析部と、
前記固有値に基づいて計算された第１の値が、所定の閾値を超える前記固有値の数に基づいて、圧縮モデルの探索範囲を決定する決定部と、
前記探索範囲に含まれる圧縮モデルの構造を決定するパラメータを選択し、前記パラメータを使用して前記圧縮モデルを生成し、所定の制約条件を満たす前記圧縮モデルを探索する探索部と、
を備える機械学習モデル圧縮システム。
【請求項２】
所定の制約条件は、前記圧縮モデルの評価値の制約条件を含み、
前記探索部は、所定の終了条件を満たすまで、前記パラメータの選択と、前記圧縮モデルの学習と、前記圧縮モデルの評価値の算出とを繰り返す、
請求項１に記載の機械学習モデル圧縮システム。
【請求項３】
前記決定部は、前記固有値を降順にソートし、ソートされた前記固有値が順次加算された第２の値を計算し、全固有値の総和に対する前記第２の値の比を示す累積寄与率を、前記第１の値としてレイヤーごとに算出し、前記累積寄与率が、所定の閾値を超える前記固有値の数を算出する、
請求項１に記載の機械学習モデル圧縮システム。
【請求項４】
前記決定部は、最大固有値に対する固有値の比を、前記第１の値としてレイヤーごとに算出し、前記最大固有値に対する固有値の比が、所定の閾値を超える前記固有値の数を算出する、
請求項１に記載の機械学習モデル圧縮システム。
【請求項５】
前記所定の閾値は、探索範囲の決定を補助する探索範囲決定補助情報として、決定部に入力される、
請求項１に記載の機械学習モデル圧縮システム。
【請求項６】
前記決定部は、前記所定の閾値を超える前記固有値の数を、前記探索範囲の上限に設定することにより、前記探索範囲を決定する、
請求項１に記載の機械学習モデル圧縮システム。
【請求項７】
前記所定の制約条件は、前記圧縮モデルの性能の制約条件と、前記圧縮モデルの性能以外の制約条件と、を含み、
前記探索部は、前記圧縮モデルの性能以外の制約条件を、前記圧縮モデルの性能の制約条件よりも先に判定し、前記圧縮モデルの性能以外の制約条件を満たさない場合、前記パラメータを新たに選択する、
請求項２に記載の機械学習モデル圧縮システム。
【請求項８】
前記所定の終了条件は、前記評価値が評価閾値を超えた場合、前記評価値の評価回数が回数閾値を超えた場合、又は、前記圧縮モデルの探索時間が時間閾値を超えた場合である、
請求項２に記載の機械学習モデル圧縮システム。
【請求項９】
前記評価値は、前記圧縮モデルの認識性能を示す値である、
請求項２に記載の機械学習モデル圧縮システム。
【請求項１０】
データセットと、前記データセットによって学習された機械学習モデルとを用いて、前記機械学習モデルのレイヤーごとの固有値を解析するステップと、
前記固有値に基づいて計算された第１の値が、所定の閾値を超える前記固有値の数に基づいて、圧縮モデルの探索範囲を決定するステップと、
前記探索範囲に含まれる圧縮モデルの構造を決定するパラメータを選択し、前記パラメータを使用して前記圧縮モデルを生成し、所定の制約条件を満たす前記圧縮モデルを探索するステップと、
を含む機械学習モデル圧縮方法。
【請求項１１】
コンピュータを、
データセットと、前記データセットによって学習された機械学習モデルとを用いて、前記機械学習モデルのレイヤーごとの固有値を解析する解析部と、
前記固有値に基づいて計算された第１の値が、所定の閾値を超える前記固有値の数に基づいて、圧縮モデルの探索範囲を決定する決定部と、
前記探索範囲に含まれる圧縮モデルの構造を決定するパラメータを選択し、前記パラメータを使用して前記圧縮モデルを生成し、所定の制約条件を満たす前記圧縮モデルを探索する探索部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は機械学習モデル圧縮システム、機械学習モデル圧縮方法及びプログラムに関する。
【背景技術】
【０００２】
機械学習、特にディープラーニングの応用が、自動運転、製造工程監視及び疾病予測など様々な分野で進んでいる。こうした中、機械学習モデルの圧縮技術が注目されている。例えば自動運転では、車載向け画像認識プロセッサのように演算能力が低くメモリ資源の少ないエッジデバイスでのリアルタイム動作が必須である。そのため、演算能力が低くメモリ資源の少ないエッジデバイスでは、小規模なモデルが求められる。したがって、エッジデバイスでの運用上の制約を満たしつつ、学習済みモデルの認識精度をなるべく維持したままモデルを圧縮する技術が必要とされている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｌｅａｒｎｉｎｇ  ｂｏｔｈ  Ｗｅｉｇｈｔｓ  ａｎｄ  Ｃｏｎｎｅｃｔｉｏｎｓ  ｆｏｒ  Ｅｆｆｉｃｉｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  ［Ｈａｎ  ２０１５］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、所定の制約条件の下で、機械学習モデルを効率的に圧縮することが困難だった。
【課題を解決するための手段】
【０００５】
実施形態の機械学習モデル圧縮システムは、解析部と決定部と探索部とを備える。解析部は、データセットと、前記データセットによって学習された機械学習モデルとを用いて、前記機械学習モデルのレイヤーごとの固有値を解析する。決定部は、前記固有値に基づいて計算された第１の値が、所定の閾値を超える前記固有値の数に基づいて、圧縮モデルの探索範囲を決定する。探索部は、前記探索範囲に含まれる圧縮モデルの構造を決定するパラメータを選択し、前記パラメータを使用して前記圧縮モデルを生成し、所定の制約条件を満たす前記圧縮モデルを探索する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態の機械学習モデル圧縮システムの機能構成の例を示す図。
【図２】第１実施形態の機械学習モデル圧縮方法の例を示すフローチャート。
【図３】第１実施形態の探索部の機能構成の例を示す図。
【図４】第１及び第２実施形態のステップＳ２０４の詳細フローを示すフローチャート。
【図５】第２実施形態の探索部の機能構成の例を示す図。
【図６】第３実施形態の探索部の機能構成の例を示す図。
【図７】第３及び第４実施形態のステップＳ２０４の詳細フローを示すフローチャート。
【図８】第４実施形態の探索部の機能構成の例を示す図。
【図９】第１乃至第４実施形態の機械学習モデル圧縮システムに使用されるコンピュータのハードウェア構成の例を示す図。
【図１０】第１乃至第４実施形態の機械学習モデル圧縮システムの装置構成の例を示す図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、機械学習モデル圧縮システム、機械学習モデル圧縮方法及びプログラムの実施形態を詳細に説明する。
【０００８】
（第１実施形態）
はじめに、第１実施形態の機械学習モデル圧縮システムについて説明する。
【０００９】
［機能構成の例］
図１は第１実施形態の機械学習モデル圧縮システム１０１の機能構成の例を示す図である。第１実施形態の機械学習モデル圧縮システム１０１は、解析部１０２、決定部１０３及び探索部１０４を備える。
【００１０】
解析部１０２は、学習済みの機械学習モデル１０５と、機械学習モデル１０５の学習に用いられたデータセット１０６とを受け付ける。解析部１０２は、データセット１０６と、データセット１０６によって学習された機械学習モデル１０５とを用いて、機械学習モデル１０５のレイヤーごとの固有値１０７を解析する。具体的には、解析部１０２は、機械学習モデル１０５の推論（順伝播）の結果得られるレイヤーごとのグラム行列を解析して、当該グラム行列の固有値１０７を出力する。
【００１１】
決定部１０３は、固有値１０７に基づいて計算された値（第１の値）が、所定の閾値を超える固有値１０７の数に基づいて、圧縮モデルの探索範囲１０９を決定する。
【００１２】
固有値１０７の数の算出方法の例について具体的に説明する。例えば、決定部１０３は、固有値１０７を降順にソートし、ソートされた固有値１０７が順次加算された値（第２の値）を計算し、全固有値の総和に対する第２の値の比を示す累積寄与率を、上述の第１の値としてレイヤーごとに算出する。そして、決定部１０３は、累積寄与率が、所定の閾値（Ｔｈ１）を超える固有値１０７の数を算出する。
【００１３】
また例えば、決定部１０３は、値が最大である固有値１０７（最大固有値）に対する固有値１０７の比を、上述の第１の値としてレイヤーごとに算出する。そして、決定部１０３は、最大固有値に対する固有値１０７の比が、所定の閾値（Ｔｈ２）を超える固有値１０７の数を算出する。
【００１４】
なお、所定の閾値は、例えば、探索範囲の決定を補助する探索範囲決定補助情報１０８として、決定部１０３に入力されてもよい。また例えば、所定の閾値は、機械学習モデル圧縮システム１０１の内部に、デフォルト値として予め保持されていてもよい。
【００１５】
探索部１０４は、探索範囲１０９に含まれる圧縮モデル１１１の構造を決定するパラメータ（例えば、ハイパーパラメータ）を選択し、当該パラメータを使用して圧縮モデル１１１を生成する。探索部１０４は、所定の制約条件１１０を満たす前記圧縮モデル１１１を探索する。
【００１６】
所定の制約条件１１０とは、対象となるデバイスで圧縮モデル１１１を動作させる場合に満たさなければならない制約の集合を示す。所定の制約条件１１０は、例えば推論速度（処理時間）の上限、使用メモリ量の上限、及び、圧縮モデル１１１のバイナリサイズなどである。また例えば、所定の制約条件１１０は、圧縮モデル１１１の評価値の制約条件を含む。評価値は、例えば圧縮モデル１１１の認識性能を示す値である。
【００１７】
探索部１０４は、所定の終了条件を満たすまで、パラメータの選択と、圧縮モデル１１１の学習と、圧縮モデル１１１の評価値の算出とを繰り返す。
【００１８】
［機械学習モデル圧縮方法の例］
図２は第１実施形態の機械学習モデル圧縮方法の例を示すフローチャートである。
【００１９】
はじめに、解析部１０２が、データセット１０６と、データセット１０６によって学習された機械学習モデル１０５とを用いて、機械学習モデル１０５の推論（順伝播）の結果得られるレイヤーごとのグラム行列の固有値１０７を出力する（ステップＳ２０１）。
【００２０】
次に、決定部１０３が、ステップＳ２０１の処理により出力された固有値１０７と、探索範囲決定補助情報１０８とを受け付けると、圧縮モデル１１１の探索範囲１０９を出力する。具体的には、決定部１０３は、レイヤーごとに解析された固有値１０７について、上述の累積寄与率が所定の閾値（Ｔｈ１）を上回った時点での加算個数Ｃｎｔを求める（ステップＳ２０２）。Ｃｎｔが、データセット１０６に対して本質的に必要なレイヤーごとのノード数（ＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）の場合はチャネル数）となる。また、ステップＳ２０２の処理の場合、上述の探索範囲決定補助情報１０８は、所定の閾値（Ｔｈ１）である。
【００２１】
なお、ステップＳ２０２では、最大固有値に対する固有値１０７の比をレイヤーごとに算出し、最大固有値に対する固有値１０７の比が、所定の閾値（Ｔｈ２）を上回る固有値１０７の数をＣｎｔとしてもよい。この場合は、上述の探索範囲決定補助情報１０８は、所定の閾値（Ｔｈ２）である。
【００２２】
次に、決定部１０３が、ステップＳ２０３の処理により計算された累積寄与率が、所定の閾値（Ｔｈ１）を超える固有値１０７の数Ｃｎｔに基づいて、圧縮モデル１１１の探索範囲１０９を決定する（ステップＳ２０３）。具体的には、決定部１０３は、Ｃｎｔを、圧縮モデル１１１を探索する際のノード数（又はチャネル数）の上限に設定し、探索範囲１０９として出力する。探索される圧縮モデル１１１が、探索範囲１０９に限定されることにより、探索時間の短縮を図ることができる。なお、探索されるノード数（又はチャネル数）を、例えば２のべき乗などに限定することで、更なる探索時間の短縮を図ってもよい。
【００２３】
次に、探索部１０４は、データセット１０６と、ステップＳ２０３の処理により決定された探索範囲１０９と、上述の所定の制約条件１１０とを受け付けると、所定の制約条件１１０を満たす圧縮モデル１１１を、探索範囲１０９から探索する（Ｓ２０４）。
【００２４】
次に、探索部１０４は、学習済みの圧縮モデル１１１を出力する場合（ステップＳ２０５，Ｙｅｓ）、ステップＳ２０４の処理により探索された圧縮モデル１１１を、データセット１０６を使用して十分に学習させ（ステップＳ２０６）、学習済みの圧縮モデル１１１として出力する。
【００２５】
なお、探索部１０４から出力される圧縮モデル１１１は未学習の圧縮モデルであってもよい（ステップＳ２０５，Ｎｏ）。また、探索部１０４から出力される情報は、例えば圧縮モデル１１１のノード数（又はチャネル数）の情報を含むハイパーパラメータであってもよい。また例えば、探索部１０４から出力される情報は、未学習の圧縮モデル１１１、学習済みの圧縮モデル１１１、及び、ハイパーパラメータの２つ以上の組み合わせであってもよい。
【００２６】
次に、図３及び図４を参照して、上述の探索部１０４の詳細な動作方法について説明する。
【００２７】
図３は第１実施形態の探索部１０４の機能構成の例を示す図である。図４は第１実施形態のステップＳ２０４の詳細フローを示すフローチャートである。
【００２８】
第１実施形態の探索部１０４は、選択部３０１、生成部３０２、制約判定部３０３、評価部３０４及び終了判定部３０５を備える。
【００２９】
はじめに、選択部３０１は、探索範囲１０９に含まれる圧縮モデル１１１の構造を決定するパラメータとして、ノード数（又はチャネル数）の情報を含むハイパーパラメータ３０６を選択し、当該ハイパーパラメータ３０６を出力する（ステップＳ４０１）。
【００３０】
なお、圧縮モデル１１１（圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６）の具体的な選択方法は任意でよい。例えば、選択部３０１は、ベイズ推定や遺伝的アルゴリズムを用いて、認識性能がより高くなると期待される圧縮モデル１１１を選択してもよい。また例えば、選択部３０１は、ランダム探索やグリッド探索を用いて圧縮モデル１１１を選択してもよい。また例えば、選択部３０１は、複数の選択方法を組み合わせて、より最適な圧縮モデル１１１を選択してもよい。
【００３１】
次に、生成部３０２が、ステップＳ４０１により選択されたハイパーパラメータ３０６が表す圧縮モデル１１１を生成し、当該圧縮モデル１１１を出力する（ステップＳ４０２）。
【００３２】
次に、制約判定部３０３が、ステップＳ４０２の処理により生成された圧縮モデル１１１が、所定の制約条件１１０を満たすか否かを判定する（ステップＳ４０３）。
【００３３】
所定の制約条件１１０を満たさない場合（ステップＳ４０３，Ｎｏ）、制約判定部３０３は、所定の制約条件１１０を満たさないことを示す制約外フラグ３０７を選択部３０１に入力し、処理はステップＳ４０１に戻る。所定の制約条件１１０を満たさない場合は、後述のステップＳ４０４の処理を行わないため、圧縮モデル１１１の探索を高速化することができる。選択部３０１は、制約判定部３０３から制約外フラグ３０７を受け付けると、次に処理される圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６を、選択する（ステップＳ４０１）。
【００３４】
一方、所定の制約条件１１０を満たす場合（ステップＳ４０３，Ｙｅｓ）、制約判定部３０３は、ステップＳ４０２の処理により生成された圧縮モデル１１１を、評価部３０４に入力する。
【００３５】
次に、評価部３０４が、データセット１０６を用いて、圧縮モデル１１１を所定の期間学習させて、圧縮モデル１１１の認識性能を測定し、認識性能を示す値を評価値３０８として出力する（ステップＳ４０４）。
【００３６】
なお、探索時間を削減するため、ステップＳ４０４の処理での学習期間は、例えば上述のステップＳ２０６（図２参照）の処理での学習期間より短く設定される。また、評価部３０４が、圧縮モデル１１１の学習状況から、それほど高い認識性能が得られそうにないと判断した場合に学習を打ち切ってもよい。具体的には、評価部３０４は、例えば学習時間に応じた認識率の上昇率を評価し、当該上昇率が閾値以下の場合、学習を打ち切ってもよい。これにより圧縮モデル１１１の探索を効率化することができる。
【００３７】
次に、終了判定部３０５は、あらかじめ設定された所定の終了条件に基づいて探索の終了を判定する（ステップＳ４０５）。所定の終了条件は、例えば評価値３０８が評価閾値を超えた場合である。また例えば、所定の終了条件は、評価部３０４での評価回数（評価値３０８の評価回数）が回数閾値を超えた場合である。また例えば、所定の終了条件は、圧縮モデル１１１の探索時間が時間閾値を超えた場合である。また例えば、所定の終了条件は、複数の終了条件を組み合わせてもよい。
【００３８】
終了判定部３０５は、あらかじめ設定された終了条件に応じて、ハイパーパラメータ３０６、当該ハイパーパラメータ３０６に対応する評価値３０８、ループ回数及び探索経過時間などのうち、必要な情報を内部に保持しておく。
【００３９】
所定の終了条件を満たさない場合（ステップＳ４０５，Ｎｏ）、終了判定部３０５は、評価値３０８を選択部３０１に入力し、処理はステップＳ４０１に戻る。選択部３０１は、終了判定部３０５から上述の評価値３０８を受け付けると、次に処理される圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６を選択する（ステップＳ４０１）。
【００４０】
一方、所定の終了条件を満たす場合（ステップＳ４０５，Ｙｅｓ）、終了判定部３０５は、例えば評価値３０８が最も高かった圧縮モデル１１１のハイパーパラメータ３０６を、選択モデルパラメータ３０９として、評価部３０４に入力する。評価部３０４は、選択モデルパラメータ３０９を受け付けると、上述のステップＳ２０５（図２参照）から処理を継続する。
【００４１】
以上、説明したように、第１実施形態の機械学習モデル圧縮システム１０１では、解析部１０２が、データセット１０６と、データセット１０６によって学習された機械学習モデル１０５とを用いて、機械学習モデル１０５のレイヤーごとの固有値１０７を解析する。決定部１０３が、固有値１０７に基づいて計算された値（第１の値）が、所定の閾値を超える固有値１０７の数に基づいて、圧縮モデル１１１の探索範囲１０９を決定する。そして、探索部１０４が、探索範囲１０９に含まれる圧縮モデル１１１の構造を決定するパラメータを選択し、当該パラメータを使用して圧縮モデル１１１を生成し、所定の制約条件１１０を満たす圧縮モデル１１１を探索する。
【００４２】
これにより第１実施形態によれば、所定の制約条件の下で、機械学習モデル１０５を効率的に圧縮することができる。例えば、処理時間及びメモリ使用量等の制約と、認識精度とのバランスを保ちながら、機械学習モデル１０５を効率的に圧縮することができる。
【００４３】
具体的には、例えば、学習済みの機械学習モデル１０５のグラム行列の固有値１０７を解析することにより、対象となるデータセット１０６の認識に本質的に必要なノード数（又はチャネル数）を見積もって機械学習モデル１０５の探索範囲１０９を決定することができる。これにより、例えば、所定の制約条件１１０の下で認識精度を最大化する圧縮モデル１１１を探索することができる。
【００４４】
また、第１実施形態によれば、機械学習についての専門的な知識や経験を有しないユーザであっても適切な探索範囲１０９を設定でき、車載向け画像認識プロセッサや携帯端末、ＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）などの非力なエッジデバイスで動作する圧縮モデル１１１を効率的に探索することが可能となる。
【００４５】
（第２実施形態）
次に第２実施形態について説明する。第２実施形態の説明では、第１実施形態と同様の説明については省略する。第２実施形態は、終了判定部３０５ではなく、選択部３０１で終了判定を行う部分が第１実施形態と異なる。
【００４６】
図５は第２実施形態の探索部１０４−２の機能構成の例を示す図である。第２実施形態の探索部１０４−２は、選択部３０１、生成部３０２、制約判定部３０３及び評価部３０４を備える。
【００４７】
終了判定に使用される情報は、あらかじめ設定された所定の終了条件に応じて選択部３０１の内部で保持される。選択部３０１は、評価部３０４から評価値３０８を受け付けると、終了判定を行う。所定の終了条件を満たさない場合、選択部３０１は、次に処理される圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６を選択する。終了条件を満たす場合、選択部３０１は、例えば評価値３０８が最も高かった圧縮モデル１１１のハイパーパラメータ３０６を、選択モデルパラメータ３０９として、評価部３０４に入力する。評価部３０４は、選択モデルパラメータ３０９を受け付けると、上述のステップＳ２０５（図２参照）から処理を継続する。
【００４８】
以上、説明したように、第２実施形態によれば、終了判定部３０５の機能を選択部３０１に持たせることにより、終了判定部３０５を備えていない場合でも、第１実施形態と同様の効果を得ることができる。
【００４９】
（第３実施形態）
次に第３実施形態について説明する。第３実施形態の説明では、第１実施形態と同様の説明については省略する。第３実施形態は、所定の制約条件１１０として圧縮モデル１１１の認識性能の下限が設定された場合について説明する。
【００５０】
図６は第３実施形態の探索部１０４−３の機能構成の例を示す図である。図７は第３実施形態のステップＳ２０４の詳細フローを示すフローチャートである。
【００５１】
第３実施形態の探索部１０４−３は、選択部３０１、生成部３０２、制約判定部３０３、評価部３０４及び終了判定部３０５を備える。
【００５２】
ステップＳ５０１及びＳ５０２の説明は、ステップＳ４０１及び４０２の説明と同じなので省略する。
【００５３】
制約判定部３０３が、所定の制約条件１１０に、性能以外の制約条件が含まれているか否かを判定する（ステップＳ５０３）。性能以外の制約条件は、例えば圧縮モデル１１１のバイナリサイズ、メモリ使用量、及び、推論速度（推論にかかる処理時間）等である。性能の制約条件は、例えば認識性能を示す値（例えば、画像認識における認識率等）の下限である。
【００５４】
要求される性能を満たすか否かを判定するためには、ステップＳ２０６（図２参照）と同程度の十分な期間、圧縮モデル１１１を学習させる必要があるため時間がかかる。そこで、制約判定部３０３は、所定の制約条件１１０に含まれる制約条件のうち、性能以外の制約条件を先に判定する。
【００５５】
性能以外の制約条件がある場合（ステップＳ５０３、Ｙｅｓ）、制約判定部３０３は、性能以外の制約条件を満たすか否かを判定する（ステップＳ５０４）。
【００５６】
性能以外の制約条件を満たさない場合（ステップＳ５０４，Ｎｏ）、制約判定部３０３は、制約外フラグ３０７を選択部３０１に入力し、処理はステップＳ５０１に戻る。
【００５７】
性能以外の制約条件を満たす場合（ステップＳ５０４，Ｙｅｓ）、制約判定部３０３は、圧縮モデル１１１を評価部３０４に入力する。そして、評価部３０４が、データセット１０６を用いて、圧縮モデル１１１を所定の期間学習させて、圧縮モデル１１１の認識性能を測定し、認識性能を示す値を評価値３０８として出力する（ステップＳ５０５）。
【００５８】
次に、評価部３０４は、評価値３０８を制約判定部３０３に入力し、制約判定部３０３が、認識性能が所定の制約条件１１０を満たすか否かを判定する（ステップＳ５０６）。
【００５９】
認識性能が所定の制約条件１１０を満たさない場合（ステップＳ５０６，Ｎｏ）、制約判定部３０３が、制約外フラグ３０７を選択部３０１に入力し、処理はステップＳ５０１に戻る。
【００６０】
認識性能が所定の制約条件１１０を満たす場合（ステップＳ５０６，Ｙｅｓ）、制約判定部３０３が、圧縮モデル１１１が所定の制約条件１１０を満たすことを示す制約適合フラグ３１０を評価部３０４に入力する。評価部３０４は、制約判定部３０３から制約適合フラグ３１０を受け付けると、評価値３０８を終了判定部３０５に入力する。
【００６１】
ステップＳ５０７の説明は、ステップＳ４０５の説明と同じなので省略する。
【００６２】
以上、説明したように、第３実施形態では、制約判定部３０３が、所定の制約条件１１０に含まれる制約条件のうち、性能以外の制約条件を先に判定する。そして、性能以外の制約条件を満たさない場合は、選択部３０１が、次に処理される圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６を新たに選択する。これにより第３実施形態によれば、圧縮モデル１１１の探索をより高速化することができる。
【００６３】
（第４実施形態）
次に第４実施形態について説明する。第４実施形態の説明では、第３実施形態と同様の説明については省略する。第４実施形態は、終了判定部３０５ではなく、選択部３０１で終了判定を行う部分が第３実施形態と異なる。
【００６４】
図８は第４実施形態の探索部１０４−４の機能構成の例を示す図である。第４実施形態の探索部１０４−４は、選択部３０１、生成部３０２、制約判定部３０３及び評価部３０４を備える。
【００６５】
終了判定に使用される情報は、あらかじめ設定された所定の終了条件に応じて選択部３０１の内部で保持される。評価部３０４は、制約判定部３０３から制約適合フラグ３１０を受け付けると、評価値３０８を選択部３０１に入力する。選択部３０１は、評価部３０４から評価値３０８を受け付けると、終了判定を行う。所定の終了条件を満たさない場合、選択部３０１は、次に処理される圧縮モデル１１１のモデル構造を決定するハイパーパラメータ３０６を選択する。所定の終了条件を満たす場合、選択部３０１は、例えば評価値３０８が最も高かった圧縮モデル１１１のハイパーパラメータ３０６を、選択モデルパラメータ３０９として、評価部３０４に入力する。評価部３０４は、選択モデルパラメータ３０９を受け付けると、上述のステップＳ２０５（図２参照）から処理を継続する。
【００６６】
以上、説明したように、第４実施形態によれば、終了判定部３０５の機能を選択部３０１に持たせることにより、終了判定部３０５を備えていない場合でも、第３実施形態と同様の効果を得ることができる。
【００６７】
最後に、第１乃至第４実施形態の機械学習モデル圧縮システム１０１に使用されるコンピュータのハードウェア構成の例について説明する。
【００６８】
［ハードウェア構成の例］
図９は第１乃至第４実施形態の機械学習モデル圧縮システム１０１に使用されるコンピュータのハードウェア構成の例を示す図である。
【００６９】
機械学習モデル圧縮システム１０１に使用されるコンピュータは、制御装置５０１、主記憶装置５０２、補助記憶装置５０３、表示装置５０４、入力装置５０５及び通信装置５０６を備える。制御装置５０１、主記憶装置５０２、補助記憶装置５０３、表示装置５０４、入力装置５０５及び通信装置５０６は、バス５１０を介して接続されている。
【００７０】
制御装置５０１は、補助記憶装置５０３から主記憶装置５０２に読み出されたプログラムを実行する。主記憶装置５０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及び、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリである。補助記憶装置５０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、及び、メモリカード等である。
【００７１】
表示装置５０４は表示情報を表示する。表示装置５０４は、例えば液晶ディスプレイ等である。入力装置５０５は、コンピュータを操作するためのインタフェースである。入力装置５０５は、例えばキーボードやマウス等である。コンピュータがスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示装置５０４及び入力装置５０５は、例えばタッチパネルである。通信装置５０６は、他の装置と通信するためのインタフェースである。
【００７２】
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、メモリカード、ＣＤ−Ｒ及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【００７３】
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【００７４】
またコンピュータで実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７５】
コンピュータで実行されるプログラムは、上述の機械学習モデル圧縮システム１０１の機能構成（機能ブロック）のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置５０１が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置５０２上にロードされる。すなわち上記各機能ブロックは主記憶装置５０２上に生成される。
【００７６】
なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェアにより実現してもよい。
【００７７】
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち１つを実現してもよいし、各機能のうち２つ以上を実現してもよい。
【００７８】
また機械学習モデル圧縮システム１０１を実現するコンピュータの動作形態は任意でよい。例えば、機械学習モデル圧縮システム１０１を１台のコンピュータにより実現してもよい。また例えば、機械学習モデル圧縮システム１０１を、ネットワーク上のクラウドシステムとして動作させてもよい。
【００７９】
［装置構成の例］
図１０は第１乃至第４実施形態の機械学習モデル圧縮システム１０１の装置構成の例を示す図である。図１０の例では、機械学習モデル圧縮システム１０１は、複数のクライアント装置１ａ〜１ｚ、ネットワーク２及びサーバ装置３を備える。
【００８０】
クライアント装置１ａ〜１ｚを区別する必要がない場合は、単にクライアント装置１という。なお、機械学習モデル圧縮システム１０１内のクライアント装置１の数は任意でよい。クライアント装置１は、例えば、パソコン及びスマートフォンなどのコンピュータである。複数のクライアント装置１ａ〜１ｚとサーバ装置３とは、ネットワーク２を介して互いに接続されている。ネットワーク２の通信方式は、有線方式であっても無線方式であってもよく、また、両方を組み合わせてもよい。
【００８１】
例えば、機械学習モデル圧縮システム１０１の解析部１０２、決定部１０３及び探索部１０４をサーバ装置３により実現し、ネットワーク２上のクラウドシステムとして動作させてもよい。例えば、クライアント装置１が、ユーザから機械学習モデル１０５及びデータセット１０６を受け付け、当該機械学習モデル１０５及びデータセット１０６をサーバ装置３へ送信してもよい。そして、サーバ装置３が、探索部１０４により探索された圧縮モデル１１１をクライアント装置１に送信してもよい。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１  クライアント装置
２  ネットワーク
３  サーバ装置
１０１  機械学習モデル圧縮システム
１０２  解析部
１０３  決定部
１０４  探索部
３０１  選択部
３０２  生成部
３０３  制約判定部
３０４  評価部
３０５  終了判定部
５０１  制御装置
５０２  主記憶装置
５０３  補助記憶装置
５０４  表示装置
５０５  入力装置
５０６  通信装置
５１０  バス
【図１】
2020144482.tif 000003
【図２】
2020144482.tif 000004
【図３】
2020144482.tif 000005
【図４】
2020144482.tif 000006
【図５】
2020144482.tif 000007
【図６】
2020144482.tif 000008
【図７】
2020144482.tif 000009
【図８】
2020144482.tif 000010
【図９】
2020144482.tif 000011
【図１０】
2020144482.tif 000012