(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104932
(43)【公開日】2024-08-06
(54)【発明の名称】探索空間限定装置、探索空間限定方法、及びプログラム
(51)【国際特許分類】
G06N 3/045 20230101AFI20240730BHJP
【FI】
G06N3/045
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023009380
(22)【出願日】2023-01-25
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】小林 悠記
(57)【要約】
【課題】 ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれる可能性を低減させることにある。
【解決手段】 探索空間限定装置は、第1ニューラルネットワーク情報と、第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得する取得部と、第1ニューラルネットワーク情報に基づいてニューラルネットワーク構造情報を生成する生成部と、第1探索空間のうち第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する決定部と、第2探索空間に関する第2探索空間情報を出力装置に出力する出力制御部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得する取得手段と、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成する生成手段と、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する決定手段と、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する出力制御手段と、
を備える探索空間限定装置。
【請求項2】
前記生成手段は、前記第1ニューラルネットワークの構造を表す各パラメータを含む前記ニューラルネットワーク構造情報を生成し、
前記決定手段は、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータからの前記許容距離に基づいて、前記第2探索空間を決定する
請求項1に記載の探索空間限定装置。
【請求項3】
前記決定手段は、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータまたはいずれかのパラメータの取り得る値の種別の変更の有無に基づいて、前記第2探索空間を決定する
請求項1に記載の探索空間限定装置。
【請求項4】
前記決定手段は、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータの前記許容距離に対して重み付けを行う
請求項1に記載の探索空間限定装置。
【請求項5】
前記決定手段は、前記許容距離情報に基づいて、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータに対して同一又は異なる許容距離を適用する
請求項1に記載の探索空間限定装置。
【請求項6】
前記決定手段は、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータからの前記許容距離の合計に基づいて、前記第2探索空間を決定する
請求項1に記載の探索空間限定装置。
【請求項7】
前記決定手段は、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータのうち変更されるパラメータの個数に基づいて、前記第2探索空間を決定する
請求項1に記載の探索空間限定装置。
【請求項8】
コンピュータが、
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得し、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成し、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定し、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する
探索空間限定方法。
【請求項9】
コンピュータに、
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得する取得ステップと、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成する生成ステップと、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する決定ステップと、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する出力制御ステップと、
を実行させる、プログラム。
【請求項10】
前記生成ステップは、前記第1ニューラルネットワークの構造を表す各パラメータを含む前記ニューラルネットワーク構造情報を生成し、
前記決定ステップは、前記第1探索空間を表す各パラメータに対する、前記第1ニューラルネットワークの構造を表す各パラメータからの前記許容距離に基づいて、前記第2探索空間を決定する
請求項9に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、探索空間限定装置、探索空間限定方法、及びプログラムに関する。
【背景技術】
【0002】
高い認識精度を保ちつつ、高速に実行可能なニューラルネットワークの構造を探すニューラルネットワーク構造探索は、従来、熟練したAI(Artificial Intelligence)研究者またはAI技術者の勘と経験によってなされてきた。
【0003】
近年、このニューラルネットワーク構造探索を自動的に行う手法(NAS: Neural Architecture Search)がいくつか提案されている。しかしながら、ニューラルネットワーク構造の探索空間は巨大な上に、ニューラルネットワーク構造の精度評価のためには探索中に時間のかかる「訓練」を繰り返す必要があり、膨大な計算機資源が必要になる点、探索期間が長期化する点が課題であった。たとえば、1回の訓練には数時間から数日間が必要であり、探索中には訓練を何十回も繰り返す必要があった。
【0004】
関連する技術として非特許文献1では、強化学習により、人間が設計したニューラルネットワーク構造よりも高い認識精度を持つニューラルネットワーク構造を求める技術が開示されている。しかしながら、800台のGPU(Graphics Processing Unit)を長期間動作させる必要があるなど、探索に必要な計算コストが膨大であることが問題であった。
【0005】
関連する技術として非特許文献2では、探索問題を連続緩和して微分可能とすることで、強化学習によらない探索を行う技術が開示されている。非特許文献3では、効率の良いニューラルネットワーク構造の部品をボトムアップ的に組み合わせることで、高速で精度のよいニューラルネットワーク構造を導出する技術が開示されている。非特許文献4では、FPN(Feature Pyramid Network)の構造、とくに異なる解像度データ間の接続構造を最適化する技術が開示されている。
【0006】
関連する技術として特許文献1では、次の技術が開示されている。一のニューラルネットワークからネットワーク構造の異なる別のニューラルネットワークを生成する技術が開示されている。生成された別のニューラルネットワークの評価結果が、一のニューラルネットワークの評価結果を上回る場合、別のニューラルネットワークをパレート最適解として更新する。これにより、環境に応じたネットワーク構造をより効率的に探索する。
【0007】
関連する技術として特許文献2では、次の技術が開示されている。構造探索部は、ニューラルネットワークモデルにおけるベースモデル構造に含まれる複数の畳込み処理ブロックの各々に、目標ハードウェアの目標制約条件に応じた探索空間情報を選定した、第1学習済モデル構造を探索する。これにより、目標ハードウェアに好適なニューラルネットワークモデルを設計する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2019-175513号公報
【特許文献2】特許第7111671号公報
【非特許文献】
【0009】
【非特許文献1】Barret Zoph and Quoc V. Le: ”Neural Architecture Search with Reinforcement Learning”, インターネット<URL:https://arxiv.org/abs/1611.01578>
【非特許文献2】Hanxiao Liu, et.al.: ”DARTS: Differentiable Architecture Search”, インターネット<https://arxiv.org/abs/1806.09055>
【非特許文献3】Xiaofan Zhang, et.al.: “SkyNet: a Hardware-Efficient Method for Object Detection and Tracking on Embedded Systems”, インターネット<https://arxiv.org/abs/1909.09709>
【非特許文献4】Golnaz Ghaisi, et.al.: ”NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection”, インターネット<https://arxiv.org/pdf/1904.07392v1.pdf>
【非特許文献5】Kaiming He, et.al.: ”Deep Residual Learning for Image Recognition”, インターネット<https://arxiv.org/pdf/1512.03385.pdf>
【非特許文献6】Qijie Zhao, et.al.: “M2Det: A Single-Shot Object Detector Based on Multi-Level Feature Pyramid Network”, pp.9259-9266, Vol. 33 No. 01: AAAI-19
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、従来の手法では、巨大な探索空間をランダムに探索するため、探索結果として得られるニューラルネットワーク構造には、人間が設計するニューラルネットワーク構造と異なり、不規則な構造及び意図を理解しづらい構造が含まれることが多い。そのため、ニューラルネットワーク構造探索技術の利用者がその活用をためらい、ニューラルネットワーク構造探索技術の普及を妨げる要因となっていた。
【0011】
例えば、非特許文献5に記載のニューラルネットワーク構造(ResNet)、非特許文献6に記載のニューラルネットワーク構造(M2Det)に示される人間が設計したニューラルネットワーク構造は、ある規則的な部分構造を規則的に繰返すことで構成されるが、非特許文献2(DARTS)、非特許文献4に記載のニューラルネットワーク構造は、不規則な部分構造、意図を理解しづらい部分構造間接続を有している。
【0012】
本開示の一つの側面は、ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれる可能性を低減させることにある。
【課題を解決するための手段】
【0013】
上記目的を達成するため、本開示の一側面における探索空間限定装置は、
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得する取得部と、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成する生成部と、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する決定部と、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する出力制御部と、
を備えることを特徴とする。
【0014】
また、上記目的を達成するため、本開示の一側面における探索空間限定方法は、
コンピュータが、
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得し、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成し、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定し、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する、
ことを特徴とする。
【0015】
さらに、上記目的を達成するため、本開示の一側面におけるプログラムは、
コンピュータに、
第1ニューラルネットワークに関する第1ニューラルネットワーク情報と、前記第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する第1探索空間情報と、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する許容距離情報とを取得する取得ステップと、
前記第1ニューラルネットワーク情報に基づいて、前記第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成する生成ステップと、
前記ニューラルネットワーク構造情報、前記第1探索空間情報と、前記許容距離情報とに基づいて、前記第1探索空間のうち前記第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する決定ステップと、
前記第2探索空間に関する第2探索空間情報を出力装置に出力する出力制御ステップと、
を実行させることを特徴とする。
【発明の効果】
【0016】
以上のように本開示によれば、ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれる可能性を低減させることができる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、実施形態における探索空間限定装置の一例を説明するための図である。
【
図2】
図2は、実施形態における探索空間限定装置の全体構成の一例を説明するためのブロック図である。
【
図3】
図3は、実施形態におけるニューラルネットワークモデル情報により表されるニューラルネットワークモデルの一例を説明する図である。
【
図4】
図4は、実施形態におけるニューラルネットワーク構造情報の例を説明する図である。
【
図5】
図5は、実施形態における入力探索空間情報の例を説明する図である。
【
図6】
図6は、実施形態における探索空間決定部により生成される限定探索空間情報の例を説明する図である。
【
図7】
図7は、実施形態における探索空間限定装置の動作の一例を説明するフローチャートである。
【
図8】
図8は、実施形態における情報処理装置を実現するコンピュータの一例を表すブロック図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して実施形態について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0019】
(実施形態)
図1を用いて、実施形態における探索空間限定装置の構成について説明する。
図1は、実施形態における探索空間限定装置の一例を説明するための図である。
【0020】
[装置構成]
図1に示す探索空間限定装置1は、ニューラルネットワークの構造探索において探索空間を限定する装置である。探索空間限定装置1の一例として、後述する探索空間限定装置11が挙げられる。また、
図1に示すように、探索空間限定装置1は、取得部2、生成部3、決定部4、及び出力制御部5を含む。
【0021】
取得部2は、第1ニューラルネットワーク情報と、第1探索空間情報と、許容距離情報とを取得する。第1ニューラルネットワーク情報は、第1ニューラルネットワークに関する情報である。第1探索空間情報は、第1ニューラルネットワークに基づいて第2ニューラルネットワークの構造を探索する範囲である第1探索空間に関する情報である。許容距離情報は、第1探索空間における第1ニューラルネットワークの構造から許容する構造の変化の度合いを表す許容距離に関する情報である。取得部2の一例として、後述する取得部13が挙げられる。第1ニューラルネットワーク情報の一例として、後述するニューラルネットワークモデル情報22が挙げられる。第1探索空間情報の一例として、後述する入力探索空間情報23が挙げられる。許容距離情報の一例として、後述する許容距離情報24が挙げられる。
【0022】
生成部3は、第1ニューラルネットワーク情報に基づいて、第1ニューラルネットワークの構造に関するニューラルネットワーク構造情報を生成する。生成部3の一例として、後述する構造解析部14が挙げられる。ニューラルネットワーク構造情報の一例として、後述するニューラルネットワーク構造情報25が挙げられる。
【0023】
決定部4は、ニューラルネットワーク構造情報と、第1探索空間情報と、許容距離情報とに基づいて、第1探索空間のうち第2ニューラルネットワークの構造を探索する範囲である第2探索空間を決定する。決定部4の一例として、後述する探索空間決定部15が挙げられる。第2探索空間の一例として、後述する限定探索空間情報26により表される探索空間が挙げられる。
【0024】
出力制御部5は、第2探索空間に関する第2探索空間情報を出力装置に出力する。出力制御部5の一例として、後述する出力制御部16が挙げられる。第2探索空間情報の一例として、後述する限定探索空間情報26が挙げられる。出力装置の一例として、記憶装置(内蔵の記憶装置及び外部の記憶装置を含む)、ディスプレイ装置、通信インターフェイス、他のコンピュータ、または記憶媒体へ書き込み可能なデータライタ等であってもよい。
【0025】
このように構成することにより、ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれる可能性を低減させることができる。
【0026】
生成部3は、第1ニューラルネットワークの構造を表す各パラメータを含むニューラルネットワーク構造情報を生成する。決定部4は、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータからの許容距離に基づいて、第2探索空間を決定する。
【0027】
このように構成することにより、解析されたニューラルネットワーク構造情報から限定された探索範囲でニューラルネットワーク構造探索を行うことができる。その結果、ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれる可能性を低減させることができる。
【0028】
また、決定部4は、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータまたはいずれかのパラメータの取り得る値の種別の変更の有無に基づいて、第2探索空間を決定してもよい。
【0029】
このように構成することにより、パラメータの取り得る値に異なる種別が含まれている場合にはその取り得る値の間で順序関係が成立せず、このように順序関係が成立しない場合でも実施形態を適用することができる。
【0030】
また、決定部4は、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータの許容距離に対して重み付けを行ってもよい。このように構成することにより、例えば、着目するパラメータに応じて重み付けを行うことで、それに対応する限定探索空間情報を作成することができる。
【0031】
また、決定部4は、許容距離情報に基づいて、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータに対して同一又は異なる許容距離を適用してもよい。このように構成することにより、パラメータに対する許容距離の自由度を高めることができる。
【0032】
また、決定部4は、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータからの許容距離の合計に基づいて、第2探索空間を決定してもよい。このように構成することにより、限定された探索空間のバリエーションを得ることができる
【0033】
また、決定部4は、第1探索空間を表す各パラメータに対する、第1ニューラルネットワークの構造を表す各パラメータのうち変更されるパラメータの個数に基づいて、第2探索空間を決定してもよい。このように構成することにより、変更されるパラメータの個数に応じて、限定探索空間情報を作成することができる。
【0034】
[システム構成]
続いて、
図2を用いて、実施形態における探索空間限定装置1の構成をより具体的に説明する。以下では、探索空間限定装置1の一例として、探索空間限定装置11を挙げる。
【0035】
図2は、実施形態における探索空間限定装置の全体構成の一例を説明するためのブロック図である。探索空間限定装置11は、制御部12及び記憶部21を搭載したコンピュータなどの情報処理装置である。
【0036】
制御部12は、探索空間限定装置11の動作を制御するプロセッサであって、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路で構成されていてもよい。
【0037】
制御部12は、実施形態におけるプログラムを実行することにより、取得部13、構造解析部14、探索空間決定部15、出力制御部16として機能する。
【0038】
取得部13は、探索空間限定装置11に入力されたニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24を取得する。ニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24が予め記憶部21に記憶されている場合、取得部13は、記憶部21からニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24を取得してもよい。
【0039】
ニューラルネットワークモデル情報22は、例えば、ResNet(Residual Network)、M2Detのようなニューラルネットワークのベースモデルに関する情報である。なお、ニューラルネットワークモデル情報22は、ResNET及びM2Detのベースモデルに関する情報に限定されず、ユーザが入力する任意のニューラルネットワークのベースモデルに関する情報であってもよい。入力探索空間情報23は、ニューラルネットワーク構造探索(NAS)の探索空間を構成するパラメータに関する情報である。許容距離情報24は、探索空間の各パラメータについて、ベースモデルのニューラルネットワーク構造のパラメータから許容する距離(例えば、ハミング距離)に関する情報である。
【0040】
構造解析部14は、取得部13により取得されたニューラルネットワークモデル情報22に基づいて、ニューラルネットワークのベースモデルの構造を解析して、ニューラルネットワーク構造情報25を生成する。ニューラルネットワーク構造情報25は、解析されたニューラルネットワークモデル(ベースモデル)のニューラルネットワーク構造に関する情報である。生成されたニューラルネットワーク構造情報25は、一時的又は長期的に記憶部21に記憶されていてもよい。
【0041】
探索空間決定部15は、ニューラルネットワーク構造情報25により表されるニューラルネットワークをベースモデルとして、入力探索空間情報23に対応する探索空間のうち許容距離情報24により限定された探索空間を決定し、限定探索空間情報26を生成する。許容距離情報24により限定された探索空間とは、例えば、ベースモデルのニューラルネットワーク構造の各パラメータからの距離が許容距離以下となるようにパラメータの探索範囲が限定された探索空間のことである。限定探索空間情報26は、ベースモデルのニューラルネットワーク構造の各パラメータからの距離が許容距離以下となるようにパラメータの探索範囲が限定された探索空間に関する情報である。
【0042】
出力制御部16は、限定探索空間情報26を記憶部21に出力する。実施形態では、一例として、限定探索空間情報26を記憶部21に出力するが、これに限定されない。出力制御部16は、限定探索空間情報26を、ディスプレイ装置、通信インターフェイス、他のコンピュータ、または記憶媒体へ書き込み可能なデータライタ等に出力してもよい。
【0043】
記憶部21は、ハードディスクドライブ等の磁気ディスク記憶装置、SSD(Solid State Drive)等の半導体記憶装置の記憶装置である。記憶部21は、例えば、ニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24、ニューラルネットワーク構造情報25、限定探索空間情報26を記憶する。なお、記憶部21は、探索空間限定装置11に内蔵型の記憶装置に限定されず、外付け型の記憶装置でもよく、または外部のコンピュータに内蔵または外付けの記憶装置であってもよい。
【0044】
なお、実施形態では、人間が設計したニューラルネットワークをニューラルネットワークモデル情報22として用いることを想定して説明するが、この限りではない。例えば、ニューラルネットワーク探索技術で自動的に生成されたニューラルネットワークモデルに関する情報を入力とし、その生成されたニューラルネットワークモデルとの差分が所定の範囲で探索を行う用途に用いてもよい。
【0045】
図3は、実施形態におけるニューラルネットワークモデル情報により表されるニューラルネットワークモデルの一例を説明する図である。ニューラルネットワークモデル情報22により表されるニューラルネットワークモデルは、複数の処理ブロック(以下、処理ブロックを「ブロック」と記す。)を含む。ブロックは、所定の処理を行う処理単位である。例えば、画像解析を行うニューラルネットワークでは、入力画像の解像度を何段階か縮小しながら処理を行うことが多いが、ブロックは、それぞれの解像度に対応する一連の処理と考えて差し支えない。各ブロックは、さらに複数の小さい処理単位(以下、ブロック内の小さい処理単位を「サブブロック」と記す。)を含む。各ブロックにおいて用いられるフィルタの数をチャネル数という。
【0046】
サブブロックは、複数のレイヤを含む。レイヤは、ニューラルネットワークを構成または設計する際の最小構成単位の部品である。レイヤには、例えば、全結合レイヤ、畳込みレイヤ、プーリングレイヤ等の種類が含まれる。
【0047】
図3の例では、ブロックを符号31で表し、サブブロックを符号32で表し、レイヤを符号33で表す。
図3の例では、ニューラルネットワークモデル情報22により表されるニューラルネットワークモデル30は、ブロックB1(31a)、ブロックB2(31b)、ブロックB3(31c)の3つのブロック(31)を含む。ブロックB1(31a)の入力チャネル数は32である。ブロックB2(31b)の入力チャネル数は64である。ブロックB3(31c)の入力チャネル数は32である。以下、「入力チャネル数」を単に「チャネル数」と記す。なお、実施形態ではブロックのチャネル数として入力チャネル数を例に説明するが、これに限定されず、ブロックのチャネル数はブロックの出力チャネル数であってもよい。
【0048】
例えば、ブロックB1(31a)は、サブブロックSB1(32a)、サブブロックSB2(32b)の2つのサブブロック(32)を含む。例えば、ブロックB2(31b)は、サブブロックSB3(32c)、サブブロックSB4(32d)、サブブロックSB5(32e)の3つのサブブロック(32)を含む。
【0049】
例えば、サブブロックSB1(32a)は、Conv1×1(33a)、Conv3×3(33b)、Conv1×1(33c)で表される3つの畳込みレイヤ(33)を含む。Conv1×1(33a,33c)は、カーネルサイズ1×1の畳込みレイヤを表す。Conv3×3(33b)は、カーネルサイズ3×3の畳込みレイヤを表す。
【0050】
図4は、実施形態におけるニューラルネットワーク構造情報の例を説明する図である。ニューラルネットワーク構造情報25は、ニューラルネットワーク構造のパラメータに対する具体的な値で表される。図中の「( )」は複数の値から成るベクトル値を表す。ニューラルネットワーク構造情報25は、例えば、「ブロック数NB」、「ブロック内サブブロック数NSB」、「ブロック毎チャネル数CB」、「サブブロック内レイヤ数NSL」、「サブブロック内レイヤ種別SLT」のパラメータ項目を含む。パラメータ「ブロック数NB」には、ニューラルネットワークモデル中のブロックの数が格納される。パラメータ「ブロック内サブブロック数NSB」には、各ブロックに含まれるサブブロックの数が格納される。パラメータ「ブロック毎チャネル数CB」には、ブロック毎のチャネル数が格納される。パラメータ「サブブロック内レイヤ数NSL」には、サブブロック内のレイヤ数が格納される。パラメータ「サブブロック内レイヤ種別SLT」には、サブブロック内の各レイヤの種別が格納される。
【0051】
図4の例では、ブロック数NBはニューラルネットワークモデル中のブロックの数が3個であることを表す。また、3個のブロック内のサブブロックの数NSBがそれぞれ2個、3個、2個であることを表す。また、各ブロックのチャネル数CBがそれぞれ32、64、32であることを表す。また、サブブロック内のレイヤ数NSLは3であることを示す。各レイヤのレイヤ種別SLTは、カーネルサイズ1x1の畳込みレイヤ(Conv1x1)、カーネルサイズ3x3の畳込みレイヤ(Conv3x3)、カーネルサイズ1x1の畳込みレイヤ(Conv1x1)であることを表す。ここで、ConvNxN(Nは整数)は、NxNのフィルタ(カーネル)を用いた畳込みレイヤであることを表す。
【0052】
なお、
図4に示すパラメータは一例であり、設計したいニューラルネットワークの構造に合わせて、パラメータを追加したり削除したりしてもよい。例えば、サブブロック内でチャネル数を変化させる場合の係数(いわゆるExpansion Ratio)をパラメータとして追加しても良い。
【0053】
図5は、実施形態における入力探索空間情報の例を説明する図である。入力探索空間情報23は、ニューラルネットワーク構造情報25のパラメータに対する、パラメータの取り得る値の範囲で表される。図中の「[ ]」は取り得る値の範囲を示す。例えば、「[1:5]」は、1から5までの範囲の自然数を表すこととする。また、[ ]の右上の値は、ベクトルの長さを表す。例えば、「[1:5]
3」は、1から5までの範囲の自然数3つから成るベクトルを表す。また、例えば、[1,2,4,8]
3は、3個のベクトルはそれぞれ、1,2,4,8の4種類のいずれかの値を取り得ることを表す。
【0054】
すなわち
図5の例では、ブロック数NBは1から10までの範囲の値を取り得ることを表す。また、ブロック内サブブロック数NSBは、NB個の値がそれぞれ1から8までの範囲の値を取り得ることを表す。また、ブロック毎チャネル数CBは、NB個の値がそれぞれ1から512までの2のべき乗の数を取り得ることを表す。また、サブブロック内レイヤ数NSLは、1から6までの範囲の値を取り得ることを表す。また、サブブロック内レイヤ種別SLTは、NSL個の値がそれぞれ、Conv1x1、Conv3x3、Conv5x5、Conv7x7の4種類のいずれかの値を取り得ることを表す。
【0055】
なお、
図5に示すパラメータ項目及びパラメータの取り得る値は一例であり、設計したいニューラルネットワークの構造に合わせて変更してもよい。例えば、ブロック毎チャネル数CBの取り得る値として2のべき乗だけではなく、1から512までのすべての自然数としてもよい。また、サブブロック内レイヤ種別SLTの取り得る値として畳込みレイヤ以外に最大値プーリング(MaxPooling)レイヤ、等価(Identity)レイヤを含めてもよい。また、非特許文献2に示されるような構造を表現するために、サブブロック内の各レイヤ同士の接続関係を指定するパラメータを追加してもよい。
【0056】
図6は、実施形態における探索空間決定部により生成される限定探索空間情報の例を説明する図である。限定探索空間情報26も、入力探索空間情報23と同様に、ニューラルネットワーク構造情報25のパラメータに対する、パラメータの取り得る値の範囲で表される。
【0057】
図6では、
図4に示されるニューラルネットワーク構造情報25と
図5に示される入力探索空間情報23に対し、許容距離を1とした場合の例を示す。例えば、入力探索空間情報23中のブロック数NBの取り得る値は1から10の範囲である。一方、ニューラルネットワーク構造情報中のブロック数NBは3である。この場合、3からの差分が許容距離である1以下の範囲、すなわち2から4の範囲が、限定探索空間情報26中のブロック数NBの取り得る範囲となる。
【0058】
また、入力探索空間情報23中のブロック内サブブロック数NSBの取り得る値は1から8の範囲である。ニューラルネットワーク構造情報中のブロック内サブブロック数NSBは(2,3,2)、すなわち、2から3の範囲の値である。この場合、2から3の範囲からの差分が許容距離である1以下の範囲、すなわち1から4の範囲が、限定探索空間情報26中のブロック内サブブロック数NSBの取り得る範囲となる。
【0059】
また、入力探索空間情報中のブロック毎チャネル数CBの取り得る値は1から512の2のべき乗の範囲である。ニューラルネットワーク構造情報25中のブロック毎チャネル数CBは(32,64,32)、すなわち、32から64の2のべき乗の範囲の値である。この場合、32から64の2のべき乗の範囲からの差分が許容距離である1以下の範囲、すなわち16から128の2のべき乗の範囲が、限定探索空間情報26中のブロック毎チャネル数CBの取り得る範囲となる。
【0060】
入力探索空間情報23中のサブブロック内レイヤ数NSLの取り得る値は1から6の範囲である。ニューラルネットワーク構造情報25中のサブブロック内レイヤ数NSLは3である。この場合、3からの差分が許容距離である1以下の範囲、すなわち2から4の範囲が、限定探索空間情報26中のサブブロック内レイヤ数NSLの取り得る範囲となる。
【0061】
入力探索空間情報23中のサブブロック内レイヤ種別SLTの取り得る値はConv1x1、Conv3x3、Conv5x5、Conv7x7の範囲であり、NxNの値の順序で規定されているとする。ニューラルネットワーク構造情報25中のサブブロック内レイヤ種別SLTは(Conv1x1、Conv3x3,Conv1x1)、すなわちConv1x1からConv3x3の範囲の値である。この場合、Conv1x1からConv3x3からの差分が許容距離である1以下の範囲、すなわちConv1x1からConv5x5の範囲が、限定探索空間情報26中のサブブロック内レイヤ種別SLTの取り得る範囲となる。
【0062】
なお、上述の実施形態では各パラメータに対する許容距離を1に設定して説明したが、これに限定されない。各パラメータに対する許容距離を、例えば、2、3、4、・・・・等、必要に応じて設定してもよい。
【0063】
また、パラメータ毎に許容距離を変更してもよい。例えば、パラメータ「ブロック数NB」に対しては許容距離が2以下の範囲でブロック数NBの取り得る範囲とし、パラメータ「ブロック内サブブロック数NSB」に対しては許容距離が3以下の範囲でブロック内サブブロック数NSBの取り得る範囲としてもよい。
【0064】
また、構造探索を行う装置のCPU、GPU(Graphics Processing Unit)、メモリのサイズ等のハードウェアの資源または性能に応じて、限定する探索空間を調整するために、その限定する探索空間に応じた許容距離を設定してもよい。
【0065】
また、実施形態では入力探索空間情報23中の取り得る値の範囲には順序が定義されていると想定して説明しているが、順序が定義されていなくてもよい。例えば、サブブロック内レイヤ種別SLTの取り得る値として、畳込みレイヤと最大値プーリングレイヤが含まれていた場合、上述のConvNxNの例のように順序を規定することが難しい。この場合、パラメータの取り得る値の種別に変更がある場合は距離が1、変更がない場合は距離が0、と距離の定義をしてもよい。例えば、サブブロック内レイヤ種別SLTの取り得る値として、畳込みレイヤに加え最大値プーリングレイヤMaxPoolが含まれる場合、パラメータの取り得る値の範囲は[Conv1x1,Conv3x3,Conv5x5,MaxPool]となる。この場合、MaxPoolと、Conv1x1、Conv3x3、Conv5x5との間で順序関係を定義するのは難しい。そこで、この場合はConvNxNとMaxPoolとの間には順序を定義せず、サブブロック内レイヤ種別SLTがConvNxNからMaxPoolに変更される場合は距離が1、変更されない場合は距離が0と定義してもよい。例えば、ニューラルネットワーク構造情報25中のサブブロック内レイヤ種別SLTがConv1x1である場合、距離が1以下で許容されるサブブロック内レイヤ種別SLTの取り得る値の範囲は[Conv1x1,Conv3x3,MaxPool]としてよい。つまり、Conv1x1からの差分が許容距離である1以下の範囲には、順序関係が成立するConv3x3だけでなく、順序関係が成立しない、すなわちパラメータの取り得る値の種別が異なるMaxPoolも含まれるということである。
【0066】
また、実施形態ではパラメータ毎の重みが一定と想定して説明しているが、パラメータ毎に距離計算時の重みを指定できるようにしてもよい。例えば、ブロック数NBの重みを0.5とした場合を例示する。ニューラルネットワーク構造情報25中のブロック数NBが3の場合、例えば、通常は3から5までの距離は5-3=2であるが、重みが0.5の場合は距離を(5-3)×0.5=1とみなす。このため、1から5までの範囲を距離=1として許容するようにしてもよい。
【0067】
また、実施形態ではパラメータ毎に許容される距離を独立して評価すると想定して説明しているが、各パラメータの差分の合計を許容距離として評価するようにしてもよい。これについて、まずは、各パラメータの差分の合計に対する許容距離が1の場合を例に説明する。この条件下では、上述の実施形態の例では、5つのパラメータのうちいずれか1つのパラメータの取り得る値の範囲の許容距離が1、すなわち5つのパラメータのうちいずれか1つのパラメータが1段階増減することが許容されるということである。5つのパラメータのうちいずれか1つのパラメータが1段階増減することが許容されるパターンは、2×5=10パターン存在する。したがって、限定探索空間情報26はこの10パターンの集合からなる探索空間情報となる。
【0068】
次に、各パラメータの差分の合計に対する許容距離が2の場合を例に説明する。この場合、上述の実施形態の例では、5つのパラメータのうちいずれか2つのパラメータの取り得る値の範囲の許容距離が2の場合(ケースI)と、5つのパラメータのうちいずれか1つのパラメータの取り得る値の範囲の許容距離が2の場合(ケースII)がある。5つのパラメータのうちいずれか2つのパラメータの取り得る値の範囲の許容距離が2の場合(ケースI)とは、5つのパラメータのうちいずれか2つのパラメータがそれぞれ1段階増減することが許容されるということである。この場合、5つのパラメータからいずれか2つのパラメータを選ぶ組み合わせは10通り存在する。1つの組み合わせについて、各パラメータが取り得る値の範囲の許容距離が1以下となる場合は、2^2=4通り存在する。したがって、ケースIでは、パラメータの組み合わせは、10×4=40パターン存在する。次に、5つのパラメータのうちいずれか1つのパラメータの取り得る値の範囲の許容距離が2の場合(ケースII)とは、5つのパラメータのうちいずれか1つのパラメータが2段階増減することが許容されるということである。この場合、5つのパラメータのうちいずれか1つのパラメータを選ぶ組み合わせは、5通り存在する。1つの組み合わせについて、1つのパラメータが取り得る値の範囲の許容距離が2以下となる場合は、4通り存在するしたがって、ケースIIでは、パラメータの組み合わせは、5×4=20パターン存在する。したがって、限定探索空間情報26は40+20=60パターンの集合からなる探索空間情報となる。
【0069】
また、パラメータ毎の差分ではなく、変更があったパラメータの個数を距離として評価するようにしてもよい。例えば許容距離が1の場合、5つのパラメータのうちいずれか1つのパラメータのみに対する変更であれば、変更後の値の範囲によらず距離を1とみなして許容してもよい。また、許容距離が2の場合、5つのパラメータのうちいずれか2つのパラメータまでの変更であれば、変更後の値の範囲によらず距離を2とみなして許容してもよい。
【0070】
[システム動作]
図7は、実施形態における探索空間限定装置の動作の一例を説明するフローチャートである。予めニューラルネットワークのベースモデルに関するニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24が探索空間限定装置に入力されて、記憶部21に記憶されている。
【0071】
まず、取得部13は、記憶部21からニューラルネットワークモデル情報22、入力探索空間情報23、許容距離情報24を取得する(ステップS1)。
【0072】
次に、構造解析部14は、ニューラルネットワークモデル情報22を用いてニューラルネットワークモデルの構造を解析し、ニューラルネットワーク構造情報を作成する(ステップS2)。ここでは、構造解析部14は、例えばニューラルネットワークモデル情報22からブロック数NB、ブロック内サブブロック数NSB、ブロック毎チャネル数CB、サブブロック内レイヤ数NSL、サブブロック内レイヤ種別SLTのパラメータ及び値を検出する。そして、構造解析部14は、検出したパラメータ及び値に基づいて、ニューラルネットワーク構造情報25を作成する。
【0073】
次に、探索空間決定部15は、記憶部21から読み出した入力探索空間情報23、許容距離情報24、及びニューラルネットワーク構造情報25に基づいて、限定探索空間情報26を生成する。ここでは、探索空間決定部15は、入力探索空間情報23に対し、ニューラルネットワーク構造情報25との距離が許容距離以下に限定した探索空間(限定探索空間)を決定し、限定探索空間に関する限定探索空間情報26を生成する(ステップS3)。出力制御部16は、限定探索空間情報26を記憶部21に出力する(ステップS4)。
【0074】
[実施形態の効果]
実施形態によれば、ニューラルネットワーク構造探索が生成するニューラルネットワークに、不規則な構造及び意図を理解しづらい構造が含まれにくくすることができる。すなわち、与えられた既知のニューラルネットワークの構造に対し、限定された差分の構造を有するニューラルネットワークのみを探索することができる。これにより、探索の結果得られるニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれにくくすることができる。
【0075】
[プログラム]
実施の形態におけるプログラムは、コンピュータに、
図7で説明した処理を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態における情報処理装置と情報処理方法とを実現することができる。コンピュータのプロセッサは、取得部13、構造解析部14、探索空間決定部15、出力制御部16として機能し、処理を行なってもよい。
【0076】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、取得部13、構造解析部14、探索空間決定部15、出力制御部16のいずれかとして機能してもよい。
【0077】
また、実施形態では、記憶部21は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。
【0078】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、探索空間限定装置11を実現するコンピュータについて
図8を用いて説明する。
図8は、実施形態における情報処理装置を実現するコンピュータの一例を表すブロック図である。
【0079】
図8に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU、又はFPGAを有していてもよい。
【0080】
CPU111は、記憶装置113に格納された、実施形態におけるプログラム(コード)をメインメモリ112に展開し、プログラムを構成するコードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0081】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0082】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0083】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0084】
なお、実施形態における情報処理装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、情報処理装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。ハードウェアとしては、例えば、電子回路が挙げられる。
【0085】
以上、実施形態を参照して本開示の技術を説明したが、本開示の技術は上述実施形態に限定されるものではない。本開示の技術の構成及び詳細には、本開示の技術のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0086】
上述した開示の技術によれば、ニューラルネットワーク構造探索が生成するニューラルネットワークに不規則な構造及び意図を理解しづらい構造が含まれにくくなるため、ニューラルネットワーク構造探索を実応用に適用しやすくなる。例えば、カメラを用いた物体検知システムの認識精度向上または高速化等の用途に適用できる。
【符号の説明】
【0087】
1 探索空間限定装置
2 取得部
3 生成部
4 決定部
5 出力制御部
11 探索空間限定装置
12 制御部
13 取得部
14 構造解析部
15 探索空間決定部
16 出力制御部
21 記憶部
22 ニューラルネットワークモデル情報
23 入力探索空間情報
24 許容距離情報
25 ニューラルネットワーク構造情報
26 限定探索空間情報
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス