(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024066209
(43)【公開日】2024-05-15
(54)【発明の名称】評価方法、評価装置、および、プログラム
(51)【国際特許分類】
G06N 3/04 20230101AFI20240508BHJP
【FI】
G06N3/04
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022175625
(22)【出願日】2022-11-01
(71)【出願人】
【識別番号】322003857
【氏名又は名称】パナソニックオートモーティブシステムズ株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】吉濱 豊
(72)【発明者】
【氏名】磯部 匠汰
(57)【要約】
【課題】NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【解決手段】評価の対象であるニューラルネットワークアーキテクチャを取得し(S101)、取得したニューラルネットワークアーキテクチャを有するニューラルネットワークに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値(S102)と、ニューラルネットワークに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値(S103~S104)それぞれとの加重和を、評価値として算出し出力する(S105)。
【選択図】
図6
【特許請求の範囲】
【請求項1】
プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価方法であって、
前記評価の対象である前記ニューラルネットワークアーキテクチャを取得し、
取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出し、
算出した前記評価値を出力する
評価方法。
【請求項2】
前記評価値を算出する際には、
前記1以上のノーマリゼーション層それぞれについて、前記ニューラルネットワークモデルにおいて当該ノーマリゼーション層の前段に含まれている畳み込み層の種別に応じて定められている重みを用いて前記加重和を算出し、
算出した前記加重和を用いて前記評価値を算出する
請求項1に記載の評価方法。
【請求項3】
前記1以上のノーマリゼーション層それぞれについての前記重みは、
当該ノーマリゼーション層の前段がPWConv(Pointwise Convolution)層である場合には、当該ノーマリゼーション層の前段がConv(Convolution)層である場合と同じであり、
当該ノーマリゼーション層の前段がDWConv(Depthwise Convolution)層である場合には、当該ノーマリゼーション層の前段がConv層である場合より大きい
請求項2に記載の評価方法。
【請求項4】
前記ニューラルネットワークアーキテクチャを取得する際には、
記憶部に格納されている複数のニューラルネットワークアーキテクチャのうちの一のニューラルネットワークアーキテクチャが有する複数の設計パラメータの少なくとも1つを変更することで、前記ニューラルネットワークアーキテクチャを取得し、
前記複数の設計パラメータの少なくとも1つを変更する際には、
前記複数の設計パラメータのうち、予め定められた種別のブロックの個数を固定し、他の設計パラメータを変更する
請求項1~3のいずれか1項に記載の評価方法。
【請求項5】
取得した前記ニューラルネットワークアーキテクチャについて前記評価値を算出した場合には、
取得した前記ニューラルネットワークアーキテクチャと、前記記憶部に記憶されている複数のニューラルネットワークアーキテクチャとを含むニューラルネットワークアーキテクチャ群のうち、評価値が高いほうから所定数個のニューラルネットワークアーキテクチャが前記記憶部に格納された状態になるように前記記憶部を更新する、更新制御をし、
前記ニューラルネットワークアーキテクチャを取得することは、
前記更新制御がなされた前記記憶部から前記ニューラルネットワークアーキテクチャを取得することを含む
請求項4に記載の評価方法。
【請求項6】
プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価装置であって、
前記評価の対象である前記ニューラルネットワークアーキテクチャを取得する取得部と、
前記取得部が取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出して出力する算出部とを備える
評価装置。
【請求項7】
請求項1に記載の評価方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、評価方法、評価装置、および、プログラムに関する。
【背景技術】
【0002】
推論性能が比較的高いニューラルネットワークアーキテクチャを探索する、ニューラルアーキテクチャ探索(NAS(Neural Architecture Search))の技術がある。
【0003】
NASの技術の1つにZero-Shot NASがある。Zero-Shot NASの技術の1つにZen-NASがある。Zen-NASは、ニューラルネットワークの学習をすることなく、ニューラルネットワークアーキテクチャの評価を行い、性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Ming Lin等、“Zen-NAS: A Zero-Shot NAS for High-Performance Deep Image Recognition”、ICCV 2021、2021年8月23日
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、NASにより、実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることができないことがあるという問題がある。
【0006】
そこで、本発明は、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する評価方法等を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る評価方法は、プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価方法であって、前記評価の対象である前記ニューラルネットワークアーキテクチャを取得し、取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出し、算出した前記評価値を出力する評価方法。
【0008】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0009】
本発明の評価方法は、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与することができる。
【図面の簡単な説明】
【0010】
【
図1】ニューラルネットワークアーキテクチャにおけるブロックに含まれる層を模式的に示す説明図である。
【
図2】ニューラルネットワークアーキテクチャの性能評価値と性能実測値との例を示す説明図である。
【
図3】実施の形態における評価装置の構成を模式的に示す説明図である。
【
図4】実施の形態における評価装置の取得部が行う処理を模式的に示す説明図である。
【
図5】実施の形態における評価装置の算出部が行う処理を模式的に示す説明図である。
【
図6】実施の形態における評価装置が実行する処理を示すフロー図である。
【
図7】比較例における評価装置が算出する性能評価値と性能実測値との関係の例を示す説明図である。
【
図8】実施の形態における評価装置が算出する性能評価値と性能実測値との関係の例を示す説明図である。
【
図9】比較例および実施の形態における評価装置の探索により得られるニューラルネットワークアーキテクチャの推論精度と推論時間との例を示す説明図である。
【発明を実施するための形態】
【0011】
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、ニューラルネットワークアーキテクチャの探索に関する技術に関し、以下の問題が生じることを見出した。
【0012】
車載機または組み込み機器においてAI(Artificial Intelligence)モデルを用いた処理を行う場合、要求される計算リソースが比較的小さく、高速かつ高精度の推論が可能であるニューラルネットワークアーキテクチャが用いられることが望まれる。車載機等の計算リソースが限られているからである。
【0013】
汎用のニューラルネットワークアーキテクチャでは、車載機等に用いられるSoC(System-on-a-chip)の性能を十分に発揮させることができないことがある。具体的には、ニューラルネットワークアーキテクチャを有するAIモデルの推論速度または推論精度が、SoCに依存して変動する。その一因は、ニューラルネットワークアーキテクチャの設計パラメータの最適値がSoCごとに異なることである。設計パラメータの例は、ブロック数、チャネル数、ストライドおよびカーネルサイズである。
【0014】
ところで、推論性能が比較的高いニューラルネットワークアーキテクチャを探索する、ニューラルアーキテクチャ探索(NAS(Neural Architecture Search))の技術がある。NASの技術は、SoCの性能を十分に発揮させることができるニューラルネットワークアーキテクチャを探索することに寄与し得る。
【0015】
NASによれば、一般に、ニューラルネットワークアーキテクチャに含まれる設計パラメータを変更しながら性能を評価することで、性能が比較的高いニューラルネットワークアーキテクチャを得ることが繰り返される。より長い時間の探索が行われれば、繰り返しの回数が多くなり、性能がより高いニューラルネットワークアーキテクチャを得る蓋然性が高まる。
【0016】
NASの技術の1つにZero-Shot NASがある。Zero-Shot NASの技術の1つにZen-NASがある。Zen-NASは、ニューラルネットワークの学習をすることなく、ニューラルネットワークアーキテクチャの評価を行い、性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【0017】
しかしながら、Zen-NASによるニューラルネットワークアーキテクチャの探索の際に得られる、ニューラルネットワークアーキテクチャの性能値である評価値と、当該ニューラルネットワークアーキテクチャを有するニューラルネットワークが実際に行う推論の性能を示す値である実測値とが、整合しないことがある。
【0018】
評価値と実測値とが整合しない場合、当該評価値を用いてニューラルネットワークアーキテクチャの探索を行っても、実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることができないという問題がある。
【0019】
そこで、本発明は、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する評価方法等を提供する。
【0020】
以下、本明細書の開示内容から得られる発明を例示し、その発明から得られる効果等を説明する。
【0021】
(1)プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価方法であって、前記評価の対象である前記ニューラルネットワークアーキテクチャを取得し、取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出し、算出した前記評価値を出力する評価方法。
【0022】
上記態様によれば、第一指標値と1以上の第二指標値との加重和を用いてニューラルネットワークアーキテクチャの評価値を算出するので、第一指標値と1以上の第二指標値との和(言い換えれば単純和)を用いてニューラルネットワークアーキテクチャを算出する場合よりも、より適切な評価値を算出することができる。加重和の重みによって、第一指標値と第二指標値との、評価値に対する寄与の大きさを調整することができ、または、1以上の第二指標値の評価値に対する寄与の大きさを調整することができるからである。よって、上記評価方法は、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【0023】
(2)前記評価値を算出する際には、前記1以上のノーマリゼーション層それぞれについて、前記ニューラルネットワークモデルにおいて当該ノーマリゼーション層の前段に含まれている畳み込み層の種別に応じて定められている重みを用いて前記加重和を算出し、算出した前記加重和を用いて前記評価値を算出する、(1)に記載の評価方法。
【0024】
上記態様によれば、特に、加重和の重みによって、1以上の第二指標値それぞれの評価値に対する寄与の大きさをノーマリゼーション層の種別に応じて調整することができるので、より適切な評価値を算出することができ、評価結果をより適切なものとすることができる。よって、上記評価方法は、NASにより実際の推論性能が比較的高い、より適切なニューラルネットワークアーキテクチャを得ることに寄与する。
【0025】
(3)前記1以上のノーマリゼーション層それぞれについての前記重みは、当該ノーマリゼーション層の前段がPWConv(Pointwise Convolution)層である場合には、当該ノーマリゼーション層の前段がConv(Convolution)層である場合と同じであり、当該ノーマリゼーション層の前段がDWConv(Depthwise Convolution)層である場合には、当該ノーマリゼーション層の前段がConv層である場合より大きい、(2)に記載の評価方法。
【0026】
上記態様によれば、ノーマリゼーション層の前段が、PWConv層であるか、DWConv層であるか、または、Conv層であるかに応じて、第二指標値についての重みをより容易に調整することができる。具体的には、DWConv層は、PWConv層またはConv層と比較してパラメータが少ないので、DWConv層についての重みを大きくすることで、評価値の振る舞いを適切にすることができる。よって、上記評価方法は、より容易に、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【0027】
(4)前記ニューラルネットワークアーキテクチャを取得する際には、記憶部に格納されている複数のニューラルネットワークアーキテクチャのうちの一のニューラルネットワークアーキテクチャが有する複数の設計パラメータの少なくとも1つを変更することで、前記ニューラルネットワークアーキテクチャを取得し、前記複数の設計パラメータの少なくとも1つを変更する際には、前記複数の設計パラメータのうち、予め定められた種別のブロックの個数を固定し、他の設計パラメータを変更する、(1)~(3)のいずれかに記載の評価方法。
【0028】
上記態様によれば、複数の設計パラメータのうち、推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与し得る設計パラメータの変更を効率よく行うことができる。複数の設計パラメータのうちの特定のパラメータは、特定の値に設定されることで、ニューラルネットワークアーキテクチャが比較的高い推論性能を発揮できることが知られているものもある。そのような設計パラメータを固定することで、推論性能が比較的高いニューラルネットワークアーキテクチャを効率よく得ることに寄与し得る。よって、上記評価方法は、より効率よく、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【0029】
(5)取得した前記ニューラルネットワークアーキテクチャについて前記評価値を算出した場合には、取得した前記ニューラルネットワークアーキテクチャと、前記記憶部に記憶されている複数のニューラルネットワークアーキテクチャとを含むニューラルネットワークアーキテクチャ群のうち、評価値が高いほうから所定数個のニューラルネットワークアーキテクチャが前記記憶部に格納された状態になるように前記記憶部を更新する、更新制御をし、前記ニューラルネットワークアーキテクチャを取得することは、前記更新制御がなされた前記記憶部から前記ニューラルネットワークアーキテクチャを取得することを含む、(4)に記載の評価方法。
【0030】
上記態様によれば、記憶部を、評価値が比較的高いニューラルネットワークアーキテクチャが記憶された状態に維持し、記憶されているニューラルネットワークアーキテクチャを提供することができるとともに、評価値がさらに高いニューラルネットワークアーキテクチャを生成することに寄与する。よって、上記評価方法は、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する。
【0031】
(6)プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価装置であって、前記評価の対象である前記ニューラルネットワークアーキテクチャを取得する取得部と、前記取得部が取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出して出力する算出部とを備える、評価装置。
【0032】
上記態様によれば、上記評価方法と同様の効果を奏する。
【0033】
(7)(1)に記載の評価方法をコンピュータに実行させるプログラム。
【0034】
上記態様によれば、上記評価方法と同様の効果を奏する。
【0035】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0036】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0037】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0038】
(実施の形態)
本実施の形態において、NASにより実際の推論性能が比較的高いニューラルネットワークアーキテクチャを得ることに寄与する評価方法などについて説明する。
【0039】
図1は、ニューラルネットワークアーキテクチャにおけるブロックに含まれる層を模式的に示す説明図である。
【0040】
図1の(a)には、ニューラルネットワークアーキテクチャA(アーキテクチャAともいう)に含まれるブロックが示されている。
【0041】
図1の(a)に示されるブロックには、PWConv(Pointwise Convolution)層L11、Conv(Convolution)層L13、および、PWConv層L15がこの順に配置されている。また、PWConv層L11、Conv層L13、および、PWConv層L15の後段には、それぞれ、ノーマリゼーション層L12、L14およびL16が配置されている。
【0042】
図1の(b)には、ニューラルネットワークアーキテクチャB(アーキテクチャBともいう)に含まれるブロックが示されている。
【0043】
図1の(b)に示されるブロックには、PWConv層L21、DWConv(Depthwise Convolution)層L23、および、PWConv層L25がこの順に配置されている。また、PWConv層L21、DWConv層L23、および、PWConv層L25の後段には、それぞれ、ノーマリゼーション層L22、L24およびL26が配置されている。
【0044】
図2は、ニューラルネットワークアーキテクチャの評価値と実測値との例を示す説明図である。
図2には、
図1に示されるアーキテクチャAおよびBを有するニューラルネットワークモデルそれぞれについて、NASによる性能評価値の例と、実際の推論時の性能実測値の例とが示されている。
【0045】
図2に示される性能評価値は、当該アーキテクチャに含まれるブロックを1以上連結したニューラルネットワークアーキテクチャについての、Zen-NASによるスコアが示されている。スコアは、Zen-NASにおいて算出される指標値Δに起因する項(Δ項ともいう)と、指標値σに起因する項(σ項ともいう)との和を含む。Δ項は、ニューラルネットワークモデルに入力される入力値を微小に変化(一般に摂動ともいう)させた場合における出力値の変化量を示す。σ項は、ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散の和を示す。Δ項およびσ項は、それぞれ、ニューラルネットワークアーキテクチャの複雑さを示す指標であると言える。ブロックの連結数は、1、4、7および10である。ブロックの連結数を多くするほど、ニューラルネットワークアーキテクチャごとの性能の差がより顕著に表れることがある。
【0046】
また、
図2に示される性能実測値は、それぞれ、当該アーキテクチャのみを使って同じ推論速度制約条件の下でニューラルアーキテクチャ探索により得られたニューラルネットワークモデルについて、データセットを用いて実際に学習させた学習済みモデルを用いて推論を行った場合の正解率である。
【0047】
アーキテクチャAとアーキテクチャBとを比較すると、性能評価値についてはアーキテクチャAのほうが高く、性能実測値についてはアーキテクチャBのほうが高い。また、性能評価値については、ブロックの連結数が大きいほど、σ項の寄与がより大きい。
【0048】
このように、ニューラルネットワークアーキテクチャについて、Zen-NASによる性能評価値と、性能実測値とが整合しないことがある。
【0049】
図3は、本実施の形態における評価装置10の構成を模式的に示す説明図である。
図4は、本実施の形態における評価装置10の取得部12が行う処理を模式的に示す説明図である。
図5は、本実施の形態における評価装置10の算出部13が行う処理を模式的に示す説明図である。
【0050】
評価装置10は、プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う情報処理装置である。また、評価装置10は、上記評価の結果を用いて、推論性能が比較的高いニューラルネットワークアーキテクチャを探索することができる。
【0051】
図3に示されるように、評価装置10は、記憶部11と、取得部12と、算出部13と、格納部14とを備える。なお、評価装置10は、必ずしも格納部14を備えなくてもよい。
【0052】
記憶部11は、評価装置10による複数のニューラルネットワークアーキテクチャを記憶している。記憶部11が記憶している複数のニューラルネットワークアーキテクチャは、評価装置10による評価の対象である。記憶部11には、評価の対象であるニューラルネットワークアーキテクチャが予め格納されていてよく、また、格納部14によってニューラルネットワークアーキテクチャが格納されてもよい。
【0053】
取得部12は、評価装置10による評価の対象であるニューラルネットワークアーキテクチャを記憶部11から取得する。取得部12は、取得したニューラルネットワークアーキテクチャを算出部13に提供する。ここで、取得部12が行う処理を詳細に説明する(
図4参照)。
【0054】
取得部12は、記憶部11に格納されている複数のニューラルネットワークアーキテクチャのうちから一のニューラルネットワークアーキテクチャを選択する(ステップS21)。一のニューラルネットワークアーキテクチャの選択は、任意の方法でよく、例えば、記憶部11に格納されている複数のニューラルネットワークアーキテクチャのうちからランダムに一のニューラルネットワークアーキテクチャを選択することであり得る。
【0055】
また、取得部12は、ステップS21で選択したニューラルネットワークアーキテクチャの設計パラメータの少なくとも1つを変更する(ステップS22)。設計パラメータの例は、ブロック数、チャネル数、ストライドおよびカーネルサイズである。このようにすることで、取得部12は、ステップS21で選択したニューラルネットワークアーキテクチャから微小に変化したニューラルネットワークアーキテクチャを取得する。取得部12による、このようなニューラルネットワークアーキテクチャの取得は、遺伝的アルゴリズムを用いたニューラルネットワークアーキテクチャの取得とも言える。
【0056】
なお、ステップS21で選択したニューラルネットワークアーキテクチャについての評価値が不明である場合には、ステップS22においてニューラルネットワークアーキテクチャの設計パラメータの少なくとも1つを変更しないこととしてもよい。ニューラルネットワークアーキテクチャについての評価値が不明である場合は、例えば、当該ニューラルネットワークアーキテクチャについて算出部13がまだ評価値を算出したことがない場合に相当する。このようにすると、ステップS21で選択したニューラルネットワークアーキテクチャについての評価値を算出部13が算出することになる。
【0057】
また、取得部12は、ステップS22の処理において、ブロック数を固定し、他の設計パラメータを変更してもよい(ステップS23)。言い換えれば、取得部12は、ステップS22の処理において、ブロック数の変更を禁止してもよい。取得部12は、より具体的には、予め定められた種別のブロックとして、例えば、処理対象のデータのデータサイズが56×56ピクセル、28×28ピクセル、14×14ピクセルおよび7×7ピクセルであるブロックの個数の比率が1:1:3:1になるように、ブロック数を固定してもよい。取得部12は、上記の通り、設計パラメータを変更することで、記憶部11に格納されているニューラルネットワークアーキテクチャから、さまざまな設計パラメータに関して微小に変化したニューラルネットワークアーキテクチャを取得することができるが、複数の設計パラメータのうちには、特定の値に設定されることで比較的高い推論性能を発揮すること知られているものもある。そのような設計パラメータについては、ステップS22における変更を禁止する(つまり固定する)ことで、比較的高い推論性能を発揮するニューラルネットワークアーキテクチャを効率よく得ることに寄与する。
【0058】
算出部13は、取得部12が取得したニューラルネットワークアーキテクチャの評価値を算出し、算出した評価値を出力する。算出部13が評価値を出力する先は、例えば格納部14であり、この場合を例として説明するが、評価値を出力する先は評価装置10の外部の装置であってもよい。
【0059】
ここで、算出部13が行う処理を詳細に説明する(
図5参照)。
【0060】
まず、算出部13は、取得部12が取得したニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す指標値Δ(第一指標値ともいう)を算出する(ステップS31)。
【0061】
また、算出部13は、取得部12が取得したニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の指標値σ(第二指標値ともいう)を算出する(ステップS32)。ここで、1以上のノーマリゼーション層は、1以上のレイヤノーマリゼーション層であってもよいし、1以上のインスタンスノーマリゼーション層であってもよい。
【0062】
また、算出部13は、ステップS34で加重和を算出する際に用いる重みとして、指標値Δについての重みと、1以上の指標値σそれぞれについての重みを取得する(ステップS33)。ここでは、指標値Δについての重が1である場合を例として説明する。なお、指標値Δについての重みが1でない場合、指標値Δについての重み、および、1以上の指標値σそれぞれについての重みを指標値Δで除算することで、指標値Δについての重みが1である場合に帰着する。なお、1以上の指標値σそれぞれについての重みがすべて1である場合は除外される。
【0063】
重みは、ステップS34における評価値の算出に用いられるΔ項とσ項とのそれぞれの、評価値に対する寄与度を調整する機能を有する。また、重みは、1以上の指標値σそれぞれの、σ項に対する寄与度を調整する機能を有する。
【0064】
例えば、重みは、1以上のノーマリゼーション層それぞれについて、ニューラルネットワークモデルにおいて当該ノーマリゼーション層の前段に含まれている畳み込み層の種別に応じて定められている。
【0065】
より具体的には、1以上のノーマリゼーション層それぞれについての重みは、当該ノーマリゼーション層の前段がPWConv層である場合には、当該ノーマリゼーション層の前段がConv層である場合と同じとすることができる。また、例えば、当該ノーマリゼーション層の前段がDWConv層である場合には、当該ノーマリゼーション層の前段がConv層である場合より大きくすることができる。当該ノーマリゼーション層の前段がDWConv層である場合には、DWConv層が後段の層に渡すパラメータが比較的少ないので、Δ項と比較してσ項の寄与が比較的小さい。そこで、上記場合には、1以上のノーマリゼーション層それぞれについての重みを大きくすることで、Δ項の寄与とσ項の寄与とを同程度にすることができる。
【0066】
算出部13は、ステップS33で取得した重みを用いて、指標値Δと1以上の指標値σそれぞれとの加重和を、評価値として算出する(ステップS34)。例えば、算出部13は、下記(式1)により評価値Eを算出する。(式1)におけるσiは、1以上の指標値σそれぞれに相当し、λiは、1以上の指標値σそれぞれについての重みに相当する。iは、1以上N以下の範囲の整数値をとるインデックス値であり、Nは、評価の対象であるニューラルネットワークアーキテクチャのノーマリゼーション層の個数である。(式1)における第1項がΔ項に相当し、第二項がσ項に相当する。
【0067】
【0068】
格納部14は、算出部13が評価値を算出したニューラルネットワークアーキテクチャを、その評価値とともに記憶部11に格納することで、記憶部11を更新する、更新制御を行う。
【0069】
具体的には、格納部14は、算出部13が出力する評価値を取得する。格納部14は、更新制御において、算出部13が評価値を算出したニューラルネットワークアーキテクチャと、記憶部11に記憶されている複数のニューラルネットワークアーキテクチャとを含むニューラルネットワークアーキテクチャ群のうち、評価値が高いほうから所定数個のニューラルネットワークアーキテクチャが記憶部11に格納された状態になるように、記憶部11を更新する制御(更新制御ともいう)をする。
【0070】
具体的には、格納部14は、記憶部11に格納されている複数のニューラルネットワークアーキテクチャのうち、最も低い評価値を有するニューラルネットワークアーキテクチャの評価値と、算出部13が算出した評価値とを比較する。そして、格納部14は、比較した2つの評価値のうち、高い評価値を有するニューラルネットワークアーキテクチャを記憶部11に格納し(既に格納されている場合には維持し)、低い評価値を有するニューラルネットワークアーキテクチャを破棄する。
【0071】
図6は、本実施の形態における評価装置10が実行する処理を示すフロー図である。
【0072】
ステップS101において、取得部12は、評価の対象であるニューラルネットワークアーキテクチャを取得する。
【0073】
ステップS102において、算出部13は、ステップS101で取得したニューラルネットワークアーキテクチャについて指標値Δを算出する。
【0074】
ステップS103において、算出部13は、ステップS101で取得したニューラルネットワークアーキテクチャについて、各ノーマリゼーション層の分散σiを算出する。各ノーマリゼーション層の分散σiは、1以上の指標値σに相当する。
【0075】
ステップS104において、算出部13は、ステップS101で取得したニューラルネットワークアーキテクチャについて、各ノーマリゼーション層の分散σiの重みを取得する。
【0076】
ステップS105において、算出部13は、ステップS102で算出した指標値Δと、ステップS103で算出した分散σiと、ステップS104で算出した重みとを用いて、評価値を算出する。また、算出部13は、算出した評価値を出力する。
【0077】
図7は、比較例における評価装置が算出する性能評価値と、性能実測値との関係の例を示す説明図である。比較例における評価装置は、一例として、Zen-NASによる性能評価値を算出する評価装置である。
【0078】
図7は、それぞれ異なる5つのアーキテクチャブロック構造のみを使って同じ推論速度制約条件の下でニューラルアーキテクチャ探索で得られたニューラルネットワークアーキテクチャについて、比較例における評価装置が算出した性能評価値と、性能実測値とを示す点31、32、33、34および35がプロットされたグラフである。グラフにおける横軸は性能評価値を示し、縦軸は性能実測値を示している。
【0079】
点31~35は、グラフ上で規則性を有さずに散在している。すなわち、5つのニューラルネットワークアーキテクチャについての性能評価値と性能実測値とに相関がなく、言い換えれば、性能評価値と性能実測値とが整合していないと言える。
【0080】
図8は、本実施の形態における評価装置10が算出する性能評価値と性能実測値との関係の例を示す説明図である。
【0081】
図8は、
図7と同様の5つのニューラルネットワークアーキテクチャについて、評価装置10が算出した性能評価値と、性能実測値とを示す点41、42、43、44および45がプロットされたグラフである。グラフにおける横軸は性能評価値を示し、縦軸は性能実測値を示している。
【0082】
点41~45は、いずれも、グラフ上で右肩上がりの直線Lの近傍に存在している。すなわち、5つのニューラルネットワークアーキテクチャの性能評価値と性能実測値とに相関があり、言い換えれば、性能評価値と性能実測値とが概ね整合していると言える。
【0083】
図9は、比較例における評価装置、および、本実施の形態における評価装置10の探索により得られるニューラルネットワークアーキテクチャの推論精度と推論時間との例を示す説明図である。
【0084】
図9に示されるグラフには、4つの既存のニューラルネットワークアーキテクチャについて、そのニューラルネットワークアーキテクチャを有するニューラルネットワークモデルが推論に要する時間(推論時間ともいう)と、推論精度とを示す点51、52、53および54がプロットされている。グラフにおける横軸は推論時間を示し、縦軸は推論精度を示している。
【0085】
点51、52、53および54は、それぞれ、ニューラルネットワークアーキテクチャとしてMobileNetV1、MobileNetV2、MobileNetV3およびEfficientNetB0を用いた場合の例である。
【0086】
推論時間と推論精度とは、一般に、推論時間が長いほど推論精度が高く、言い換えれば、推論時間が短いほど推論精度が低いというトレードオフの関係を有する。言い換えれば、推論時間を横軸とし、推論精度を縦軸としたグラフにおいて、各ニューラルネットワークアーキテクチャについての推論時間と推論精度とを示す点が、右肩上がりの直線の近傍に位置する。
【0087】
図9に示される点51~54は、グラフ上で右肩上がりの直線L1の近傍に位置しており、上記トレードオフがあることが示されている。
【0088】
また、
図9に示されるグラフには、上記4つの既存のニューラルネットワークアーキテクチャのうちの2つのニューラルネットワークアーキテクチャ(点51および52に係るニューラルネットワークアーキテクチャ)それぞれをベースとして、評価装置10が算出する評価値を用いた探索により得られた2つのニューラルネットワークアーキテクチャに関する推論時間と推論精度とを示す点51Aおよび52Aがプロットされている。
【0089】
図9に示される点51Aおよび52Aは、グラフ上で、直線L1より上方に位置する直線L2の近傍に位置している。グラフにおける上方は、推論精度がより高いことを意味している。
【0090】
よって、評価装置10が算出する評価値を用いた探索により、一般的な推論時間と推論精度とのトレードオフの関係よりも、推論精度が高いニューラルネットワークアーキテクチャを得ることができると言える。
【0091】
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態の評価装置などを実現するソフトウェアは、次のようなプログラムである。
【0092】
すなわち、このプログラムは、コンピュータに、プロセッサを用いてニューラルネットワークアーキテクチャの評価を行う評価方法であって、前記評価の対象である前記ニューラルネットワークアーキテクチャを取得し、取得した前記ニューラルネットワークアーキテクチャを有するニューラルネットワークモデルに入力される入力値を変化させた場合における出力値の変化量を示す第一指標値と、前記ニューラルネットワークモデルに含まれる1以上のノーマリゼーション層の分散を示す1以上の第二指標値それぞれとの加重和を、評価値として算出し、算出した前記評価値を出力する評価方法を実行させるプログラムである。
【0093】
以上、一つまたは複数の態様に係る評価方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0094】
本発明は、ニューラルネットワークアーキテクチャの評価をする評価装置に利用可能である。
【符号の説明】
【0095】
10 評価装置
11 記憶部
12 取得部
13 算出部
14 格納部
31、32、33、34、35、41、42、43、44、45、51、51A、52、52A、53、54 点
L、L1、L2 直線
L11、L15、L21、L25 PWConv層
L12、L14、L16、L22、L24、L26 ノーマリゼーション層
L13 Conv層
L23 DWConv層