(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141096
(43)【公開日】2024-10-10
(54)【発明の名称】ニューラルネットワーク構造探索装置およびニューラルネットワーク構造探索方法
(51)【国際特許分類】
G06N 3/0985 20230101AFI20241003BHJP
【FI】
G06N3/0985
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023052559
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】廣瀬 一俊
(57)【要約】
【課題】ニューラルネットワークの構造を探索するときの計算量およびメモリ量を削減する。
【解決手段】ニューラルネットワークのアーキテクチャを探索するニューラルネットワーク構造探索装置10は、探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する演算圧縮部11と、集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定するアーキテクチャ決定部12とを含む。
【選択図】
図14
【特許請求の範囲】
【請求項1】
ニューラルネットワークのアーキテクチャを探索するニューラルネットワーク構造探索装置であって、
探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する演算圧縮手段と、
集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定するアーキテクチャ決定手段とを備える
ニューラルネットワーク構造探索装置。
【請求項2】
前記演算圧縮手段は、同種類の演算または同じ役割を有する演算を1つの演算に集約する
請求項1に記載のニューラルネットワーク構造探索装置。
【請求項3】
前記演算圧縮手段は、圧縮対象パラメータを用いて、複数の演算を1つの演算に集約する
請求項1または請求項2に記載のニューラルネットワーク構造探索装置。
【請求項4】
前記アーキテクチャ決定手段は、前記候補アーキテクチャに基づいてアーキテクチャの性能を予測する予測手段を含む
請求項3に記載のニューラルネットワーク構造探索装置。
【請求項5】
前記アーキテクチャ決定手段は、パラメータが未知の候補アーキテクチャのパラメータを探索するパラメータ探索手段を含む。
請求項3に記載のニューラルネットワーク構造探索装置。
【請求項6】
前記パラメータ探索手段は、探索対象のパラメータ空間で、パラメータを探索する
請求項5に記載のニューラルネットワーク構造探索装置。
【請求項7】
ニューラルネットワークのアーキテクチャを探索するニューラルネットワーク構造探索方法であって、
コンピュータが、
探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約し、
集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定する
ニューラルネットワーク構造探索方法。
【請求項8】
コンピュータが、
同種類の演算または同じ役割を有する演算を1つの演算に集約する
請求項7に記載のニューラルネットワーク構造探索方法。
【請求項9】
ニューラルネットワークのアーキテクチャを探索するためのニューラルネットワーク構造探索プログラムであって、
コンピュータに、
探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する処理と、
集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定する処理と
を実行させるためのニューラルネットワーク構造探索プログラム。
【請求項10】
コンピュータに、
同種類の演算または同じ役割を有する演算を1つの演算に集約させる
請求項9に記載のニューラルネットワーク構造探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークの構造を探索するニューラルネットワーク構造探索装置およびニューラルネットワーク構造探索方法に関する。
【背景技術】
【0002】
ニューラルネットワークは、与えられた入力に対する出力を推測するために、非線形処理を行う複数の層を有する機械学習のモデルである。ニューラルネットワークの最適なアーキテクチャ(ニューラルネットワークの最適な構造)を導出する技術として、ネットワーク構造探索(Neural Architecture Search:NAS)がある。NASによって、例えば、ニューラルネットワークの非線形処理の種類や層の接続箇所が探索される。
【0003】
NASの一例が、特許文献1および非特許文献1に記載されている。特許文献1に記載されたアーキテクチャ探索システムは、計算セルを定義する計算セル生成器と、計算セルパラメータ調整エンジンと、アーキテクチャ生成器とを含む。計算セルは、ノードとエッジとを表す有向グラフを含む。各ノードは、ニューラルネットワーク潜在表現を表わす。各エッジは、ニューラルネットワーク潜在表現を変換する演算を表わす。
【0004】
計算セルパラメータ調整エンジンは、潜在表現を変換する演算を、重みを有する候補演算の線形結合の演算に置き換える。計算セルパラメータ調整エンジンは、計算セルハイパパラメータと重みとを調整する。アーキテクチャ生成器は、調整された計算セルハイパパラメータと重みとを用いて、ニューラルネットワークを生成する。
【0005】
非特許文献1にも、計算セルを利用したNASが記載されている。非特許文献1に記載されたシステムは、アーキテクチャサンプリング手段と、アーキテクチャ評価手段と、アーキテクチャ性能予測手段と、アーキテクチャ保存装置と、パラメータ探索手段とを含む。
【0006】
非特許文献1に記載されたシステムは、探索空間からランダムにアーキテクチャをサンプリングし、サンプルを使って決定森(ランダムフォレスト)を訓練する。当該システムは、よいアーキテクチャの分布を追跡しながら、新しい領域を探索する。ランダムフォレストによって探索空間全体が十分に探索された後、当該システムは、分布から、最大の確率を有するアーキテクチャを最適解として選択する。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【非特許文献1】Xiawu Zheng、「Neural Architecture Search with Representation Mutual Information」、2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)、2022年9月27日
【発明の概要】
【発明が解決しようとする課題】
【0009】
非特許文献1に記載されたシステムでは、サンプルサイズを大きくすると、アーキテクチャの探索が困難になる。その理由は、当該システムは、ランダムフォレストへの入力をワンホットベクトルに変換してからランダムフォレストに入力するので、探索空間が指数的に増加し、性能予測器の学習が難しくなるからである。また、ランダムフォレストの学習に必要な学習データが増加することに伴って、サンプリングすべき回数が増加する。そのことからも、学習に時間がかかる。
【0010】
特許文献1に記載されたシステムでは、計算セルが多くの候補演算を含む場合には、計算セルの探索において必要とされるメモリ量が多く、計算機の性能によって探索可能なアーキテクチャの空間が制約される。その理由は、当該システムでは、候補演算は計算セルハイパパラメータによって重み付けされ、それらが線形結合にされることによって演算セルが構成され、勾配法により計算セルハイパパラメータを計算する必要であるからである。
【0011】
本発明は、ニューラルネットワークの構造を探索するときの計算量およびメモリ量を削減できるニューラルネットワーク構造探索装置およびニューラルネットワーク構造探索方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明によるニューラルネットワーク構造探索装置は、ニューラルネットワークのアーキテクチャを探索するニューラルネットワーク構造探索装置であって、探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する演算圧縮手段と、集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定するアーキテクチャ決定手段とを含む。
【0013】
本発明によるニューラルネットワーク構造探索方法は、コンピュータが、探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約し、集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定する方法である。
【0014】
本発明によるニューラルネットワーク構造探索プログラムは、コンピュータに、探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する処理と、集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定する処理とを実行させる。
【発明の効果】
【0015】
本発明によれば、ニューラルネットワークの構造を探索するときの計算量およびメモリ量を削減できる。
【図面の簡単な説明】
【0016】
【
図1】第1の実施形態で使用される計算セルの一例を示す説明図である。
【
図2】探索空間の圧縮の具体例を示す説明図である。
【
図3】第1の実施形態のニューラルネットワーク構造探索装置の構成例を示すブロック図である。
【
図4】探索空間次元圧縮手段への入力および探索空間次元圧縮手段の出力の具体例を示す説明図である。
【
図5A】候補アーキテクチャの具体例を示す説明図である。
【
図5B】候補アーキテクチャのベクトル表現の具体例を示す説明図である。
【
図6】第1の実施形態のニューラルネットワーク構造探索装置の動作を示すフローチャートである。
【
図7】第1の実施形態のニューラルネットワーク構造探索装置の動作を示すフローチャートである。
【
図8】第2の実施形態で使用される計算セルの一例を示す説明図である。
【
図9】第2の実施形態のニューラルネットワーク構造探索装置の構成例を示すブロック図である。
【
図10】パラメータ探索手段への入力およびパラメータ探索手段の出力の例を示す説明図である。
【
図11】第2の実施形態のニューラルネットワーク構造探索装置の動作を示すフローチャートである。
【
図12】第2の実施形態のニューラルネットワーク構造探索装置の動作を示すフローチャートである。
【
図13】CPUを有するコンピュータの一例を示すブロック図である。
【
図14】ニューラルネットワーク構造探索装置の主要部を示すブロック図である。
【発明を実施するための形態】
【0017】
以下の実施形態では、アーキテクチャの探索に計算セルの概念を用いるNASを例にする。計算セルは、ノードとエッジとを表す有向グラフを含む。以下の実施形態では、計算セルのエッジで表される演算を集約することによって、ニューラルネットワーク構造の探索に要する計算量が削減される。
【0018】
実施形態1.
図1は、第1の実施形態で使用される計算セルの一例を示す説明図である。
図1に示すように、計算セル500は、ニューラルネットワークの特徴マップを表すノード501と、ノード間の1つ以上の候補演算を表すエッジ502とで構成される有向グラフで表現される。本実施形態では、計算セル500が最適化される。計算セル500の最適化は、計算セルを、ネットワークアーキテクチャの推論精度、モデルサイズ、実行速度などの性能を高くするエッジが1つのみ選択された状態とすることである。
【0019】
本実施形態のニューラルネットワーク構造探索装置は、演算空間内に含まれる同種類の演算もしくは同じ役割を有する演算、または、同種類の演算および同じ役割を有する演算を、代表する1つの圧縮された演算として扱うことによって、探索空間の次元数を削減する。換言すれば、ニューラルネットワーク構造探索装置は、探索空間の次元数を削減するために、複数の演算を1つの演算に集約する。
【0020】
同種類の演算は、例えば、ストライド数が1の畳み込み層の演算とストライド数が2の畳み込み層の演算といった、異なるパラメータを有する2つ以上の演算である。その例では、パラメータは、ストライド数である。他の同種類の演算の例として、カーネルサイズが2×2の平均プーリング層の演算とカーネルサイズが3×3の平均プーリング層の演算とがある。その例では、パラメータは、カーネルサイズである。
【0021】
また、役割の一例として、特徴マップのサイズを縮小する役割がある。その場合、同じ役割を有する演算として、ストライド数が2の畳み込み層の演算とストライド数が2の平均プーリング層の演算が例示される。役割の他の例として、特徴マップに対してノンパラメトリックな演算を行い次の層へ出力する役割がある。その場合、同じ役割を有する演算として、ストライド数が1の平均プーリング層の演算とストライド数が1の最大プーリング層の演算が例示される。また、また1つのエッジに複数の演算が含まれる場合の演算の繰り返し回数などを役割に位置づけてもよい。
【0022】
図2は、探索空間の圧縮の具体例を示す説明図である。
図2を参照して、圧縮による探索空間の変化を説明する。圧縮前の探索空間が、1×1のカーネルを有する畳み込み層、3×3のカーネルを有する畳み込み層、5×5のカーネルを有する畳み込み層、7×7のカーネルを有する畳み込み層、平均プーリング層、最大プーリング層、スキップ結合(Skip-connection)、無結合(zeroize)からなる8次元の空間であるとする。
【0023】
同種類の演算または同じ役割を有する演算を1つの演算に圧縮した後の演算空間は、畳み込み層、プーリング層、スキップ結合、および無結合からなる4次元の空間になる。パラメータ空間は、畳み込み層に関するパラメータおよびプーリング層に関するパラメータとからなる2次元の空間になる。なお、この例では、畳み込み層に関するパラメータには、1×1、3×3、5×5、7×7の4種類が含まれている。プーリング層に関するパラメータには、平均プーリングと最大プーリングとの2種類が含まれている。
【0024】
演算空間を、ワンホット信号で表現しうる。パラメータ空間を、演算に対する1つの値で表現することができる。この例では、圧縮前の探索空間は8次元の空間であるが、圧縮後の演算空間は4次元の空間であり、パラメータ空間は2次元の空間である。そのため、候補演算を表現するための次元数が削減される。
【0025】
以下、本発明の実施形態を図面を参照して説明する。
【0026】
第1の実施形態では、ニューラルネットワーク構造探索装置は、計算セル内の探索の候補となる演算空間内に含まれる同種類または同じ役割を有する演算を1つの演算として扱い、新たに圧縮後の演算空間を定義する。ニューラルネットワーク構造探索装置は、計算セルの演算の探索空間を、圧縮後の演算空間と圧縮した演算のパラメータ空間を結合したベクトル形式で表現することによって、性能予測器の入力特徴量の次元数を圧縮する。
【0027】
性能予測器は、ランダムフォレスト、ニューラルネットワークなどの機械学習モデルである。複数の演算を含む計算セルと、計算セルを用いたネットワークアーキテクチャの性能との関係を学習する。学習によって、未知のアーキテクチャに対する性能を予測し、探索することが可能になる。
【0028】
[構成の説明]
図3は、第1の実施形態のニューラルネットワーク構造探索装置100の構成例を示すブロック図である。
図3に示すニューラルネットワーク構造探索装置100は、探索空間次元圧縮手段101と、アーキテクチャサンプリング手段102と、アーキテクチャ評価手段103と、アーキテクチャ性能予測手段104と、アーキテクチャ保存装置105とを備えている。
図3における矢印は、信号(データ)の流れの方向を端的に示すが、双方向性を排除するものではない。このことは、他のブロック図についても同様である。
【0029】
図4は、探索空間次元圧縮手段101への入力および探索空間次元圧縮手段101の出力の具体例を示す説明図である。
図4に示す例では、探索空間次元圧縮手段101は、演算リスト111と圧縮対象のパラメータリスト112とを入力する。探索空間次元圧縮手段101は、圧縮演算リスト113を出力する。
【0030】
演算リスト111は、探索する演算空間に相当する。演算リスト111は、計算セル内の候補となる演算(具体的には、演算を示すデータ)をすべて含む。演算として、畳み込み層の演算(畳み込み演算)、全結合の演算(全結合演算)、スキップ結合、平均プーリング層の演算(平均プーリング演算)、最大プーリングの演算(最大プーリング演算)、無結合などのニューラルネットワークを構成するための演算が該当する。なお、カーネルサイズやストライドなどのパラメータが異なる畳み込み層の演算は、別の演算として扱われる。例えば、3×3のカーネルを有する畳み込み層の演算は、1×1のカーネルを有する畳み込み層の演算とは異なる演算として扱われる。
【0031】
プーリング演算などについても、パラメータが異なる演算は、別の演算として扱われる。
【0032】
パラメータリスト112は、演算リスト111に含まれる同種類または同じ役割を有する演算内の異なるパラメータを抜粋した辞書型のリストである。パラメータリスト112は、探索対象となるパラメータ空間に相当する。圧縮演算リスト113は、探索空間次元圧縮手段101によって圧縮された演算の種類を含む。
【0033】
アーキテクチャサンプリング手段102は、圧縮演算リスト113とパラメータリスト112とを入力し、探索対象の候補アーキテクチャを出力する。アーキテクチャサンプリング手段102は、入力を用いて構成可能な全アーキテクチャの中から1つ以上のアーキテクチャを任意の確率分布でサンプリングし、候補アーキテクチャとして出力する。
【0034】
図5Aは、アーキテクチャサンプリング手段102から出力される候補アーキテクチャ121の具体例を示す説明図である。
図5Aにおいて、ノードm-n(m,n:0以上の整数)は、ノード間を示す。すなわち、ノードm-nは、ノードmとノードnとの間のエッジを示す。
図5Aに示す例では、候補アーキテクチャ121は、ノードm-nのそれぞれに対応した、演算の種類とパラメータとで構成される。
図5Bは、候補アーキテクチャ121のベクトル表現の具体例を示す説明図である。本実施形態では、
図5Bに示すように、候補アーキテクチャ121は、計算セル内のノード間ごとに演算を1次元ベクトル形式で表現される。ベクトル形式は、候補アーキテクチャ121が作成されるときに、圧縮演算リスト113の値をワンホット信号化した値と、パラメータリスト112の値とをノード間ごとに結合されて表現される。
【0035】
アーキテクチャ評価手段103は、対象データセット114を対象として、ネットワークアーキテクチャの重みを学習する。アーキテクチャ評価手段103は、任意の評価関数を用いて、候補アーキテクチャ121の性能を表す指標を1つの数値として出力する。対象データセット114は、ネットワークアーキテクチャがターゲットとするタスクのデータセットである。評価関数は、アーキテクチャの推論誤差、表現能力、計算量、モデルサイズ、などの値や、それらの加重和で表現される。
【0036】
アーキテクチャ性能予測手段104は、ランダムフォレストなどの機械学習モデルを上記の性能予測器として含む。アーキテクチャ性能予測手段104は、与えられた入出力のペアを学習する処理と、未知の入力に対する出力を推論する処理とを実行する。入力値は、候補アーキテクチャ121である。出力値は、数値化されたアーキテクチャの性能である。数値化されたアーキテクチャの性能を、性能値とする。
【0037】
アーキテクチャ保存装置105は、アーキテクチャと、パラメータと、そのアーキテクチャの性能との組み合わせを複数組保存する。また、アーキテクチャ保存装置105は、保存されているアーキテクチャの中で最もよいアーキテクチャ(最も性能が高いアーキテクチャ)を出力する。アーキテクチャは、圧縮演算リスト内の候補である。パラメータは、パラメータリスト内の候補である。
【0038】
[動作の説明]
次に、
図6および
図7のフローチャートを参照してニューラルネットワーク構造探索装置100の動作を説明する。
図6には、性能予測器の学習段階の処理が示されている。
図7には、性能予測器の強化段階の処理、および、アーキテクチャの選択段階が示されている。
【0039】
性能予測器の学習段階では、探索空間次元圧縮手段101は、予め定義された計算セルの演算リスト111と圧縮対象とするパラメータリスト112とを入力として受け取る(ステップS101)。そして、探索空間次元圧縮手段101は、演算リスト111とパラメータリスト112とを基に圧縮演算リスト113を作成し、圧縮演算リスト113をアーキテクチャサンプリング手段102に出力する(ステップS102)。
【0040】
ステップS102で、探索空間次元圧縮手段101は、演算リスト111内で圧縮対象となる2つ以上の演算を、圧縮された1つの演算とする。探索空間次元圧縮手段101は、圧縮された演算(具体的には、演算を示すデータ)を圧縮演算リストに記載する。なお、演算の圧縮は、演算空間内に含まれる同種類または同じ役割を有する演算を1つの演算に集約することを意味する。なお、本実施形態では、探索空間次元圧縮手段101は、同種類の演算および同じ役割を有する演算を圧縮するが、同種類の演算と同じ役割を有する演算との一方のみを圧縮してもよい。
【0041】
アーキテクチャサンプリング手段102は、候補アーキテクチャ121を1次元のベクトル形式で出力する(ステップS103)。ベクトルは、圧縮演算リスト113のベクトルとパラメータリスト112の値とを結合した形式で表すことが可能である。圧縮演算リスト113において、パラメータは、値そのもの、または、値に対応するインデックスなどで表現される。アーキテクチャ評価手段103は、候補アーキテクチャ121を受け取る。アーキテクチャ評価手段103は、評価関数を用いて候補アーキテクチャ121の性能を評価する(ステップS104)。ステップS104で、アーキテクチャ評価手段103は、例えば、性能を表す指標を計算する。なお、アーキテクチャ評価手段103は、入力された対象データセット114を用いて候補アーキテクチャの性能を表す指標を計算することもできる。
【0042】
アーキテクチャ性能予測手段104は、機械学習モデルを用いて学習を行う(ステップS105)。すなわち、アーキテクチャ性能予測手段104は、候補アーキテクチャ121を入力とし、教師データを性能として、性能予測器の学習を行う。
【0043】
次に、性能予測器の強化段階の処理が実行される。強化段階では、学習段階と同様に、アーキテクチャサンプリング手段102が1つ以上の新たな候補アーキテクチャ121を、アーキテクチャ性能予測手段104に出力する(ステップS111)。アーキテクチャ性能予測手段104は、候補アーキテクチャ121の性能を、学習段階で学習された性能予測器を用いて予測する(ステップS112)。アーキテクチャ性能予測手段104は、予測した複数の候補アーキテクチャの中で性能が高いと予測されたアーキテクチャの1つ以上と付随するパラメータとを、アーキテクチャ保存装置105とアーキテクチャ評価手段103とに与える(ステップS113)。アーキテクチャ保存装置105は、性能が高いと予測されたアーキテクチャを保存する(ステップS114)。
【0044】
アーキテクチャ評価手段103は、アーキテクチャの性能を、学習段階で使用された評価関数を用いて評価する(ステップS115)。アーキテクチャ評価手段103は、アーキテクチャの性能値を、アーキテクチャ性能予測手段104に出力する。アーキテクチャ性能予測手段104は、学習段階と同様に、性能予測器の学習を行う(ステップS116)。性能予測器が再学習されることによって、性能予測器の予測性能が強化される。ステップS111~S117の処理が、予め設定された所定回数繰り返される。ステップS111~S117の処理が所定回数繰り返し実行されることによって、性能が高いアーキテクチャが、アーキテクチャ保存装置105に、一定数保存される。なお、繰り返しの回数である所定回数は、性能が高いアーキテクチャがアーキテクチャ保存装置105に一定数保存されることが期待される回数に設定される。なお、性能が高いか否かを判定するための基準(しきい値)が予め決められていてもよい。
【0045】
アーキテクチャの選択段階では、アーキテクチャ保存装置105は、保存されているアーキテクチャの中から最も性能が高いものを1つ選択して出力する(ステップS121)。以上のようにして、最終的に、性能が高いアーキテクチャが得られる。
【0046】
[効果の説明]
本実施形態では、探索空間次元圧縮手段101が、探索対象となる演算リスト111と、それに対応するパラメータリスト112とに基づいて、圧縮演算リスト113を生成する。探索空間次元圧縮手段101は、候補アーキテクチャの表現に必要な要素数を圧縮する。候補アーキテクチャは、圧縮演算リスト113には、ワンホット信号で表記したデータと、パラメータリスト112内の値がインデックスなどで表現された1つの値とを結合したデータが設定される。したがって、アーキテクチャを少ない要素数で表現することができる。その結果、性能予測器の入力次元を削減することができる。よって、性能予測器の学習および推論の容易化が達成される。
【0047】
また、先行技術では、異なるパラメータを有する同種の演算は、別の要素として表現されている。したがって、性能予測器がその関係性を学習する必要がある。しかし、本実施形態では、すでにその関係性は、インデックスなどによって数値の大小で表現されている。その結果、学習の複雑さが軽減される。
【0048】
なお、本実施形態では、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)内の計算セルの探索が例例示されたが、本実施形態の考え方は、RNN(Recurrent Neural Network:再帰型ニューラルネットワーク)、Transformerなどの他のニューラルネットワークの構造探索にも適用可能である。
【0049】
実施形態2.
図8は、第2の実施形態で使用される計算セルの一例を示す説明図である。
図8に示すように、計算セル600は、ニューラルネットワークの特徴マップを表すノード601と、ノード間の1つ以上の候補演算を表すエッジ602,603とで構成される有向グラフで表現される。本実施形態では、エッジ602は、パラメータを含む候補演算に相当する。エッジ603は、パラメータを含まない候補演算に相当する。
【0050】
エッジ602に対応するパラメータを含む候補演算は、計算セルハイパパラメータ611によって、パラメータ化された重みづけされた線形結合に置き換えられる。
【0051】
第2の実施形態でも、ニューラルネットワーク構造探索装置は、計算セル600内の探索の候補となる演算空間内に含まれる同種類または同じ役割を有する演算を1つの演算として扱い、新たに圧縮後の演算空間を定義する。そして、ニューラルネットワーク構造探索装置は、圧縮後の演算空間を性能予測器を用いて探索するとともに、圧縮された演算のパラメータ空間を探索する。
【0052】
第2の実施形態では、ニューラルネットワーク構造探索装置は、さらに、計算セル600内のパラメータが未定である演算とその性能との組を性能予測器が学習する。そのような性能予測器によって、パラメータが未知のアーキテクチャに対する性能が予測される。その後、パラメータが決定される。なお、パラメータを決定する方法として、例えば、特許文献1に記載された方法を使用することができる。
【0053】
[構成の説明]
図9は、第2の実施形態のニューラルネットワーク構造探索装置200の構成例を示すブロック図である。
図9に示すニューラルネットワーク構造探索装置200は、探索空間次元圧縮手段101と、アーキテクチャサンプリング手段202と、パラメータ探索手段201と、アーキテクチャ評価手段103と、アーキテクチャ性能予測手段204と、アーキテクチャ保存装置105とを備えている。
【0054】
探索空間次元圧縮手段101は、
図3に示された探索空間次元圧縮手段101と同様に構成される。
【0055】
アーキテクチャサンプリング手段202は、圧縮演算リスト113(
図4参照)を入力し、探索対象の候補アーキテクチャ221を出力する。アーキテクチャサンプリング手段202は、入力を用いて構成可能な全アーキテクチャの中から1つ以上のアーキテクチャを任意の確率分布でサンプリングし、候補アーキテクチャ221として出力する。候補アーキテクチャ221は、計算セル内のノード間の演算ごとに1次元ベクトル形式で表現される。
【0056】
本実施形態では、第1の実施形態のアーキテクチャサンプリング手段102とは異なり、アーキテクチャサンプリング手段202は、パラメータのサンプリングを行わない。アーキテクチャサンプリング手段202は、パラメータが未定の候補アーキテクチャを出力する。
【0057】
図10は、パラメータ探索手段201への入力およびパラメータ探索手段201の出力の例を示す説明図である。
図10に示す例では、パラメータ探索手段201は、候補アーキテクチャ221を入力する。パラメータ探索手段201は、パラメータが決定された候補アーキテクチャ222を出力する。なお、
図10には、探索空間次元圧縮手段101に入力されるパラメータリスト212の一例と、探索空間次元圧縮手段101から出力される圧縮演算リスト213の一例も示されている。
【0058】
パラメータ探索手段201は、パラメータが未定の候補アーキテクチャ221とパラメータリスト212とを受け取る。パラメータ探索手段201は、候補アーキテクチャ221のパラメータを探索して、パラメータを決定する。パラメータ探索手段201は、
図8に示すように、パラメータを決定するための候補演算を線形結合に置き換えて計算セル600を構成する。それぞれの線形結合における候補演算は、パラメータ化された重みである計算セルハイパパラメータ611を有する。評価関数によって計算セルハイパパラメータ611は最適化され、最適なパラメータが決定される。
【0059】
図10には、パラメータ探索手段201による線形結合への置き換えの一例、計算セルハイパパラメータ611の最適化の一例、および、最適なパラメータの決定の一例が、(A)~(C)で示されている。
【0060】
アーキテクチャ評価手段103は、入力された対象データセット114に対して、候補アーキテクチャ222を、任意の評価関数を用いて、アーキテクチャの性能となる指標を1つの数値にして出力する。評価関数の出力は、そのアーキテクチャの表現能力や推論誤差、計算量、モデルサイズなどの値や、それらを重みづけして加算した値であり、ネットワークアーキテクチャの性能を表す。
【0061】
アーキテクチャ性能予測手段204は、ランダムフォレストなどの機械学習モデルを上記の性能予測器として含む。アーキテクチャ性能予測手段204は、与えられた入出力のペアを学習する処理と、未知の入力に対する出力を推論する処理とを実行する。入力値は、候補アーキテクチャである。出力値は、数値化されたアーキテクチャの性能である。数値化されたアーキテクチャの性能を、性能値とする。
【0062】
アーキテクチャ保存装置105は、第1の実施形態におけるアーキテクチャ保存装置105と同様の機能を有する。
【0063】
[動作の説明]
次に、
図11および
図12のフローチャートを参照してニューラルネットワーク構造探索装置200の動作を説明する。
図11には、性能予測器の学習段階の処理が示されている。
図12には、性能予測器の強化段階の処理、および、アーキテクチャの選択段階が示されている。
【0064】
性能予測器の学習段階では、探索空間次元圧縮手段101は、予め定義された計算セルの演算リスト111と圧縮対象とするパラメータリスト112とを入力として受け取る(ステップS101)。そして、探索空間次元圧縮手段101は、演算リスト111とパラメータリスト112とを基に圧縮演算リスト213を作成し、圧縮演算リスト213をアーキテクチャサンプリング手段202に出力する(ステップS102)。圧縮演算リスト213を作成するための処理は、第1の実施形態における処理と同じである。
【0065】
アーキテクチャサンプリング手段202は、候補アーキテクチャ221を1次元のベクトル形式で出力する(ステップS201)。ステップS201で、アーキテクチャサンプリング手段202は、ノード間の演算ごとに、圧縮演算リスト213のベクトルをワンホット信号で表現する。
【0066】
パラメータ探索手段201は、候補アーキテクチャ221と、入力されたパラメータリスト212とを受け取る(ステップS202)。パラメータ探索手段201は、
図8および
図10に示すように、計算セル600内でパラメータを含む候補演算を計算セルハイパパラメータ611によってパラメータ化された重みづけされた線形結合に置き換えることによって、計算セル600を再構成する(
図10における(A)参照)。
【0067】
次に、パラメータ探索手段201は、計算セルハイパパラメータ611を最適化することによって、計算セルハイパパラメータ611を更新する(
図10における(B)参照)。パラメータ探索手段201は、例えば特許文献1に記載されている誤差逆伝播法を用いて最適化を行うことができる。そして、パラメータ探索手段201は、圧縮対象の演算のパラメータの値を算出する(
図10における(C)参照)。パラメータ探索手段201は、パラメータが決定された候補アーキテクチャ222を出力する(ステップS203)。
【0068】
アーキテクチャ評価手段103は、パラメータが決定された候補アーキテクチャ222を受け取る。アーキテクチャ評価手段103は、評価関数を用いて候補アーキテクチャ222の性能を評価する(ステップS104)。ステップS104で、アーキテクチャ評価手段103は、例えば、性能を表す指標を計算する。なお、アーキテクチャ評価手段103は、入力された対象データセット114を用いて候補アーキテクチャの性能を表す指標を計算することもできる。
【0069】
アーキテクチャ性能予測手段204は、機械学習モデルを用いて学習を行う(ステップS105)。すなわち、アーキテクチャ性能予測手段204は、候補アーキテクチャを入力とし、教師データを性能として、性能予測器の学習を行う。第1の実施形態の場合とは異なり、機械学習モデルには、入力として計算セル600内の候補演算が与えられるが、パラメータの値は含まれない。
【0070】
次に、性能予測器の強化段階の処理が実行される。強化段階では、学習段階と同様に、アーキテクチャサンプリング手段202が1つ以上の新たな候補アーキテクチャ221を、アーキテクチャ性能予測手段204に出力する(ステップS211)。
【0071】
アーキテクチャ性能予測手段204は、候補アーキテクチャ221の性能を、学習段階で学習された性能予測器を用いて予測する(ステップS112)。アーキテクチャ性能予測手段204は、予測した複数の候補アーキテクチャ221の中で性能が高いと予測されたアーキテクチャの1つ以上を、パラメータ探索手段201に与える(ステップS113)。パラメータ探索手段201は、パラメータ未定の候補アーキテクチャ221のパラメータを決定する(ステップS212)。そして、パラメータ探索手段201は、パラメータが決定された候補アーキテクチャを、アーキテクチャとして、アーキテクチャ保存装置105とアーキテクチャ評価手段103とに与える。
【0072】
アーキテクチャ保存装置105は、性能が高いと予測されたアーキテクチャを保存する(ステップS114)。アーキテクチャ評価手段103は、アーキテクチャの性能を、学習段階で使用された評価関数を用いて評価する(ステップS115)。アーキテクチャ評価手段103は、アーキテクチャの性能値を、アーキテクチャ性能予測手段204に出力する。アーキテクチャ性能予測手段204は、学習段階と同様に、性能予測器の学習を行う(ステップS116)。性能予測器が再学習されることによって、性能予測器の予測性能が強化される。
【0073】
ステップS211~S117の処理が、予め設定された所定回数繰り返される。ステップS211~S117の処理が所定回数繰り返し実行されることによって、性能が高いアーキテクチャが、アーキテクチャ保存装置105に、一定数保存される。
【0074】
アーキテクチャの選択段階では、アーキテクチャ保存装置105は、保存されているアーキテクチャの中から最も性能が高いものを1つ選択して出力する(ステップS121)。以上のようにして、最終的に、性能が高いアーキテクチャが得られる。
【0075】
[効果の説明]
本実施形態のニューラルネットワーク構造探索装置200は、計算セル内の一部の演算のハイパパラメータに関する計算を行えばよい。したがって、本実施形態では、第1の実施形態の効果が得られるとともに、特許文献1に記載されたような、計算セル内の全ての演算のハイパパラメータに関する計算を行う装置と比較して、メモリ使用量が削減されるという効果を得ることができる。
【実施例0076】
次に、具体的な実施例を説明する。第1の実施形態において、使用者が、
図4に例示された演算リスト111と圧縮対象のパラメータリスト112とを定義し、それらを探索空間次元圧縮手段101に入力する場合を例にする。
【0077】
第1の実施例では、演算リスト111に、無接続と、スキップ接続と、平均プーリングと、カーネルサイズが1×1の畳み込み演算と、カーネルサイズが3×3の畳み込み演算と、カーネルサイズが5×5の畳み込み演算と、カーネルサイズが3×3かつグループ数が2のグループ畳み込み演算と、カーネルサイズが3×3かつグループ数が4のグループ畳み込み演算と、カーネルサイズが3×3かつグループ数が8のグループ畳み込み演算との9種類の演算が設定されたとする。パラメータリスト112に、畳み込み演算に対するパラメータとして、1×1と、3×3と、5×5とが設定されたとする。また、パラメータリスト112に、グループ畳み込みに対するパラメータとして、1と、2と、4と、8とが設定されたとする。
【0078】
上記の演算以外の演算として最大プーリング、無結合、正規化などのニューラルネットワークで用いられる演算、または、演算が組み合わされた複数の演算からなる層を候補とすることが可能である。例えば、上記の演算以外のパラメータとして、畳み込み演算やプーリング演算のストライド数、膨張率、チャネル数を候補することが可能である。
【0079】
探索空間次元圧縮手段101は、9種類の演算において、パラメータリスト112で対象とされている同種類または同じ役割を有する演算群を1つの演算に圧縮(集約)する。本実施例では、探索空間次元圧縮手段101は、同種類の演算としてのカーネルサイズが異なる複数の畳み込み演算を1つの畳み込み演算に集約する。また、探索空間次元圧縮手段101は、グループ数が異なる複数のグループ畳み込み演算を1つのグループ畳み込みに集約する。その結果、探索空間次元圧縮手段101は、演算の種類として、無結合と、スキップ結合と、平均プーリングと、畳み込みと、グループ畳み込みとを含む要素数が5の圧縮演算リスト113を作成することになる。
【0080】
同種類の演算の他の例として、カーネルサイズやグループ数が異なっている演算の他に、ストライド数、膨張率、チャネル数などが異なっている演算が考えられる。また、同じ役割を有する演算の例として、ストライド数が2の畳み込み層とストライド数が2の平均プーリングなどの特徴マップのサイズを縮小する役割を有する演算が考えられる。また、同じ役割を有する演算として、ストライド数が1の平均プーリングとストライド数が1の最大プーリングなどの特徴マップに対してノンパラメトリックな演算を行い次の層へ出力する役割を有する演算が考えられる。また、同じ役割を有する演算に、1つのエッジに複数の演算が含まれる場合の演算の繰り返し回数などが含められてもよい。
【0081】
アーキテクチャサンプリング手段102は、圧縮演算リスト113とパラメータリスト112とから構成可能なアーキテクチャを、任意の確率分布のもとでサンプリングする。具体的には、アーキテクチャサンプリング手段102は、演算リスト111から1つの演算を、演算候補としてサンプリング(選択)する。演算が圧縮可能な演算すなわち圧縮演算(集約可能な演算)である場合、アーキテクチャサンプリング手段102は、パラメータリスト112からパラメータを選択する。選択された候補演算とパラメータとは、候補アーキテクチャ121(
図5A参照)を構成する。候補アーキテクチャ121の表現形式は、演算(具体的には、演算の種類を表す演算データ)とパラメータ(具体的には、パラメータデータ)とが結合されたリスト形式である(
図5B参照)。演算データは、長さが5であるワンホット信号で表される。パラメータデータは、1つのパラメータについて1つの値で表わされる。一例として、パラメータデータは、インデックスによる値で表される。例えば、インデックスは、1×1に対する1、3×3に対する2、5×5に対する3である。アーキテクチャサンプリング手段102は、圧縮演算ではない演算に対して、0や-1などの範囲外の値を割り当てる。
【0082】
アーキテクチャサンプリング手段102によって、計算セル内のあるノード間の結合について、例えば、カーネルサイズ3×3、グループ数2の畳み込み演算が選択された場合、候補アーキテクチャは、[0 0 0 0 1 0 2](第1要素から5要素までが演算の種類のワンホット表現値、第6要素が畳み込み演算のカーネルサイズのインデックス、第7要素がグループ畳み込み演算のインデックス)のように、7つの要素で表現される。計算セル内のノード数が4であるとき、ノード間の接続数は(4×(4-1))/2=6である。よって、探索セル全体のアーキテクチャは7×6=42の要素で表現される。なお、第1の実施形態のアーキテクチャサンプリング手段102を使用しない場合には、アーキテクチャは9×6=54要素で表現される。なお、アーキテクチャサンプリング手段102が出力するアーキテクチャは、候補アーキテクチャ121である。
【0083】
アーキテクチャ評価手段103は、候補アーキテクチャ121を評価関数によって評価する。評価関数には、対象データセット114が入力されたときの教師ラベルとの差による損失や、教師モデルとの差や、モデルの性能を評価する数値などがある。評価関数において、それらの重みづけ和を損失としてもよい。なお、非特許文献1では、候補アーキテクチャに対象データセットを入力したときの教師ラベルの損失と、教師モデルとの中間層の相互情報量の重みづけ和が採用されている。教師モデルは、すでに存在しているアーキテクチャ構造を有する、同じデータセットで学習されたモデルである。アーキテクチャ構造は、上記の重みづけ和の値が小さいほど高い性能を有するアーキテクチャとして定義される。
【0084】
アーキテクチャ性能予測手段104は、上記の性能を性能予測器に学習させる。性能予測器の入力は候補アーキテクチャ121であり、出力は性能である。性能予測器は、入出力の関係を表現することができる機械学習の方式である。
【0085】
機械学習として、ランダムフォレストを使用する。ランダムフォレストにおいて、入力は、探索セル全体のアーキテクチャを表現する要素数が42の1次元ベクトルである。出力は、高性能なモデルと低性能なモデルの2クラス分類になっている。高性能なモデルと低性能なモデルを区別するために、候補アーキテクチャの評価関数の値を、任意のしきい値で区切る。
【0086】
性能予測器の学習後、強化段階に移行する。強化段階において、アーキテクチャサンプリング手段102は、1つ以上の新しい候補アーキテクチャ121をサンプリングする。アーキテクチャ性能予測手段104は、学習済み性能予測器で、候補アーキテクチャ121の性能を推論する。その結果、性能が高いクラスに分類されたアーキテクチャをリスト形式でアーキテクチャ保存装置105に格納することが可能になるとともに、アーキテクチャ評価手段103が再び評価関数を用いて性能を計算することが可能になる。アーキテクチャ性能予測手段104は、性能とアーキテクチャとの組を用いて、性能予測器の再学習を行う。再学習は、指定の条件が達成されるまで繰り返される。条件として、例えば、予め設定された回数や性能が高いアーキテクチャの保存数がある。
【0087】
アーキテクチャの選択段階では、アーキテクチャ保存装置105は、格納されているアーキテクチャの中からから最もよいアーキテクチャを出力する。以上のようにして、使用者は、対象データセットに対する最適なアーキテクチャを入手できる。
【0088】
次に、第2の実施形態に対応する第2の実施例を説明する。第2の実施形態では、第1の実施形態の構成要素に加えて、パラメータ探索手段201が存在する。アーキテクチャサンプリング手段202およびアーキテクチャ性能予測手段204の動作は、第1の実施形態におけるアーキテクチャサンプリング手段102およびアーキテクチャ性能予測手段104の動作とは異なる。アーキテクチャサンプリング手段202は、パラメータリストに記載されている演算のパラメータを決定しない。アーキテクチャサンプリング手段202は、圧縮演算リスト213(
図10参照)のみによって構成されるアーキテクチャの中からサンプリングを行う。
【0089】
したがって、出力される候補アーキテクチャ221は、圧縮演算リスト213にのみ依存し、本実施例では、圧縮演算リスト213の要素数が5×6=30になる。パラメータ探索手段201は、候補アーキテクチャ221に圧縮演算が含まれる場合に動作し、圧縮演算のパラメータを探索する。
図10に示すように、パラメータは、計算セルハイパパラメータ611によって重みづけされた候補演算の線形結合の和として表現される。
【0090】
本実施例では、パラメータ探索手段201は、畳み込み演算が選択されているノード間の演算を、カーネルサイズ1×1と、3×3と、5×5の3つの演算の重みづけ線形結合の演算に置き換える。また、パラメータ探索手段201は、グループ畳み込み演算が選択されているノード間の演算を、グループ数1と、2と、4と、8との4つの演算の重みづけ線形結合の演算に置き換える。パラメータ探索手段201は、アーキテクチャの計算セルハイパパラメータ611を損失関数により最適化することによって、パラメータを決定する。また、アーキテクチャ性能予測手段204の性能予測器は、パラメータが未定の候補アーキテクチャの性能に関して、学習と推論を行う。したがって、推論時に高性能と判断されたアーキテクチャは、パラメータが未定である。そのため、パラメータ探索手段201が、パラメータが未定の候補アーキテクチャのパラメータを決定し、アーキテクチャ保存装置105が、性能が高いと予測されたアーキテクチャを保存した後、第1の実施形態と同様の処理が行われる。
【0091】
上記の実施形態における各機能(各処理)を、CPU(Central Processing Unit )等のプロセッサやメモリ等を有するコンピュータで実現可能である。例えば、記憶装置(記憶媒体)に上記の実施形態における方法(処理)を実施するためのプログラムを格納し、各機能を、記憶装置に格納されたプログラムをCPUで実行することによって実現してもよい。
【0092】
図13は、CPUを有するコンピュータの一例を示すブロック図である。コンピュータは、ニューラルネットワーク構造探索装置100、200に実装される。CPU1000は、記憶装置1001に格納されたプログラム(ソフトウェア要素:コード)に従って処理を実行することによって、上記の実施形態における各機能を実現する。すなわち、
図3に示されたニューラルネットワーク構造探索装置100における、探索空間次元圧縮手段101、アーキテクチャサンプリング手段102、アーキテクチャ評価手段103、およびアーキテクチャ性能予測手段104の機能を実現する。また、
図9に示されたニューラルネットワーク構造探索装置200における、探索空間次元圧縮手段101、アーキテクチャサンプリング手段202、パラメータ探索手段201、アーキテクチャ評価手段103、アーキテクチャ性能予測手段204の機能を実現する。
【0093】
記憶装置1001は、例えば、非一時的なコンピュータ可読媒体(non-transitory computer readable medium )である。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の具体例として、磁気記録媒体(例えば、ハードディスク)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory )、CD-R(Compact Disc-Recordable )、CD-R/W(Compact Disc-ReWritable )、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM)がある。
【0094】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
【0095】
メモリ1002は、例えばRAM(Random Access Memory)で実現され、CPU1000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ1002に、記憶装置1001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU1000がメモリ1002内のプログラムに基づいて処理を実行するような形態も想定しうる。アーキテクチャ保存装置105は、メモリ1002、または、データ書き込み可能な記憶装置1001で実現可能である。
【0096】
図14は、ニューラルネットワーク構造探索装置の主要部を示すブロック図である。
図14に示すニューラルネットワーク構造探索装置10は、探索の候補となる演算空間内に含まれる複数の演算を1つの演算に集約する演算圧縮部(演算圧縮手段)11(実施形態では、探索空間次元圧縮手段101で実現される。)と、集約された演算を含む候補アーキテクチャから、性能が高いアーキテクチャを決定するアーキテクチャ決定部(アーキテクチャ決定手段)12(第1の実施形態では、アーキテクチャサンプリング手段102、アーキテクチャ評価手段103、およびアーキテクチャ性能予測手段104で実現され、第2の実施形態では、アーキテクチャサンプリング手段202、アーキテクチャ評価手段103、アーキテクチャ性能予測手段204、およびパラメータ探索手段201で実現される。)とを備えている。
【0097】
ニューラルネットワーク構造探索装置10において、アーキテクチャ決定部12は、候補アーキテクチャに基づいてアーキテクチャの性能を予測する予測部(予測手段:第1の実施形態において、アーキテクチャ性能予測手段104で実現される。)を含んでいてもよい。
【0098】
ニューラルネットワーク構造探索装置10において、アーキテクチャ決定部12は、パラメータが未知の候補アーキテクチャのパラメータを探索するパラメータ探索部(パラメータ探索手段:第2の実施形態において、パラメータ探索手段201で実現される。)を含んでいてもよい。