(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】ニューラルネットワーク構造探索装置およびニューラルネットワーク構造探索方法
(51)【国際特許分類】
G06N 3/082 20230101AFI20240910BHJP
G06N 3/0464 20230101ALI20240910BHJP
【FI】
G06N3/082
G06N3/0464
(21)【出願番号】P 2023515912
(86)(22)【出願日】2021-04-20
(86)【国際出願番号】 JP2021015964
(87)【国際公開番号】W WO2022224330
(87)【国際公開日】2022-10-27
【審査請求日】2023-09-06
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】小林 悠記
【審査官】桜井 茂行
(56)【参考文献】
【文献】米国特許出願公開第2016/0358070(US,A1)
【文献】特開2020-190996(JP,A)
【文献】米国特許出願公開第2020/0372325(US,A1)
【文献】中国特許出願公開第110766145(CN,A)
【文献】米国特許出願公開第2021/0182682(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う訓練手段と、
前記訓練により前記ニューラルネットワークモデルから生成された訓練済モデルを前記訓練用のデータセットを用いて解析することによって、前記第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する第1生成手段と、
生成された解析情報を用いて前記第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する特定手段と、
特定された要素を前記第1のニューラルネットワーク構造から削除することによって、前記第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する第2生成手段とを備え
、
前記各要素には、前記第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、
前記第2生成手段は、特定された重みが所定の割合以上含まれるカーネルを削除する
ことを特徴とするニューラルネットワーク構造探索装置。
【請求項2】
各要素には、第1のニューラルネットワーク構造を構成する層が含まれる
請求項1記載のニューラルネットワーク構造探索装置。
【請求項3】
第2生成手段は、層における演算器の処理時間を用いて特定された要素のうち削除する要素を決定する
請求項2記載のニューラルネットワーク構造探索装置。
【請求項4】
第2生成手段は、層における演算器の実行効率を用いて特定された要素のうち削除する要素を決定する
請求項2または請求項3記載のニューラルネットワーク構造探索装置。
【請求項5】
第1生成手段は、訓練用のデータセット中のデータを訓練済モデルに入力することによって得られる活性化率を基に重要度を算出する
請求項1から請求項
4のうちのいずれか1項に記載のニューラルネットワーク構造探索装置。
【請求項6】
第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行い、
前記訓練により前記ニューラルネットワークモデルから生成された訓練済モデルを前記訓練用のデータセットを用いて解析することによって、前記第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成し、
生成された解析情報を用いて前記第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定し、
特定された要素を前記第1のニューラルネットワーク構造から削除することによって、前記第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成
し、
前記各要素には、前記第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、
特定された要素を前記第1のニューラルネットワーク構造から削除するときに、特定された重みが所定の割合以上含まれるカーネルを削除する
ことを特徴とするニューラルネットワーク構造探索方法。
【請求項7】
各要素には、第1のニューラルネットワーク構造を構成する層が含まれる
請求項
6記載のニューラルネットワーク構造探索方法。
【請求項8】
コンピュータに、
第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う訓練処理、
前記訓練により前記ニューラルネットワークモデルから生成された訓練済モデルを前記訓練用のデータセットを用いて解析することによって、前記第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する第1生成処理、
生成された解析情報を用いて前記第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する特定処理、および
特定された要素を前記第1のニューラルネットワーク構造から削除することによって、前記第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する第2生成処理
を実行させ、
前記各要素には、前記第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、
前記コンピュータに、前記第2生成処理で、特定された重みが所定の割合以上含まれるカーネルを削除させる
ためのニューラルネットワーク構造探索プログラム。
【請求項9】
各要素には、第1のニューラルネットワーク構造を構成する層が含まれる
請求項
8記載のニューラルネットワーク構造探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク構造探索装置、ニューラルネットワーク構造探索方法およびニューラルネットワーク構造探索プログラムに関する。特に、本発明は、探索に求められる訓練回数を削減することによって短時間で最適なニューラルネットワーク構造を導出するニューラルネットワーク構造探索装置、ニューラルネットワーク構造探索方法およびニューラルネットワーク構造探索プログラムに関する。
【背景技術】
【0002】
ニューラルネットワーク構造は、深層学習の分野で使用される代表的な数理的モデルの構造である。ニューラルネットワーク構造には、層数、各層のチャネル数、カーネルサイズ等が含まれる。
【0003】
また、最適なニューラルネットワーク構造を求めるためには、高い認識精度が保たれたまま、認識処理が高速に実行されるニューラルネットワークの構造を探索する作業が必要である。この作業は、例えば、AI(Artificial Intelligence )に精通した研究者や技術者により、各自の経験を基に属人的に行われることが多かった。
【0004】
上記の手動でのニューラルネットワーク構造探索作業に対して、ニューラルネットワーク構造探索を自動的に行う手法であるNAS(Neural Architecture Search)が、いくつか提案されている。
【0005】
例えば、非特許文献1には、強化学習により、人間が設計したニューラルネットワーク構造よりも高い認識精度を有するニューラルネットワーク構造を求める技術が記載されている。
【0006】
また、非特許文献2には、探索問題を連続的に緩和して微分可能とすることによって、強化学習によらない探索を実行できる技術が記載されている。
【0007】
また、非特許文献3には、認識処理の効率が比較的良いニューラルネットワーク構造の部品をボトムアップ的に積み上げて組み合わせていくことによって、認識処理が高速で実行され、かつ認識精度が高いニューラルネットワーク構造を導出する技術が記載されている。
【0008】
また、非特許文献4には、ニューラルネットワーク構造の一例であるM2Det が記載されている。
【先行技術文献】
【非特許文献】
【0009】
【文献】Barret Zoph and Quoc V. Le, ”Neural Architecture Search with Reinforcement Learning,” Under review as a conference paper at ICLR 2017.
【文献】Hanxiao Liu, Karen Simonyan, and Yiming Yang, ”DARTS: Differentiable Architecture Search,” Published as a conference paper at ICLR 2019.
【文献】X. Zhang, et al., “SkyNet: A hardware-efficient method for object detection and tracking on embedded systems,” in Proc. Conf. Mach. Learn. Syst., 2020, pp. 216-229.
【文献】Q. 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】
ニューラルネットワーク構造探索において、探索対象のニューラルネットワーク構造は膨大に存在する。かつ、ニューラルネットワーク構造の精度評価のためには、探索中に時間を要する「訓練(Training、学習(Learning)と同義)」を繰り返し実行することが求められる。
【0011】
その理由は、ニューラルネットワーク構造だけ考案されても、考案されたニューラルネットワーク構造の認識精度は不明であるためである。認識精度を確認するためには、訓練用のデータセットを用いて考案されたニューラルネットワーク構造の重みを決定することが求められるからである。
【0012】
また、ニューラルネットワーク構造の認識精度は、一般的に、層数やチャネル数が増やされたとして必ずしも向上するわけではなく、層数やチャネル数が減らされたとして必ずしも低下するわけでもない。どのような構造であれば認識精度が高くなるかは、順伝搬と逆伝搬を繰り返しながら重みを漸次更新する訓練が実行されないと判明しない。
【0013】
例えば、1回の訓練が完了するまでには、数時間から数日が求められる。また、探索中には訓練が何十回も繰り返し実行されることが求められる。すなわち、ニューラルネットワーク構造探索では、豊富な計算機資源が求められる点や、探索期間が長期化する点が課題である。
【0014】
非特許文献1に記載されている技術においても、800台のGPU(Graphics Processing Unit)を長期間稼働させることが求められる等、探索に要する計算コストが膨大になることが課題である。
【0015】
また、非特許文献2~3に記載されている技術も、数回以上の訓練が繰り返し実行されることが求められるため、短時間で探索を完了させることが困難である。
【0016】
さらに、非特許文献4に記載されているニューラルネットワーク構造等、公開されている高精度なニューラルネットワーク構造に対するニューラルネットワーク構造探索の手法は、開示されていない。
【0017】
すなわち、ニューラルネットワーク構造を用いるアプリケーションが求める認識精度を保ちつつ、ニューラルネットワーク構造を最適化して認識処理の実行速度が速くなるニューラルネットワーク構造を効率的に導出する手法は、開示されていない。
【0018】
そこで、本発明は、ニューラルネットワーク構造の探索に要する訓練の回数を削減できるニューラルネットワーク構造探索装置、ニューラルネットワーク構造探索方法およびニューラルネットワーク構造探索プログラムを提供することを目的とする。
【課題を解決するための手段】
【0019】
本発明によるニューラルネットワーク構造探索装置は、第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う訓練手段と、訓練によりニューラルネットワークモデルから生成された訓練済モデルを訓練用のデータセットを用いて解析することによって、第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する第1生成手段と、生成された解析情報を用いて第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する特定手段と、特定された要素を第1のニューラルネットワーク構造から削除することによって、第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する第2生成手段とを備え、各要素には、第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、第2生成手段は、特定された重みが所定の割合以上含まれるカーネルを削除することを特徴とする。
【0020】
本発明によるニューラルネットワーク構造探索方法は、第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行い、訓練によりニューラルネットワークモデルから生成された訓練済モデルを訓練用のデータセットを用いて解析することによって、第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成し、生成された解析情報を用いて第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定し、特定された要素を第1のニューラルネットワーク構造から削除することによって、第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成し、各要素には、第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、特定された要素を第1のニューラルネットワーク構造から削除するときに、特定された重みが所定の割合以上含まれるカーネルを削除することを特徴とする。
【0021】
本発明によるニューラルネットワーク構造探索プログラムは、コンピュータに、第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う訓練処理、訓練によりニューラルネットワークモデルから生成された訓練済モデルを訓練用のデータセットを用いて解析することによって、第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する第1生成処理、生成された解析情報を用いて第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する特定処理、および特定された要素を第1のニューラルネットワーク構造から削除することによって、第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する第2生成処理を実行させ、各要素には、第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、コンピュータに、第2生成処理で、特定された重みが所定の割合以上含まれるカーネルを削除させることを特徴とする。
【発明の効果】
【0022】
本発明によれば、ニューラルネットワーク構造の探索に要する訓練の回数を削減できる。
【図面の簡単な説明】
【0023】
【
図1】本発明の実施形態のニューラルネットワーク構造探索装置の構成例を示すブロック図である。
【
図2】畳み込みニューラルネットワークの例を示す説明図である。
【
図3】CNN における畳み込みの計算の例を示す説明図である。
【
図5】モデル解析情報の他の例を示す説明図である。
【
図6】本実施形態のニューラルネットワーク構造探索装置100によるニューラルネットワーク構造探索処理の動作を示すフローチャートである。
【
図7】本実施形態のニューラルネットワーク構造探索装置100による他のニューラルネットワーク構造探索処理の動作を示すフローチャートである。
【
図8】本発明によるニューラルネットワーク構造探索装置のハードウェア構成例を示す説明図である。
【
図9】本発明によるニューラルネットワーク構造探索装置の概要を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態を図面を参照して説明する。本発明に係るニューラルネットワーク構造探索装置は、ニューラルネットワーク構造の探索に多くの回数の訓練が求められるという課題を解決できる装置である。
【0025】
具体的には、本発明に係るニューラルネットワーク構造探索装置は、与えられた訓練データセットに基づいて、最初にニューラルネットワーク構造を有するニューラルネットワークモデル全体に対する訓練を行う。なお、訓練データセットは、訓練に使用される訓練用のデータセットである。訓練データセットには、予め正解を示すラベルが付されている。
【0026】
訓練されたニューラルネットワークモデルである訓練済モデルからは、訓練結果であるニューラルネットワーク構造の重み等の情報が得られる。次いで、ニューラルネットワーク構造探索装置は、訓練結果を解析した上で、認識精度が維持されつつも規模が小さくなるように、新たなニューラルネットワーク構造を決定する。
【0027】
[構成の説明]
図1は、本発明の実施形態のニューラルネットワーク構造探索装置の構成例を示すブロック図である。
【0028】
図1に示すように、本実施形態のニューラルネットワーク構造探索装置100は、訓練手段110と、訓練済モデル解析手段120と、最適ニューラルネットワーク構造決定手段130とを含む。各手段は、それぞれ以下のように動作する。
【0029】
訓練手段110は、入力として第1のニューラルネットワーク構造と、訓練データセットとを受け取る。次いで、訓練手段110は、第1のニューラルネットワーク構造を有するニューラルネットワークモデルを生成する。訓練手段110は、生成されたニューラルネットワークモデルに対して訓練データセットを用いて、深層学習における訓練を行う。訓練手段110は、訓練結果である訓練済モデルを訓練済モデル解析手段120に入力する。
【0030】
訓練手段110に入力される第1のニューラルネットワーク構造は、例えば既に公開されている、高い認識精度を有するニューラルネットワーク構造である。
【0031】
本実施形態で想定されている第1のニューラルネットワーク構造は、例えば畳み込みニューラルネットワーク(Convolutional Neural Network; CNN )の構造である。畳み込みニューラルネットワークは、畳み込み層とプーリング層の2種類の層が交互に積み重ねられた構造を持つフィードフォーワード型のニューラルネットワークである。以下、畳み込みニューラルネットワークを単にCNN とも呼ぶ。
【0032】
図2は、畳み込みニューラルネットワークの例を示す説明図である。
図2に示すCNN では、第1畳み込み層、第1プーリング層、第2畳み込み層、第2プーリング層が交互に積み重ねられている。
【0033】
また、
図2に示すC
1、C
2はそれぞれ、畳み込みの計算を表す。例えば、第1畳み込み層に入力される入力画像に対して、畳み込みの計算C
1が実行される。
【0034】
なお、画像は、入力されるデータの一例である。CNN に入力されるデータは、画像以外のデータであってもよい。
【0035】
また、
図2に示すP
1、P
2はそれぞれ、プーリングの計算を表す。例えば、第1プーリング層に入力される畳み込みの計算結果に対して、プーリングの計算P
1が実行される。
【0036】
また、
図2に示すF は、全結合ネットワークを表す。全結合ネットワークF は、第2プーリング層のノードと出力層のノードを全て結合する全結合層の機能を有する。最終的に、出力層からCNN の出力が得られる。
【0037】
以下、CNN における畳み込みの計算を具体的に説明する。
図3は、CNN における畳み込みの計算の例を示す説明図である。なお、
図3に示す畳み込みの計算の例は、
図2に示す畳み込みの計算C
1に相当する。
【0038】
図3に示す入力画像は、CNN に入力される画像である。
図3に示す入力画像は、第1チャネル~第C
in チャネル(C
in は2以上の整数)が順に並べられて構成されている。すなわち、C
in は、入力チャネル数を意味する。また、
図3に示すように、入力画像を構成する画像の縦のサイズはH 、横のサイズはW である。
【0039】
説明を簡便にするため、畳み込みの計算の対象である入力X として、
図3に示す格子模様が記された縦のサイズが1、横のサイズが1、チャネル数がC
in の画像を考える。
図3の下段には、高さ方向から見た場合の入力X が記載されている。また、
図3に示す入力X の左の符号は、チャネルの識別番号である。
【0040】
図3に示す畳み込みの計算では、縦のサイズがC
out、横のサイズがC
in の1×1カーネルW と、入力X とが掛け合わされる。掛け合わされた結果、チャネル数がC
outの画像である出力Y が得られる。すなわち、C
outは、出力チャネル数を意味する。なお、
図3に示す例において、C
in=3 、C
out=128である。
【0041】
また、
図3に示す畳み込みの計算は、行列同士の乗算に相当する。すなわち、
図3に示す畳み込みの計算では、カーネルW 、入力X 、出力Y
はそれぞれ、行列として扱われる。
【0042】
CNN の構造以外にも、本実施形態では、層数が大きく、認識精度が高いと考えられるニューラルネットワーク構造が第1のニューラルネットワーク構造として訓練手段110に入力されることが想定される。しかし、本実施形態の訓練手段110には、上記以外のニューラルネットワーク構造が第1のニューラルネットワーク構造として入力されてもよい。
【0043】
以上のように、訓練手段110は、第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う。
【0044】
訓練済モデル解析手段120は、訓練手段110から入力される訓練済モデルを、訓練データセットを用いて解析する。解析することによって、訓練済モデル解析手段120は、第1のニューラルネットワーク構造中の冗長な部分を示すモデル解析情報を最適ニューラルネットワーク構造決定手段130に入力する。
【0045】
訓練済モデル解析手段120が使用する解析手法は、いくつか考えられる。1つ目は、訓練済モデルに対して訓練データセット中のデータ(画像等)を順次入力し、第1のニューラルネットワーク構造中の各部分(各層の各チャネル等)の活性化率を観測する手法である。
【0046】
1つ目の解析手法を用いると、訓練済モデル解析手段120は、第1のニューラルネットワーク構造において、他の部分に比べて活性化していない部分を特定できる。なお、訓練済モデル解析手段120は、活性化率を活性化マップ(Activation Map)の値の平均等の統計的指標を用いて求めることができる。
【0047】
2つ目は、第1のニューラルネットワーク構造がCNN の構造である場合に訓練済モデルを分析することによって、ゼロ付近の重みを多く含むカーネルを特定する手法である。ゼロ付近の重みを多く含むカーネルは、削除されても第1のニューラルネットワーク構造による処理結果に大きな影響を及ぼさないと考えられる。
【0048】
上記の解析手法等を用いて解析することによって、訓練済モデル解析手段120は、第1のニューラルネットワーク構造において最終結果への貢献度が相対的に低い部分、すなわち冗長な部分を特定できる。
【0049】
図4は、モデル解析情報の例を示す説明図である。
図4に示すモデル解析情報は、層番号と、スコアとで構成されている。すなわち、
図4は、層ごとのスコアを示す。
【0050】
図5は、モデル解析情報の他の例を示す説明図である。
図5に示すモデル解析情報は、層番号と、カーネル番号と、スコアとで構成されている。すなわち、
図5は、カーネルの重みごとのスコアを示す。なお、
図4~5に示す例では、全部で100層からなるCNN の構造が、第1のニューラルネットワーク構造として想定されている。
【0051】
図5に示す例では、層番号L1の層が、3個の入力チャネルと128個の出力チャネルとに対応することが想定されている。すなわち、
図5に示す例は、
図3に示す例に対応している。
図3に示すカーネル番号は、
図5に示すカーネル番号に対応している。
【0052】
図3、5に示すように、層番号L1の層で使用されるカーネルは、3x128=384 個の重みで構成されている。また、
図5に示すモデル解析情報では、カーネルの各重みに対してスコアがそれぞれ与えられている。
【0053】
本実施形態のスコアは、層またはカーネルの重みの重要度を表す値である。スコア「100」が最も重要度が高いことを表し、スコア「0」が最も重要度が低いことを表す。
【0054】
図4に示す例では、例えば層番号L3の層のスコアは「24」であり、他の層のスコアよりも相対的に低い。また、層番号L99 の層のスコアも「43」と他の層のスコアよりも相対的に低い。
【0055】
また、
図5に示す例では、例えば層番号L2の層における、カーネル番号K1_512のカーネルの重みのスコアは「31」であり、他のカーネルの重みのスコアよりも相対的に低い。
【0056】
例えば、スコアを決定する際に畳み込み層の出力結果である活性化マップの値の平均値が用いられる場合、訓練済モデル解析手段120が任意の畳み込み層から得られた全てのチャネルの活性化マップに対して、チャネル間で正規化してから平均値を評価することが考えられる。
【0057】
また、訓練済モデル解析手段120は、平均値の代わりに活性化マップ中の最大値を用いてスコアを決めてもよいし、閾値を設けて最大値が閾値以上か否かを判定してからスコアを決めてもよい。
【0058】
なお、スコアを決定する手法は、上述した手法に限られない。訓練済モデル解析手段120は、一般的な統計的解析手法を用いてスコアを決定してもよい。
【0059】
すなわち、訓練済モデル解析手段120は、訓練手段110の訓練によりニューラルネットワークモデルから生成された訓練済モデルを訓練用のデータセットを用いて解析する。解析することによって、訓練済モデル解析手段120は、第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する。
【0060】
また、上述したように、各要素には、第1のニューラルネットワーク構造を構成する層が含まれる場合がある。
【0061】
また、各要素には、第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれる場合がある。
【0062】
また、上述したように、訓練済モデル解析手段120は、例えば、訓練用のデータセット中のデータを訓練済モデルに入力することによって得られる活性化率を基に重要度を算出する。
【0063】
最適ニューラルネットワーク構造決定手段130は、訓練済モデル解析手段120が出力するモデル解析情報を基に、最適なニューラルネットワーク構造を決定して出力する。
【0064】
例えば、最適ニューラルネットワーク構造決定手段130は、
図4に示すモデル解析情報を基に、第1のニューラルネットワーク構造から、スコアが小さい層番号L3の層や、層番号L99 の層を削除する。最適ニューラルネットワーク構造決定手段130は、層が削除された第1のニューラルネットワーク構造を第2のニューラルネットワーク構造として出力する。
【0065】
なお、層が削除されすぎることを防ぐために、削除対象の層の比率や個数に上限である閾値が設けられてもよい。例えば、最適ニューラルネットワーク構造決定手段130は、削除対象の層の閾値として、全体の層数の50%のように割合を用いてもよいし、10個のように個数を用いてもよい。また、削除対象の層の閾値は、外部から最適ニューラルネットワーク構造決定手段130に入力として与えられてもよい。
【0066】
また、第1のニューラルネットワーク構造の各層における処理時間が入力として与えられる場合、最適ニューラルネットワーク構造決定手段130は、処理時間が長く、スコアが小さい層を優先して削除してもよい。
【0067】
また、第1のニューラルネットワーク構造の各層における演算器の実行効率が入力として与えられる場合、最適ニューラルネットワーク構造決定手段130は、実行効率が低く、スコアが小さい層を優先して削除してもよい。
【0068】
一般的に、ハードウェアでは高い性能が得られるように、多くの演算器が並べて配列されることによって並列度が高められることが多い。例えば、256 個の演算器が並べて配列されており、かつ、それらの演算器でチャネル数方向の並列性しか活用されないハードウェアの場合、チャネル数が最大で32である層に対しては、最大でも32個の演算器しか稼働しない。
【0069】
よって、チャネル数が最大で32である層における演算器の実行効率は、32/256=1/8=12.5%になる。最適ニューラルネットワーク構造決定手段130は、上記のように算出された実行効率が低い層を優先して削除してもよい。
【0070】
また、目標となる精度が入力として与えられた場合、最適ニューラルネットワーク構造決定手段130は、例えば与えられた目標精度に定数を乗ずることによってスコアの閾値を決定してもよい。最適ニューラルネットワーク構造決定手段130は、決定されたスコアの閾値よりもスコアが低い層を削除する。
【0071】
また、層を削除する際と同様に、最適ニューラルネットワーク構造決定手段130は、カーネルを削除する際もスコアを基に削除するカーネルを決定できる。
【0072】
最適ニューラルネットワーク構造決定手段130は、例えば、決定されたスコアの閾値よりもスコアが低い重みが所定の割合以上含まれるカーネルを削除する。なお、カーネルが削除されると、該当のカーネルが使用されて実行されていた畳み込みの計算が実行されなくなる。
【0073】
なお、最適ニューラルネットワーク構造決定手段130は、層とカーネルの両方を削除してもよいし、層だけ削除してもよいし、カーネルだけ削除してもよい。
【0074】
すなわち、最適ニューラルネットワーク構造決定手段130は、訓練済モデル解析手段120により生成された解析情報を用いて第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する。
【0075】
次いで、最適ニューラルネットワーク構造決定手段130は、特定された要素を第1のニューラルネットワーク構造から削除することによって、第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する。
【0076】
また、最適ニューラルネットワーク構造決定手段130は、層における演算器の処理時間を用いて特定された要素のうち削除する要素を決定してもよい。また、最適ニューラルネットワーク構造決定手段130は、層における演算器の実行効率を用いて特定された要素のうち削除する要素を決定してもよい。
【0077】
また、各要素にカーネル内の重みが含まれる場合、最適ニューラルネットワーク構造決定手段130は、特定された重みが所定の割合以上含まれるカーネルを削除してもよい。
【0078】
以上のように、本実施形態のニューラルネットワーク構造探索装置100は、公開されている高精度なニューラルネットワーク構造に対して、適用対象のアプリケーションに求められる認識精度を保ちつつ構造を最適化することによって、認識処理が高速で実行されるニューラルネットワーク構造を効率的に決定する。
【0079】
なお、本実施形態のニューラルネットワーク構造探索装置100は、非特許文献1に記載されている技術のように精度の高いニューラルネットワーク構造を求めるわけではなく、公開されているモデルと同等程度に精度を維持する。ニューラルネットワーク構造探索装置100は、精度を維持しつつ、認識処理の実行速度が速くなるように、規模が縮小されたニューラルネットワーク構造を決定する。
【0080】
[動作の説明]
以下、本実施形態のニューラルネットワーク構造探索装置100の動作を
図6~7を参照して説明する。
図6は、本実施形態のニューラルネットワーク構造探索装置100によるニューラルネットワーク構造探索処理の動作を示すフローチャートである。
【0081】
最初に、ニューラルネットワーク構造探索装置100に、第1のニューラルネットワーク構造と訓練データセットとが入力される。
【0082】
訓練手段110は、入力された第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して、入力された訓練データセットを用いて訓練を行い、訓練結果である訓練済モデルを出力する(ステップS110)。訓練手段110は、訓練済モデルを訓練済モデル解析手段120に入力する。
【0083】
次いで、訓練済モデル解析手段120は、訓練手段110から入力された訓練済モデルを解析し、モデル解析情報を生成する(ステップS120)。訓練済モデル解析手段120は、生成されたモデル解析情報を最適ニューラルネットワーク構造決定手段130に入力する。
【0084】
次いで、最適ニューラルネットワーク構造決定手段130は、入力されたモデル解析情報を基に、第1のニューラルネットワーク構造における冗長な構造を特定する。次いで、最適ニューラルネットワーク構造決定手段130は、特定された冗長な構造を第1のニューラルネットワーク構造から削除することによって、最適なニューラルネットワーク構造を生成する。
【0085】
次いで、最適ニューラルネットワーク構造決定手段130は、生成された最適なニューラルネットワーク構造を第2のニューラルネットワーク構造として出力する(ステップS130)。第2のニューラルネットワーク構造を出力した後、ニューラルネットワーク構造探索装置100は、ニューラルネットワーク構造探索処理を終了する。
【0086】
図7は、本実施形態のニューラルネットワーク構造探索装置100による他のニューラルネットワーク構造探索処理の動作を示すフローチャートである。
図7は、ニューラルネットワーク構造探索装置100が探索処理を繰り返し実行する場合の例を示す。
【0087】
最初に、ニューラルネットワーク構造探索装置100に、第1のニューラルネットワーク構造と訓練データセットとが入力される。すなわち、探索ループに入る(ステップS210)。
【0088】
ステップS220~S230の各処理は、
図6に示すステップS110~S120の各処理とそれぞれ同様である。
【0089】
次いで、訓練済モデル解析手段120は、ステップS230で生成されたモデル解析情報が示すスコアが所定の条件を満たすか否かを判定する(ステップS240)。所定の条件は、例えば全てのスコアが指定する閾値を上回ることである。
【0090】
スコアが所定の条件を満たす場合(ステップS240におけるYes )、訓練済モデル解析手段120は、第1のニューラルネットワーク構造を出力する(ステップS270)。第1のニューラルネットワーク構造を出力した後、ニューラルネットワーク構造探索装置100は、ニューラルネットワーク構造探索処理を終了する。
【0091】
スコアが所定の条件を満たさない場合(ステップS240におけるNo)、最適ニューラルネットワーク構造決定手段130は、ステップS130と同様の処理を行う(ステップS250)。
【0092】
次いで、ステップS220~S240の処理が繰り返し実行される。なお、2回目以降の処理で、訓練手段110は、ステップS250で生成された第2のニューラルネットワーク構造を第1のニューラルネットワーク構造として受け取る。
【0093】
また、スコアが所定の条件を満たさない場合であっても、例えばステップS220~S250の処理が所定回数繰り返し実行されたとき、ニューラルネットワーク構造探索装置100は、探索ループを抜ける(ステップS260)。探索ループを抜けた後、ニューラルネットワーク構造探索装置100は、ニューラルネットワーク構造探索処理を終了する。
【0094】
[効果の説明]
本実施形態のニューラルネットワーク構造探索装置100では、訓練手段110が与えられた訓練データセットを基に、ニューラルネットワーク構造を有するニューラルネットワークモデル全体に対して訓練を行う。次いで、訓練済モデル解析手段120が、訓練手段110による訓練結果を解析する。次いで、最適ニューラルネットワーク構造決定手段130が、認識精度が維持されつつ規模が小さくなるようなニューラルネットワーク構造を決定する。
【0095】
本実施形態のニューラルネットワーク構造探索装置100は、ニューラルネットワーク構造探索に要する訓練の回数を削減できる。その理由は、最初に訓練手段110がニューラルネットワーク構造全体に対する訓練を実行した後、訓練済モデル解析手段120が訓練結果である訓練済モデルを解析し、最適ニューラルネットワーク構造決定手段130がニューラルネットワークの最適構造を決定するためである。
【0096】
非特許文献1~3に記載されている技術には、ニューラルネットワーク構造の探索に、多くの回数の訓練が求められるという問題点がある。その理由は、上述したように認識精度を評価するためには訓練が求められるためである。
【0097】
本実施形態のニューラルネットワーク構造探索装置100は、訓練を何度も繰り返すことなく、与えられた訓練データセットを基に最適なニューラルネットワーク構造を決定できる。具体的には、ニューラルネットワーク構造探索装置100は、原則として高い精度が期待されるニューラルネットワーク構造を有するニューラルネットワークモデルに対して最初に1回のみ訓練を行う。
【0098】
次いで、ニューラルネットワーク構造探索装置100は、訓練で得られたモデルを訓練データセットを用いて解析することによって、第1のニューラルネットワーク構造の冗長な部分を的確に特定する。よって、ニューラルネットワーク構造探索装置100は、効率的に最適なニューラルネットワーク構造を決定できる。
【0099】
以下、本実施形態のニューラルネットワーク構造探索装置100のハードウェア構成の具体例を説明する。
図8は、本発明によるニューラルネットワーク構造探索装置のハードウェア構成例を示す説明図である。
【0100】
図8に示すニューラルネットワーク構造探索装置100は、CPU(Central Processing Unit )11と、主記憶部12と、通信部13と、補助記憶部14とを備える。また、ユーザが操作するための入力部15や、ユーザに処理結果または処理内容の経過を提示するための出力部16を備える。
【0101】
ニューラルネットワーク構造探索装置100は、
図8に示すCPU11が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【0102】
すなわち、CPU11が補助記憶部14に格納されているプログラムを、主記憶部12にロードして実行し、ニューラルネットワーク構造探索装置100の動作を制御することによって、各機能がソフトウェアにより実現される。
【0103】
なお、
図8に示すニューラルネットワーク構造探索装置100は、CPU11の代わりにDSP(Digital Signal Processor)を備えてもよい。または、
図8に示すニューラルネットワーク構造探索装置100は、CPU11とDSPとを併せて備えてもよい。
【0104】
主記憶部12は、データの作業領域やデータの一時退避領域として用いられる。主記憶部12は、例えばRAM(Random Access Memory)である。
【0105】
通信部13は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
【0106】
補助記憶部14は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリが挙げられる。
【0107】
入力部15は、データや処理命令を入力する機能を有する。入力部15は、例えばキーボードやマウス等の入力デバイスである。
【0108】
出力部16は、データを出力する機能を有する。出力部16は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
【0109】
また、
図8に示すように、ニューラルネットワーク構造探索装置100において、各構成要素は、システムバス17に接続されている。
【0110】
ニューラルネットワーク構造探索装置100において、補助記憶部14は、訓練手段110、訓練済モデル解析手段120、および最適ニューラルネットワーク構造決定手段130を実現するためのプログラムを記憶している。
【0111】
なお、ニューラルネットワーク構造探索装置100は、例えば内部に
図1に示すような機能を実現するLSI(Large Scale Integration )等のハードウェア部品が含まれる回路が実装されてもよい。
【0112】
また、ニューラルネットワーク構造探索装置100は、CPU等の素子を用いるコンピュータ機能を含まないハードウェアにより実現されてもよい。例えば、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ(例えば、上記のLSI)によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0113】
また、ニューラルネットワーク構造探索装置100の各構成要素の一部または全部は、演算部と記憶部とを備えた1つまたは複数の情報処理装置で構成されていてもよい。
【0114】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0115】
次に、本発明の概要を説明する。
図9は、本発明によるニューラルネットワーク構造探索装置の概要を示すブロック図である。本発明によるニューラルネットワーク構造探索装置20は、第1のニューラルネットワーク構造を有するニューラルネットワークモデルに対して訓練用のデータセットを用いて訓練を行う訓練手段21(例えば、訓練手段110)と、訓練によりニューラルネットワークモデルから生成された訓練済モデルを訓練用のデータセットを用いて解析することによって、第1のニューラルネットワーク構造を構成する各要素の重要度それぞれを示す解析情報を生成する第1生成手段22(例えば、訓練済モデル解析手段120)と、生成された解析情報を用いて第1のニューラルネットワーク構造中の重要度が所定値よりも低い要素を特定する特定手段23(例えば、最適ニューラルネットワーク構造決定手段130)と、特定された要素を第1のニューラルネットワーク構造から削除することによって、第1のニューラルネットワーク構造を基に第2のニューラルネットワーク構造を生成する第2生成手段24(例えば、最適ニューラルネットワーク構造決定手段130)とを備える。
【0116】
そのような構成により、ニューラルネットワーク構造探索装置は、ニューラルネットワーク構造の探索に要する訓練の回数を削減できる。
【0117】
また、各要素には、第1のニューラルネットワーク構造を構成する層が含まれてもよい。また、第2生成手段24は、層における演算器の処理時間を用いて特定された要素のうち削除する要素を決定してもよい。また、第2生成手段24は、層における演算器の実行効率を用いて特定された要素のうち削除する要素を決定してもよい。
【0118】
そのような構成により、ニューラルネットワーク構造探索装置は、第1のニューラルネットワーク構造を構成する層における処理内容を基に第2のニューラルネットワーク構造を生成できる。
【0119】
また、各要素には、第1のニューラルネットワーク構造を構成する畳み込み層で使用されるカーネル内の重みが含まれ、第2生成手段24は、特定された重みが所定の割合以上含まれるカーネルを削除してもよい。
【0120】
そのような構成により、ニューラルネットワーク構造探索装置は、CNN に対応できる。
【0121】
また、第1生成手段22は、訓練用のデータセット中のデータを訓練済モデルに入力することによって得られる活性化率を基に重要度を算出してもよい。
【0122】
そのような構成により、ニューラルネットワーク構造探索装置は、活性化マップを用いてニューラルネットワーク構造の探索に要する訓練の回数を削減できる。
【0123】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【0124】
本発明は、様々な場所に設置されているカメラそれぞれの精度を維持しつつ、カメラに適用されるニューラルネットワーク構造を最適化して認識処理を高速化する用途に好適に適用される。
【符号の説明】
【0125】
11 CPU
12 主記憶部
13 通信部
14 補助記憶部
15 入力部
16 出力部
17 システムバス
20、100 ニューラルネットワーク構造探索装置
21、110 訓練手段
22 第1生成手段
23 特定手段
24 第2生成手段
120 訓練済モデル解析手段
130 最適ニューラルネットワーク構造決定手段