(57)【特許請求の範囲】
【請求項１】
ニューラルネットワークが実装される演算器の性能情報に基づき、前記ニューラルネットワークを前記演算器に実装した場合における前記ニューラルネットワークの処理にかかる処理時間を計算する処理時間計算部と、
前記処理時間計算部によって計算された前記処理時間が要求時間よりも長いか否かを判定する達成判定部と、
前記ニューラルネットワークを構成する複数の層それぞれを対象の層として、前記対象の層におけるパラメータの削減優先度を表す評価値を計算する評価値計算部と、
前記達成判定部によって前記処理時間が前記要求時間よりも長いと判定された場合に、前記評価値計算部によって計算された前記評価値が高い層のパラメータを削減することにより、前記ニューラルネットワークの構造を変換して新しいニューラルネットワークを生成し、前記達成判定部によって前記処理時間が前記要求時間以下と判定された場合に、前記ニューラルネットワークの構造を変換しない構造変換部と
を備え、
前記評価値計算部は、当初のニューラルネットワークと前記構造変換部によって変換される前の現ニューラルネットワークとのそれぞれに対する、パラメータ数の削減率と、パラメータ削減時の処理時間の短縮量との少なくともいずれかに基づいて前記評価値を計算する構造変換装置。
【請求項２】
前記処理時間計算部は、前記構造変換部によって生成された前記新しいニューラルネットワークの処理時間を計算し、
前記評価値計算部は、前記新しいニューラルネットワークの前記処理時間が前記要求時間よりも長いと判定された場合に、前記ニューラルネットワークを構成する複数の層それぞれを対象の層として、前記評価値を計算し、
前記構造変換部は、前記ニューラルネットワークを構成する複数の層それぞれを対象の層として計算された前記評価値が高い層のパラメータを削減して、前記ニューラルネットワークの構造を変換する
請求項１に記載の構造変換装置。
【請求項３】
前記評価値計算部は、当初のニューラルネットワークの前記対象の層におけるパラメー
タ数に対するパラメータの削減数の割合である当初パラメータ削減率から、前記評価値を計算する
請求項１又は２に記載の構造変換装置。
【請求項４】
前記評価値計算部は、削減数のパラメータを削減した場合における処理時間の短縮量から、前記評価値を計算する
請求項１から３までのいずれか１項に記載の構造変換装置。
【請求項５】
前記評価値計算部は、現在のニューラルネットワークの前記対象の層におけるパラメータ数に対するパラメータの削減数の割合である現パラメータ削減率に対する、前記削減数のパラメータを削減した場合における処理時間の短縮量の割合である短縮効率から、前記評価値を計算する
請求項１から３までのいずれか１項に記載の構造変換装置。
【請求項６】
前記評価値計算部は、当初のニューラルネットワークの前記対象の層におけるパラメータ数に対するパラメータの削減数の割合である当初パラメータ削減率から得られた重みを、前記短縮効率に乗じて、前記評価値を計算する
請求項５に記載の構造変換装置。
【請求項７】
処理時間計算部が、ニューラルネットワークが実装される演算器の性能情報に基づき、前記ニューラルネットワークを前記演算器に実装した場合における前記ニューラルネットワークの処理にかかる処理時間を計算し、
達成判定部が、前記処理時間が要求時間よりも長いか否かを判定し、
評価値計算部が、前記ニューラルネットワークを構成する複数の層それぞれを対象の層として、前記対象の層におけるパラメータの削減優先度を表す評価値を計算し、
構造変換部が、前記処理時間が前記要求時間よりも長いと判定された場合に、前記評価値が高い層のパラメータを削減することにより、前記ニューラルネットワークの構造を変換して新しいニューラルネットワークを生成し、前記処理時間が前記要求時間以下と判定された場合に、前記ニューラルネットワークの構造を変換せず、
前記評価値計算部は、当初のニューラルネットワークと前記構造変換部によって変換される前の現ニューラルネットワークとのそれぞれに対する、パラメータ数の削減率と、パラメータ削減時の処理時間の短縮量との少なくともいずれかに基づいて前記評価値を計算する構造変換方法。
【請求項８】
ニューラルネットワークが実装される演算器の性能情報に基づき、前記ニューラルネットワークを前記演算器に実装した場合における前記ニューラルネットワークの処理にかかる処理時間を計算する処理時間計算処理と、
前記処理時間計算処理によって計算された前記処理時間が要求時間よりも長いか否かを判定する達成判定処理と、
前記ニューラルネットワークを構成する複数の層それぞれを対象の層として、前記対象の層におけるパラメータの削減優先度を表す評価値を計算する評価値計算処理と、
前記達成判定処理によって前記処理時間が前記要求時間よりも長いと判定された場合に、前記評価値計算処理によって計算された前記評価値が高い層のパラメータを削減することにより、前記ニューラルネットワークの構造を変換して新しいニューラルネットワークを生成し、前記達成判定処理によって前記処理時間が前記要求時間以下と判定された場合に、前記ニューラルネットワークの構造を変換しない構造変換処理と、
を行う構造変換装置としてコンピュータを機能させ、
前記評価値計算処理では、当初のニューラルネットワークと前記構造変換処理によって変換される前の現ニューラルネットワークとのそれぞれに対する、パラメータ数の削減率と、パラメータ削減時の処理時間の短縮量との少なくともいずれかに基づいて前記評価値
を計算する構造変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ニューラルネットワークの構造を変換する技術に関する。
【背景技術】
【０００２】
ニューラルネットワークの処理速度を向上させるために、ニューラルネットワークの構造を変換することが行われている。
特許文献１には、処理速度向上目標に基づきパラメータについての全層合計の列次元削減量を決定し、入力層に近い層ほど削減量が少なくなるように各層の列次元削減量を決定することが記載されている。また、特許文献２には、ネットワークのパラメータをランダムに削減して再学習し、認識精度から決まるコストが削減前から改善したときに削減後のネットワークに変換することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１０９９４７号公報
【特許文献２】特開２０１５−１１５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１及び特許文献２に記載された技術では、ニューラルネットワークの実装先の演算器の性能を考慮せずにパラメータを削減する。そのため、変換後のニューラルネットワークを演算器に実装した際に要求性能を達成できない可能性がある。また、要求性能を達成しているにも関わらずパラメータを削減してしまい、認識精度が低くなりすぎてしまう可能性がある。
本開示は、ニューラルネットワークの認識精度を必要以上に低下させずに、要求性能を達成できるようすることを目的とする。
【課題を解決するための手段】
【０００５】
本開示に係る構造変換装置は、
ニューラルネットワークが実装される演算器の性能情報に基づき、前記ニューラルネットワークを前記演算器に実装した場合における前記ニューラルネットワークの処理にかかる処理時間を計算する処理時間計算部と、
前記処理時間計算部によって計算された前記処理時間が要求時間よりも長いか否かを判定する達成判定部と、
前記達成判定部によって前記処理時間が前記要求時間よりも長いと判定された場合に、前記ニューラルネットワークの構造を変換し、前記達成判定部によって前記処理時間が前記要求時間以下と判定された場合に、前記ニューラルネットワークの構造を変換しない構造変換部と
を備える。
【発明の効果】
【０００６】
本開示では、ニューラルネットワークを演算器に実装した場合における処理時間を計算し、処理時間が要求時間よりも長い場合にニューラルネットワークの構造を変換する。これにより、必要以上にニューラルネットワークの構造を変換することがない。その結果、ニューラルネットワークの認識精度を必要以上に低下させずに、要求性能を達成できるようになる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係る構造変換装置１０のハードウェア構成図。
【図２】実施の形態１に係る構造変換装置１０の機能構成図。
【図３】実施の形態１に係る構造変換装置１０の全体的な動作を示すフローチャート。
【図４】実施の形態１に係る評価値の計算処理のフローチャート。
【発明を実施するための形態】
【０００８】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係る構造変換装置１０のハードウェア構成の一例を説明する。
構造変換装置１０は、ニューラルネットワークの構造を変換するコンピュータである。
構造変換装置１０は、プロセッサ１１と、記憶装置１２と、学習用演算器１３とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【０００９】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１０】
記憶装置１２は、データを記憶する装置である。記憶装置１２は、具体例としては、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
また、記憶装置１２は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ，登録商標）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
【００１１】
学習用演算器１３は、ニューラルネットワークの学習処理を高速に行うためのＩＣである。学習用演算器１３は、具体例としては、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１２】
図２を参照して、実施の形態１に係る構造変換装置１０の機能構成を説明する。
構造変換装置１０は、機能構成要素として、情報取得部２１と、解析部２２と、達成判定部２３と、再学習部２４と、情報出力部２５とを備える。解析部２２は、処理時間計算部２２１と、削減率計算部２２２と、短縮効率計算部２２３と、評価値計算部２２４と、構造変換部２２５とを備える。構造変換装置１０の各機能構成要素の機能はソフトウェアにより実現される。
【００１３】
記憶装置１２には、構造変換装置１０の各機能構成要素の機能を実現するプログラムが格納されている。情報取得部２１と解析部２２と達成判定部２３と情報出力部２５とを実現するプログラムは、プロセッサ１１により読み込まれ、実行される。また、再学習部２４を実現するプログラムは、学習用演算器１３により読み込まれ、実行される。これにより、構造変換装置１０の各機能構成要素の機能が実現される。
【００１４】
構造変換装置１０は、構造情報３１と、性能情報３２と、要求情報３３と、学習用データセット３４とを入力として、構造情報３１を変換した新しい構造情報３５を出力する。
【００１５】
＊＊＊動作の説明＊＊＊
図３及び図４を参照して、実施の形態１に係る構造変換装置１０の動作を説明する。
実施の形態１に係る構造変換装置１０の動作手順は、実施の形態１に係る構造変換方法に相当する。また、実施の形態１に係る構造変換装置１０の動作を実現するプログラムは、実施の形態１に係る構造変換プログラムに相当する。
【００１６】
図３を参照して、実施の形態１に係る構造変換装置１０の全体的な動作を説明する。
構造変換装置１０は、図３に示す処理を実行することにより、ニューラルネットワークの構造を変換して、新しいニューラルネットワークを生成する。
【００１７】
（ステップＳ１１：情報取得処理）
情報取得部２１は、構造情報３１と、性能情報３２と、要求情報３３とを取得する。
具体的には、構造変換装置１０の使用者等によって設定された構造情報３１と性能情報３２と要求情報３３とを記憶装置１２から読み出す。
【００１８】
構造情報３１は、ニューラルネットワークにおける変換部分を決定するために必要となる情報である。構造情報３１は、ニューラルネットワークの構造を示す情報である。具体的には、構造情報３１は、ニューラルネットワークを構成する複数の層それぞれにおける、層の種類と、重み情報と、ニューロンと、特徴マップと、フィルタのサイズといった推論処理の内容を明らかにするために必要な情報である。層の種類とは、全結合層及び畳み込み層等である。
【００１９】
性能情報３２及び要求情報３３は、ニューラルネットワークを演算器に実装した際に、要求性能を達成できるか判定するために必要な情報である。性能情報３２は、ニューラルネットワークが実装される演算器（以下、実装先演算器と呼ぶ）の演算性能及びバス帯域といった処理時間の見積りに必要な情報である。要求情報３３は、ニューラルネットワークの実行時に満たす必要がある処理時間を示す情報である。要求情報３３が示す処理時間を要求時間と呼ぶ。
【００２０】
（ステップＳ１２：第１処理時間計算処理）
解析部２２の処理時間計算部２２１は、構造情報３１及び性能情報３２を参照して、ニューラルネットワークを実装先演算器に実装した場合におけるニューラルネットワークの認識処理にかかる処理時間を計算する。
処理時間の計算方法について詳しくは後述する。
【００２１】
（ステップＳ１３：第１達成判定処理）
達成判定部２３は、ニューラルネットワークの性能が要求を満たすか否かを判定する。具体的には、達成判定部２３は、ステップＳ１２で計算された処理時間が要求情報３３が示す要求時間よりも長いか否かを判定する。
達成判定部２３は、処理時間が要求時間よりも長い場合には、処理をステップＳ１４に進める。一方、達成判定部２３は、処理時間が要求時間以下の場合には、処理をステップＳ１９に進める。
【００２２】
（ステップＳ１４：評価値計算処理）
解析部２２の評価値計算部２２４は、ニューラルネットワークを構成する複数の層それぞれを対象の層として、対象の層におけるパラメータの削減優先度を表す評価値を計算する。パラメータは、１層分のニューラルネットワークの構造を決定する特徴である。具体例としては、全結合層であれば、パラメータはニューロンであり、畳み込み層であれば、パラメータはチャネルである。
評価値の計算方法について詳しくは後述する。
【００２３】
（ステップＳ１５：構造変換処理）
解析部２２の構造変換部２２５は、ステップＳ１４で計算された評価値が最も高い層を削減層として特定する。つまり、構造変換部２２５は、最も削減優先度が高い層を削減層として特定する。
そして、構造変換部２２５は、削減層における削減数のパラメータを削減する。削減数は、１以上の整数である。実施の形態１では、削減数を１個とする。構造変換部２２５は、パラメータを削減することにより、ニューラルネットワークの構造を変換して新しいニューラルネットワークを生成する。なお、削減するパラメータは、既存技術を用いて選択されればよい。
【００２４】
（ステップＳ１６：第２処理時間計算処理）
解析部２２の処理時間計算部２２１は、構造情報３１及び性能情報３２を参照して、ステップＳ１５で生成された新しいニューラルネットワークを実装先演算器に実装した場合におけるニューラルネットワークの認識処理にかかる処理時間を計算する。
処理時間の計算方法について詳しくは後述する。
【００２５】
（ステップＳ１７：第２達成判定処理）
達成判定部２３は、新しいニューラルネットワークの性能が要求を満たすか否かを判定する。具体的には、達成判定部２３は、ステップＳ１６で計算された処理時間が要求情報３３が示す要求時間よりも長いか否かを判定する。
達成判定部２３は、処理時間が要求時間よりも長い場合には、処理をステップＳ１４に戻す。一方、達成判定部２３は、処理時間が要求時間以下の場合には、処理をステップＳ１８に進める。
【００２６】
処理がステップＳ１４に戻されると、ステップＳ１４では、直近のステップＳ１５の処理で生成された新しいニューラルネットワークを構成する各層の評価値が計算される。そして、ステップＳ１５では、さらに新しいニューラルネットワークが生成される。
つまり、ステップＳ１４からステップＳ１８の処理が繰り返し実行されることにより、ニューラルネットワークの性能が要求を満たすまでニューラルネットワークの構造が少しずつ変更される。つまり、ニューラルネットワークの処理時間が要求時間以下になるまでニューラルネットワークの構造が少しずつ変更される。
【００２７】
（ステップＳ１８：再学習処理）
再学習部２４は、学習用データセット３４を入力として、直近のステップＳ１５の処理で生成された新しいニューラルネットワークに対する再学習を行う。これにより、新しいニューラルネットワークの認識精度を高くする。
そして、再学習部２４は、再学習後のニューラルネットワークについての構造を示す新しい構造情報３５を生成する。新しい構造情報３５は、構造情報３１と同様に、ニューラルネットワークを構成する複数の層それぞれにおける、層の種類と、重み情報と、ニューロンと、特徴マップと、フィルタのサイズといった推論処理の内容を明らかにするために必要な情報である。
【００２８】
（ステップＳ１９：出力処理）
情報出力部２５は、ステップＳ１３で処理時間が要求時間よりも長いと判定された場合には、ステップＳ１８で生成された新しい構造情報３５を出力する。一方、情報出力部２５は、ステップＳ１３で処理時間が要求時間以下と判定された場合には、ステップＳ１１で取得された構造情報３１を出力する。
【００２９】
ステップＳ１２及びステップＳ１６での処理時間の計算方法を説明する。
処理時間計算部２２１は、式１に示すように、ニューラルネットワークを構成する各層の処理にかかる処理時間を合計することにより、ニューラルネットワーク全体の処理時間を計算する。
（式１）
処理時間＝Σ（１層分の処理時間）
【００３０】
処理時間計算部２２１は、式２に示すように、ニューラルネットワークを構成する複数の層それぞれを対象の層として、対象の層の演算量を、実装先演算器の演算性能で除すことによって、対象の層の処理時間を計算する。
（式２）
１層分の処理時間＝（１層分の演算量）／（実装先演算器の演算性能）
【００３１】
対象の層の演算量は、構造情報３１が示すニューラルネットワークの構造から特定される。実装先演算器の演算性能は、性能情報３２が示す情報であり、実装先演算器の仕様又は実測値から特定される。
【００３２】
なお、処理時間の計算方法はここで説明した方法に限らない。例えば、処理時間計算部２２１は、シミュレーションを行い処理時間を計算してもよい。
【００３３】
図４を参照して、ステップＳ１４での評価値の計算方法を説明する。
（ステップＳ１４１：削減率計算処理）
削減率計算部２２２は、対象の層についての当初パラメータ削減率と現パラメータ削減率とを計算する。当初パラメータ削減率は、当初のニューラルネットワークの対象の層におけるパラメータ数に対するパラメータの削減数ｙの割合である。現パラメータ削減率は、現在のニューラルネットワークの対象の層におけるパラメータ数に対するパラメータの削減数ｙの割合である。当初のニューラルネットワークとは、ステップＳ１１で取得された構造情報３１が示すニューラルネットワークである。現在のニューラルネットワークとは、既にステップＳ１５で新しいニューラルネットワークが生成されている場合には、ステップＳ１５で生成された最新のニューラルネットワークである。まだステップＳ１５で新しいニューラルネットワークが生成されていない場合には、現在のニューラルネットワークは、当初のニューラルネットワークと同じである。
具体的には、削減率計算部２２２は、式３により、対象の層Ｌｘについての当初パラメータ削減率Δαｘ１と現パラメータ削減率Δαｘ２とを計算する。ここで、ｙは、削減数である。Ｎｘは、当初のニューラルネットワークの層Ｌｘにおけるパラメータ数である。ｎｘは、現在のニューラルネットワークの層Ｌｘにおけるパラメータ数である。
（式３）
Δαｘ１＝１−（ｎｘ−ｙ）／Ｎｘ
Δαｘ２＝１−（ｎｘ−ｙ）／ｎｘ＝ｙ／ｎｘ
【００３４】
上述した通り、実施の形態１では、削減数ｙは１個である。したがって、実施の形態１では、削減率計算部２２２は、式４により、対象の層Ｌｘについての当初パラメータ削減率Δαｘ１と現パラメータ削減率Δαｘ２とを計算する。
（式４）
Δαｘ１＝１−（ｎｘ−１）／Ｎｘ
Δαｘ２＝１−（ｎｘ−１）／ｎｘ＝１／ｎｘ
【００３５】
（ステップＳ１４２：短縮効率計算処理）
短縮効率計算部２２３は、対象の層についての短縮効率を計算する。短縮効率は、現パラメータ削減率Δαｘ２に対する、削減数ｙのパラメータを削減した場合における処理時間の短縮量の割合である。
具体的には、短縮効率計算部２２３は、式５により、対象の層Ｌｘについての短縮効率Δｐｘを計算する。ここで、ｄｙは、ｙ個のパラメータを削減した場合における処理時間の短縮量である。
（式５）
Δｐｘ＝ｄｙ／（ｙ／ｎｘ）
【００３６】
上述した通り、実施の形態１では、削減数ｙは１個である。したがって、実施の形態１では、短縮効率計算部２２３は、式６により、対象の層Ｌｘについての短縮効率Δｐｘを計算する。
（式６）
Δｐｘ＝ｄ１／（１／ｎｘ）
【００３７】
処理時間は、演算量に比例すると考えられる。そのため、現パラメータ削減率Δαｘ２に対する、削減数ｙのパラメータを削減した場合における演算量の減少量である演算効率Δｐ’ｘを式７のように表すことが可能である。ここで、ｑは、実装先演算器の演算性能である。
（式７）
Δｐ’ｘ＝Δｐｘ×ｑ
【００３８】
また、演算効率Δｐ’ｘは、現パラメータ削減率Δαｘ２に対する、削減数ｙのパラメータを削減した場合における演算量の減少量であるため、式８のように表すことも可能である。ここで、ｅｙは、ｙ個のパラメータを削減した場合における演算量の減少量である。
（式８）
Δｐ’ｘ＝ｅｙ／（１／ｎｘ）
したがって、削減数ｙが１個の場合には、演算効率Δｐ’ｘは、式９のように表される。
（式９）
Δｐ’ｘ＝ｅ１／（１／ｎｘ）
【００３９】
ここで、１個のパラメータを削減した場合における演算効率Δｐ’ｘは、層Ｌｘのパラメータを１個削減した場合の層Ｌｘの演算削減量と、層Ｌｘのパラメータを１個削減した場合の層Ｌｘ＋１の演算削減量との和を、パラメータを１個削減した場合の層Ｌｘの現パラメータ削減率Δαｘ２で除して計算される。したがって、１個のパラメータを削減した場合における演算効率Δｐ’ｘは、式１０によって計算される。
（式１０）
Δｐ’ｘ＝（−ｎｘ−１−ｎｘ＋１）／（１／ｎｘ）
したがって、短縮効率計算部２２３は、式１１により、対象の層Ｌｘについての短縮効率Δｐｘを計算できる。
（式１１）
Δｐｘ＝Δｐ’ｘ／ｑ＝（（−ｎｘ−１−ｎｘ＋１）／（１／ｎｘ））／ｑ
【００４０】
（ステップＳ１４３：重み付け処理）
評価値計算部２２４は、ステップＳ１４１で計算された当初パラメータ削減率Δαｘ１から重み付け関数ｇにより得られる重みを、ステップＳ１４２で計算された短縮効率Δｐｘに乗じて、評価値を計算する。つまり、評価値計算部２２４は、式１２により、対象の層Ｌｘについての評価値ｓｘを計算する。
（式１２）
ｓｘ＝Δｐｘ×ｇ（Δαｘ１）
【００４１】
具体的には、評価値計算部２２４は、重み付け関数ｇを用いて、当初パラメータ削減率Δαｘ１から重みｗを計算する。重み付け関数ｇは、具体例としては、１から入力値を減算した値を返す関数である。例えば、重み付け関数ｇは式１３に示す関数である。ここで、ｚは入力値である。
（式１３）
ｇ（ｚ）＝（１−ｚ）・ｑ
式１３で演算性能ｑを乗じているのは、演算性能ｑは定数であり、評価値の大小に影響を与えないため、後述する評価値ｓｘの計算時に演算性能ｑが用いないようにするためである。
【００４２】
以上のことから、評価値計算部２２４は、式１４により、対象の層Ｌｘについての評価値ｓｘを計算する。
（式１４）
ｓｘ＝（（（−ｎｘ−１−ｎｘ＋１）／（１／ｎｘ））／ｑ）×（１−（１−（ｎｘ−１）／Ｎｘ））・ｑ＝（（−ｎｘ−１−ｎｘ＋１）／（１／ｎｘ））×（１−（１−（ｎｘ−１）／Ｎｘ））
【００４３】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係る構造変換装置１０は、ニューラルネットワークを実装先演算器に実装した場合における処理時間を計算し、処理時間が要求時間よりも長い場合にニューラルネットワークの構造を変換する。これにより、必要以上にニューラルネットワークの構造を変換することがない。その結果、ニューラルネットワークの認識精度をできるだけ低下させることなく、要求性能を達成できるようになる。
【００４４】
また、実施の形態１に係る構造変換装置１０は、短縮効率を用いて、パラメータを削減する層を特定する。
これにより、要求性能を達成するために必要なパラメータの削減数を少なくすることができる。その結果、構造を変換した後のニューラルネットワークの認識精度の低下を少なくすることができる。また、パラメータ数が少ない層は、短縮効率が低くなり易いため、パラメータを削除する層として選ばれ難い。その結果、一部の層のパラメータが多く削除されてしまい、構造を変換した後のニューラルネットワークの認識精度が低下してしまうといったことを防止できる。
【００４５】
また、実施の形態１に係る構造変換装置１０は、当初パラメータ削減率を用いて、パラメータを削減する層を特定する。
これにより、パラメータ数が少ない層は、パラメータを削除する層として選ばれ難い。その結果、一部の層のパラメータが多く削除されてしまい、構造を変換した後のニューラルネットワークの認識精度が低下してしまうといったことを防止できる。
【００４６】
例えば、特許文献１では、ニューラルネットワークの構造を考慮せずに、入力層に近い層ほど削減量が少なくなるようにパラメータ削減量を決める。そのため、出力層に近い隠れ層のパラメータ数が少ない場合、元々のパラメータ数が少ない層から多数のパラメータを削減してしまい、認識精度が大きく低下する可能性があった。しかし、実施の形態１に係る構造変換装置１０は、元々のパラメータ数が少ない層から多数のパラメータを削減してしまうことがない。
【００４７】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、削減数は１個であるとした。これは、１つパラメータを削除する度に要求性能を達成できたか確認するためである。これにより、不要に多くのパラメータが削除されることを防止している。
しかし、一度に２個以上のパラメータを削除するようにしてもよい。一度に２個以上のパラメータを削除することにより、要求性能を達成する構成に到達するまでの時間を短くすることができる。
【００４８】
＜変形例２＞
実施の形態１では、要求性能を達成した構成のニューラルネットワークについて図３のステップＳ１８で再学習が行われた。しかし、多くのパラメータが削除される等して、ニューラルネットワークの構成が大きく変換された場合には、途中段階で再学習を行うようにしてもよい。
例えば、基準回数だけニューラルネットワークの構成が変換された場合には、再学習を行うようにしてもよい。
【００４９】
＜変形例３＞
実施の形態１では、各機能構成要素がソフトウェアで実現された。しかし、変形例３として、各機能構成要素はハードウェアで実現されてもよい。この変形例３について、実施の形態１と異なる点を説明する。
【００５０】
変形例３に係る構造変換装置１０の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、構造変換装置１０は、プロセッサ１１と記憶装置１２と学習用演算器１３とに代えて、電子回路を備える。電子回路は、各機能構成要素と、記憶装置１２との機能とを実現する専用の回路である。
【００５１】
電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
各機能構成要素を１つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
【００５２】
＜変形例４＞
変形例４として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【００５３】
プロセッサ１１と記憶装置１２と学習用演算器１３と電子回路とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【符号の説明】
【００５４】
１０  構造変換装置、１１  プロセッサ、１２  記憶装置、１３  学習用演算器、２１  情報取得部、２２  解析部、２２１  処理時間計算部、２２２  削減率計算部、２２３  短縮効率計算部、２２４  評価値計算部、２２５  構造変換部、３１  構造情報、３２  性能情報、３３  要求情報、３４  学習用データセット、３５  新しい構造情報。
【要約】
処理時間計算部（２２１）は、ニューラルネットワークが実装される演算器の性能情報（３２）に基づき、ニューラルネットワークを演算器に実装した場合におけるニューラルネットワークの処理にかかる処理時間を計算する。達成判定部（２３）は、計算された処理時間が要求時間よりも長いか否かを判定する。構造変換部（２２５）は、処理時間が要求時間よりも長いと判定された場合に、ニューラルネットワークの構造を変換し、処理時間が要求時間以下と判定された場合に、ニューラルネットワークの構造を変換しない。【図１】
0006749530.tif 000002
【図２】
0006749530.tif 000003
【図３】
0006749530.tif 000004
【図４】
0006749530.tif 000005