(57)【要約】【課題】ニューラルネットワークの学習モデルの認識精度と、認識処理に要求される計算リソースとのバランスを取ることができる技術を提供する。【解決手段】事前学習部３０は、１以上の畳込み層を含むニューラルネットワークの学習モデルのパラメータを学習により初期化する。畳込み層選択部３１は、ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する。層構造置換部３２は、畳込み層選択部３１が選択した畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する。再学習用パラメータ設定部３３は、層構造置換部３２が置換した層以外の層に対応する学習モデルのパラメータが事前学習部３０によって初期化されたパラメータとなるように設定する。再学習部３４は、学習用データを用いて置換済みニューラルネットワークの学習モデルのパラメータを生成する。【選択図】図２
2020107042.tif 000002
【特許請求の範囲】
【請求項１】
１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置であって、
学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する事前学習部と、
前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する畳込み層選択部と、
前記畳込み層選択部が選択した畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する層構造置換部と、
前記層構造置換部が置換した層以外の層に対応する前記学習モデルのパラメータが前記事前学習部によって初期化されたパラメータとなるように設定する再学習用パラメータ設定部と、
前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成する再学習部と、
を備える学習モデル生成装置。
【請求項２】
前記畳込み層選択部は、前記ニューラルネットワークを構成する畳込み層の中から、複数の異なるパターンで前記畳込み層を選択し、
前記層構造置換部は、前記畳込み層選択部が複数の異なるパターンで選択した前記畳込み層をそれぞれ置換した複数の異なる置換済みニューラルネットワークを生成し、
前記再学習部は、前記複数の異なる置換済みニューラルネットワークそれぞれの学習モデルを生成し、
前記学習モデル生成装置は、
前記再学習部が生成した複数の異なる学習モデルの中から、各学習モデルの認識性能とモデルサイズとに少なくとも基づいて、一つの学習モデルを選択する学習モデル選択部をさらに備える、
請求項１に記載の学習モデル生成装置。
【請求項３】
前記畳込み層選択部は、前記ニューラルネットワークを構成する畳込み層の中から複数の異なる畳込み層を選択するとともに、選択した各畳込み層それぞれについて当該畳込み層よりも前記ニューラルネットワークの出力層側に配置されている畳込み層をすべて選択することにより、複数の異なるパターンで前記畳込み層を選択する、
請求項２に記載の学習モデル生成装置。
【請求項４】
前記学習モデル選択部は、前記再学習部が生成した複数の異なる学習モデルの中から、前記認識性能が最良となる学習モデルを選択する、
請求項２又は３に記載の学習モデル生成装置。
【請求項５】
学習モデルの認識性能の下限値を取得する下限性能取得部をさらに備え、
前記学習モデル選択部は、前記再学習部が生成した複数の異なる学習モデルの中から、前記認識性能の下限値を上回ることを条件としてモデルサイズが最小となる学習モデルを選択する、
請求項２又は３に記載の学習モデル生成装置。
【請求項６】
前記層構造置換部は、畳込み層選択部が選択した畳込み層における畳込みカーネルの構造を、畳込み層の空間方向とチャネル方向とに分離した構造に置換する、
請求項１から５のいずれか１項に記載の学習モデル生成装置。
【請求項７】
前記層構造置換部は、前記ニューラルネットワークを構成する全結合層を、グローバルアベレージプーリング（Global Average Pooling；GAP）層に置換する、
請求項１から６のいずれか１項に記載の学習モデル生成装置。
【請求項８】
１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置のプロセッサが、
学習用データを用いて学習することによって前記学習モデルのパラメータを初期化するステップと、
前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択するステップと、
選択した前記畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成するステップと、
構造を置換した層以外の層に対応する前記学習モデルのパラメータが前記初期化したパラメータとなるように設定するステップと、
前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成するステップと、
を実行する学習モデル生成方法。
【請求項９】
１以上の畳込み層を含むニューラルネットワークの学習モデルを生成するコンピュータに、
学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する機能と、
前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する機能と、
選択した前記畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する機能と、
構造を置換した層以外の層に対応する前記学習モデルのパラメータが前記初期化したパラメータとなるように設定する機能と、
前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成する機能と、
を実現させるプログラム。
【請求項１０】
１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置であって、
学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する事前学習部と、
前記ニューラルネットワークを構成する畳込み層の中から、複数の異なるパターンで前記畳込み層を選択する畳込み層選択部と、
前記畳込み層選択部が複数の異なるパターンで選択した前記畳込み層を、それぞれ異なる構造の畳込み層で置換した複数の異なる置換済みニューラルネットワークを生成する層構造置換部と、
前記複数の異なる置換済みニューラルネットワークそれぞれについて、前記層構造置換部が置換した層以外の層に対応する前記学習モデルのパラメータが前記事前学習部によって初期化されたパラメータとなるように設定する再学習用パラメータ設定部と、
前記再学習用パラメータ設定部がパラメータを設定した前記複数の異なる置換済みニューラルネットワークそれぞれを、前記学習用データを用いて学習して複数の異なる学習モデルを生成する再学習部と、
前記再学習部が生成した複数の異なる学習モデルのうち、前記事前学習部が生成した学習モデルよりもモデルサイズが小さいことを条件として、認識性能が最良となる学習モデルを選択する学習モデル選択部と、
を備える学習モデル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習モデル生成装置、学習モデル生成方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある。例えば非特許文献１では、機械学習のうち特にニューラルネットワークを用いて認識精度の高い学習モデルを生成するための技術が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 675-678). ACM.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行することによって精度の高い学習モデルが生成できるようになってきている。一方で、大量の学習データに基づいて生成された学習モデルはサイズや演算量が大きくなる傾向にある。このような学習モデルは認識プロセスにおいて多くの計算リソースが必要となる。このため、例えばスマートフォンやＩｏＴ（Internet Of Things）デバイス等のように、サーバ等の大型の計算機と比較すると計算リソースが小さい計算機では高精度の学習モデルを実行することが困難となることも起こりうる。
【０００５】
学習モデルのサイズや演算量を削減する技術も種々提案されているが、計算リソースが比較的小さい計算機で実行可能なレベルまで学習モデルのサイズや演算量を削減すると、十分な認識精度を保てないのが現状である。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、ニューラルネットワークの学習モデルの認識精度と、認識処理に要求される計算リソースとのバランスを取ることができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置である。この装置は、学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する事前学習部と、前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する畳込み層選択部と、前記畳込み層選択部が選択した畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する層構造置換部と、前記層構造置換部が置換した層以外の層に対応する前記学習モデルのパラメータが前記事前学習部によって初期化されたパラメータとなるように設定する再学習用パラメータ設定部と、前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成する再学習部と、を備える。
【０００８】
前記畳込み層選択部は、前記ニューラルネットワークを構成する畳込み層の中から、複数の異なるパターンで前記畳込み層を選択してもよく、前記層構造置換部は、前記畳込み層選択部が複数の異なるパターンで選択した前記畳込み層をそれぞれ置換した複数の異なる置換済みニューラルネットワークを生成してもよく、前記再学習部は、前記複数の異なる置換済みニューラルネットワークそれぞれの学習モデルを生成してもよく、前記学習モデル生成装置は、前記再学習部が生成した複数の異なる学習モデルの中から、各学習モデルの認識性能とモデルサイズとに少なくとも基づいて、一つの学習モデルを選択する学習モデル選択部をさらに備えてもよい。
【０００９】
前記畳込み層選択部は、前記ニューラルネットワークを構成する畳込み層の中から複数の異なる畳込み層を選択するとともに、選択した各畳込み層それぞれについて当該畳込み層よりも前記ニューラルネットワークの出力層側に配置されている畳込み層をすべて選択することにより、複数の異なるパターンで前記畳込み層を選択してもよい。
【００１０】
前記学習モデル選択部は、前記再学習部が生成した複数の異なる学習モデルの中から、前記認識性能が最良となる学習モデルを選択してもよい。
【００１１】
前記学習モデル生成装置は、学習モデルの認識性能の下限値を取得する下限性能取得部をさらに備えてもよく、前記学習モデル選択部は、前記再学習部が生成した複数の異なる学習モデルの中から、前記認識性能の下限値を上回ることを条件としてモデルサイズが最小となる学習モデルを選択してもよい。
【００１２】
前記層構造置換部は、畳込み層選択部が選択した畳込み層における畳込みカーネルの構造を、畳込み層の空間方向とチャネル方向とに分離した構造に置換してもよい。
【００１３】
前記層構造置換部は、前記ニューラルネットワークを構成する全結合層を、グローバルアベレージプーリング（Global Average Pooling；GAP）層に置換してもよい。
【００１４】
本発明の第２の態様は、学習モデル生成方法である。この方法において、１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置のプロセッサが、学習用データを用いて学習することによって前記学習モデルのパラメータを初期化するステップと、前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択するステップと、選択した前記畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成するステップと、構造を置換した層以外の層に対応する前記学習モデルのパラメータが前記初期化したパラメータとなるように設定するステップと、前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成するステップと、を実行する。
【００１５】
本発明の第３の態様は、プログラムである。このプログラムは、１以上の畳込み層を含むニューラルネットワークの学習モデルを生成するコンピュータに、学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する機能と、前記ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する機能と、選択した前記畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する機能と、構造を置換した層以外の層に対応する前記学習モデルのパラメータが前記初期化したパラメータとなるように設定する機能と、前記学習用データを用いて前記置換済みニューラルネットワークの学習モデルのパラメータを生成する機能と、を実現させる。
【００１６】
本発明の第４の態様も、１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する学習モデル生成装置である。この装置は、学習用データを用いて学習することによって前記学習モデルのパラメータを初期化する事前学習部と、前記ニューラルネットワークを構成する畳込み層の中から、複数の異なるパターンで前記畳込み層を選択する畳込み層選択部と、前記畳込み層選択部が複数の異なるパターンで選択した前記畳込み層を、それぞれ異なる構造の畳込み層で置換した複数の異なる置換済みニューラルネットワークを生成する層構造置換部と、前記複数の異なる置換済みニューラルネットワークそれぞれについて、前記層構造置換部が置換した層以外の層に対応する前記学習モデルのパラメータが前記事前学習部によって初期化されたパラメータとなるように設定する再学習用パラメータ設定部と、前記再学習用パラメータ設定部がパラメータを設定した前記複数の異なる置換済みニューラルネットワークそれぞれを、前記学習用データを用いて学習して複数の異なる学習モデルを生成する再学習部と、前記再学習部が生成した複数の異なる学習モデルのうち、前記事前学習部が生成した学習モデルよりもモデルサイズが小さいことを条件として、認識性能が最良となる学習モデルを選択する学習モデル選択部と、を備える。
【発明の効果】
【００１７】
本発明によれば、ニューラルネットワークの学習モデルの認識精度と、認識処理に要求される計算リソースとのバランスを取ることができる。
【図面の簡単な説明】
【００１８】
【図１】畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【図２】実施の形態に係る学習モデル生成装置の機能構成を模式的に示す図である。
【図３】実施の形態に係る学習モデル生成装置が実行する層の選択及び学習モデルの再学習を説明するための図である。
【図４】再学習部が生成したＰ種類の学習モデルにおけるモデルサイズと認識性能との関係の傾向を模式的に示す図である。
【図５】実施の形態に係る学習モデル選択部が実行する学習モデルの選択処理を説明するための図である。
【図６】実施の形態に係る畳込み層選択部による畳込み層の選択パターンの一例を説明するための図である。
【図７】実施の形態に係る学習モデル生成装置が実行する学習モデル生成処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
＜畳込みニューラルネットワーク＞
実施の形態に係る学習モデル生成装置は、ニューラルネットワークのうち、特に画像認識処理に用いられることが多い畳込みニューラルネットワーク（Convolutional Neural Network；ＣＮＮ）の学習モデルを主な処理対象とする。そこで、実施の形態に係る学習モデル生成装置の前提技術として、まず畳込みニューラルネットワークについて簡単に説明する。
【００２０】
図１は、畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【００２１】
図１は、入力画像Ｉに含まれる被写体の種類を出力するように学習された学習モデルを示している。図１に示す例では、入力層Ｌｉに入力された入力画像Ｉは、第一畳込み層Ｃ１、第二畳込み層Ｃ２の順に処理され、プーリング層Ｐ、第一全結合層Ｆ１、第二全結合層Ｆ２、及び出力層Ｌｏに至るように構成されている。出力層は、入力画像Ｉに含まれる被写体の種類を示す識別ラベルＢを出力する。
【００２２】
例えば、図１に示す学習モデルが、犬や猫、猿等の複数の動物を認識するための学習モデルである場合、あらかじめ識別対象の動物を特定するための識別ラベルＢが割り当てられている。この学習モデルの入力層Ｌｉに入力画像Ｉが入力されると、出力層Ｌｏは、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す識別ラベルＢを出力する。なお、識別ラベルＢは、複数の認識対象それぞれに一意に割り当てられたビット列である。
【００２３】
ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。
【００２４】
＜実施の形態の概要＞
実施の形態に係る学習モデル生成装置は、大きく分けて以下の４つのステップから構成される処理を実行する。まず、実施の形態に係る学習モデル生成装置は、複数の層から構成されるニューラルネットワークを用いて学習データを学習することにより、学習が終了した学習モデルである学習済みモデルを取得する（第１ステップ）。続いて、実施の形態に係る学習モデル生成装置は、取得した学習済みモデルを構成する層のうち、特に畳込み層又は全結合層の中から１以上の層を選択する（第２ステップ）。
【００２５】
次に、実施の形態に係る学習モデル生成装置は、選択した層の構造を演算量が少なくなる構造に変換した新たな置換済みニューラルネットワークを生成する（第３ステップ）。最後に、実施の形態に係る学習モデル生成装置は、置換済みニューラルネットワークに基づいて再学習することにより、置換前の学習済みモデルよりも演算量が少ない学習モデルを生成する。
【００２６】
このように、実施の形態に係る学習モデル生成装置は、学習に用いるニューラルネットワークを構成する層の一部の構造を置換して学習モデルのパラメータを再学習することにより、置換前の学習モデルよりも演算量が少なくなる学習モデルを生成することができる。
【００２７】
＜実施の形態に係る学習モデル生成装置１の機能構成＞
図２は、実施の形態に係る学習モデル生成装置１の機能構成を模式的に示す図である。学習モデル生成装置１は、１以上の畳込み層を含むニューラルネットワークの学習モデルを生成する装置であり、記憶部２と制御部３とを備える。
【００２８】
図２において、矢印は主なデータの流れを示しており、図２に示していないデータの流れがあってもよい。図２において、各機能ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図２に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【００２９】
記憶部２は、学習モデル生成装置１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）や学習モデル生成装置１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置である。
【００３０】
制御部３は、学習モデル生成装置１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部２に記憶されたプログラムを実行することによって事前学習部３０、畳込み層選択部３１、層構造置換部３２、再学習用パラメータ設定部３３、再学習部３４、学習モデル選択部３５、及び条件取得部３６として機能する。
【００３１】
なお、図２は、学習モデル生成装置１が単一の装置で構成されている場合の例を示している。しかしながら、学習モデル生成装置１は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部３を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【００３２】
事前学習部３０は、１以上の畳込み層を含むニューラルネットワークに基づいて学習用データを用いて学習することにより、学習モデルのパラメータを初期化する。事前学習部３０によってパラメータが初期化された学習モデルが、上述した学習済みモデルである。
【００３３】
畳込み層選択部３１は、ニューラルネットワークを構成する畳込み層の中から、１以上の畳込み層を選択する。層構造置換部３２は、畳込み層選択部３１が選択した畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換した置換済みニューラルネットワークを生成する。なお、畳込み演算の計算量が少なくなる構造については後述する。
【００３４】
再学習用パラメータ設定部３３は、層構造置換部３２が置換した層以外の層に対応する学習モデルのパラメータが事前学習部３０によって初期化されたパラメータとなるように、学習モデルのパラメータを設定する。言い換えると、再学習用パラメータ設定部３３は、層構造置換部３２が置換した層以外の層に対応する学習モデルのパラメータを、事前学習部３０が生成したパラメータで初期化する。
【００３５】
再学習部３４は、事前学習部３０が学習モデルのパラメータの初期化に用いた学習用データを用いて学習することにより、置換済みニューラルネットワークの学習モデルのパラメータを生成する。これにより、層構造置換部３２が置換した層に対応する学習モデルのパラメータを含む学習モデル全体のパラメータが生成される。
【００３６】
上述したように、層構造置換部３２は、３１が選択した畳込み層の構造を、畳込み演算の計算量が少なくなる構造に置換する。このため、再学習部３４が生成した学習モデルは、事前学習部３０が生成した学習モデルよりも、認識処理実行時に要求される畳み込み演算の計算量が小さくなる。また、畳込み層選択部３１が選択した畳込み層の構造を置換することにより、再学習部３４が生成する学習モデルのサイズも小さくなる。
【００３７】
ここで、層構造置換部３２が置換した層のうち、ニューラルネットワークの入力層に最も近い層よりもさらに入力層側に位置する層に対応する学習モデルのパラメータは、再学習部３４による再学習で変更されないか、変更されるとしてもその変化量は小さい。したがって、層構造置換部３２が置換した層のうち、ニューラルネットワークの入力層に最も近い層よりもさらに入力層側に位置する層に対応する学習モデルのパラメータは、事前学習部３０によって初期化されたパラメータを維持していると言える。このため、学習用データを用いて置換済みニューラルネットワークの学習モデルをはじめから生成した場合に得られる学習モデルの認識精度と比較して、再学習部３４が生成する学習モデルの認識精度は、３０が生成した学習モデルの認識精度に近いことが期待できる。
【００３８】
以上より、実施の形態に係る学習モデル生成装置１が生成する学習モデルは、事前学習部３０が生成する学習モデルよりも認識処理実行時に要求される畳み込み演算の計算量が小さく、かつ学習モデルのサイズが小さくなる。さらに、実施の形態に係る学習モデル生成装置１が生成する学習モデルは、学習用データを用いて置換済みニューラルネットワークの学習モデルをはじめから生成して得られる学習モデルよりも高い認識精度が期待できる。ゆえに、実施の形態に係る学習モデル生成装置１は、ニューラルネットワークの学習モデルの認識精度と、認識処理に要求される計算リソースとのバランスを取ることができる。
【００３９】
ここで、畳込み層選択部３１による畳込み層の選択パターンは１種類に限定されない。畳込み層選択部３１は、ニューラルネットワークを構成する畳込み層の中から複数の異なるパターンで畳込み層を選択してもよい。この場合、層構造置換部３２は、畳込み層選択部３１が複数の異なるパターンで選択した畳込み層をそれぞれ置換した複数の異なる置換済みニューラルネットワークを生成する。また、再学習部３４は、複数の異なる置換済みニューラルネットワークそれぞれの学習モデルを生成する。
【００４０】
図３は、実施の形態に係る学習モデル生成装置１が実行する層の選択及び学習モデルの再学習を説明するための図である。図３において、白抜きの矩形は構造が置換されていない元の状態の畳込み層を示しており、斜線が付された矩形は畳込み演算の計算量が少なくなる構造に置換された畳込み層を示している。
【００４１】
図３は、畳込み層選択部３１が８つの畳込み層を選択した場合の例を示している。さらに、図３は、層構造置換部３２がＰ（Ｐは２以上の整数）種類の異なるパターンで畳込み層を置換することにより、置換された畳込み層のパターンが異なるＰ種類の置換済みニューラルネットワークを生成した場合の例を示している。
【００４２】
再学習部３４は、層構造置換部３２が生成したＰ種類の異なる置換済みニューラルネットワークそれぞれを用いて学習用データを学習し、Ｐ種類の異なる学習モデルＭ（学習モデルＭ１〜学習モデルＭＰ）を生成する。
【００４３】
図３に示すように、層構造置換部３２が生成したＰ種類の異なる置換済みニューラルネットワークは、それぞれ置換された畳込み層の数又は箇所が異なる。このため、再学習部３４が生成したＰ種類の学習モデルＭは、それぞれモデルのサイズ及び認識性能が異なるものとなる。
【００４４】
図４は、再学習部３４が生成したＰ種類の学習モデルＭにおけるモデルサイズと認識性能との関係の傾向を模式的に示す図である。具体的には、図４は、学習モデルＭのモデルサイズを横軸とし、学習モデルＭの認識性能を縦軸として複数の学習モデルＭをプロットしたグラフである。一般に、学習モデルＭのモデルサイズと認識時の演算量とは相関があり、学習モデルＭのサイズが小さいほど、認識処理時の演算量が小さくなる。したがって、図４に示すグラフにおいて、横軸を学習モデルＭの認識時の演算用に置き換えても、図４に示すグラフの大きな傾向は変わらない。
【００４５】
図４に示すように、学習モデルＭのモデルサイズが小さくなるほど、学習モデルＭの認識性能は低くなる傾向がある。したがって、仮に学習モデルＭのモデルサイズを小さくすることができたとしても、学習モデルＭの認識性能が要求レベルに達していなければ、その学習モデルＭを採用することはできない。反対に、学習モデルＭの認識性能が高くても、学習モデルＭのモデルサイズや認識処理時の演算量が許容できなければ、その学習モデルＭを採用することはできない。
【００４６】
そこで、学習モデル選択部３５は、再学習部３４が生成した複数の異なる学習モデルＭの中から、各学習モデルＭの認識性能とモデルサイズとに少なくとも基づいて、一つの学習モデルＭを選択する。
【００４７】
図５は、実施の形態に係る学習モデル選択部３５が実行する学習モデルＭの選択処理を説明するための図である。学習モデル選択部３５は、再学習部３４が生成したＰ種類の学習モデルＭそれぞれについて、学習モデルＭの認識性能を計測するためにあらかじめ定められたテストデータを適用することにより、各学習モデルＭの認識性能を測定する。学習モデル選択部３５は、以下に示す規範にしたがって、Ｐ種類の学習モデルＭの中から１つの学習モデルＭを選択する。
【００４８】
［第１の選択規範］
学習モデル選択部３５が学習モデルＭを選択する際に、学習モデルＭの認識性能は重要なパラメータとなる。そこで、学習モデル選択部３５は、再学習部３４が生成した複数の異なる学習モデルの中から、認識性能が最良となる学習モデルを選択する。この選択規範は、いわば認識性能重視の規範である。学習モデルＭを実行する装置の計算リソースに余裕がある場合には、学習モデルＭの認識性能を重視しつつ、できる限りモデルサイズを小さくすることが望まれる場合、学習モデル選択部３５は認識性能が最良となる学習モデルを選択すればよい。
【００４９】
［第２の選択規範］
一方、学習モデルＭの認識性能は重要であるものの、ある一定の認識性能が担保されていればよいという場合もありえる。この場合は、学習モデル選択部３５は、一定の認識性能を持つことを条件に、モデルサイズの小さい学習モデルＭを選択することで、学習モデルＭの認識処理時の計算コストを下げ、認識速度を向上させることが期待できる。
【００５０】
そこで、条件取得部３６は、学習モデルＭの認識性能の下限値を取得する。具体的には、学習モデル生成装置１の図示しないユーザインタフェースを介して学習モデル生成装置１のユーザから学習モデルＭに求められる認識性能の下限値を取得する。学習モデル選択部３５は、再学習部３４が生成した複数の異なる学習モデルＭの中から、条件取得部３６が取得した認識性能の下限値を上回ることを条件としてモデルサイズが最小となる学習モデルＭを選択する。これにより、学習モデル選択部３５は、認識性能とモデルサイズとのバランスの取れた学習モデルＭを選択することができる。
【００５１】
［第３の選択規範］
さらに別の例として、例えばＩｏＴデバイス等の計算リソースに余裕がない装置で学習モデルＭを実行させることが要求される場合、学習モデルＭのモデルサイズが装置によって定まる上限値を超えないことが求められる。そこで、条件取得部３６は、学習モデルＭのモデルサイズの上限値を取得する。学習モデル選択部３５は、再学習部３４が生成した複数の異なる学習モデルＭの中から、条件取得部３６が取得したモデルサイズの上限値を下回ることを条件として認識性能が最良となる学習モデルＭを選択する。これにより、学習モデル選択部３５は、認識性能とモデルサイズとのバランスの取れた学習モデルＭを選択することができる。
【００５２】
図４に示すグラフにおいて、一点鎖線は条件取得部３６が取得した認識性能の下限値を示しており、二点鎖線はモデルサイズの上限値を示している。図４において、プロットＱ１は、事前学習部３０がパラメータを初期化して生成した学習モデルＭを示している。図４に示すように、事前学習部３０が生成した学習モデルＭは、他の学習モデルＭと比較して認識性能が最もよく、かつモデルサイズが最も大きい。
【００５３】
上述した第１の選択規範にしたがう場合、学習モデル選択部３５は、図４におけるプロットＱ２に対応する学習モデルＭを選択する。図４に示される複数の学習モデルＭの中で、畳込み層の置換が行われていない学習モデルであるプロットＱ１に対応する学習モデルＭを除くと、プロットＱ２に対応する学習モデルＭは認識性能が最良となるからである。
【００５４】
また、上述した第２の選択規範にしたがう場合、学習モデル選択部３５は、図４におけるプロットＱ３に対応する学習モデルＭを選択する。プロットＱ３に対応する学習モデルＭは、条件取得部３６が取得した認識性能の下限値を上回る学習モデルＭの中で、モデルサイズが最小となるからである。
【００５５】
さらに、上述した第３の選択規範にしたがう場合、学習モデル選択部３５は、図４におけるプロットＱ４に対応する学習モデルＭを選択する。プロットＱ４に対応する学習モデルＭは、条件取得部３６が取得したモデルサイズの上限値を下回る学習モデルＭの中で、認識性能が最良となるからである。
【００５６】
このように、条件取得部３６が取得した条件を満たすように学習モデル選択部３５が学習モデルＭを選択することにより学習モデル生成装置１は、ニューラルネットワークの学習モデルＭの認識精度と、認識処理に要求される計算リソースとのバランスを取った学習モデルＭを生成することができる。
【００５７】
［畳込み層の選択パターン］
続いて、畳込み層選択部３１による畳込み層の選択パターンを説明する。
畳込み層選択部３１による畳込み層の選択の仕方は基本的には任意である。ここで、畳込み層選択部３１によってある畳込み層の構造が置換された場合、その層よりも後段側（出力層Ｌｏ側）に存在する層のモデルパラメータは、再学習部３４による再学習によって変更される。そのため、再学習によってモデルパラメータが変更されてしまうのであれば、最も前段側（入力層Ｌｉ側）に位置する構造が置換された畳込み層よりも後段側に存在する畳み込み層はすべて構造を置換するようにすることも一案として考えられる。
【００５８】
図６（ａ）−（ｈ）は、実施の形態に係る畳込み層選択部３１による畳込み層の選択パターンの一例を説明するための図であり、最も前段側に位置する構造が置換された畳込み層よりも後段側に存在する畳み込み層はすべて構造を置換するように選択する場合の例を示す図である。
【００５９】
具体的には、畳込み層選択部３１は、まず、ニューラルネットワークを構成する畳込み層の中から複数の異なる畳込み層を選択する。図６（ａ）−（ｈ）において、格子状の網掛けを付した矩形は、それぞれ畳込み層選択部３１が最初に選択した畳込み層を示している。例えば、図６（ａ）は、畳込み層選択部３１が最も後段側の畳込み層を選択した場合の例を示しており、図６（ｂ）は、畳込み層選択部３１が最も後段側の畳込み層よりも１つ前段側に位置する畳込み層を選択した場合の例を示している。以下、図６（ｃ）−（ｈ）も同様である。
【００６０】
続いて、畳込み層選択部３１は、選択した各畳込み層それぞれについてその畳込み層よりもニューラルネットワークの出力層Ｌｏ側に配置されている畳込み層をすべて選択する。図６（ａ）−（ｈ）において、斜線を付した矩形は、最初に選択された畳込み層よりも出力層Ｌｏ側に位置するため選択された畳み込み層であることを示している。例えば、図６（ｃ）では、畳込み層選択部３１が最初に最も後段側の畳込み層よりも２つ前段側に位置する畳込み層を選択したため、その畳み込み層よりも出力層Ｌｏ側に配置されている２つの畳込み層はすべて選択されている。図６（ｈ）では、畳込み層選択部３１が最初に最も前段側に位置する畳込み層を選択したため、すべての畳み込み層が畳込み層選択部３１によって選択されたことを示している。これにより、畳込み層選択部３１は、複数の異なるパターン（図６に示す例では８つのパターン）で畳込み層を選択することができる。
【００６１】
［畳み込み層の構造］
続いて、畳込み演算の計算量が少なくなる構造について説明する。実施の形態に係る層構造置換部３２は、一般的な畳込み層を既知のセパラブルコンボリューション（Separable Convolution）の構造に置換する。セパラブルコンボリューションは既知の手法のため詳細な説明は省略するが、通常の３次元（２次元の空間方向と１次元のチャネル方向との合計）の畳み込みを、２次元の空間方向の畳込みと１次元のチャネル方向の畳込みとに分解して近似する手法である。
【００６２】
例えば、入力特徴マップの高さをＨ、幅をＷ、入力チャネル数をＮ、畳込みカーネルの高さ及び幅をそれぞれＫ、出力チャネル数をＬとする。入力特徴マップの１箇所について畳込み演算の演算量がＮＫ２であり、これを入力特徴マップのＨＷ箇所に適用すると、１チャネルあたりの演算量がＨＷＮＫ２となる。出力チャネルはＬチャンネルなので、通常の畳込み演算の演算量は全部でＨＷＮＫ２Ｌとなる。モデルサイズに影響するパラメータ数は、Ｋ２Ｎの畳込みがＬ種類あるので、Ｋ２ＮＬとなる。
【００６３】
これに対し、セパラブルコンボリューションの場合、空間方向の畳込み実行時にはチャネル方向への畳込みは行わないため、空間方向の畳込みの演算量はＨＷＮＫ２となり、パラメータ数はＫ２Ｎとなる。また、チャネル方向の畳込みは、畳込みカーネルのサイズが高さ及び幅がともに１の場合に相当するため、演算量はＨＷＮＬとなり、パラメータ数はＮＬとなる。結局、セパラブルコンボリューションの演算量は全体でＨＷＮＫ２＋ＨＷＮＬ＝（Ｋ２＋Ｌ）ＨＷＮ、パラメータ数はＫ２Ｎ＋ＮＬ＝（Ｋ２＋Ｌ）Ｎとなる。
【００６４】
以上より、層構造置換部３２がある畳込み層をセパラブルコンボリューションに置換することにより、その畳み込み層における畳込み演算の演算量は、（Ｋ２＋Ｌ）／Ｋ２Ｌとなる。例えば、畳込みカーネルが３×３（Ｋ＝３）、出力チャネル数Ｌ（すなわち、畳込みカーネルの種類）が３２である場合、（Ｋ２＋Ｌ）／Ｋ２Ｌはおよそ０．１４２となる。この例では、層構造置換部３２が畳込み層の構造をセパラブルコンボリューションの構造に置換することにより、畳込み演算の演算量が１５％以下となることを示している。
【００６５】
このように、層構造置換部３２は、畳込み層選択部３１が選択した畳込み層における畳込みカーネルの構造を、畳込み層の空間方向とチャネル方向とに分離したセパラブルコンボリューションの構造に置換する。これにより、学習モデル生成装置１は、ニューラルネットワークの学習モデルＭの畳込み演算の演算量とモデルサイズとを削減することができる。
【００６６】
＜学習モデル生成装置１が実行する情報処理の処理フロー＞
図７は、実施の形態に係る学習モデル生成装置１が実行する学習モデル生成処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば学習モデル生成装置１が起動したときに開始する。
【００６７】
事前学習部３０は、学習用データを用いて学習することによって、１以上の畳込み層を含むニューラルネットワークの学習モデルＭのパラメータを初期化する（Ｓ２）。畳込み層選択部は、ニューラルネットワークを構成する畳込み層の中から、複数の異なるパターンで畳込み層を選択する（Ｓ４）。
【００６８】
層構造置換部３２は、畳込み層選択部３１が複数の異なるパターンで選択した畳込み層を、それぞれ異なる構造の畳込み層で置換した複数の異なる置換済みニューラルネットワークを生成する（Ｓ６）。
【００６９】
再学習用パラメータ設定部３３は、複数の異なる置換済みニューラルネットワークそれぞれについて、層構造置換部３２が置換した層以外の層に対応する学習モデルＭのパラメータが事前学習部３０によって初期化されたパラメータとなるように設定する（Ｓ８）。
【００７０】
再学習部３４は、再学習用パラメータ設定部３３がパラメータを設定した複数の異なる置換済みニューラルネットワークそれぞれを、学習用データを用いて学習して複数の異なる学習モデルＭを生成する（Ｓ１０）。
【００７１】
学習モデル選択部３５は、再学習部３４が生成した複数の異なる学習モデルＭのうち、事前学習部３０が生成した学習モデルＭよりもモデルサイズが小さいことを条件として、認識性能が最良となる学習モデルＭを選択する（Ｓ１２）。
【００７２】
学習モデル選択部３５が学習モデルＭを選択すると、本フローチャートにおける処理は終了する。
【００７３】
＜実施の形態に係る学習モデル生成装置１が奏する効果＞
以上説明したように、実施の形態に係る学習モデル生成装置１によれば、ニューラルネットワークの学習モデルＭの認識精度と、認識処理に要求される計算リソースとのバランスを取ることができる。
【００７４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００７５】
＜変形例＞
上記では、層構造置換部３２は、畳込み層選択部３１が選択した畳込み層の構造をセパラブルコンボリューションの構造に置換する場合について説明した。これに替えて、あるいはこれに加えて、層構造置換部３２は、ニューラルネットワークを構成する全結合層を、既知のグローバルアベレージプーリング（Global Average Pooling；GAP）層に置換してもよい。これにより、学習モデル生成装置１は、ニューラルネットワークの学習モデルＭの認識処理実行時の演算量とモデルサイズとを削減することができる。
【符号の説明】
【００７６】
１・・・学習モデル生成装置
２・・・記憶部
３・・・制御部
３０・・・事前学習部
３１・・・畳込み層選択部
３２・・・層構造置換部
３３・・・再学習用パラメータ設定部
３４・・・再学習部
３５・・・学習モデル選択部
３６・・・条件取得部
【図１】
2020107042.tif 000003
【図２】
2020107042.tif 000004
【図３】
2020107042.tif 000005
【図４】
2020107042.tif 000006
【図５】
2020107042.tif 000007
【図６】
2020107042.tif 000008
【図７】
2020107042.tif 000009