(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022170462
(43)【公開日】2022-11-10
(54)【発明の名称】探索装置、探索方法および探索プログラム
(51)【国際特許分類】
G06N 3/08 20060101AFI20221102BHJP
G06N 20/00 20190101ALI20221102BHJP
【FI】
G06N3/08
G06N20/00
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021076602
(22)【出願日】2021-04-28
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 一般社団法人情報処理学会 研究報告サイト ユビキタスコンピューティングシステム(UBI) https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=209629&item_no=1&page_id=13&block_id=8 ウェブサイト掲載日 2021年2月22日 一般社団法人情報処理学会 第98回モバイルコンピューティングとバーベイシブシステム・第69回ユビキタスコンピューティングシステム合同研究発表会(オンライン開催) https://www.ipsj.or.jp/kenkyukai/event/mbl98ubi69.html 開催日 2021年3月1日~2021年3月2日(公知日:2021年3月1日)
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】899000079
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】若月 駿尭
(72)【発明者】
【氏名】岸本 康成
(72)【発明者】
【氏名】豊田 真智子
(72)【発明者】
【氏名】八木 哲志
(72)【発明者】
【氏名】寺本 純司
(72)【発明者】
【氏名】小澤 遼
(72)【発明者】
【氏名】陳 寅
(72)【発明者】
【氏名】中澤 仁
(57)【要約】
【課題】目標とする性能指標の性能値を達成するニューラルネットワークの構築を容易に可能とする。
【解決手段】計測部15bが、ニューラルネットワークを構成するオペレーションの所定の推論デバイス上での処理の速度と消費電力とを計測する。最適化部15cが、所定の性能指標の性能値と、計測されたオペレーションの処理の速度と消費電力とを用いて、ニューラルネットワークの構成を最適化する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ニューラルネットワークを構成するオペレーションの所定のデバイス上での処理の速度と消費電力とを計測する計測部と、
所定の性能指標の性能値と、計測された前記オペレーションの処理の速度と消費電力とを用いて、前記ニューラルネットワークの構成を最適化する最適化部と、
を有することを特徴とする探索装置。
【請求項2】
前記最適化部は、前記所定の性能指標の性能値に関する、前記オペレーションの処理の速度と消費電力とを用いた損失関数を最小化することにより、前記ニューラルネットワークの構成を最適化することを特徴とする請求項1に記載の探索装置。
【請求項3】
前記最適化部は、前記所定の性能指標の性能値と、前記オペレーションの処理の速度と消費電力とを用いて、前記ニューラルネットワークのハイパーパラメータの数を削減することを特徴とする請求項1に記載の探索装置。
【請求項4】
前記最適化部は、前記所定の性能指標として、前記ニューラルネットワークの出力値の精度を用いることを特徴とする請求項1に記載の探索装置。
【請求項5】
学習データを用いて、構成が最適化された前記ニューラルネットワークの学習を行う学習部をさらに有することを特徴とする請求項1に記載の探索装置。
【請求項6】
探索装置が実行する探索方法であって、
ニューラルネットワークを構成するオペレーションの所定のデバイス上での処理の速度と消費電力とを計測する計測工程と、
所定の性能指標の性能値と、計測された前記オペレーションの処理の速度と消費電力とを用いて、前記ニューラルネットワークの構成を最適化する最適化工程と、
を含んだことを特徴とする探索方法。
【請求項7】
コンピュータを請求項1~5のいずれか1項に記載の探索装置として機能させるための探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、探索装置、探索方法および探索プログラムに関する。
【背景技術】
【0002】
近年、専門的な知識を持っていなくても性能のよいNN(Neural Networks)を設計するために、機械的にNNを探索して自動的に構築するNAS(Neural Architecture Search)と呼ばれる技術が期待されている。例えば、精度を性能指標として、微分可能な損失関数により最適なNNを高速に探索する技術が開示されている(非特許文献1参照)。
【0003】
一方、IoT(Internet of Things)デバイスの普及に伴い、IoTデバイスへNNを組み込んで社会課題の解決や業務の効率化を図る技術が期待されている。しかし、非特許文献1のように、精度のみを最適化するNASでは、NNの推論処理の速度や消費電力を考慮することができないため、計算資源や使用できる電力が限られたIoTデバイスに適用することが困難である。
【0004】
そこで、ターゲットとするIoTデバイス等の推論デバイスに対して、精度、推論速度、消費電力を性能指標として、最適なNNを探索するNASが提案されている(非特許文献2参照)。この技術では、候補となるNNの精度、推論速度、消費電力をハイパーパラメータで重み付けした和を、探索の際に用いる損失関数とすることにより、アプリケーションに応じた精度、推論速度、消費電力のバランスを調整することが可能となる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Hanxiao Liu, Karen Simonyan, Yiming Yang, “DARTS: DIFFERENTIABLE ARCHITECTURE SEARCH”, [online], 2018年, [2021年3月17日検索]、インターネット<URL: https://arxiv.org/pdf/1806.09055.pdf>
【非特許文献2】Sai Vineeth Kalluru Srinivas, Harideep Nair, Vinay Vidyasagar, “HARDWARE AWARE NEURAL NETWORK ARCHITECTURES (USING FBNET)”, [online], 2019年, [2021年3月17日検索]、インターネット<URL: https://arxiv.org/pdf/1906.07214.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、目標とする性能指標の性能値を達成するNNの構築が困難である。例えば、非特許文献2の技術では、精度に加え推論速度や消費電力が考慮されるものの、多数のハイパーパラメータを設定する必要があって煩雑である。また。設定するハイパーパラメータによっては、精度を担保できない。また、アプリケーションや、ターゲットである推論デバイス等の様々な要因が影響するため、ハイパーパラメータの変更による影響は予測不可能である。そのため、目標とする性能指標の性能値を達成するNNを得るためには、ユーザが試行錯誤してハイパーパラメータを変更する必要があり、容易とはいえない。
【0007】
本発明は、上記に鑑みてなされたものであって、目標とする性能指標の性能値を達成するニューラルネットワークの構築を容易に可能とすることを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明に係る探索装置は、ニューラルネットワークを構成するオペレーションの所定のデバイス上での処理の速度と消費電力とを計測する計測部と、所定の性能指標の性能値と、計測された前記オペレーションの処理の速度と消費電力とを用いて、前記ニューラルネットワークの構成を最適化する最適化部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、目標とする性能指標の性能値を達成するニューラルネットワークの構築が容易に可能となる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、探索装置の概要を説明するための図である。
【
図2】
図2は、探索装置の概略構成を例示する模式図である。
【
図3】
図3は、計測部の処理を説明するための図である。
【
図4】
図4は、最適化部の処理を説明するための図である。
【
図5】
図5は、探索処理手順を示すフローチャートである。
【
図6】
図6は、探索プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0012】
[探索装置の概要]
図1は、探索装置の概要を説明するための図である。
図1に示すように、本実施形態の探索装置は、処理の対象とするIoT等の推論デバイス上で、推論時間および消費電力の特性を計測するプロファイリングを行う。次に、探索装置は、学習データと目標とする正解率等のハイパーパラメータを設定し、NNの探索を行う。
【0013】
探索装置は、この探索の際に、後述する探索処理により、目標とする精度に達した際に最小値をとる損失関数を更新する処理を繰り返し、NNを最適化する。特に、本実施形態の探索装置は、推論速度と消費電力とを考慮してNNを探索する。
【0014】
そして、学習データを用いて、探索されたNNを学習することにより、推論デバイス上で、推論速度や推論速度を考慮したNNによる推論処理が可能となる。このように、本実施形態の探索装置では、精度等の目標とする性能指標の性能値を明示的に指定して、NNを探索することが可能となるため、ユーザが目標の性能値を達成した上で、他の性能指標を最適化するNNを得ることが容易に可能となる。
【0015】
[探索装置の構成]
図2は、探索装置の概略構成を例示する模式図である。
図2に例示するように、探索装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
【0016】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【0017】
通信制御部13は、NIC(Network Interface Card)等で実現され、ネットワークを介したサーバ等の外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、探索処理の対象の推論デバイスや、推論デバイスに関する情報を管理する管理装置等と制御部15との通信を制御する。
【0018】
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、探索装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。例えば、記憶部14は、後述する探索処理の結果に得られるNNのハイパーパラメータの値等を記憶する。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
【0019】
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、
図1に例示するように、取得部15a、計測部15b、最適化部15cおよび学習部15dとして機能する。
【0020】
なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、計測部15bは、探索処理の対象の推定デバイス上に実装されてもよい。また、学習部15dは、他の機能部とは異なるハードウェアに学習装置として実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
【0021】
取得部15aは、後述する探索処理に用いるデータの入力を受け付ける。例えば、取得部15aは、後述する探索処理に用いる学習データやハイパーパラメータ等を、入力部11あるいは通信制御部13を介して取得する。また、取得部15aは、取得したデータを記憶部14に記憶させてもよい。なお、取得部15aは、これらの情報を記憶部14に記憶させずに、以下に説明する最適化部15cに転送してもよい。
【0022】
計測部15bは、NNを構成するオペレーションの所定の推論デバイス上での処理の速度と消費電力とを計測する。例えば、計測部15bは、通信制御部13を介して、処理対象の推論デバイスにおける推論処理の推論時間と消費電力との計測結果を収集し、記憶部14に格納する。
【0023】
ここで、
図3は、計測部の処理を説明するための図である。
図3に示すように、計測部15bは、ターゲットである推論デバイス上で各オペレーション候補について、推論時間と消費電力を計測する。ここで、オペレーション候補とは、NNの部分構造のうち、例えば様々なカーネルサイズの畳み込み層や恒等写像等のオペレーションの集合のうち、後述する探索処理により変更の対象とする候補となるものである。計測部15bは、計測した推論時間と消費電力とを記憶部14のルックアップテーブル(LUT)に格納する。
【0024】
図2の説明に戻る。最適化部15cは、所定の性能指標の性能値と、計測されたオペレーションの処理の速度と消費電力とを用いて、NNの構成を最適化する。
【0025】
具体的には、最適化部15cは、所定の性能指標の性能値に関する、オペレーションの処理の速度と消費電力とを用いた損失関数を最小化することにより、NNの構成を最適化する。例えば、最適化部15cは、所定の性能指標として、NNの出力値の精度を用いる。
【0026】
ここで、
図4は、最適化部の処理を説明するための図である。従来、例えばFBNetと呼ばれる手法で最適なNNの構成(アーキテクチャ)が探索される。FBNetでは、次式(1)に示すようにNASが定式化されている。
【0027】
【0028】
すなわち、FBNetによるNASは、損失関数を最小化するような探索空間Aに含まれる、あるNNaと重みwaとを学習するという問題である。この最小化問題は、一般的な確率的勾配降下法で解けることが知られている。探索空間の決め方や最小化の手法は特に限定されないが、従来は例えば、次式(2)で表される損失関数が用いられている。
【0029】
【0030】
ここで、CE(a,wa)は、一般にNNの学習に用いられる交差エントロピー誤差であって、NNaに重みwaを用いた際の学習データの予測結果から計算される。
【0031】
また、LAT(a)、ENER(a)は、それぞれNNaの推定される推論速度、推定される消費電力であって、NNaを構成する各オペレーションについて、推論デバイス上で計測された推論時間と消費電力とのそれぞれの和を算出して得られる。
【0032】
また、α、β、γ、δは精度と推論速度と消費電力とのバランスを決定するハイパーパラメータであって、ユーザにより指定される。
【0033】
これに対して、本実施形態の最適化部15cは、次式(3)または次式(4)の損失関数を用いる。ここで、CL(a,wa)は、上記式(2)の交差エントロピー誤差の代替とするCustom Cross Entropy Lossである。
【0034】
【0035】
例えば、目標とする性能指標として、画像分類タスクにおける画像分類の精度を用いて、まず最適化部15cは、現在のNNaと重みwaとを用いて、学習データに対する画像分類精度Nowaccを算出する。次に、最適化部15cは、次式(5)に示すように、ユーザが指定した画像分類精度の目標値Goalaccに対する達成度合いを示す画像分類誤差操作係数rを算出する。
【0036】
【0037】
そして、最適化部15cは、画像分類精度Nowaccが目標値Goalaccを達成していない場合に、次式(6)に示すように、CL(a,wa)を算出する。なお、画像分類精度Nowaccが目標値Goalaccを達成している場合には、CL(a,wa)=0とする。
【0038】
【0039】
また、最適化部15cは、このようにして算出したCL(a,wa)と、上記のように算出したLAT(a)およびENER(a)とを用いて、損失関数を上記式(3)または上記式(4)のように更新する。
【0040】
その後、最適化部15cは、FBNetによるNASと同様に、損失関数の勾配を計算し、NNaとwaとを更新する処理を、aおよびwaが収束するまで、あるいは所定のエポック数だけ繰り返す。ここで収束して得られたNNaを後述する学習部15dに出力する。
【0041】
なお、上記例では、目標とする性能指標として、画像分類タスクにおける画像分類の精度が用いられている。ただし、例えば言語モデルではパプレキシティを用いる等により、他のタスクの精度に対しても適用可能である。
【0042】
ここで、上記式(2)に示した従来の損失関数では、ハイパーパラメータがα、β、γ、δの4つであるのに対し、上記式(3)または上記式(4)に示した損失関数では、ハイパーパラメータは、β、Goalaccの2つに削減されている。
【0043】
このように、最適化部15cは、所定の性能指標の性能値の一例である目標精度と、オペレーションの処理の速度と消費電力とを用いて、NNのハイパーパラメータの数を削減する。
【0044】
また、目標精度Goalaccは、他のハイパーパラメータとは異なり、ユーザが容易に指定可能である。また、推論速度と消費電力とは、ターゲットの推論デバイスごとに最適化することができる。
【0045】
これにより、最適化部15cは、ユーザが入力した目標精度を担保しつつ、ターゲットの推論デバイス上での推論速度と消費電力とを考慮して、用途に応じて最適なNNを容易に自動構築できる。
【0046】
図2の説明に戻る。学習部15dは、学習データを用いて、構成が最適化されたNNの学習を行う。すなわち、学習部15dは、最適化部15cが探索して得た最適なNNを通常どおりに学習する。これにより、学習部15dは、ユーザが指定する目標精度Goal
accに近い性能を発揮するNNを構築することができる。また、学習部15dは、目標精度を下げた場合には、推論速度がより速く、消費電力がより少ないNNを構築することができる。このように、探索装置10によれば、用途に応じて最適な構成のNNを自動構築することが容易に可能となる。
【0047】
そして、推論デバイス上では、推論部が、学習部15dにより学習されたNNを用いて推論処理を実行する。これにより、推論デバイス上で、用途に応じて推論処理の速度と消費電力とが考慮されたNNを用いて、高精度な推論処理が実行される。
【0048】
[探索処理]
次に、
図5を参照して、本実施形態に係る探索装置10による探索処理について説明する。
図5は、探索処理手順を示すフローチャートである。
図5のフローチャートは、例えば、探索処理の開始を指示する操作入力があったタイミングで開始される。
【0049】
まず、計測部15bが、NNを構成するオペレーションの所定の推論デバイス上での処理の速度と消費電力とを計測する(ステップS1)。
【0050】
次に、最適化部15cが、最適化部15cは、所定の性能指標の性能値と、計測されたオペレーションの処理の速度と消費電力とを用いて、NNの構成を最適化する(ステップS2)。具体的には、最適化部15cは、所定の性能指標の性能値に関する、オペレーションの処理の速度と消費電力とを用いた損失関数を最小化することにより、NNの構成を最適化する。例えば、最適化部15cは、所定の性能指標として、NNの出力値の精度を用いる。
【0051】
そして、学習部15dが、学習データを用いて、構成が最適化されたNNの学習を行って、所定の推論デバイスに最適なNNを構築する(ステップS3)。これにより、一連の探索処理が終了する。
【0052】
以上、説明したように、探索装置10において、計測部15bが、NNを構成するオペレーションの所定の推論デバイス上での処理の速度と消費電力とを計測する。最適化部15cが、所定の性能指標の性能値と、計測されたオペレーションの処理の速度と消費電力とを用いて、NNの最適な構成を探索する。
【0053】
具体的には、最適化部15cは、所定の性能指標の性能値に関する、オペレーションの処理の速度と消費電力とを用いた損失関数を最小化することにより、最適なNNの構成を探索する。
【0054】
このように、最適化部15cは、目標とする性能指標の指標値と、推論処理の速度と消費電力とを明示的に用いて、NNのハイパーパラメータの数を削減する。したがって、探索装置10によれば、目標とする性能指標の性能値を達成するNNの構築が容易に可能となる。
【0055】
また、最適化部15cは、所定の性能指標として、NNの出力値の精度を用いる。これにより、ユーザが指定しやすい目標精度を達成するNNの構築が容易に可能となる。
【0056】
また、学習部15dが、学習データを用いて、構成が最適かされたNNの学習を行う。これにより、用途に応じて最適なNNを構築することが容易に可能となる。
【0057】
[プログラム]
上記実施形態に係る探索装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、探索装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の探索処理を実行する探索プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の探索プログラムを情報処理装置に実行させることにより、情報処理装置を探索装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、探索装置10の機能を、クラウドサーバに実装してもよい。
【0058】
図6は、探索プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0059】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0060】
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0061】
また、探索プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した探索装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0062】
また、探索プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0063】
なお、探索プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、探索プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0064】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0065】
10 探索装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
15 制御部
15a 取得部
15b 計測部
15c 最適化部
15d 学習部