(57)【要約】【課題】要求されるハードウェア性能要件を満たす機械学習モデルを効率よく決定することができる情報処理方法などを提供する。【解決手段】プロセッサを用いて、機械学習モデルの構成を決定し、決定された構成の機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、第２判定において学習済みモデルが第２性能要件を満たすと判定された場合、第１性能要件及び第２性能要件を満たすことを示す情報を出力し、第１判定において第１性能要件を満たさないと判定された場合、機械学習モデルの構成を変更し、変更した構成の機械学習モデルが第１性能要件を満たすかの第１判定を実行する。【選択図】図６
2019096285.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを用いて、
機械学習モデルの構成を決定し、
決定された前記構成の前記機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、
前記第１判定において前記第１性能要件を満たすと判定された場合、
前記第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、
学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、
前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第１性能要件及び前記第２性能要件を満たすことを示す情報を出力し、
前記第１判定において前記第１性能要件を満たさないと判定された場合、
前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
情報処理方法。
【請求項２】
前記第２判定において前記第２性能要件を満たさないと判定された場合、前回実行した学習とは異なるパラメータで前記学習を実行し、
前記異なるパラメータでの前記学習により得られた学習済みモデルが前記第２性能要件を満たすかの前記第２判定を実行し、
前記第２性能要件を満たさないと判定された回数が第１の回数以上である場合、前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
請求項１に記載の情報処理方法。
【請求項３】
さらに、
前記第２判定において前記第２性能要件を満たすと判定された前記学習済みモデルに対して軽量化処理を実行し、
軽量化処理により得られた軽量化モデルが、ハードウェア性能に対する要件である第３性能要件を満たすかの第３判定を実行し、
前記第３判定において前記第３性能要件を満たすと判定された場合、前記第３性能要件を満たすことを示す情報を出力する
請求項１または２に記載の情報処理方法。
【請求項４】
前記第３性能要件で規定されるハードウェア性能の条件は、前記第１性能要件で規定されるハードウェア性能の条件より厳しい
請求項３に記載の情報処理方法。
【請求項５】
前記第３判定において前記第３性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第１の条件を満たす場合、前回実行した軽量化処理とは異なるパラメータで前記軽量化処理を実行し、
前記異なるパラメータでの前記軽量化処理により得られた軽量化モデルが前記第３性能要件を満たすかの前記第３判定を実行する
請求項３または４に記載の情報処理方法。
【請求項６】
（ｉ）前記第３判定において前記第３性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第１の条件を満たさない場合、または、（ｉｉ）前記第３性能要件を満たさないと判定された回数が第２の回数以上である場合、
前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
請求項３から５のいずれか１項に記載の情報処理方法。
【請求項７】
前記第３判定において前記第３性能要件を満たすと判定された前記軽量化モデルが、実機のハードウェア性能に対する要件である第４性能要件を満たすかの第４判定を実行し、
前記第４判定において前記第４性能要件を満たすと判定された場合、前記第４性能要件を満たすことを示す情報を出力する
請求項３から６のいずれか１項に記載の情報処理方法。
【請求項８】
前記第４判定において前記第４性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第２の条件を満たす場合、前回実行した軽量化とは異なるパラメータで前記軽量化を実行する
請求項７に記載の情報処理方法。
【請求項９】
（ｉ）前記第４判定において前記第４性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第２の条件を満たさない場合、または、（ｉｉ）前記第４性能要件を満たさないと判定された回数が第３の回数以上である場合、
前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
請求項７または８に記載の情報処理方法。
【請求項１０】
前記第４判定において前記第４性能要件を満たすと判定された前記軽量化モデルが、機械学習モデルの出力の評価値に対する要件である第５性能要件を満たすかの第５判定を実行し、
前記第５性能要件を満たすと判定された場合、前記第５性能要件を満たすことを示す情報を出力する
請求項７から９のいずれか１項に記載の情報処理方法。
【請求項１１】
前記第５判定において前記第５性能要件を満たさないと判定された前記軽量化モデルの評価値が第３の条件を満たす場合、前回実行した軽量化とは異なるパラメータの前記軽量化を実行する
請求項１０に記載の情報処理方法。
【請求項１２】
（ｉ）前記第５判定において前記第５性能要件を満たさないと判定された前記軽量化モデルの評価値が第３の条件を満たさない場合、または、（ｉｉ）前記第５性能要件を満たさないと判定された回数が第４の回数以上である場合、
前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
請求項１０または１１に記載の情報処理方法。
【請求項１３】
プロセッサを備える情報処理システムであって、
前記プロセッサは、
機械学習モデルの構成を決定し、
決定された前記構成の前記機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、
前記第１判定において前記第１性能要件を満たすと判定された場合、
前記第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、
学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、
前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第１性能要件及び前記第２性能要件を満たすことを示す情報を出力し、
前記第１判定において前記第１性能要件を満たさないと判定された場合、
前記機械学習モデルの構成を変更し、
変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械学習に用いる機械学習モデルを決定する情報処理方法および情報処理システムに関する。
【背景技術】
【０００２】
特許文献１には、ニューラルネットワークを用いた学習において、遺伝的アルゴリズムを用いることでニューラルネットワークのユニット数を変化させる処理を行い、かつ、当該学習の打ち切りを行う学習方法について開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−９７８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、機械学習結果を利用するハードウェアの性能を考慮していないため、当該ハードウェアの性能要件を満たす機械学習モデルを効率よく決定することが難しい。
【０００５】
そこで本開示では、要求されるハードウェアの性能要件を満たす機械学習モデルを効率よく決定することができる情報処理方法および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一態様に係る情報処理方法は、プロセッサを用いて、機械学習モデルの構成を決定し、決定された前記構成の前記機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、前記第１判定において前記第１性能要件を満たすと判定された場合、前記第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第１性能要件及び前記第２性能要件を満たすことを示す情報を出力し、前記第１判定において前記第１性能要件を満たさないと判定された場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する。
【０００７】
なお、これらの全般的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【０００８】
本開示に係る情報処理方法などは、要求されるハードウェアの性能要件を満たす機械学習モデルを効率よく決定することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態に係る情報処理システムの概略を説明するための図である。
【図２】図２は、実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図３】図３は、入出力装置のハードウェア構成の一例を示すブロック図である。
【図４】図４は、情報処理システムの機能構成の一例を示すブロック図である。
【図５】図５は、情報処理システムにおける情報処理方法の一例を示すフローチャートである。
【図６】図６は、実施の形態に係る決定処理の詳細の一例を示すフローチャートである。
【図７】図７は、実施の形態に係る決定処理の詳細の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（本発明の基礎となった知見）
本発明者は、「背景技術」の欄において記載した、学習方法に関し、以下の問題が生じることを見出した。
【００１１】
近年、ＡＤＡＳ（Advanced Driver Assistance System：先進運転支援システム）または自動運転システムの安全性を担保するために、例えばディープラーニングのような機械学習を用いた処理を、車載システムに適用することが必要とされている。また、このような機械学習を用いた処理を実行するプロセッサには、車載ＥＣＵ（Electronic Control Unit）として利用するために、厳しい消費電力、処理速度および認識精度の制約を満たすことが求められる。
【００１２】
しかしながら、車載ＥＣＵには、自動車の車種、グレードなどに応じて、多くの異なる性能のプロセッサが用いられる。このため、異なるプロセッサに対して、上述した制約を満たす機械学習モデルを効率的に決定することは難しいという課題がある。
【００１３】
このような問題を解決するために、本開示の一態様に係る情報処理方法は、プロセッサを用いて、機械学習モデルの構成を決定し、決定された前記構成の前記機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、前記第１判定において前記第１性能要件を満たすと判定された場合、前記第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第１性能要件及び前記第２性能要件を満たすことを示す情報を出力し、前記第１判定において前記第１性能要件を満たさないと判定された場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する。
【００１４】
これによれば、第１判定において第１性能要件を満たすまで、第２判定を実行せずに機械学習モデルの構成を変更するため、第２判定を実行する回数を低減することができる。このため、要求されるハードウェアの性能要件を満たす機械学習モデルを効率よく決定することができる。また、プロセッサにかかる処理量および消費エネルギーを低減することができる。
【００１５】
また、前記第２判定において前記第２性能要件を満たさないと判定された場合、前回実行した学習とは異なるパラメータで前記学習を実行し、前記異なるパラメータでの前記学習により得られた学習済みモデルが前記第２性能要件を満たすかの前記第２判定を実行し、前記第２性能要件を満たさないと判定された回数が第１の回数以上である場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行してもよい。
【００１６】
これによれば、第１の回数以上、第２性能要件を満たさないと判定されると機械学習モデルの構成を変更するため、学習させる回数を低減することができる。このため、効率よく機械学習モデルを決定することができる。
【００１７】
また、さらに、前記第２判定において前記第２性能要件を満たすと判定された前記学習済みモデルに対して軽量化処理を実行し、軽量化処理により得られた軽量化モデルが、ハードウェア性能に対する要件である第３性能要件を満たすかの第３判定を実行し、前記第３判定において前記第３性能要件を満たすと判定された場合、前記第３性能要件を満たすことを示す情報を出力してもよい。
【００１８】
これによれば、第１判定において第１性能要件を満たすまで、第２判定、軽量化処理および第３判定を実行せずに機械学習モデルの構成を変更する。このため、第２判定、軽量化処理および第３判定を実行する回数を低減することができる。
【００１９】
また、前記第３性能要件で規定されるハードウェア性能の条件は、前記第１性能要件で規定されるハードウェア性能の条件より厳しくてもよい。
【００２０】
このため、第１性能要件を満たさないと判定され、機械学習モデルの構成の決定と第１判定とが実行される回数を低減することができる。また、第３判定においてより厳しい判定を行うことで、例えば、第３判定の次に行う処理を実行する回数を低減させることができる。
【００２１】
また、前記第３判定において前記第３性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第１の条件を満たす場合、前回実行した軽量化処理とは異なるパラメータで前記軽量化処理を実行し、前記異なるパラメータでの前記軽量化処理により得られた軽量化モデルが前記第３性能要件を満たすかの前記第３判定を実行してもよい。
【００２２】
これによれば、第３性能要件を満たさない場合であっても第３性能要件に近い場合には、パラメータを変更して軽量化処理を実行する。このため、第３性能要件を満たす軽量化モデルを効率よく見つけることができる。
【００２３】
また、（ｉ）前記第３判定において前記第３性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第１の条件を満たさない場合、または、（ｉｉ）前記第３性能要件を満たさないと判定された回数が第２の回数以上である場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行してもよい。
【００２４】
これによれば、第３性能要件を満たさない場合、第２の回数以上、第３性能要件を満たさないと判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【００２５】
また、前記第３判定において前記第３性能要件を満たすと判定された前記軽量化モデルが、実機のハードウェア性能に対する要件である第４性能要件を満たすかの第４判定を実行し、前記第４判定において前記第４性能要件を満たすと判定された場合、前記第４性能要件を満たすことを示す情報を出力してもよい。
【００２６】
これによれば、第３判定において第３判定要件を満たすと判定された軽量化モデルについて第４判定を実行するため、第４判定を実行する回数を低減することができる。
【００２７】
また、前記第４判定において前記第４性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第２の条件を満たす場合、前回実行した軽量化とは異なるパラメータで前記軽量化を実行してもよい。
【００２８】
これによれば、第４性能要件を満たさない場合であっても第４性能要件に近い場合には、パラメータを変更して軽量化処理を実行するため、第４性能要件を満たす軽量化モデルを効率よく見つけることができる。
【００２９】
また、（ｉ）前記第４判定において前記第４性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第２の条件を満たさない場合、または、（ｉｉ）前記第４性能要件を満たさないと判定された回数が第３の回数以上である場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行してもよい。
【００３０】
これによれば、第４性能要件を満たさない場合、第３の回数以上、第４性能要件を満たさないと判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【００３１】
また、前記第４判定において前記第４性能要件を満たすと判定された前記軽量化モデルが、機械学習モデルの出力の評価値に対する要件である第５性能要件を満たすかの第５判定を実行し、前記第５性能要件を満たすと判定された場合、前記第５性能要件を満たすことを示す情報を出力してもよい。
【００３２】
これによれば、第４判定において第４判定要件を満たすと判定された軽量化モデルについて第５判定を実行するため、第５判定を実行する回数を低減することができる。
【００３３】
また、前記第５判定において前記第５性能要件を満たさないと判定された前記軽量化モデルの評価値が第３の条件を満たす場合、前回実行した軽量化とは異なるパラメータの前記軽量化を実行してもよい。
【００３４】
これによれば、第５性能要件を満たさない場合であっても第５性能要件に近い場合には、パラメータを変更して軽量化処理を実行するため、第５性能要件を満たす軽量化モデルを効率よく見つけることができる。
【００３５】
また、（ｉ）前記第５判定において前記第５性能要件を満たさないと判定された前記軽量化モデルの評価値が第３の条件を満たさない場合、または、（ｉｉ）前記第５性能要件を満たさないと判定された回数が第４の回数以上である場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行してもよい。
【００３６】
これによれば、パラメータを変更して軽量化処理を実行し直しても、得られた軽量化モデルが第５性能要件を満たさないと第４の回数以上判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【００３７】
なお、これらの全般的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【００３８】
以下、本発明の一態様に係る情報処理方法および情報処理システムについて、図面を参照しながら具体的に説明する。
【００３９】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００４０】
（実施の形態）
以下、図１〜図７を用いて、実施の形態を説明する。
【００４１】
［１−１．構成］
図１は、実施の形態に係る情報処理システムの概略を説明するための図である。
【００４２】
情報処理システム１は、情報処理装置１００、入出力装置２００およびプロセッサ３００を備える。情報処理システム１は、指定されたプロセッサに適切な機械学習モデルを決定するシステムである。
【００４３】
情報処理システム１において、情報処理装置１００は、通信ネットワークを介して、入出力装置２００との間で通信可能に接続されている。情報処理装置１００は、例えば、サーバである。入出力装置２００は、例えば、デスクトップＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレット型端末、ラップトップＰＣなどである。また、通信ネットワークは、例えば、インターネットなどの汎用通信ネットワークであってもよいし、専用通信ネットワークであってもよい。プロセッサ３００は、検査対象となる実機のプロセッサであり、複数種類のプロセッサを含む。
【００４４】
情報処理装置１００は、プロセッサのハードウェア性能を示すハードウェア情報と、当該プロセッサおよび機械学習モデルの性能要件を示す検査要件情報とを、入出力装置２００から取得する。性能要件の詳細については後述する。そして、情報処理装置１００は、入出力装置２００から取得したハードウェア情報および検査要件情報に基づいて、後述する決定処理を行うことにより機械学習モデルを決定し、決定した機械学習モデルを入出力装置２００に出力する。
【００４５】
なお、情報処理装置１００は、クラウドコンピューティングシステムの構成要素であってもよく、インターネット等を介して入出力装置２００と接続されてもよい。
【００４６】
［１−２．ハードウェア構成］
情報処理装置１００のハードウェア構成について図２を用いて説明する。
【００４７】
図２は、実施の形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【００４８】
図２に示すように、情報処理装置１００は、ハードウェア構成として、ＣＰＵ１０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、メインメモリ１０２と、ストレージ１０３と、通信ＩＦ（Ｉｎｔｅｒｆａｃｅ）１０４と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０５とを備える。
【００４９】
ＣＰＵ１０１は、ストレージ１０３等に記憶された制御プログラムを実行するプロセッサである。
【００５０】
メインメモリ１０２は、ＣＰＵ１０１が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
【００５１】
ストレージ１０３は、制御プログラム、コンテンツなどを保持する不揮発性の記憶領域である。
【００５２】
通信ＩＦ１０４は、通信ネットワークを介して入出力装置２００との間で通信する通信インタフェースである。通信ＩＦ１０４は、例えば、有線ＬＡＮインタフェースである。なお、通信ＩＦ１０４は、無線ＬＡＮインタフェースであってもよい。また、通信ＩＦ１０４は、ＬＡＮインタフェースに限らずに、通信ネットワークとの通信接続を確立できる通信インタフェースであれば、どのような通信インタフェースであってもよい。
【００５３】
ＧＰＵ１０５は、機械学習の処理を実行するプロセッサである。
【００５４】
入出力装置２００のハードウェア構成について図３を用いて説明する。
【００５５】
図３は、入出力装置のハードウェア構成の一例を示すブロック図である。
【００５６】
図３に示すように、入出力装置２００は、ハードウェア構成として、ＣＰＵ２０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、メインメモリ２０２と、ストレージ２０３と、ディスプレイ２０４と、入力ＩＦ（Ｉｎｔｅｒｆａｃｅ）２０５と、通信ＩＦ２０６とを備える。つまり、入出力装置２００は、情報処理装置１００とは別の情報処理装置であるとも言える。
【００５７】
ＣＰＵ２０１は、ストレージ２０３等に記憶された制御プログラムを実行するプロセッサである。
【００５８】
メインメモリ２０２は、ＣＰＵ２０１が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
【００５９】
ストレージ２０３は、制御プログラム、コンテンツなどを保持する不揮発性の記憶領域である。
【００６０】
ディスプレイ２０４は、画像を含む映像を表示する表示装置である。例えば、ディスプレイ２０４は、液晶ディスプレイ、有機ＥＬディスプレイなどである。
【００６１】
入力ＩＦ２０５は、ユーザからの入力を受け付けるためのインタフェースである。入力ＩＦ２０５は、マウス、タッチパッド、タッチパネル、トラックボールなどのポインティングデバイスであってもよいし、キーボードであってもよい。
【００６２】
通信ＩＦ２０６は、通信ネットワークを介して情報処理装置１００との間で通信する通信インタフェースである。通信ＩＦ２０６は、例えば、有線ＬＡＮインタフェースであってもよいし、無線ＬＡＮインタフェースであってもよい。また、通信ＩＦ２０６は、ＬＡＮインタフェースに限らずに、通信ネットワークとの通信接続を確立できる通信インタフェースであれば、どのような通信インタフェースであってもよい。
【００６３】
［１−３．機能構成］
次に、情報処理システム１の機能構成について図４を用いて説明する。
【００６４】
図４は、情報処理システムの機能構成の一例を示すブロック図である。
【００６５】
まず、入出力装置２００の機能構成について説明する。
【００６６】
情報処理システム１は、機能構成として、制御部１２０と、決定部１３０と、モデル構成要件ＤＢ（Ｄａｔａｂａｓｅ）１３１と、判定部１４０と、検査要件ＤＢ（Ｄａｔａｂａｓｅ）１４１と、学習部１５０と、中断部１５１と、軽量化部１６０とを備える。情報処理システム１は、さらに、表示部１１１と、入力受付部１１２と、中断部１５１とを備えていてもよい。
【００６７】
表示部１１１は、機械学習モデルを用いる対象となるプロセッサのハードウェア情報と、各性能要件を示す検査要件情報とを特定するためのＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示する。また、表示部１１１は、入力受付部１１２で受け付けられた入力に応じて選択されたハードウェア情報および検査要件情報を情報処理装置１００に送信したことをユーザに通知するためのＵＩを表示してもよい。また、表示部１１１は、情報処理装置１００により決定された機械学習モデルに関する情報を表示してもよい。表示部１１１は、例えば、入出力装置２００のＣＰＵ２０１、メインメモリ２０２、ストレージ２０３、およびディスプレイ２０４により実現される。
【００６８】
入力受付部１１２は、表示部１１１に表示しているＵＩに対する入力を受け付ける。具体的には、入力受付部１１２は、表示部１１１に表示された、ハードウェア情報および検査要件情報を特定するためのＵＩに対する、機械学習モデルを用いる対象となるプロセッサのハードウェアに関する情報と、性能要件を示す情報とを受け付ける。入力受付部１１２は、受け付けられた入力に応じて特定したハードウェア情報を制御部１２０に出力する。また、入力受付部１１２は、受け付けられた入力に応じて生成した検査要件情報を検査要件ＤＢ１４１に出力し、検査要件情報は検査要件ＤＢ１４１に格納される。なお、検査要件情報は、入力受付部１１２による入力に応じて生成されなくてもよく、予め検査要件ＤＢ１４１に格納されていてもよい。また、検査要件ＤＢ１４１に格納されている検査要件情報は、外部の機器から取得した情報に応じて変更されてもよい。
【００６９】
例えば、入力受付部１１２は、プロセッサを特定するための型番などの識別情報の入力を受け付けて、識別情報とプロセッサのハードウェア情報とが対応付けられている対応情報のうちで、受け付けた識別情報に対応付けられているハードウェア情報を特定してもよい。なお、入出力装置２００は、外部の情報処理装置から通信ネットワークを介して対応情報を取得してもよいし、ストレージ２０３に予め記憶されている対応情報を利用してもよい。また、例えば、入力受付部１１２は、プロセッサのハードウェア情報を直接受け付けてもよい。なお、ハードウェア情報とは、例えば、プロセッサの処理速度および消費電力を示す情報である。
【００７０】
また、例えば、入力受付部１１２は、処理速度および消費電力に対する要件、つまり、ハードウェア性能に対する要件を受け付ける。例えば、処理速度に対する要件とは、所定の演算処理およびメモリ転送処理の合計にかかる時間が基準時間より短いことである。また、例えば、消費電力に対する要件とは、所定の処理を実行するのにかかる消費電力が所定の基準電力よりも低いことである。
【００７１】
また、例えば、入力受付部１１２は、機械学習モデルの出力の正解率の要件、つまり、評価値に対する要件を受け付ける。例えば、正解率に対する要件とは、所定のテストを行ったときの正解率が基準正解率より大きいことである。
【００７２】
検査要件情報には、判定部１４０による第１〜第５判定それぞれの基準となる第１〜第５性能要件が含まれており、それぞれの要件毎に異なる値が設定されていてもよい。第１性能要件、第３性能要件および第４性能要件は、ハードウェア性能に対する要件であり、例えば、処理速度、消費電力、メモリ転送量、および、単位時間当たりの演算量のうちの少なくとも１つについて定められた閾値より性能が高いことである。第２性能要件および第５性能要件は、例えば、機械学習モデルの出力の評価値に対する要件であり、例えば、正解率、適合率、再現率、Ｆ値、誤差、および不正解率のうちの少なくとも１つについて定められた閾値より性能が高いことである。
【００７３】
入力受付部１１２は、例えば、入出力装置２００の入力ＩＦ２０５および通信ＩＦ２０６などにより実現される。
【００７４】
制御部１２０は、決定部１３０、判定部１４０、学習部１５０および軽量化部１６０を制御することで、機械学習モデルを決定するための決定処理を実行する。具体的には、制御部１２０は、決定部１３０により仮に決定された機械学習モデルの構成について、後述する決定処理を実行する。制御部１２０は、判定部１４０による第１〜第５判定の判定結果を用いて、決定処理において次に実行する処理を決定する。制御部１２０による次に実行する処理の決定の詳細は、後述する。制御部１２０は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２、ストレージ１０３および通信ＩＦ１０４などにより実現される。
【００７５】
決定部１３０は、機械学習モデルの構成を決定する。決定部１３０は、具体的には、モデル構成要件ＤＢ１３１に格納されている、互いに異なる構成の複数の機械学習モデルの構成うちの１つを、決定処理に用いる機械学習モデルの構成として決定する。決定部１３０が決定する機械学習モデルは、例えば、ニューラルネットワークのネットワーク構成である。ニューラルネットワークの構成は、例えば、階層数および各階層におけるユニット数に応じて異なる。
【００７６】
また、決定部１３０は、制御部１２０からの指示に応じて、モデル構成要件ＤＢ１３１に格納されている複数の機械学習モデルの構成から一度決定した機械学習モデルの構成を除く複数の機械学習モデルの構成のうちの１つの機械学習モデルの構成を、決定処理に用いる機械学習モデルの構成として決定してもよい。つまり、決定部１３０は、制御部１２０からの指示に応じて、決定処理に用いる機械学習モデルの構成を、既に決定した一の機械学習モデルの構成から別の機械学習モデルの構成に変更してもよい。決定部１３０は、例えば、階層数またはユニット数を変更することにより、機械学習モデルの構成を変更する。決定部１３０は、例えば、判定部１４０による検査によって第１性能要件もしくは第３性能要件もしくは第４性能要件よりも機械学習モデルのメモリ転送量が超過していた場合、階層数またはユニット数を減少させる。処理速度、消費電力、単位時間当たりの演算量のいずれかが超過していた場合にも同様に階層数またはユニット数を減少させる。
【００７７】
決定部１３０は、機械学習モデルの構成を変更する場合、モデル構成要件ＤＢ１３１に格納されている、複数の機械学習モデルの構成に予め定められている順番に応じて、次の機械学習モデルの構成を決定してもよいし、ランダムに次の機械学習モデルの構成を決定してもよい。また、決定部１３０は、機械学習モデルの構成を変更する場合、制御部１２０が取得している判定部１４０による第１〜第５判定の判定結果を用いて、所定のアルゴリズムに応じて、次の機械学習モデルの構成を決定してもよい。
【００７８】
決定部１３０は、決定処理に用いると決定した機械学習モデルの構成を制御部１２０に出力する。決定部１３０は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２およびストレージ１０３などにより実現される。また、モデル構成要件ＤＢ１３１は、例えば、情報処理装置１００のストレージ１０３などにより実現される。
【００７９】
判定部１４０は、制御部１２０からの指示に応じて、決定部１３０によって決定処理に用いると決定された機械学習モデルが第１性能要件を満たすか否かの第１判定を実行する。判定部１４０は、第１判定を実行するときに、第１性能要件を検査要件ＤＢ１４１から取得する。そして、判定部１４０は、取得した第１性能要件を用いて第１判定を実行する。検査要件ＤＢ１４１は、第１性能要件を含む。第１性能要件は、閾値Ｔ１１より性能が高いことである。ここでは、第１性能要件は、処理速度に対する要件であることを例に説明する。
【００８０】
よって、判定部１４０は、第１判定において、決定部１３０において決定された機械学習モデルの構成から算出される処理速度が閾値Ｔ１１を超えるか否かを判定し、閾値Ｔ１１を超える場合に第１性能要件を満たすと判定する。このように、判定部１４０は、第１判定において、値が大きいほど性能が高いハードウェア性能の場合には、第１性能要件で定められた閾値を超えるか否かを判定し、閾値を超える場合に第１性能要件を満たすと判定する。
【００８１】
なお、判定部１４０は、消費電力について第１判定を行う場合には、消費電力について第１性能要件で定められた閾値未満であるか否かを判定する。消費電力は、低い方が性能が高いからである。つまり、判定部１４０は、第１判定において、値が小さいほど性能が高いハードウェア性能の場合には、第１性能要件で定められた閾値未満であるか否かを判定し、閾値未満である場合に第１性能要件を満たすと判定する。
【００８２】
判定部１４０は、第１判定における判定結果を制御部１２０に出力する。
【００８３】
また、判定部１４０は、制御部１２０からの指示に応じて、学習部１５０による学習により得られた学習済みモデルが第２性能要件を満たすか否かの第２判定を実行する。判定部１４０は、第２判定を実行するときに第２性能要件を検査要件ＤＢ１４１から取得し、取得した第２性能要件を用いて第２判定を実行する。検査要件ＤＢ１４１は、第２性能要件を含む。第２性能要件は、閾値Ｔ２１より性能が高いことである。ここでは、第２性能要件は、正解率に対する要件であることを例に説明する。
【００８４】
よって、判定部１４０は、第２判定において、学習済みモデルの出力の評価値として算出される正解率が閾値Ｔ２１を超えるか否かを判定する。このように、判定部１４０は、第２判定において、値が大きいほど性能が高い評価値の場合には、第２性能要件で定められた閾値を超えるか否かを判定し、閾値を超える場合に第２性能要件を満たすと判定する。なお、判定部１４０は、第２判定において、値が小さいほど性能が高い評価値の場合には、当該評価値が閾値未満であるか否かを判定し、閾値未満である場合に第２性能要件を満たすと判定する。
【００８５】
判定部１４０は、第２判定における判定結果を制御部１２０に出力する。
【００８６】
また、判定部１４０は、制御部１２０からの指示に応じて、軽量化部１６０による軽量化処理により得られた軽量化モデルが第３性能要件を満たすか否かの第３判定を実行してもよい。判定部１４０は、第３判定を実行するときに、第３性能要件を検査要件ＤＢ１４１から取得する。そして、判定部１４０は、取得した第３性能要件を用いて第３判定を実行する。検査要件ＤＢ１４１は、第３性能要件を含む。第３性能要件は、閾値Ｔ３１より性能が高いことである。ここでは、第３性能要件は、処理速度に対する要件であることを例に説明する。また、第３性能要件で規定されるハードウェア性能の条件は、第１性能要件で規定されるハードウェア性能の条件より厳しくてもよい。つまり、値が大きいほど性能が高いハードウェア性能の場合、閾値Ｔ３１は閾値Ｔ１１よりも大きく、値が小さいほど性能が高いハードウェア性能の場合、閾値Ｔ３１は閾値Ｔ１１よりも小さい。
【００８７】
第３性能要件の一例として処理速度とする場合、判定部１４０は、第３判定において、軽量化処理により得られた軽量化モデルから算出される処理速度が閾値Ｔ３１を超えるか否かを判定し、閾値Ｔ３１を超える場合に第３性能要件を満たすと判定する。このように、判定部１４０は、第３判定において、値が大きいほど性能が高いハードウェア性能の場合には、第３性能要件で定められた閾値を超えるか否かを判定し、閾値を超える場合に第３性能要件を満たすと判定する。なお、第１判定と同様に、判定部１４０は、第３判定において、値が小さいほど性能が高いハードウェア性能の場合には、第３性能要件で定められた閾値未満であるか否かを判定し、閾値未満である場合に第３性能要件を満たすと判定する。
【００８８】
判定部１４０は、第３判定における判定結果を制御部１２０に出力する。
【００８９】
また、判定部１４０は、制御部１２０からの指示に応じて、第３判定において第３性能要件を満たすと判定した軽量化モデルが第４性能要件を満たすか否かを第４判定を実行してもよい。判定部１４０は、第４判定を実行するときに、第４性能要件を検査要件ＤＢ１４１から取得する。そして、判定部１４０は、取得した第４性能要件を用いて第４判定を実行する。判定部１４０は、接続されているプロセッサ３００のうち、制御部１２０が取得したハードウェア情報に対応するプロセッサに対して第４判定を実行する。第４性能要件は、実機のプロセッサ３００のハードウェア性能に対する要件であり、閾値Ｔ４１よりも性能が高いことである。また、第４性能要件で規定されるハードウェア性能の条件は、第３性能要件で規定されるハードウェア性能の条件より厳しくてもよい。つまり、値が大きいほど性能が高いハードウェア性能の場合、閾値Ｔ４１は閾値Ｔ３１よりも大きく、値が小さいほど性能が高いハードウェア性能の場合、閾値Ｔ４１は閾値Ｔ３１よりも小さい。
【００９０】
第４性能要件の一例として処理速度とする場合、判定部１４０は、第４判定において、第３判定において第３性能要件を満たすと判定した軽量化モデルから算出される処理速度が閾値Ｔ４１を超えるか否かを判定し、閾値Ｔ４１を超える場合に第４性能要件を満たすと判定する。このように、判定部１４０は、第４判定において、値が大きいほど性能が高いハードウェア性能の場合には、第４性能要件で定められた閾値を超えるか否かを判定し、閾値を超える場合に第４性能要件を満たすと判定する。なお、第１判定および第３判定と同様に、判定部１４０は、第４判定において、値が小さいほど性能が高いハードウェア性能の場合には、第４性能要件で定められた閾値未満であるか否かを判定し、閾値未満である場合に第４性能要件を満たすと判定する。
【００９１】
判定部１４０は、第４判定における判定結果を制御部１２０に出力する。
【００９２】
また、判定部１４０は、制御部１２０からの指示に応じて、第４判定において第４性能要件を満たすと判定された軽量化モデルが第５性能要件を満たすか否かの第５判定を実行してもよい。つまり、判定部１４０は、第４判定において第４性能要件を満たすと判定された軽量化モデルを用いて実機のプロセッサ３００において所定の検査を行った場合に、第５性能要件を満たすか否かの第５判定を実行する。判定部１４０は、第５判定を実行するときに第５性能要件を検査要件ＤＢ１４１から取得し、取得した第５性能要件を用いて第５判定を実行する。検査要件ＤＢ１４１は、第５性能要件を含む。第５性能要件は、閾値Ｔ５１よりも性能が高いことである。ここでは、第５性能要件は、正解率に対する要件であることを例に説明する。
【００９３】
よって、判定部１４０は、第５判定において、学習済みモデルの出力の評価値として算出される正解率が閾値Ｔ５１を超えるか否かを判定する。このように、判定部１４０は、第５判定において、値が大きいほど性能が高い評価値の場合には、第５性能要件で定められた閾値を超えるか否かを判定し、閾値を超える場合に第５性能要件を満たすと判定する。なお、判定部１４０は、第５判定において、値が小さいほど性能が高い評価値の場合には、当該評価値が閾値未満であるか否かを判定し、閾値未満である場合に第５性能要件を満たすと判定する。
【００９４】
判定部１４０は、第５判定における判定結果を制御部１２０に出力する。
【００９５】
判定部１４０は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２およびストレージ１０３などにより実現される。また、検査要件ＤＢ１４１は、情報処理装置１００のストレージ１０３などにより実現される。
【００９６】
学習部１５０は、制御部１２０からの指示に応じて、第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行する。学習部１５０は、例えば、ＡＤＡＳ、自動運転システムなどに用いる認識処理のための学習を実行する。学習部１５０は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２およびストレージ１０３などにより実現される。
【００９７】
中断部１５１は、学習部１５０による学習状況を取得し、学習の早期段階での精度（誤差）が収束しない場合には、学習部１５０による学習を中断させる。中断部１５１は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２およびストレージ１０３などにより実現される。
【００９８】
軽量化部１６０は、第２判定において第２性能要件を満たすと判定された学習済みモデルに対して軽量化処理を実行する。軽量化部１６０は、例えば、軽量化処理として、重みの量子化処理、重みの枝刈り処理などを実行する。重み量子化処理とは、例えば、単精度浮動小数点数（３２ｂｉｔ）または倍精度浮動小数点数（６４ｂｉｔ）から、半精度浮動小数点数（１６ｂｉｔ）または固定小数点数（１６ｂｉｔ，８ｂｉｔおよび６４ｂｉｔから１ｂｉｔまでの任意のビット数）への量子化処理である。枝刈り処理とは、出力への寄与度の低いニューラルネットの重み係数を削除する処理である。軽量化部１６０は、例えば、情報処理装置１００のＣＰＵ１０１、メインメモリ１０２およびストレージ１０３などにより実現される。
【００９９】
［１−４．動作］
次に、実施の形態に係る情報処理システム１の動作について説明する。
【０１００】
図５は、情報処理システムにおける情報処理方法の一例を示すフローチャートである。
【０１０１】
まず、ユーザが入出力装置２００を操作することで、所定のプロセッサに対して最適な機械学習モデルを決定するためのアプリケーションが入出力装置２００において実行される。これにより、入出力装置２００では、処理対象となるプロセッサのハードウェア情報および検査要件情報を特定するためのＵＩがディスプレイ２０４に表示される。つまり、情報処理システム１では、表示部１１１にハードウェア情報を特定するためのＵＩが表示される。
【０１０２】
情報処理システム１は、入力受付部１１２が、表示部１１１に表示しているＵＩに対する入力を受け付ける（Ｓ１１）。
【０１０３】
次に、情報処理システム１は、ＵＩに対する入力により特定されたハードウェア情報および検査要件情報に応じて、機械学習モデルの決定処理を実行する（Ｓ１２）。機械学習モデルの決定処理の詳細は、後述する。
【０１０４】
そして、情報処理システム１は、決定処理において決定された機械学習モデルを記憶する（Ｓ１３）。決定処理において決定された機械学習モデルは、例えば、情報処理システム１の入出力装置２００のストレージ１０３に記憶される。
【０１０５】
実施の形態に係る決定処理の詳細について図６および図７を用いて説明する。
【０１０６】
図６および図７は、実施の形態に係る決定処理の詳細の一例を示すフローチャートである。
【０１０７】
決定処理が開始されると、制御部１２０は、決定部１３０に、上述したように機械学習モデルの構成を決定させる（Ｓ１０１）。決定部１３０は、決定した機械学習モデルの構成を制御部１２０に出力する。
【０１０８】
制御部１２０は、判定部１４０に、決定部１３０から取得した機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすか否かの第１判定を実行させる（Ｓ１０２）。判定部１４０は、例えば、決定部１３０において決定された機械学習モデルの構成から算出される処理速度が閾値Ｔ１１を超えるか否かを判定する。判定部１４０は、第１判定の判定結果を制御部１２０に出力する。
【０１０９】
制御部１２０は、判定部１４０が第１判定において第１性能要件を満たすと判定した場合（Ｓ１０２でＹｅｓ）、学習部１５０に、第１性能要件を満たすと判定された構成の機械学習モデルを用いた学習を実行させる（Ｓ１０３）。つまり、決定された機械学習モデルの構成から算出される処理速度が閾値Ｔ１１を超えると判定部１４０が判定した場合、制御部１２０は、学習部１５０に上記学習を実行させる。なお、学習部１５０が学習を行っている間、中断部１５１は、学習部１５０による学習状況を取得し、学習の早期段階での精度（誤差）が収束しない場合には、学習部１５０による学習を中断させてもよい。学習部１５０は、学習により得られた学習済みモデルを制御部１２０に出力する。
【０１１０】
一方で、制御部１２０は、判定部１４０が第１判定において第１性能要件を満たさないと判定した場合（Ｓ１０２でＮｏ）、決定部１３０に、機械学習モデルの構成を変更して、別の機械学習モデルの構成に決定させる。つまり、決定された機械学習モデルの構成から算出される処理速度が閾値Ｔ１１以下であると判定部１４０が判定した場合、制御部１２０は、ステップＳ１０１の処理を決定部１３０に行わせる。
【０１１１】
ステップＳ１０３が終わると制御部１２０は、判定部１４０に、学習部１５０から取得した学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすか否かの第２判定を実行させる（Ｓ１０４）。判定部１４０は、例えば、学習済みモデルの出力の評価値として算出される正解率が閾値Ｔ２１を超えるか否かを判定する。判定部１４０は、第２判定の判定結果を制御部１２０に出力する。つまり、判定部１４０は、第２判定において学習済みモデルが第２性能要件を満たすと判定した場合、第１性能要件および第２性能要件を満たすことを示す情報を制御部１２０に出力することとなる。なお、制御部１２０は、当該情報を表示部１１１に表示させてもよい。
【０１１２】
制御部１２０は、判定部１４０が第２判定において第２性能要件を満たすと判定した場合（Ｓ１０４でＹｅｓ）、軽量化部１６０に、第２性能要件を満たすと判定された学習済みモデルに対して軽量化処理を実行させる（Ｓ１０６）。軽量化部１６０は、軽量化処理により得られた軽量化モデルを制御部１２０に出力する。
【０１１３】
一方で、制御部１２０は、判定部１４０が第２判定において第２性能要件を満たさないと判定した場合（Ｓ１０４でＮｏ）、判定部１４０に、学習済みモデルの出力の評価値が条件Ｃ２を満たす、または、第２性能要件を満たさないと判定された回数がＮ２回未満であるか否かを判定させる（Ｓ１０５）。なお、第２性能要件は、正解率に対する要件であり、正解率は、値が大きいほど性能が高い評価値である。このため、閾値Ｔ２２は、閾値Ｔ２１より小さい値である。これらのことから、「学習済みモデルの出力の評価値が条件Ｃ２を満たす」とは、例えば、評価値としての正解率が閾値Ｔ２２以上であることである。
【０１１４】
一方で、第２性能要件が、誤差または不正解率のように値が小さいほど性能が高い評価値である場合、閾値Ｔ２２は、閾値Ｔ２１より大きい値である。よって、「学習済みモデルの出力の評価値が条件Ｃ２を満たす」とは、例えば、評価値としての誤差または正解率が閾値Ｔ２２以下であることである。これにより、この場合の判定部１４０は、ステップＳ１０５では、評価値が閾値Ｔ２２以下である、または、第２性能要件を満たさないと判定された回数がＮ２回未満であるか否かを判定する。
【０１１５】
制御部１２０は、正解率が閾値Ｔ２２以上であり、かつ、第２性能要件を満たさないと判定された回数がＮ２回未満である場合（Ｓ１０５でＹｅｓ）、学習部１５０に、前回実行した学習とは異なるパラメータでステップＳ１０３の学習を再び実行させる。この場合、制御部１２０は、例えば、学習部１５０に、パラメータとしての、ニューラルネットワークの学習率を異なる値に変更して、学習を実行させる。その後、制御部１２０は、判定部１４０に、ステップＳ１０４において、異なるパラメータでの学習により得られた学習済みモデルが第２性能要件を満たすかの第２判定を実行させる。
【０１１６】
制御部１２０は、正解率が閾値Ｔ２２未満である、または、第２性能要件を満たさないと判定された回数がＮ２回以上である場合（Ｓ１０５でＮｏ）、決定部１３０に、機械学習モデルの構成を変更して、別の機械学習モデルの構成に決定させる。つまり、この場合、制御部１２０は、ステップＳ１０１の処理を決定部１３０に行わせる。その後、制御部１２０は、判定部１４０に、ステップＳ１０２において、変更された構成の機械学習モデルが第１性能要件を満たすかの第１判定を実行させる。
【０１１７】
ステップＳ１０６が終わると制御部１２０は、判定部１４０に、軽量化部１６０から取得した軽量化モデルが、ハードウェア性能に対する要件である第３性能要件を満たすか否かの第３判定を実行させる（Ｓ１０７）。判定部１４０は、例えば、軽量化処理により得られた軽量化モデルから算出される処理速度が閾値Ｔ３１を超えるか否かを判定する。判定部１４０は、第３判定の判定結果を制御部１２０に出力する。つまり、判定部１４０は、第３判定において軽量化モデルが第３性能要件を満たすと判定した場合、第３性能要件を満たすことを示す情報を制御部１２０に出力することとなる。なお、制御部１２０は、当該情報を表示部１１１に表示させてもよい。
【０１１８】
制御部１２０は、判定部１４０が第３判定において第３性能要件を満たすと判定した場合（Ｓ１０７でＹｅｓ）、判定部１４０に、第３判定において第３性能要件を満たすと判定された軽量化モデルが、実機のハードウェア性能に対する要件である第４性能要件を満たすか否かの第４判定を実行させる（Ｓ１０９）。具体的には、制御部１２０は、判定部１４０に、実機のプロセッサに対して、実際に軽量化モデルを用いた処理を実行させたときの、ハードウェア性能を実測させ、実測されたハードウェア性能が第４性能要件を満たすか否かを判定させる。判定部１４０は、例えば、実機のプロセッサに対して、実際に軽量化モデルを用いた処理を実行させたときの処理速度を測定し、測定した処理速度が閾値Ｔ４１を超えるか否かを判定する。判定部１４０は、第４判定の判定結果を制御部１２０に出力する。つまり、判定部は、第４判定において第４性能要件を満たすと判定した場合、第４性能要件を満たすことを示す情報を制御部１２０に出力することとなる。
【０１１９】
制御部１２０は、判定部１４０が第３判定において第３性能要件を満たさないと判定した場合（Ｓ１０７でＮｏ）、判定部１４０に、軽量化モデルのハードウェア性能が条件Ｃ３を満たす、または、第３性能要件を満たさないと判定された回数がＮ３回未満であるか否かを判定させる（Ｓ１０８）。なお、第３性能要件は、処理速度に対する要件であり、処理速度は、値が大きいほど性能が高いハードウェア性能である。このため、閾値Ｔ３２は、閾値Ｔ３１より小さい値である。これらのことから、「軽量化モデルのハードウェア性能が条件Ｃ３を満たす」とは、例えば、ハードウェア性能としての処理速度が閾値Ｔ３２以上であることである。
【０１２０】
一方で、第３性能要件が、消費電力のように値が小さいほど性能が高いハードウェア性能である場合、閾値Ｔ３２は、閾値Ｔ３１より大きい値である。よって、「軽量化モデルのハードウェア性能が条件Ｃ３を満たす」とは、例えば、ハードウェア性能としての消費電力が閾値Ｔ３２以下であることである。これにより、この場合の判定部１４０は、ステップＳ１０８では、ハードウェア性能が閾値Ｔ３２以下である、または、第３性能要件を満たさないと判定された回数がＮ３回未満であるか否かを判定する。
【０１２１】
制御部１２０は、処理速度が閾値Ｔ３２以上であり、かつ、第３性能要件を満たさないと判定された回数がＮ３回未満である場合（Ｓ１０８でＹｅｓ）、軽量化部１６０に、前回実行した軽量化処理とは異なるパラメータで軽量化処理を再び実行させる。この場合、制御部１２０は、例えば、軽量化部１６０に、パラメータとしての、軽量化処理の軽量化の度合いを異なる度合いに変更して、軽量化処理を実行させる。その後、制御部１２０は、判定部１４０に、ステップＳ１０７において、異なるパラメータでの軽量化処理により得られた軽量化モデルが第３性能要件を満たすかの第３判定を実行させる。
【０１２２】
制御部１２０は、処理速度が閾値Ｔ３２未満である、または、第３性能要件を満たさないと判定された回数がＮ３回以上である場合（Ｓ１０８でＮｏ）、決定部１３０に、機械学習モデルの構成を変更して、別の機械学習モデルの構成に決定させる。つまり、この場合、制御部１２０は、ステップＳ１０１の処理を決定部１３０に行わせる。その後、制御部１２０は、判定部１４０に、ステップＳ１０２において、変更された構成の機械学習モデルが第１性能要件を満たすかの第１判定を実行させる。
【０１２３】
制御部１２０は、判定部１４０が第４判定において第４性能要件を満たすと判定した場合（Ｓ１０９でＹｅｓ）、判定部１４０に、第４判定において第４性能要件を満たすと判定された軽量化モデルが、機械学習モデルの出力の評価値に対する要件である第５性能要件を満たすかの第５判定を実行させる（Ｓ１１１）。判定部１４０は、例えば、軽量化モデルの出力の評価値として算出される正解率が閾値Ｔ５１を超えるか否かを判定する。判定部１４０は、第５判定の判定結果を制御部１２０に出力する。つまり、判定部１４０は、第５判定において軽量化モデルが第５性能要件を満たすと判定した場合、第５性能要件を満たすことを示す情報を制御部１２０に出力することとなる。なお、制御部１２０は、当該情報を表示部１１１に表示させてもよい。
【０１２４】
制御部１２０は、判定部１４０が第４判定において第４性能要件を満たさないと判定した場合（Ｓ１０９でＮｏ）、判定部１４０に、軽量化モデルのハードウェア性能が条件Ｃ４を満たす、または、第４性能要件を満たさないと判定された回数がＮ４回未満であるか否かを判定させる（Ｓ１１０）。なお、第４性能要件は、処理速度に対する要件であり、処理速度は、値が大きいほど性能が高いハードウェア性能である。このため、閾値Ｔ４２は、閾値Ｔ４１より小さい値である。これらのことから、「軽量化モデルのハードウェア性能が条件Ｃ４を満たす」とは、例えば、ハードウェア性能としての処理速度が閾値Ｔ４２以上であることである。
【０１２５】
一方で、第４性能要件が、消費電力のように値が小さいほど性能が高いハードウェア性能である場合、閾値Ｔ４２は、閾値Ｔ４１より大きい値である。よって、「軽量化モデルのハードウェア性能が条件Ｃ４を満たす」とは、例えば、ハードウェア性能としての消費電力が閾値Ｔ４２以下であることである。これにより、この場合の判定部１４０は、ステップＳ１１０では、ハードウェア性能が閾値Ｔ４２以下である、または、第４性能要件を満たさないと判定された回数がＮ４回未満であるか否かを判定する。
【０１２６】
制御部１２０は、処理速度が閾値Ｔ４２以上であり、かつ、第４性能要件を満たさないと判定された回数がＮ４回未満である場合（Ｓ１１０でＹｅｓ）、軽量化部１６０に、前回実行した軽量化処理とは異なるパラメータで軽量化処理を再び実行させる。この場合、制御部１２０は、例えば、軽量化部１６０に、パラメータとしての、軽量化処理の軽量化の度合いを異なる度合いに変更して、軽量化処理を実行させる。その後、制御部１２０は、判定部１４０に、ステップＳ１０７において、異なるパラメータでの軽量化処理により得られた軽量化モデルが第３性能要件を満たすかの第３判定を実行させる。
【０１２７】
制御部１２０は、処理速度が閾値Ｔ４２未満である、または、第４性能要件を満たさないと判定された回数がＮ４回以上である場合（Ｓ１１０でＮｏ）、決定部１３０に、機械学習モデルの構成を変更して、別の機械学習モデルの構成に決定させる。つまり、この場合、制御部１２０は、ステップＳ１０１の処理を決定部１３０に行わせる。その後、制御部１２０は、判定部１４０に、ステップＳ１０２において、変更された構成の機械学習モデルが第１性能要件を満たすかの第１判定を実行させる。
【０１２８】
制御部１２０は、判定部１４０が第５判定において第５性能要件を満たすと判定した場合（Ｓ１１１でＹｅｓ）、第５判定において第５性能要件を満たすと判定された軽量化モデルを機械学習モデルとして決定し、決定処理を終了する。
【０１２９】
制御部１２０は、判定部１４０が第５判定において第５性能要件を満たさないと判定した場合（Ｓ１１１でＮｏ）、判定部１４０に、軽量化モデルの出力の評価値が条件Ｃ５を満たす、または、第５性能要件を満たさないと判定された回数がＮ５回未満であるか否かを判定させる（Ｓ１１２）。なお、第５性能要件は値が大きいほど性能が高い評価値であるため、閾値Ｔ５２は、閾値Ｔ５１より小さい値である。これらのことから、「軽量化モデルの出力の評価値が条件Ｃ５を満たす」とは、例えば、評価値としての正解率が閾値Ｔ５２以上であることである。
【０１３０】
一方で、第５性能要件が、誤差または不正解率のように値が小さいほど性能が高い評価値である場合、閾値Ｔ５２は、閾値Ｔ５１より大きい値である。よって、「軽量化モデルの出力の評価値が条件Ｃ５を満たす」とは、例えば、評価値としての誤差または正解率が閾値Ｔ５２以下であることである。これにより、この場合の判定部１４０は、ステップＳ１１２では、評価値が閾値Ｔ５２以下である、または、第５性能要件を満たさないと判定された回数がＮ５回未満であるか否かを判定する。
【０１３１】
制御部１２０は、正解率が閾値Ｔ５２以上であり、かつ、第５性能要件を満たさないと判定された回数がＮ５回未満である場合（Ｓ１１２でＹｅｓ）、軽量化部１６０に、前回実行した軽量化処理とは異なるパラメータで軽量化処理を再び実行させる。この場合、制御部１２０は、例えば、軽量化部１６０に、パラメータとしての、軽量化処理の軽量化の度合いを異なる度合いに変更して、軽量化処理を実行させる。その後、制御部１２０は、判定部１４０に、ステップＳ１０７において、異なるパラメータでの軽量化処理により得られた軽量化モデルが第３性能要件を満たすかの第３判定を実行させる。
【０１３２】
制御部１２０は、正解率が閾値Ｔ５２未満である、または、第５性能要件を満たさないと判定された回数がＮ５回以上である場合（Ｓ１１２でＮｏ）、判定部１４０に、第５性能要件を満たさないと判定された回数がＮ６回以上であるか否かを判定させる（Ｓ１１３）。なお、Ｎ６は、Ｎ５よりも大きい値である。
【０１３３】
制御部１２０は、判定部１４０が第５性能要件を満たさないと判定された回数がＮ６回以上であると判定した場合（Ｓ１１３でＹｅｓ）、ハードウェア構成を変更する（Ｓ１１４）。例えば、制御部１２０は、表示部１１１に、指定されたプロセッサの構成に最適な機械学習モデルを見つけることができなかったため、対象のプロセッサの構成を変更することをユーザに促す指示を表示させてもよい。また、制御部１２０は、所定のアルゴリズムで、自動的に対象のプロセッサの構成を変更する処理を行ってもよい。また、制御部１２０は、ハードウェア性能に対する要件である、第１性能要件、第３性能要件および第４性能要件を、より低い性能要件に変更してもよい。
【０１３４】
制御部１２０は、判定部１４０が第５性能要件を満たさないと判定された回数がＮ６回未満であると判定した場合（Ｓ１１３でＹｅｓ）、決定部１３０に、機械学習モデルの構成を変更して、別の機械学習モデルの構成に決定させる。つまり、この場合、制御部１２０は、ステップＳ１０１の処理を決定部１３０に行わせる。その後、制御部１２０は、判定部１４０に、ステップＳ１０２において、変更された構成の機械学習モデルが第１性能要件を満たすかの第１判定を実行させる。
【０１３５】
［１−５．効果］
本実施の形態に係る情報処理システム１によれば、第１判定において第１性能要件を満たすまで、第２判定を実行せずに機械学習モデルの構成を変更するため、第２判定を実行する回数を低減することができる。このため、効率よく機械学習モデルを決定することができる。また、プロセッサにかかる処理量および消費エネルギーを低減することができる。
【０１３６】
また、本実施の形態に係る情報処理システム１によれば、Ｎ２回以上、第２性能要件を満たさないと判定されると機械学習モデルの構成を変更するため、学習させる回数を低減することができる。このため、効率よく機械学習モデルを決定することができる。
【０１３７】
また、本実施の形態に係る情報処理システム１によれば、第１判定において第１性能要件を満たすまで、第２判定、軽量化処理および第３判定を実行せずに機械学習モデルの構成を変更する。このため、第２判定、軽量化処理および第３判定を実行する回数を低減することができる。
【０１３８】
また、本実施の形態に係る情報処理システム１によれば、第３性能要件で規定されるハードウェア性能の条件は、第１性能要件で規定されるハードウェア性能の条件より厳しい。このため、第１性能要件を満たさないと判定され、機械学習モデルの構成の決定と第１判定とが実行される回数を低減することができる。また、第３判定においてより厳しい判定を行うことで、第３判定の次に行う処理を実行する回数を低減させることができる。
【０１３９】
また、本実施の形態に係る情報処理システム１によれば、ステップＳ１０８の判定を行うため、第３性能要件を満たさない場合であっても第３性能要件に近い場合には、パラメータを変更して軽量化処理を実行する。このため、第３性能要件を満たす軽量化モデルを効率よく見つけることができる。
【０１４０】
また、本実施の形態に係る情報処理システム１によれば、第３性能要件を満たさない場合、Ｎ３回以上、第３性能要件を満たさないと判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【０１４１】
また、本実施の形態に係る情報処理システム１によれば、第３判定において第３判定要件を満たすと判定された軽量化モデルについて第４判定を実行するため、第４判定を実行する回数を低減することができる。
【０１４２】
また、本実施の形態に係る情報処理システム１によれば、ステップＳ１１０の判定を行うため、第４性能要件を満たさない場合であっても第４性能要件に近い場合には、パラメータを変更して軽量化処理を実行するため、第４性能要件を満たす軽量化モデルを効率よく見つけることができる。
【０１４３】
また、本実施の形態に係る情報処理システム１によれば、第４性能要件を満たさない場合、Ｎ４回以上、第４性能要件を満たさないと判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【０１４４】
また、本実施の形態に係る情報処理システム１によれば、第４判定において第４判定要件を満たすと判定された軽量化モデルについて第５判定を実行するため、第５判定を実行する回数を低減することができる。
【０１４５】
また、本実施の形態に係る情報処理システム１によれば、ステップＳ１１２の判定を行うため、第５性能要件を満たさない場合であっても第５性能要件に近い場合には、パラメータを変更して軽量化処理を実行するため、第５性能要件を満たす軽量化モデルを効率よく見つけることができる。
【０１４６】
また、本実施の形態に係る情報処理システム１によれば、第５性能要件を満たさない場合、Ｎ５回以上、第５性能要件を満たさないと判定されると機械学習モデルの構成を変更する。このため、軽量化処理を実行する回数を低減することができる。よって、効率よく機械学習モデルを決定することができる。
【０１４７】
［１−６．変形例］
上記実施の形態に係る情報処理システム１は、情報処理装置１００および入出力装置２００を備える構成であるとしたがこれに限らずに、１台の情報処理装置を備える構成としてもよい。この場合、１台の情報処理装置のハードウェア構成は、入出力装置２００と同じであってもよい。
【０１４８】
また、上記実施の形態に係る情報処理システム１は、決定部１３０は、機械学習モデルの構成を変更する場合、自動的に機械学習モデルを別の機械学習モデルに変更するとしたが、これに限らない。例えば、制御部１２０は、機械学習モデルの構成を変更する場合、機械学習モデルの構成の変更を促す表示を表示部１１１に行い、かつ、機械学習モデルの構成の変更の指示を受け付けるＵＩを表示部１１１に表示させてもよい。この場合、ユーザは、入力ＩＦ２０５を用いてＵＩへの入力を行うことで、入力受付部１１２は、変更された構成の機械学習モデルを受け付けてもよい。入力受付部１１２は、変更された構成の機械学習モデルを制御部１２０に出力し、制御部１２０は、取得した機械学習モデルについて、判定部１４０に第１判定を行わせてもよい。
【０１４９】
上記実施の形態に係る情報処理システム１は、機械学習としてニューラルネットワークを用いるとしたが、これに限らずに、決定木、RandomForest、k最近傍法などを用いてもよい。RandomForestを採用する場合、機械学習モデルの構成として、ハイパーパラメータを決定する。ハイパーパラメータは、決定木の数、決定木の深さ、葉の数（各ノードのカテゴリ数）などにより決定される。ハイパーパラメータの決定木の数、決定木の深さ、葉の数などの各パラメータを大きくすれば表現力を向上させることができるが、演算量が多くなる。
【０１５０】
この場合の軽量化処理としては、ビットの量子化を適用できる。RandomForestでは、寄与度が低い決定木を削除する、または、決定木の中のノードまたは葉の一部を削除する処理を軽量化処理として行ってもよい。
【０１５１】
また、上記実施の形態に係る情報処理システム１は、決定部１３０において、ネットワーク構成を決定したり変更したりする処理を行うとしたが、当該処理を行わなくてもよい。例えば、次のような情報処理方法を行ってもよい。
【０１５２】
プロセッサを用いて以下の処理を実行する。機械学習モデルを用いて学習を実行する。学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行する。そして、前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第２判定において前記第２性能要件を満たすと判定された前記学習済みモデルに対して軽量化処理を実行する。次に、軽量化処理により得られた軽量化モデルが、ハードウェア性能に対する要件である第３性能要件を満たすかの第３判定を実行する。そして、前記第３判定において前記第３性能要件を満たすと判定された前記軽量化モデルが、実機のハードウェア性能に対する要件である第４性能要件を満たすかの第４判定を実行する。前記第４判定において前記第４性能要件を満たすと判定された場合、前記第４性能要件を満たすことを示す情報を出力し、前記第３判定において前記第３性能要件を満たさないと判定された前記軽量化モデルのハードウェア性能が第１の条件、つまり、条件Ｃ３を満たす場合、前回実行した軽量化処理とは異なるパラメータで前記軽量化処理を実行する。
【０１５３】
この場合であっても、第３判定において第３性能要件を満たさないと判定された場合に、軽量化処理を再度実行する場合があるため、実機のハードウェア性能に対する要件である第４性能要件を満たすかの第４判定を実行する回数を低減することができる。
【０１５４】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の情報処理方法、情報処理システムなどを実現するソフトウェアは、次のようなプログラムである。
【０１５５】
すなわち、このプログラムは、コンピュータのプロセッサを用いて、機械学習モデルの構成を決定し、決定された前記構成の前記機械学習モデルが、ハードウェア性能に対する要件である第１性能要件を満たすかの第１判定を実行し、前記第１判定において前記第１性能要件を満たすと判定された場合、前記第１性能要件を満たすと判定された構成の機械学習モデルを用いて学習を実行し、学習により得られた学習済みモデルが、機械学習モデルの出力の評価値に対する要件である第２性能要件を満たすかの第２判定を実行し、前記第２判定において前記学習済みモデルが前記第２性能要件を満たすと判定された場合、前記第１性能要件及び前記第２性能要件を満たすことを示す情報を出力し、前記第１判定において前記第１性能要件を満たさないと判定された場合、前記機械学習モデルの構成を変更し、変更した前記構成の前記機械学習モデルが前記第１性能要件を満たすかの前記第１判定を実行する情報処理方法を実行させる。
【０１５６】
以上、本発明の一つまたは複数の態様に係る情報処理方法および情報処理システムについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【０１５７】
本開示は、要求されるハードウェアの性能要件を満たす機械学習モデルを効率よく決定することができる情報処理方法などとして有用である。
【符号の説明】
【０１５８】
１    情報処理システム
１００    情報処理装置
１０１    ＣＰＵ
１０２    メインメモリ
１０３    ストレージ
１０４    通信ＩＦ
１０５    ＧＰＵ
１１１    表示部
１１２    入力受付部
１２０    制御部
１３０    決定部
１３１    モデル構成要件ＤＢ
１４０    判定部
１４１    検査要件ＤＢ
１５０    学習部
１５１    中断部
１６０    軽量化部
２００    入出力装置
２０１    ＣＰＵ
２０２    メインメモリ
２０３    ストレージ
２０４    ディスプレイ
２０５    入力ＩＦ
２０６    通信ＩＦ
３００    プロセッサ
【図１】
2019096285.tif 000003
【図２】
2019096285.tif 000004
【図３】
2019096285.tif 000005
【図４】
2019096285.tif 000006
【図５】
2019096285.tif 000007
【図６】
2019096285.tif 000008
【図７】
2019096285.tif 000009