JPWO2019216404A1 - ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム - Google Patents

ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム Download PDF

Info

Publication number
JPWO2019216404A1
JPWO2019216404A1 JP2020518350A JP2020518350A JPWO2019216404A1 JP WO2019216404 A1 JPWO2019216404 A1 JP WO2019216404A1 JP 2020518350 A JP2020518350 A JP 2020518350A JP 2020518350 A JP2020518350 A JP 2020518350A JP WO2019216404 A1 JPWO2019216404 A1 JP WO2019216404A1
Authority
JP
Japan
Prior art keywords
neural network
model
unit
condition
hyperparameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020518350A
Other languages
English (en)
Other versions
JP6799197B2 (ja
Inventor
勇佑 小西
勇佑 小西
良一 松本
良一 松本
有紀 南
有紀 南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuvoton Technology Corp Japan
Original Assignee
Panasonic Semiconductor Solutions Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Semiconductor Solutions Co Ltd filed Critical Panasonic Semiconductor Solutions Co Ltd
Publication of JPWO2019216404A1 publication Critical patent/JPWO2019216404A1/ja
Application granted granted Critical
Publication of JP6799197B2 publication Critical patent/JP6799197B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ニューラルネットワーク構築装置(10)は、組込み機器が有する計算資源に関する資源情報及び組込み機器が有する処理性能に関する性能制約を取得する取得部(11)と、ニューラルネットワークの規模制約を資源情報に基づいて設定する設定部(12)と、規模制約に基づいてニューラルネットワークのモデルを生成する生成部(13)と、生成されたモデルについて、性能制約を満たすか否かを判断し、判断の結果に基づくデータを出力する判断部(14)とを備える。

Description

本発明は、ニューラルネットワークを構築するための情報処理技術に関する。
複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能な技術として、複数のハードウェア機器に係る制約を取得する取得部と、ニューラルネットワークが、この制約を満たすか否か判定を行う判定部とを備える情報処理装置及び情報処理方法が開示されている(特許文献1参照)。
国際公開第2017/187798号
特許文献1に記載の技術では、最適なニューラルネットワークの候補となるニューラルネットワークの各々が上記の制約を満たすか否かの判定対象である。つまり、最適なニューラルネットワークが得られるまでに設計と判定による試行錯誤が繰り返される回数が膨大になり、時間を要する。
そこで本開示では、ニューラルネットワークの候補を絞り込んで、最適なニューラルネットワークの取得の効率化に貢献するニューラルネットワーク構築装置を提供する。また本開示では、このニューラルネットワーク構築装置で用いられるニューラルネットワーク構築方法及びプログラムを提供する。
上記課題を解決する本発明の一態様に係るニューラルネットワーク構築装置は、構築するニューラルネットワークのハイパーパラメータの候補である候補ハイパーパラメータの決定のために用いられる条件である第一条件、及び前記ニューラルネットワークのモデルが備えるべき性能に関する条件である第二条件を取得する取得部と、前記第一条件を用いて前記候補ハイパーパラメータを決定する設定部と、前記候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する生成部と、生成された前記モデルについて、前記第二条件を満たすか否かの判断を実行し、前記判断の結果に基づくデータを出力する判断部とを備える。
また、本発明の一態様に係るニューラルネットワーク構築方法は、演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるニューラルネットワーク構築方法であって、組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得し、ニューラルネットワークの規模制約を前記資源情報に基づいて設定し、前記規模制約に基づいてニューラルネットワークのモデルを生成し、生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力する。
また、本発明の一態様に係るプログラムは、演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるプログラムであって、前記演算処理装置によって実行されることで前記ニューラルネットワーク構築装置に、組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得させ、ニューラルネットワークの規模制約を前記資源情報に基づいて設定させ、前記規模制約に基づいてニューラルネットワークのモデルを生成させ、生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力させる。
なお、本開示の理解を促す目的で下記のとおり用語を説明する。
Python:汎用プログラミング言語。機械学習の分野で広く利用されている。
モデル:与えられたデータに対して所望の予測・判断をする数式、関数。
ニューラルネットワーク(Neural Network):人間の脳内の神経細胞及び神経回路の構造を模した、人工的なニューロン(ノードとも呼ばれる)のネットワークによるモデル。
重み:モデルのパラメータのひとつであり、ニューロン同士の結合の強さを示す。結合荷重とも呼ばれる。
バイアス:モデルのパラメータのひとつであり、ニューロンへの入力値と重みに応じて得られる出力を調整する。
ここで、ニューラルネットワークの概念を、ニューロン、重み及びバイアスの関係を含めて図を用いて示す。図1は、ニューラルネットワークの概念を説明するための図である。図1に例示されるニューラルネットワークは、それぞれが白丸で示される複数のニューロンを含む複数の層で構成される。
最も左の層がこのニューラルネットワークの入力層であり、この層の各ニューロンには入力値がセットされる。層間のニューロンを結ぶ線は重みを示す。各ニューロンの入力値は、重みが掛けられてからひとつ右の層のニューロンに入力される。最も右の層はこのニューラルネットワークの出力層であり、この層の各ニューロンの値が、このニューラルネットワークによる予測又は判断の結果である。なお、バイアスは図1にハッチングの掛けられた丸で示され、上述のとおり、左の層にあるニューロンからの入力値とは別に入力される。
全結合型ニューラルネットワーク:階層型のニューラルネットワークであって、各層のニューロンが次層のすべてのニューロンと結合される構造を持つ。図1のニューラルネットワークは全結合型ニューラルネットワークである。
学習:入力データに応じて出力される予測・判断の結果が正解に近づくように、重み及びバイアスを繰り返し調整すること。
学習データ:生成したニューラルネットワークのモデルの学習に使用するデータ。画像データ又は数値データ等、対象とする問題に応じて用意される。
推論モデル:学習が完了したモデルのことを推論モデルと呼ぶ。予測・判断の精度はこの推論モデルを用いて評価される。
推論:学習で使用していない未知のデータを推論モデルに与え、予測・判断の結果を得ること。
ハイパーパラメータ:モデルのパラメータのうち、重みのように学習により決定されるパラメータではなく、ニューロンの個数やネットワークの深さ(層数)等の、学習前に決定しておく必要のあるパラメータ。ハイパーパラメータの設定により、モデルの構成が決まる。
評価済みモデル:学習で使用していない未知のデータを推論モデルに与えて、精度を評価したモデル。
本開示で提供されるニューラルネットワーク構築装置は、種々の条件を満たすニューラルネットワークの候補を絞り込んで、最適なニューラルネットワークの取得の効率化に貢献する。
図1は、ニューラルネットワークの概念を説明するための図である。 図2は、実施の形態に係るニューラルネットワーク構築装置の機能構成の一例を示すブロック図である。 図3は、実施の形態に係るニューラルネットワーク構築装置の実現に用いられるハードウェア構成の例を示すブロック図である。 図4は、ニューラルネットワークの構築において用いられるハイパーパラメータの分布の概念を説明するための図である。 図5は、実施の形態に係るニューラルネットワーク構築装置で実行される、ニューラルネットワーク構築方法の処理手順の一例を示すフローチャートである。 図6Aは、ベイズ最適化を用いたハイパーパラメータの探索手法の概要を説明するための図である。 図6Bは、ベイズ最適化を用いたハイパーパラメータの探索手法の概要を説明するための図である。 図6Cは、ベイズ最適化を用いたハイパーパラメータの探索手法の概要を説明するための図である。 図7は、全結合ニューラルネットワークの構成例を示す図である。 図8は、畳み込みニューラルネットワークの構成例を示す図である。 図9は、ローパスフィルタの周波数特性の例を示すグラフである。 図10は、実施の形態に係るニューラルネットワーク構築装置で実行される、ニューラルネットワーク構築方法の処理手順の一例を示すフローチャートである。 図11は、実施の形態に係るニューラルネットワーク構築装置で実行される、ニューラルネットワーク構築方法の処理手順の他の例のうち、前段の一例を示すフローチャートである。 図12は、実施の形態に係るニューラルネットワーク構築装置で実行される、ニューラルネットワーク構築方法の処理手順の他の例のうち、後段の一例を示すフローチャートである。
(本発明の基礎となった知見等)
上述のとおり、従来技術では、ハードウェア上の制約を満たし、かつ、より高い精度のニューラルネットワークを得るまでに、長い時間をかけての試行錯誤を経る必要がある。
一方で、電化製品又は自動車に搭載される、いわゆる組込み機器(組込みデバイス又は組込みシステムと呼ばれる場合もあり、以下ではこれらを特に区別せず組込み機器と表記する)にも、高機能化の追求を背景にニューラルネットワークの導入が進みつつある。さらには、IoT(Internet of Things)が進む今日の状況下では、電化製品等に留まらない多様なモノ(物)にも、通信を含む付加的な機能を与えるために組込み機器が搭載されつつある。
このような組込み機器には、搭載先であるモノの大きさ、用途、使用状況、価格等を理由としてハードウェア上の制約が課せられる。しかしながら、多様なモノに使われる多様な組込み製品で動作させるための種々のニューラルネットワークは、上記の従来技術では、スピーディかつ低コストには開発できない。
上記のようなハードウェア上の制約は一例であり、他にも種々の要因で決まる制約が存在し得る。上記の従来技術では、このような制約を満たすニューラルネットワークを得るまでにも多くの試行錯誤が必要である。
本発明者らはこのような課題に鑑みて、組込み機器等の設計開発のプロセスで課されるハードウェア的な制約を満たした上でより高い精度を示すニューラルネットワークの候補をより速やかに取得するために技術に想到した。
この技術に係るニューラルネットワーク構築装置は、構築するニューラルネットワークのハイパーパラメータの候補である候補ハイパーパラメータの決定のために用いられる条件である第一条件、及び前記ニューラルネットワークのモデルが備えるべき性能に関する条件である第二条件を取得する取得部と、前記第一条件を用いて前記候補ハイパーパラメータを決定する設定部と、前記候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する生成部と、生成された前記モデルについて、前記第二条件を満たすか否かの判断を実行し、前記判断の結果に基づくデータを出力する判断部とを備える。
これにより、条件を満たし得ない構成のものを除外して絞り込んだ候補から選択する形で最適なニューラルネットワークの効率的な取得が可能になる。
例えば、前記設定部は、前記第一条件を用いて前記候補ハイパーパラメータの上限及び下限の少なくとも一方を算出し、算出した前記上限及び下限の少なくとも一方に基づいて1個以上の前記候補ハイパーパラメータを決定してもよい。
これにより、所望の規模又は性能を有し得ない構成のものを除外して絞り込んだ候補から選択する形で最適なニューラルネットワークの効率的な取得が可能になる。
また例えば、前記第一条件は、組込み機器が有する計算資源に関する資源条件を含み、前記設定部は、前記資源条件に基づいて前記候補ハイパーパラメータの上限を算出し、前記上限以下のハイパーパラメータの少なくとも一部を前記候補ハイパーパラメータと決定してもよい。
このニューラルネットワーク構築装置では、生成されたニューラルネットワークのモデルの規模が、所定のハードウェア仕様による組込み機器に実装可能な範囲に収まっている。したがって、従来の手法のように設計と判定による試行錯誤を繰り返す必要がなく、いったん生成されたいずれのモデルも第二条件を満たすか否かの判断の対象として無駄が小さい。そして、第二条件を満たすモデルは、さらに学習をさせてからの精度の評価対象である。つまり上記の所定の組込み機器に実装可能であって精度の評価対象であるモデルの候補を、従来のように設計からの試行錯誤を繰り返す過程を経ることなく効率よく得ることができる。別の表現をすると、使用が予定されている組込み機器に最適なニューラルネットワークのモデルを得るまでのオーバーヘッドを抑えることができる。
また例えば、前記資源条件は前記組込み機器のメモリサイズの情報を含み、前記設定部は、前記メモリサイズに収まるニューラルネットワークのハイパーパラメータの上限を前記候補ハイパーパラメータの上限として算出し、前記上限以下のハイパーパラメータの少なくとも一部を前記候補ハイパーパラメータと決定してもよい。
これにより、使用される組込み装置と、ニューラルネットワークのその組込み装置への実装可否に影響の大きい要素とが予め考慮される。したがって、生成されるモデルは組込み装置に実装可能なものであるため、その後の第二条件に関する判断及び予測精度評価の処理の無駄な実行が抑えられる。
また例えば、前記第一条件は、前記ニューラルネットワークへの入力データのサイズ及び前記ニューラルネットワークからの出力データのサイズの少なくとも一方の情報を含み、前記設定部は、前記第一条件に含まれる前記入力データのサイズ及び前記出力データのサイズの少なくとも一方に基づいて前記候補ハイパーパラメータの上限を算出し、算出した前記上限以下のハイパーパラメータの少なくとも一部を前記1個以上の候補ハイパーパラメータであると決定してもよい。より具体的には、前記入力データのサイズは前記入力データの次元数であり、前記出力データのサイズは前記出力データの次元数であり、前記1個以上の候補ハイパーパラメータは、前記ニューラルネットワークの層数及びノード数をそれぞれ1個以上含んでもよい。また、前記第一条件は、さらに前記ニューラルネットワークは畳み込みニューラルネットワークであることを示す情報を含んでもよい。また、この場合、前記入力データは画像データであり、前記入力データのサイズは前記画像データの画素数であり、前記出力データのサイズは前記画像データが分類されるクラスの数であり、前記1個以上の候補ハイパーパラメータは、前記畳み込みニューラルネットワークの層数、カーネルのサイズ、前記カーネルの深度、特徴マップのサイズ、プーリング層のウインドウサイズ、パディング量、及びストライド量のうち少なくともひとつを含んでもよい。また、前記第一条件は、前記ニューラルネットワークのモデルによる推論の精度目標を含み、前記設定部は、前記精度目標を用いて前記候補ハイパーパラメータの下限を算出し、算出した前記下限以上のハイパーパラメータの少なくとも一部を前記1個以上の候補ハイパーパラメータであると決定してもよい。
これにより、最適なニューラルネットワークの候補として、解決を図る問題に応じて決まる条件を満たす構成のニューラルネットワークに効率よく絞り込むことができる。
また例えば、前記第二条件は、ニューラルネットワークのモデルを用いた推論処理の基準所要時間に関する時間条件を含み、前記生成部は、生成した前記モデルを用いた推論処理の所要時間を前記資源条件に基づいて算出し、前記判断部は、算出された前記所要時間と前記基準所要時間との比較によって、生成された前記モデルが前記第二条件を満たすか否かを判断してもよい。
これにより、規模的な制約は満たすモデルであっても、用途に応じて要求される性能を有さないモデルをあらかじめふるい落として、さらに学習をさせてから精度の評価をするモデルを絞り込むことができる。例えば、前記資源条件は前記組込み機器の演算処理装置の動作周波数の情報をさらに含み、前記生成部は、生成した前記モデルの推論処理に対応する部分の実行サイクル数を取得し、前記実行サイクル数及び前記動作周波数を用いて前記所要時間を算出してもよい。これにより、要求される処理時間で所定の処理ができないモデルが精度の評価対象から除外される。したがって、その後の予測精度評価の処理の無駄な実行が抑えられる。なお、より具体的には、前記生成部は、前記モデルの推論処理に対応する部分の前記演算処理装置に依存の言語による第一ソースコードを生成し、前記第一ソースコードをコンパイルして取得する中間コードを用いて前記実行サイクル数を取得してもよい。また例えば、前記ニューラルネットワーク構築装置は、さらに学習部及び出力部を備え、前記取得部は、さらに前記ニューラルネットワークの学習データを取得し、前記判断部は、前記生成部により生成されたモデルのうち、前記第二条件を満たすと判断したモデルを示すデータを出力し、前記学習部は、前記判断部が出力したデータが示すモデルの学習を、前記学習データを用いて実行し、前記出力部は、学習済みの前記モデルの少なくとも一部を出力してもよい。
このような学習によって重み等のパラメータが決定されることで、規模及び性能の制約を満たすニューラルネットワークのモデルの、所定の組込み機器に実装する候補が得られる。
また例えば、前記学習部はさらに、学習済みの前記モデルの予測精度評価を実行し、実行した前記予測精度評価に関するデータを生成してもよい。
これにより、実装されるモデルの候補のうち、精度の点で最適なものを示す情報が利用可能になる。なお、より具体的には、前記学習部はさらに、学習済みの前記モデルの推論処理に対応する部分の演算処理装置依存の言語による第二ソースコードを生成し、前記第二ソースコードを用いて前記予測精度評価を実行してもよい。
また例えば、前記予測精度評価に関するデータは、前記予測精度評価が実行済みのモデルを示す評価済みモデルリストのデータであり、前記生成部、前記判断部又は前記学習部は、前記評価済みモデルリストが示すモデルのいずれかと同一の組み合わせの複数のハイパーパラメータを用いて生成されたモデルを処理対象から除外してもよい。
これにより、同一の組み合わせのハイパーパラメータを用いたモデルの生成などの処理を避けて、ニューラルネットワークのモデルの候補をより効率的に取得することができる。
また例えば、前記出力部は、出力される前記モデルを、演算処理装置依存の言語によるソースコードの形式で出力してもよい。また例えば、前記出力部は、出力される前記モデルを、ハードウェア記述言語の形式で出力してもよい。
また例えば、前記判断部は、実行された前記予測精度評価の成績が所定の条件を満たす場合に、前記生成部によるニューラルネットワークのモデルの生成を停止させてもよい。より具体的には、前記取得部は、前記ニューラルネットワークのモデルの所定レベルの精度を示す精度目標を取得し、前記所定の条件は、生成順の連続する所定個数以上のモデルで前記予測精度評価の成績が前記精度目標を達成しない状況が発生したことであってもよい。
この技術に係るニューラルネットワーク構築装置では、規模制約を満たすハイパーパラメータのすべての組み合わせを用いて候補となるモデルが生成されてもよいが、ある程度の探索をした時点で、さらなる探索をしてもより適したモデルが得られる可能性が低いことが予想可能な場合がある。このような場合には、モデルのさらなる生成を止めることでより適したモデルを得るための費用対効果の低下を抑えることができる。
また本発明の一態様に係る情報処理装置は、演算処理部及び記憶部を備え、前記記憶部は上述のいずれかのニューラルネットワーク構築装置で生成されたモデルを記憶し、前記演算処理部は、前記記憶部から前記モデルを読み出して実行する。
このように得られた情報処理装置は、設計開発のコストが抑えられつつ、追及された精度を有する。
また例えば、本発明の一態様に係るニューラルネットワーク構築方法は、演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるニューラルネットワーク構築方法であって、組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得し、ニューラルネットワークの規模制約を前記資源情報に基づいて設定し、前記規模制約に基づいてニューラルネットワークのモデルを生成し、生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力する。
これにより、条件を満たし得ない構成のものを除外して絞り込んだ候補から選択する形で最適なニューラルネットワークの効率的な取得が可能になる。
また例えば、本発明の一態様に係るプログラムは、演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるプログラムであって、前記演算処理装置によって実行されることで前記ニューラルネットワーク構築装置に、組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得させ、ニューラルネットワークの規模制約を前記資源情報に基づいて設定させ、前記規模制約に基づいてニューラルネットワークのモデルを生成させ、生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力させる。
これにより、条件を満たし得ない構成のものを除外して絞り込んだ候補から選択する形で最適なニューラルネットワークの効率的な取得が可能になる。
なお、これらの全般的又は具体的な態様は、システム、集積回路、又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、装置、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態に係るニューラルネットワーク構築装置について、図面を参照しながら説明する。本開示における実施の形態は本発明の一具体例を示すものであり、示される数値、構成要素、構成要素の配置及び接続形態、並びにステップ(工程)及びステップの順序等は一例であって本発明を限定するものではない。また、実施の形態における構成要素のうち、独立請求項に構成要素として含まれていないものについては、任意に付加可能な構成要素である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態)
[構成]
以下では複数の実施の形態を説明するが、まず、これらの実施の形態に共通するニューラルネットワーク構築装置の構成について説明する。
図2は、ニューラルネットワーク構築装置10の機能構成の一例を示すブロック図である。
ニューラルネットワーク構築装置10は、取得部11と、設定部12と、生成部13と、判断部14と、学習部19と、出力部15とを備える。
取得部11は、ニューラルネットワーク構築装置10に与えられる、条件情報及び生成されるニューラルネットワークのモデルの学習に用いられる学習データを取得する。
条件情報が示す条件とは、ひとつは構築するニューラルネットワークのハイパーパラメータの候補を決定するために用いられる条件(以下、第一条件ともいう)である。条件情報はまた、構築するニューラルネットワークのモデルが備えるべき性能に関する条件(以下、第二条件ともいう)も示す。第一条件及び第二条件については、各実施の形態の詳細な説明の中であわせて述べる。
学習データは、ニューラルネットワークのモデルの学習に用いられるデータである。
取得部11は、条件情報及び学習データを、例えばユーザの入力として受け取るか、又はユーザの操作若しくは所定のプログラムの指示に従ってアクセスする場所から読み出して取得するか、又はこのように取得した情報から算出する等の処理によって取得する。
設定部12は、第一条件に基づいて、構築するニューラルネットワークのハイパーパラメータの候補である候補ハイパーパラメータを決定する。この条件については例を用いて後述する。
生成部13は、設定部12が決定した候補ハイパーパラメータを用いて、ニューラルネットワークのモデルを生成する。
判断部14は、生成部13が生成したニューラルネットワークのモデルについて、第二条件を満たすか否か判断し、この判断の結果に基づくデータを出力する。例えば判断部14は、第二条件を満たすと判断したモデルを示すリストデータを出力する。
学習部19は、生成部13によって生成されたモデルの学習を、学習データを用いて実行する。学習の対象であるモデルは、例えば判断部14が出力したリストデータに示されるものから選択される。また、学習部19は、学習済みのモデル、つまり推論モデルの予測精度評価をし、その予測精度評価に関するデータを出力する。例えば学習部19は、各推論モデルの予測精度評価の成績を示すデータを出力する。
出力部15は、推論モデルの少なくとも一部を出力する。例えば学習部19が出力したデータが示す上記の予測精度評価の成績を参照し、そのうち所定の条件を満たすもの、例えば成績が最もよい推論モデルのデータを出力する。ユーザは、このように出力部15から出力される推論モデルを、ニューラルネットワーク構築装置10に与えられた条件情報が示す各条件を満たす推論モデルとして得ることができる。
これらの機能的な構成要素を含むニューラルネットワーク構築装置10は、例えばパーソナルコンピュータ、サーバコンピュータ又はクラウドコンピューティング(以下、これらを区別せずにコンピュータ1ともいう)で実現される。図3は、ニューラルネットワーク構築装置10を実現するコンピュータ1のハードウェア構成の例を説明するためのブロック図である。
コンピュータ1は、入力装置2、演算処理装置3、出力装置4、記憶装置5及び通信装置6を備え、これらはバス7で相互に通信可能に接続されている。
入力装置2は、例えばキーボード、マウス等のポインティングデバイス、タッチスクリーンであり、ユーザによる指示又はデータの入力を受け付ける。
演算処理装置3は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又はDSP(Digital Signal Processor)等の各種のプロセッサであり、記憶装置5に記憶された所定のプログラムを読み出して実行して、情報を処理し、また、ハードウェア構成要素である各装置を制御して上述の各機能構成要素を実現する。
出力装置4は、例えばディスプレイ等の表示器であり、画面上に表示する文字及び図形でユーザにデータの入力を促したり、演算処理装置3による処理の進行状況又は処理の結果を提示したりする。
記憶装置5は、RAM及びROM等の記憶媒体であり、上記のプログラム、このプログラムの実行過程で参照されるデータ、並びに生成される中間データ及び最終データを一時的又は非一時的に記憶する。
通信装置6は、例えばコンピュータ1がクラウドコンピューティングによって実現されている場合に、複数のコンピュータ間のデータのやり取りのための入出力ポートを含む装置で、例えばネットワークインタフェースカードが含まれる。
このようなハードウェア構成を有するニューラルネットワーク構築装置10では、所定のソフトウェアを実行する演算処理装置3によって情報が処理されたり、各装置が制御されたりすることで上述の個々の機能的な構成要素が実現される。取得部11が取得した情報(データ)を用いて、設定部12、生成部13及び判断部14及び学習部19による一連の処理が行われて、出力部15から、所望の用途に適したニューラルネットワークの学習済みモデル等が出力される。このニューラルネットワークの学習済みモデルの出力まで(以下ではニューラルネットワークの構築ともいう)のための一連の処理の手順については、各実施の形態の詳細な説明の中で述べる。
次に、上記の構成の説明でも触れた条件情報(第一条件及び第二条件)をニューラルネットワーク構築装置10において用いることで、いかにして最適なニューラルネットワークのモデルが取得されるかについて説明をする。
[ニューラルネットワークの構築における条件]
従来、ある用途のために最適なニューラルネットワークを得るには、その候補となるニューラルネットワークの各々に対して要求される条件を満たすか否かの判定が行われる。したがって、最適なニューラルネットワークが得られるまでの試行錯誤の繰り返し回数は膨大であり、長い時間を要する。
本発明でニューラルネットワークの構築に用いられる条件は、構築されるニューラルネットワークに課される制約とも言い得る。
第一条件は、ニューラルネットワークの構成(規模)に関する制約である。例えば組込みデバイスに搭載するニューラルネットワークは、限られたリソース及びハードウェアで実行されるものであり、その実行環境はニューラルネットワークを構築する環境に比べてはるかに厳しい。ところが従来のニューラルネットワーク構築方法では、そのような組込みデバイスでの実行には適さない規模のニューラルネットワークも生成され、上記のような判定の対象に含まれている。
そこで本発明では、ニューラルネットワークの実行環境におけるCPUの周波数、メモリ(ROM/RAM)のサイズといったハードウェアに関する情報からニューラルネットワークの規模に関する制約としての上限を予め算出して設定してからニューラルネットワークを生成する。これにより、この上限を超えるニューラルネットワークの生成及び判定に要する時間を省くことができる。また、ニューラルネットワークの規模に関する別の制約として、構築するニューラルネットワークを用いて解決しようとする問題に最低限必要な計算量、つまり下限を算出することができる。この下限を設定してからニューラルネットワークを生成することで、この下限に満たないニューラルネットワークの生成及び判定に要する時間を省くことができる。
なお、上記に挙げた組込みデバイスのハードウェアに係る情報及び問題に応じた必要計算量は、ニューラルネットワークの規模に関する制約の算出に用いることができる物の例であり、ニューラルネットワークの規模に関する制約は、その他の指標から算出されてもよい。
また、本発明においてニューラルネットワークの構築に用いられる第二条件は、ニューラルネットワークの性能に関する制約である。この制約は、要求される精度又は処理時間等について設定される。この制約に基づく情報としては、例えばニューラルネットワークの実行環境(CPU周波数、メモリサイズ等のハードウェア情報)についての情報が用いられる。例えば、この情報を用いることで、生成したニューラルネットワークが問題の処理に要する処理時間を算出し、その処理時間が制約を満たすニューラルネットワークのみを学習データを用いて学習させる。つまり、処理時間の長いニューラルネットワークの学習に要する時間を省くことができる。
このように、生成するニューラルネットワークの規模に関する制約である第一条件を満たすニューラルネットワークを生成し、生成したニューラルネットワークの性能に関する制約である第二条件を満たすニューラルネットワークのみを学習処理の対象とすることで最適なニューラルネットワークを得るまでに要する時間の削減という効果が得られる。
従来の手法と、上述した制約を用いる本発明の手法との、最適なニューラルネットワークを得るまでの違いについて、図を用いて説明する。図4は、ニューラルネットワークの構築において用いられるハイパーパラメータの分布の概念を説明するための図である。
ニューラルネットワークのモデルを生成するには、ニューロンの個数、層数等のハイパーパラメータを設定する必要がある。生成されるニューラルネットワークの構成は、これらのハイパーパラメータの値で決まり、実行に必要なリソース又は問題の処理に要する時間は、この構成に大きく影響される。制約を考慮しない従来の手法では、図4中に十字で示すハイパーパラメータの値は無数にある。なお、図示の便宜上、図4ではこの場合のハイパーパラメータの存在し得る範囲を矩形で示しているが、実際の範囲は無限大である。つまり、無数にあるハイパーパラメータを対象に総当たりで最適な構成のニューラルネットワークを探索するため、必然的により多くの時間を要する。
本発明では、例えば規模に関する制約を上限とし、問題に応じて決まる制約を下限として、生成するハイパーパラメータの範囲を限定する。つまり図4では、網掛けの範囲にある限られたハイパーパラメータ(後述の候補ハイパーパラメータ)でニューラルネットワークを生成する。また、性能に関する制約を満たさないニューラルネットワークは学習の対象から除外する。これにより、最適な構成のニューラルネットワークを得るまでに要する時間を削減することができる。
なお、説明の便宜上、上記ではハイパーパラメータは1種類であるように説明しているが、実際にはニューラルネットワークに含まれるニューロンの数と層の数それぞれに関する2種類のように複数であってもよく、上記及び以下の実施の形態の説明での候補ハイパーパラメータ及びハイパーパラメータについては、複数種類のハイパーパラメータの組み合わせと適宜読み替えても理解されたい。
ここで、上記の構成を有するニューラルネットワーク構築装置10で実行されるニューラルネットワーク構築の処理手順の例を図5に示すフローチャートを用いて説明する。
まず、取得部11が、ニューラルネットワーク構築に用いる条件情報(第一条件、第二条件)及び学習データを取得する(S501)。この条件情報を取得部11は、例えば構築したいニューラルネットワークの用途等に基づいてユーザが用意し、ニューラルネットワーク構築装置10に入力した情報を用いて条件情報を算出することで取得する。または、この算出までをユーザが行ってからニューラルネットワーク構築装置10に入力された情報を、取得部11が条件情報として取得してもよい。学習データも、構築したいニューラルネットワークの用途等に基づいてユーザによって用意され、ニューラルネットワーク構築装置10に入力されるか、又はニューラルネットワーク構築装置10がアクセス可能なサーバ等に置かれる。
次に、設定部12が、条件情報を用いて候補ハイパーパラメータを決定する(S502)。この候補ハイパーパラメータの決定は、例えばその値が取り得る範囲を設定することで行われてもよい。
次に、生成部13が、ステップS502で決定された候補ハイパーパラメータのリスト(以下、略して候補リストともいう)を生成する(S503)。
次に生成部13は、上記の候補リストから最適な候補ハイパーパラメータを探索し、探索した候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する(S504)。この探索には、例えばベイズ最適化を利用する手法が用いられる。この手法では、ニューラルネットワークのモデルの予測精度の分布が正規分布に従っていると仮定され、この予測精度の分布を基に計算する事後分布を用いてハイパーパラメータを候補リストから探索される。
図6A、図6B及び図6Cは、ベイズ最適化を用いたハイパーパラメータのこの探索手法の概要を説明するための図である。各図に示すグラフは、ハイパーパラメータの値と、このハイパーパラメータを用いて生成されるモデルの仮定に基づく予測精度との対応を表す。候補リストに含まれる各ハイパーパラメータは、このグラフエリアの横軸上のどこかに位置する。グラフ上の太い実線の曲線は、各ハイパーパラメータに対してベイズ最適化で得られる予測精度の期待値を示す。また、破線の曲線は、各ハイパーパラメータに対して評価点として得られるべき理想値を示す。そして各黒丸及び白丸は、1個のハイパーパラメータに対して、後述する学習部19が実行した予測精度の評価の評価点を示す。網掛けの領域については後述する。図6A、図6B及び図6Cは、この手法における時系列順の3段階をそれぞれ示す。
この探索における初期の段階では評価点がないか又はわずかであるため、未評価のニューラルネットワークのモデル、つまり未評価のハイパーパラメータが多い。したがって、予測精度の期待値の不確かさは大きい。各図の網掛けの領域は、事後分布として得られる、各ハイパーパラメータに対して一定以上の可能性のある予測精度の範囲を示す。図6Aでは、まだ初期の段階であるため、この網掛けの領域は比較的大きい。
次の段階では、この不確かさが大きいハイパーパラメータを選択してモデルが生成され、その予測精度が評価される。新たに予測精度の得られた評価点(白丸)から予測精度の分布を正規分布に基づいて更新する。そしてさらに不確かさを更新して、更新後に不確かさが大きいハイパーパラメータでモデルを生成して評価する。この処理が繰り返されることで、ハイパーパラメータ全体に対する不確かさが小さくなる。このことは、図6A、図6B及び図6Cの網掛けの領域の大きさを比較することからもわかる。このように、不確かさを小さくしながら、より予測精度の高いハイパーパラメータを探索する。なお、探索が進んで不確かさがある程度小さくなると、評価済みの予測精度の高いハイパーパラメータ近辺で集中的に探索される。
なお、このような手法において、条件情報が示す制約に応じた適正度を加味した探索手法が用いられてもよい。
次は判断部14が、候補リストにあるすべての候補ハイパーパラメータでひととおりニューラルネットワークの探索を完了しているか確認する(S505)。完了していない場合はステップS506に進み、完了している場合は後述するステップS510に移る。
ステップS505でNoの場合、判断部14は、ステップS504で生成されたモデルが予測精度を評価済みのモデルであったか否か確認する(S506)。この確認は、後述する学習部19が生成する評価済みモデルリストに基づいて行われる。評価済みでない場合はステップS507に進み、完了している場合は後述するステップS510に移る。
次は学習部19が、ステップS501で取得された学習データを用いて、未評価のモデルの学習を実行する(S507)。
次に学習部19は、学習済みのモデル(推論モデル)の予測精度を評価し(S508)、評価済みの推論モデルを評価済みモデルリストに追加する(S509)。ステップS506において判断部14が用いたのは、このように学習部19による学習が実行されて予測精度の評価まで実行されたモデルを示す評価済みモデルリストである。また、評価済みの推論モデルは、ニューラルネットワーク構築装置10から出力される推論モデルとして記憶装置5に保存される。
最後に出力部15が、ステップS509で記憶装置5に保存された評価済みの推論モデルを出力する(S510)。ただし、出力の対象はこれに限定されず、最も予測精度が高い推論モデル及び第二条件を満たす全ての推論モデルであってもよい。また例えば、第二条件を満たす推論モデルがなかった場合に、出力部15は警告を出力してもよい。なお、ここでの出力とは、例えば表示器などの出力装置4での表示、記憶装置5又はニューラルネットワーク構築装置10の外部の所定の保存場所への書き込みを指す。
ここまでで、ニューラルネットワーク構築装置10で実行されるニューラルネットワーク構築方法の処理は終了する。なお、上述の処理手順は一例であり、種々の変形が可能である。
例えば、ステップS505でYESの場合又はステップS506でYESの場合にステップS510の出力を経て処理が終了しているが、終了に至る手順はこれに限定されない。
例えば、ステップS506で、精度の評価の成績が所定の条件を満たすか否かを判断し、この判断の結果に応じてステップS510の出力がなされてもよい。所定の条件の例としては、生成順の連続する所定の個数以上のモデルの予測精度評価の成績が、精度目標に達しない状況が発生したこと、又は生成順の連続する所定の個数以上のモデルの予測精度評価の成績の変化に、所定の大きさ以上の上昇が見られない状況が発生したことなどであってもよい。これは、ある程度の探索をした時点で、さらなる探索をしてもより適したモデルが得られる可能性が低いことが予想可能な場合に対応するものである。このような場合には、モデルのさらなる生成、探索を止めることで、所望の用途に適したモデルを得るための時間の短縮、ひいては費用対効果の低下を抑えることができる。さらに別の例としては、ある精度目標を満たすモデルの個数が所定の値に達することであってもよい。
また、ステップS505の判断においても、全てのハイパーパラメータでの探索が完了しているか否かではなく、所定の個数又は割合以上での探索が完了しているかに応じて判断がなされてもよい。または、ベイズ最適化を用いた探索がある程度進んで不確かさがある程度小さくなっている場合に、評価済みの予測精度の低いハイパーパラメータの近辺は、探索の対象から除外した上でステップS505の判断がなされてもよい。
また、ステップS509又はS510では、予測精度評価の成績も保存又は出力の対象であってもよい。この成績は、例えば評価済みモデルリストの一部、又は他のリストにおいて保存されてもよい。または、評価済みモデルリスト又は当該他のリストに、各推論モデルの精度が目標に達しているか否か、又は各推論モデルの達成率に相当する情報がさらに含まれてもよい。
また、ステップS506での評価済みモデルを用いた確認に代えて、候補リスト又は個別のリストによる、抽出済みのハイパーパラメータ(の組み合わせ)であるか否かに基づいて確認されてもよい。
また、制約等のより詳細な例も以下の各実施の形態の説明の中で挙げる。
[実施の形態1]
ここまでに、ニューラルネットワークの構築における条件(制約)について幾つかの種類の例を挙げた。以下に説明する各実施の形態では、これらの種類の制約について具体例を用いて説明する。実施の形態1としては、ニューラルネットワークを用いて解決しようとする問題に応じて決定される制約について説明する。
<問題に応じて決定される上限の例>
図7に構成例を示すような全結合ニューラルネットワークを用いて分類又は回帰等の推論を行う場合、モデルは入力データを縮約するように設計される。したがって、入力次元数と出力次元数とに基づいて中間層の層数及びノード数といったハイパーパラメータの上限を決定することができる。すなわち、各中間層のノード数の上限は、前層のノード数から1引いた数である。また、中間層数の上限は、入力層より1少ないノードを含む中間層からノード数を1つずつ減らした中間層を並べ、出力層より1多いノードを含む中間層まで配置可能な数である。
また、畳み込みニューラルネットワークを用いて分類又は回帰などの推論を行う場合、図8の構成例に示すように、モデルは、畳み込み後又はプーリング後の特徴画像(特徴マップとも呼ばれる)が、各畳み込み層に入力されるサイズ(図中「30×30」等の数字)よりも小さくなるよう設計される。したがって、中間層の数の上限は、畳み込み可能な特徴画像のサイズを維持できる範囲で決まる。
<問題に応じて決定される下限の例>
畳み込みニューラルネットワークを用いて画像の復元(ノイズ除去など)を行う場合に、ニューラルネットワークによって遮断したい成分(又は通過させたい成分)の周波数特性が与えられることで、生成するニューラルネットワークの中間層数又は各層のカーネルサイズといったハイパーパラメータの下限を決定することができる。この下限の設定について具体的な例を用いて説明する。
「遮断周波数f以上のノイズをg%以上遮断する(以降、条件X)」ノイズ除去フィルタをニューラルネットワークとして生成する場合、下記の手順でハイパーパラメータの下限を決定する。
(手順1)条件Xを満足する単一のローパスフィルタを求める。
ここで、ローパスフィルタとは、ある信号に対して遮断周波数より低い周波数の成分はほとんど減衰させず通過させ、遮断周波数より高い周波数の成分を遮断するフィルタを意図している。純粋なローパスフィルタはノイズだけを選別して遮断することはできないが、所望のノイズの遮断性能の上限を見積もる基準として用いるためにこの手順を実行する。
ローパスフィルタの周波数特性|O/I|は、下記の式1に示すように、フィルタのカーネルサイズn、周波数ω、及びカーネル係数k(0≦i≦n−1)により求められる。
Figure 2019216404
ここで、カーネル係数kiをガウシアン分布(いわゆるガウシアンフィルタ)と仮定すると、カーネルサイズn=3の場合、周波数特性|O/I|は、ローパスフィルタの周波数特性を示す図9のグラフにおいて実線の曲線で示すように、ナイキスト周波数fNで振幅が0となるcosカーブになる(つまり、ナイキスト周波数の成分は100%遮断される)。0.5fNにおいて50%遮断する周波数特性を持つこのローパスフィルタは、f=0.5fN、g=40%である場合の条件Xは満たすが、f=0.5fN、g=60%である場合の条件Xを満足しない。また、カーネルサイズn=5の場合のローパスフィルタの周波数特性|O/I|は、図9のグラフにおいて破線の曲線で示されるとおりである。0.5fNにおいて75%遮断するこのローパスフィルタは、f=0.5fN、g=60%であっても条件Xを満足する。
このように、カーネル係数の分布を仮定することで、条件Xを満たす単一のローパスフィルタのカーネルサイズnの下限を決定することができる。
(手順2)単一のローパスフィルタを畳み込みニューラルネットワークに分解する。
手順1で求めた単一のローパスフィルタを、複数フィルタの直列接続で構成することを考える。例えば、式2に示すように、カーネルサイズn=5のガウシアンフィルタは、カーネルサイズn=3のガウシアンフィルタを2段接続することで構成可能である。
Figure 2019216404
同様に、以下の式3に示すように、カーネルサイズnのフィルタは、カーネルサイズn′のフィルタをm段接続することで構成可能である。
Figure 2019216404
ここで、mは畳み込みニューラルネットワークの中間層(畳み込み層)の層数に相当し、カーネルサイズn′の増減に追従して変化させることで、カーネルサイズnのフィルタ相当の周波数特性を実現する。
このように、手順1で条件Xから単一ローパスフィルタのカーネルサイズnの下限を決定し、手順2でさらにこのフィルタカーネルサイズn′と中間層数mとの組合せを決定することで、構築する畳み込みニューラルネットワークのハイパーパラメータの下限を決定することができる。
なお、純粋なローパスフィルタとして用いられる畳み込みニューラルネットワークであれば、n=5のカーネルが一段のものよりも、n=3のカーネルを2段接続したものの方が、性能を維持しつつ計算量を抑えることができる。ただし、最終的に構築するのはノイズ除去フィルタとして用いられる畳み込みニューラルネットワークであり、ノイズ除去性能の点では必ずしも後者が優れるとは言えない。このように決定されたハイパーパラメータは、最終的に構築する畳み込みニューラルネットワークのハイパーパラメータの候補である候補ハイパーパラメータであり、候補ハイパーパラメータを用いて生成した各モデルを評価して畳み込みニューラルネットワークの最適なモデルが取得される。
以上、ニューラルネットワークを用いて解決しようとする問題に応じて、ハイパーパラメータの上限又は下限を決定する手法について、具体例を用いて説明した。次に、ニューラルネットワーク構築装置10によるこの手法を実現するための処理手順について説明する。この処理手順は、上述の図5のフローチャートを再び参照しながら、本実施の形態に即してより具体的に説明する。なお、上述の図5の説明と共通の部分については、簡単に説明することがある。
まず、取得部11が、ニューラルネットワーク構築に用いる条件情報及び学習データを取得する(S501)。条件情報は、例えば畳み込みニューラルネットワークを用いて解決する問題に関する情報であり、上記の手法の例であれば、ハイパーパラメータの上限の設定に用いられた入力データの次元数及び出力データの次元数、又は入力画像のサイズ、ハイパーパラメータの下限の設定に用いられた、遮断周波数f及び最低遮断率gを第一条件として用い得る。取得部11は、このような情報から、構築するニューラルネットワークの候補ハイパーパラメータの上限若しくは下限又は両方を算出して第一条件を取得する。
次に、設定部12が、候補ハイパーパラメータを決定する(S502)。ここで決定される候補ハイパーパラメータは、例えば取得部11が取得した上記の下限以上の値を取るハイパーパラメータ、上限以下の値を取るハイパーパラメータ、又は下限以上であって上限以下の値を取るハイパーパラメータである。
次は、生成部13が候補リストを生成する(S503)。
次に生成部13は、上記の候補リストから最適な候補ハイパーパラメータを探索し、探索した候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する(S504)。候補リストに含まれる候補ハイパーパラメータが上限以下の値を取るハイパーパラメータである場合、例えば上述のベイズ最適化を用いた探索手法が利用されてもよい。候補リストに含まれる候補ハイパーパラメータが下限以上の値を取るハイパーパラメータである場合、例えば下限のハイパーパラメータで決まる構成を有するニューラルネットワークをベースとして、より高い性能を確保するためにノード数又は層数等を増やした構成のニューラルネットワークを生成して最適点を探索する。例えば、遺伝的アルゴリズムを用いてニューラルネットワークの構成を更新することで最適点が探索されてもよい。
ステップS505以降は、上記の説明と同じように処理が進む。
[実施の形態2]
実施の形態2として、ニューラルネットワークを主に組込みデバイスへの実装することを考慮してCPUやメモリ(ROM/RAM)の情報が条件情報として入力される場合について説明する。
図10は、ニューラルネットワーク構築装置10による本実施の形態における処理手順のフローチャートである。以下、上述の図5のフローチャートに示す処理手順のステップに相当するものについては、共通の参照符号を用いて示し、簡単に説明することがある。
まず、取得部11が、ニューラルネットワーク構築に用いる条件情報及び学習データを取得する(S501)。
条件情報は、組込み機器のCPU周波数やメモリ(ROM、RAM)サイズ、メモリ転送速度等の資源情報を含む。資源情報に含まれる情報はこれらに限定されず、組込み機器に係る他の情報が含まれてもよい。この資源情報は、本実施の形態における第一条件の例である。また、条件情報には、組込み機器でニューラルネットワークを実行する際の性能に関する条件(本実施の形態では、性能制約ともいう)を含む。性能制約の例としては目標とする処理時間が挙げられ、組込み機器で実行される処理に要求される各種の性能に係る情報であってよい。この性能制約は、本実施の形態における第二条件の例である。このような性能制約は、例えばユーザが、組込み機器又は当該組込み機器が組み込まれる製品の仕様等に基づいて用意してニューラルネットワーク構築装置10に入力したものが用いられる。
次に、設定部12が、資源情報に基づいて候補ハイパーパラメータを決定する。(S502)。例えば、設定部12は、全結合型ニューラルネットワークの候補ハイパーパラメータの値が取り得る範囲を、既知のROMサイズから下記の式4を用いて算出することができる。
Figure 2019216404
式4中、SROMはROMサイズ、NLiは各層のニューロン数、SDATAは処理対象のデータ型のサイズを示す。また、ROMサイズはSDATAによって変動するため、SDATAで除することで、各データ型に対する組込み可能なニューラルネットワークの結合荷重の最大個数を算出することができる。
次に、生成部13が、ステップS502で決定された候補ハイパーパラメータを含む候補リストを生成する(S503)。
次に生成部13は、上記の組込み機器に適したニューラルネットワークの構成を決めるハイパーパラメータを候補リストから探索し、探索した候補ハイパーパラメータに基づくニューラルネットワークのモデルを生成する(S504)。この探索には、例えば上述のベイズ最適化を利用する手法が用いられる。
次に生成部13は、ニューラルネットワークの推論処理にあたる部分を変換して、一時的に利用するソースコードを生成する(S515)。ニューラルネットワークのモデルは、この手前の段階までは例えば高水準言語であるPythonで構築されているが、このステップで演算処理装置への依存性の高い言語、例えばC言語のソースコードに変換される。このような変換を行う目的は、次のステップで処理時間の算出をする準備として、組込み機器のプログラムとして広く用いられている言語、ここではC言語にすることで実際の実行環境に近づけて、より正確な所要時間を得るためである。
次に生成部13は、ステップS515での変換によって得たソースコードを用いて推論処理の所要時間を算出する(S516)。より具体的には、生成部13は、このソースコードをコンパイルして生成される中間コードを用いて推論処理に必要な実行サイクル数を取得する。そして、生成部13は、ステップS501で取得された資源情報に含まれる演算処理装置の動作周波数等の処理時間に影響する情報をさらに用いて、当該実行サイクル数の処理の所要時間を算出する。
次は、判断部14が、ステップS516で算出された所要時間が、ステップS501で取得された条件情報が含む第二条件、つまり性能制約である、目標とする処理時間を満たすか否か判断する(S517)。性能制約が満たされない場合(S517でNO)、当該モデルは破棄される(S518)。モデルの破棄後は、候補リストにある全ての候補ハイパーパラメータでひととおりニューラルネットワークの探索を完了しているか確認する(S505)。完了していない場合、処理手順はステップS504に戻り、完了している場合は後述するステップS510に移る。
また、性能制約が満たされる場合(S517でYES)、当該モデルが予測精度を評価済みのモデルであったか否か確認する(S506)。この確認は、後述する学習部19が生成する評価済みモデルリストに基づいて行われる。評価済みでない場合は、次のステップS507に移り、評価済みの場合は後述するステップS510に移る。
次は、学習部19によって、ステップS501で取得された学習データを用いてモデルの学習が実行される(S507)。
次に学習部19は、学習済みのモデル(推論モデル)を変換してソースコードを生成する(S525)。ここでソースコードに変換する目的は、基本的にはステップS515と同じく実際の実行環境に近づけることである。したがって、例えばPythonで構築されているモデルがC言語のソースコードに変換される。ただし、ここでは処理時間の評価のためではなく、推論モデルの予測精度を実際の組込み機器に近い環境で確認するためである。また、ここで変換して生成されたC言語等の、演算処理装置への依存性の高い言語によるソースコードは、ニューラルネットワーク構築装置10から出力される推論モデルとして記憶装置5に保存される。
次に学習部19は、ステップS525での変換によって得たソースコードを用いて推論モデルの予測精度を評価する(S508)。評価を終えると、学習部19は、この推論モデルを評価済みモデルとして評価済みモデルリストに追加する(S509)。ステップS506において判断部14が用いたのは、このように学習部19による学習が実行されて予測精度の評価まで実行されたモデルを示す評価済みモデルリストである。
ひととおりのモデルの評価までが終わると、記憶装置5に保存されている推論モデルのソースコードを出力部15が出力する。ただし、出力の対象はこれに限定されず、上述のように、保存されている複数のモデルのうち、所定の条件を満たすものであってもよいし、各推論モデルの予測精度の成績が出力されてもよい。また、第二条件である性能制約を満たす推論モデルがなかった場合に、出力部15は警告を出力してもよい。
ここまでで、ニューラルネットワーク構築装置10で実行される、本実施の形態におけるニューラルネットワーク構築方法の処理は終了する。
なお、上述の処理手順は一例であり、種々の変形が可能である。例えば図5の処理手順についての各変形例は、本実施の形態の処理手順にも適用可能である。
[実施の形態3]
実施の形態3も、実施の形態2と同様にニューラルネットワークを主に組込みデバイスへの実装する場合であり、実施の形態2との差異点を中心に説明する。
本実施の形態では、ニューラルネットワークの探索におけるハイパーパラメータの抽出において、当初からのベイズ最適化の利用に代えて、いったんベイズ最適化を利用しない手法で複数のハイパーパラメータに対する予測精度を取得し、この予測精度を事前分布として用いるベイズ最適化を実行する。
図11及び図12は、ニューラルネットワーク構築装置10による本実施の形態における処理手順のフローチャートである。以下、上述の図5又は図10のフローチャートに示す処理手順のステップに相当するものについては、共通の参照符号を用いて示し、簡単に説明することがある。
取得部11による条件情報及び学習データの取得(S501)、設定部12による候補ハイパーパラメータの決定(S502)及び生成部13による候補リストの生成(S503)は、実施の形態2と共通である。
その次に生成部13は、候補リストの候補ハイパーパラメータから、例えばランダムに抽出し、抽出した候補ハイパーパラメータに基づくニューラルネットワークのモデルを生成する(S604)。このように、抽出した候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する理由は、実施の形態2のように探索した候補ハイパーパラメータを用いて生成された複数のモデルの予測精度は、ほぼ同じであってしかも必ずしも高いとは言えない結果になる可能性があるためである。そこで、実施の形態2で用いられる手法と、本実施の形態で用いられる手法とを適宜使い分けて選択した候補ハイパーパラメータに基づいてニューラルネットワークのモデルを生成することで、精度の異なるモデルをより効率よく生成することを目指している。
生成部13による、続くソースコードの生成(S515)、推論処理の所要時間の算出(S516)は、実施の形態2と共通である。
続く判断部14による性能制約に関する判断(S517)は実施の形態2と共通であるが、その結果に応じて進む次の手順が一部異なる。性能制約が満たされない場合の当該モデルの破棄(S517でNO、S518)は、実施の形態2と共通である。しかし、性能制約が満たされる場合(S517でYES)、評価済みモデルであるか否かの確認(実施の形態2のステップS506)は実行されず、学習部19による処理に移る。
続く学習部19によるモデルの学習(S507)、ソースコードの生成(S525)、の予測精度の評価(S508)及び評価済みモデルリストへの追加(S509)は、実施の形態2と共通である。
その次に、実施の形態2では、次の候補ハイパーパラメータの探索及びモデルの生成(S504)に移るが、本実施の形態では、判断部14によって、予測精度を評価済みの推論モデルの個数が所定個数に達したか否か判断される(S606)。
この所定個数は、後述のベイズ最適化によるハイパーパラメータ探索の手順で用いられる事前分布の要素の個数でもあり、種々の決定方法が用いられ得る。例えば判断部14が、候補ハイパーパラメータの個数に応じて算出することで決定されてもよい。より具体的には、候補ハイパーパラメータの個数が多いほど大きな個数となるよう、動的に決定されてもよい。または、所定個数はユーザによって決定され、ユーザが所定個数としてニューラルネットワーク構築装置10に入力した値が、取得部11によって取得されて、判断部14によって用いられてもよい。
評価済みの推論モデルの個数が達していない場合(S606でNO)、処理手順はステップS604に戻り、生成部13が、次の候補ハイパーパラメータを抽出してニューラルネットワークのモデルを生成する。達している場合(S606でYES)、生成部13による次の処理(S1504)に移る。
一方で、モデルの破棄(S518)に続いて、判断部14は、候補リストにある全ての候補ハイパーパラメータでひととおりニューラルネットワークの抽出を完了しているか確認する(S605)。完了していない場合(S605でNO)、処理手順はステップS604に戻り、生成部13が、次の候補ハイパーパラメータを抽出してニューラルネットワークのモデルを生成する。完了している場合(S605でYES)、出力部15による出力に移る(図12のS510、実施の形態2と共通)。
ステップS606でYESの場合、性能制約を満たす所定個数の推論モデルについて予測精度を評価済みであり、次いで、これらの推論モデルの予測精度を事前分布とするベイズ最適化による探索(S1504)が実行される。図12のフローチャートは、この探索を含む、以降の処理手順の一例を示す。なお、図12におけるステップS1504は、実施の形態2のステップS504に相当し、ステップS1515は、実施の形態2のステップS515に相当する。以下、同様に実施の形態2のステップS516〜S518、S505〜S507、S525、S508、S509が本実施の形態におけるステップS1516〜S1518、S1505〜S1507、S1525、S1508、S1509として実行される。
一方、ステップS606でNOの場合には、候補リストから抽出した候補ハイパーパラメータを用いて生成したモデルで性能制約を満たすものが所定個数に達していない。この場合においては、ステップS510で、例えばその旨の通知、又は情報評価済みモデルリストに含まれるモデルの予測精度に関する情報(成績)がユーザに提示又はログに記録されることで出力が実行されてもよい。また、情報評価済みモデルリストにモデルがひとつも存在しないときには、その旨の警告等がユーザに対して提示されることでステップS510の出力が実行されてもよい。
ここまでで、ニューラルネットワーク構築装置10で実行される、本実施の形態におけるニューラルネットワーク構築方法の処理は終了する。
なお、上述の処理手順は一例であり、種々の変形が可能である。例えば図5の処理手順についての各変形例は、本実施の形態の処理手順にも適用可能である。
また、ステップS604の説明では、候補リストから候補ハイパーパラメータの抽出方法はランダムとしているが、これに限定されない。例えば値の昇順又は降順に並べた候補ハイパーパラメータから最初の1個は任意に選択し、その後は所定の間をあけた順位の候補ハイパーパラメータが抽出されてもよい。または、抽出する候補ハイパーパラメータはユーザによって人為的に選択されてもよい。このような手法も事後分布に依存しないため、ランダムな抽出と同様の効果が得られる。
(他の実施の形態等)
以上のように、本発明に係る技術の例示として各実施の形態を説明した。しかしながら、本発明に係る技術はこの説明の内容に限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
(1)上記実施の形態では、ニューラルネットワークのモデルの構築に用いる言語としてPython、組込み機器で動作するモデルの言語としてC言語を挙げたが、いずれも一般的に見られる設計開発環境で用いられているものを例としたもので、それぞれこれらに限定されない。例えば処理時間の算出には、言語も含めて、実際に用いられる組込み機器での実行環境にできるだけ近似できるようシミュレートされてもよい。
(2)モデルの規模の上限を決める第一条件のひとつであるメモリサイズは、幅のない1つの値に限定されない。例えば採用される組込み機器の候補が、メモリサイズ違いで複数ある場合、これらの組込み機器のメモリサイズを包含する範囲として与えられてもよい。この場合、予測精度評価の結果として、例えばメモリサイズと達成可能な予測精度との対応が示されてもよい。メモリサイズ以外の第一条件についても同様であり、例えば演算処理装置の動作速度の範囲が与えられた場合、この動作速度と処理時間との対応が示されてもよい。
(3)上記実施の形態で示したニューラルネットワーク構築装置の機能的な構成要素間の機能分担は一例に過ぎず、任意に分担を変更してもよい。
(4)上記実施の形態で示した各種処理の手順(例えば図5、図10から図12に示した手順等)の実行順序は、必ずしも、上述したとおりの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。例えば、実施の形態1においてステップS506として実行される評価済みのモデルか否かの確認は、ステップS504とS505との間に実施されてもよい。また、実施の形態2においてステップS506として実行される評価済みのモデルか否かの確認は、ステップS504とS515との間、ステップS515とS516との間、又はステップS516とS517との間に実施されてもよい。この場合において、評価済みのモデルであるときは、ソースコードの生成(S515)、推論処理の所要時間の算出(S516)又は性能制約に関する判断(S517)がスキップされてもよい。また、実施の形態2におけるステップS510で実行される判断の他の例として挙げた、精度の評価の成績を所定の条件に照らして行う判断はステップS508又はステップS509の直後に実行されてもよい。そして所定の条件が満たされる場合には、ステップS510の出力が行われてもよい。このような変形に係る処理手順の場合には、ステップS506は省略されてもよい。これらの変形は、図12で示した実施の形態3の処理手順についても適用可能である。
(5)上記実施の形態の説明では、出力部15が推論モデルを演算処理装置依存の言語によるソースコードの形式で出力する例を挙げたが、他の形式の例として、さらにハードウェア記述言語に変換したものを出力してもよい。これにより、構築された推論モデルの、専用の論理回路によるハードウェアでの実現が可能になる。
(6)上記実施の形態の説明では、設定部12が決定するものとして、候補ハイパーパラメータであるニューラルネットワークの深さ及びノード数を挙げたが、これに限定されない。設定部12は、例えば、畳み込みニューラルネットワークにおけるニューラルネットワークの深さに関わる他のパラメータも本発明においてはハイパーパラメータとして扱い、これらに関する決定も行ってよい。このようなパラメータのより具体的な例としては、カーネルのサイズ、カーネルの深度、特徴マップのサイズ、プーリング層のウインドウサイズ、パディング量、及びストライド量が挙げられる。
(7)上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全部を含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(8)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしても良い。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしても良い。
(9)本発明の一態様としては、例えば図5、図10から図12に示す処理手順の全部又は一部を含むニューラルネットワーク構築方法であってもよい。例えばこのニューラルネットワーク構築方法は、演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置において、この演算処理装置によって実行されるニューラルネットワーク構築方法であって、組込み機器が有する計算資源に関する資源情報及びこの組込み機器が有する処理性能に関する性能制約を取得するステップと、ニューラルネットワークの規模制約を上記の資源情報に基づいて設定するステップと、規模制約に基づいてニューラルネットワークのモデルを生成するステップと、生成された当該モデルについて、上記の性能制約を満たすか否かを判断し、この判断の結果に基づくデータを出力するステップとを含む。
また、本発明の一態様としては、このニューラルネットワーク構築方法に係る所定情報処理をコンピュータにより実現するためのプログラム(コンピュータプログラム)であるとしてもよいし、プログラムからなるデジタル信号であるとしてもよい。
また、本発明の一態様としては、上記のコンピュータプログラム又はデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものであってもよい。
また、これらの記録媒体に記録されている上記のデジタル信号であってもよい。また、本発明の一態様としては、上記のプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットに代表される通信ネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、このメモリは、上記のプログラムを記録しており、このマイクロプロセッサは、上記のプログラムに従って動作するとしてもよい。また、上記のプログラム若しくは上記のデジタル信号を上記の記録媒体に記録して移送することにより、又は、上記のプログラム若しくは上記のデジタル信号を、上記の通信ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
また、本発明の一態様としては、上記実施の形態又はその変形例に係る装置、方法又はプログラムを用いて生成されたニューラルネットワークのモデルを実行する情報処理装置としてもよい。情報処理装置は演算処理部及び記憶部を備え、この記憶部には、当該モデルが書き込まれ、演算処理部がこのモデルを読み出して実行する。例えば画像センサで取得された画像を入力として認識した物体を示す情報を出力するモデルを含むECU(Electronic Control Unit)が想定される。
(10)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
本発明は、ニューラルネットワークのモデルの構築において、より適切なモデルの候補を短時間に得る技術として利用可能である。
1 コンピュータ
2 入力装置
3 演算処理装置
4 出力装置
5 記憶装置
6 通信装置
7 バス
10 ニューラルネットワーク構築装置
11 取得部
12 設定部
13 生成部
14 判断部
15 出力部
19 学習部

Claims (23)

  1. 構築するニューラルネットワークのハイパーパラメータの候補である候補ハイパーパラメータの決定のために用いられる条件である第一条件、及び前記ニューラルネットワークのモデルが備えるべき性能に関する条件である第二条件を取得する取得部と、
    前記第一条件を用いて前記候補ハイパーパラメータを決定する設定部と、
    前記候補ハイパーパラメータを用いてニューラルネットワークのモデルを生成する生成部と、
    生成された前記モデルについて、前記第二条件を満たすか否かの判断を実行し、前記判断の結果に基づくデータを出力する判断部とを備える
    ニューラルネットワーク構築装置。
  2. 前記設定部は、前記第一条件を用いて前記候補ハイパーパラメータの上限及び下限の少なくとも一方を算出し、算出した前記上限及び下限の少なくとも一方に基づいて1個以上の前記候補ハイパーパラメータを決定する
    請求項1に記載のニューラルネットワーク構築装置。
  3. 前記第一条件は、組込み機器が有する計算資源に関する資源条件を含み、
    前記設定部は、前記資源条件に基づいて前記候補ハイパーパラメータの上限を算出し、前記上限以下のハイパーパラメータの少なくとも一部を前記候補ハイパーパラメータと決定する
    請求項2に記載のニューラルネットワーク構築装置。
  4. 前記資源条件は前記組込み機器のメモリサイズの情報を含み、
    前記設定部は、前記メモリサイズに収まるニューラルネットワークのハイパーパラメータの上限を前記候補ハイパーパラメータの上限として算出し、前記上限以下のハイパーパラメータの少なくとも一部を前記候補ハイパーパラメータと決定する
    請求項3に記載のニューラルネットワーク構築装置。
  5. 前記第一条件は、前記ニューラルネットワークへの入力データのサイズ及び前記ニューラルネットワークからの出力データのサイズの少なくとも一方の情報を含み、
    前記設定部は、前記第一条件に含まれる前記入力データのサイズ及び前記出力データのサイズの少なくとも一方に基づいて前記候補ハイパーパラメータの上限を算出し、算出した前記上限以下のハイパーパラメータの少なくとも一部を前記1個以上の候補ハイパーパラメータであると決定する
    請求項2に記載のニューラルネットワーク構築装置。
  6. 前記入力データのサイズは前記入力データの次元数であり、前記出力データのサイズは前記出力データの次元数であり、
    前記1個以上の候補ハイパーパラメータは、前記ニューラルネットワークの層数及びノード数をそれぞれ1個以上含む
    請求項5に記載のニューラルネットワーク構築装置。
  7. 前記第一条件は、さらに前記ニューラルネットワークは畳み込みニューラルネットワークであることを示す情報を含む
    請求項5に記載のニューラルネットワーク構築装置。
  8. 前記入力データは画像データであり、
    前記入力データのサイズは前記画像データの画素数であり、前記出力データのサイズは前記画像データが分類されるクラスの数であり、
    前記1個以上の候補ハイパーパラメータは、前記畳み込みニューラルネットワークの層数、カーネルのサイズ、前記カーネルの深度、特徴マップのサイズ、プーリング層のウインドウサイズ、パディング量、及びストライド量のうち少なくともひとつを含む
    請求項7に記載のニューラルネットワーク構築装置。
  9. 前記第一条件は、前記ニューラルネットワークのモデルによる推論の精度目標を含み、
    前記設定部は、前記精度目標を用いて前記候補ハイパーパラメータの下限を算出し、算出した前記下限以上のハイパーパラメータの少なくとも一部を前記1個以上の候補ハイパーパラメータであると決定する
    請求項2から8のいずれか一項に記載のニューラルネットワーク構築装置。
  10. 前記第二条件は、ニューラルネットワークのモデルを用いた推論処理の基準所要時間に関する時間条件を含み、
    前記生成部は、生成した前記モデルを用いた推論処理の所要時間を前記資源条件に基づいて算出し、
    前記判断部は、算出された前記所要時間と前記基準所要時間との比較によって、生成された前記モデルが前記第二条件を満たすか否かを判断する
    請求項3、4、及び請求項3又は4を引用する請求項9のいずれか一項に記載のニューラルネットワーク構築装置。
  11. 前記資源条件は前記組込み機器の演算処理装置の動作周波数の情報をさらに含み、
    前記生成部は、生成した前記モデルの推論処理に対応する部分の実行サイクル数を取得し、前記実行サイクル数及び前記動作周波数を用いて前記所要時間を算出する
    請求項10に記載のニューラルネットワーク構築装置。
  12. 前記生成部は、前記モデルの推論処理に対応する部分の前記演算処理装置に依存の言語による第一ソースコードを生成し、前記第一ソースコードをコンパイルして取得する中間コードを用いて前記実行サイクル数を取得する
    請求項11に記載のニューラルネットワーク構築装置。
  13. さらに学習部及び出力部を備え、
    前記取得部は、さらに前記ニューラルネットワークの学習データを取得し、
    前記判断部は、前記生成部により生成されたモデルのうち、前記第二条件を満たすと判断したモデルを示すデータを出力し、
    前記学習部は、前記判断部が出力したデータが示すモデルの学習を、前記学習データを用いて実行し、
    前記出力部は、学習済みの前記モデルの少なくとも一部を出力する
    請求項1から12のいずれか一項に記載のニューラルネットワーク構築装置。
  14. 前記学習部はさらに、学習済みの前記モデルの予測精度評価を実行し、実行した前記予測精度評価に関するデータを生成する
    請求項13に記載のニューラルネットワーク構築装置。
  15. 前記学習部はさらに、学習済みの前記モデルの推論処理に対応する部分の演算処理装置依存の言語による第二ソースコードを生成し、前記第二ソースコードを用いて前記予測精度評価を実行する
    請求項14に記載のニューラルネットワーク構築装置。
  16. 前記予測精度評価に関するデータは、前記予測精度評価が実行済みのモデルを示す評価済みモデルリストのデータであり、
    前記生成部、前記判断部又は前記学習部は、前記評価済みモデルリストが示すモデルのいずれかと同一の組み合わせの複数のハイパーパラメータを用いて生成されたモデルを処理対象から除外する
    請求項14又は15に記載のニューラルネットワーク構築装置。
  17. 前記出力部は、出力される前記モデルを、演算処理装置依存の言語によるソースコードの形式で出力する
    請求項13から16のいずれか一項に記載のニューラルネットワーク構築装置。
  18. 前記出力部は、出力される前記モデルを、ハードウェア記述言語の形式で出力する
    請求項13から16のいずれか一項に記載のニューラルネットワーク構築装置。
  19. 前記判断部は、実行された前記予測精度評価の成績が所定の条件を満たす場合に、前記生成部によるニューラルネットワークのモデルの生成を停止させる
    請求項15又は16に記載のニューラルネットワーク構築装置。
  20. 前記取得部は、前記ニューラルネットワークのモデルの所定レベルの精度を示す精度目標を取得し、
    前記所定の条件は、生成順の連続する所定個数以上のモデルで前記予測精度評価の成績が前記精度目標を達成しない状況が発生したことである
    請求項19に記載のニューラルネットワーク構築装置。
  21. 演算処理部及び記憶部を備え、
    前記記憶部は請求項1から18のいずれか一項に記載のニューラルネットワーク構築装置で生成されたモデルを記憶し、
    前記演算処理部は、前記記憶部から前記モデルを読み出して実行する
    情報処理装置。
  22. 演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるニューラルネットワーク構築方法であって、
    組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得し、
    ニューラルネットワークの規模制約を前記資源情報に基づいて設定し、
    前記規模制約に基づいてニューラルネットワークのモデルを生成し、
    生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力する
    ニューラルネットワーク構築方法。
  23. 演算処理装置及び記憶装置を備えるニューラルネットワーク構築装置における前記演算処理装置によって実行されるプログラムであって、
    前記演算処理装置によって実行されることで前記ニューラルネットワーク構築装置に、
    組込み機器が有する計算資源に関する資源情報及び前記組込み機器が有する処理性能に関する性能制約を取得させ、
    ニューラルネットワークの規模制約を前記資源情報に基づいて設定させ、
    前記規模制約に基づいてニューラルネットワークのモデルを生成させ、
    生成された前記モデルについて、前記性能制約を満たすか否かを判断し、前記判断の結果に基づくデータを出力させる
    プログラム。
JP2020518350A 2018-05-10 2019-05-10 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム Active JP6799197B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018091303 2018-05-10
JP2018091303 2018-05-10
PCT/JP2019/018700 WO2019216404A1 (ja) 2018-05-10 2019-05-10 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019216404A1 true JPWO2019216404A1 (ja) 2020-10-22
JP6799197B2 JP6799197B2 (ja) 2020-12-09

Family

ID=68468145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020518350A Active JP6799197B2 (ja) 2018-05-10 2019-05-10 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム

Country Status (4)

Country Link
US (1) US20210056420A1 (ja)
JP (1) JP6799197B2 (ja)
CN (1) CN112088383A (ja)
WO (1) WO2019216404A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
CN113039556B (zh) 2018-10-11 2022-10-21 特斯拉公司 用于使用增广数据训练机器模型的***和方法
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
CN111179149B (zh) * 2019-12-17 2022-03-08 Tcl华星光电技术有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
US20230316071A1 (en) * 2020-06-30 2023-10-05 Leapmind Inc. Neural network generating device, neural network generating method, and neural network generating program
CN111914488B (zh) * 2020-08-14 2023-09-01 贵州东方世纪科技股份有限公司 一种基于对抗神经网络的有资料地区水文参数率定方法
CN113407806B (zh) * 2020-10-12 2024-04-19 腾讯科技(深圳)有限公司 网络结构搜索方法、装置、设备及计算机可读存储介质
US20230351191A1 (en) * 2020-10-13 2023-11-02 Sony Group Corporation Information processing apparatus, information processing method, computer program, and learning system
US20220147810A1 (en) * 2020-11-06 2022-05-12 Micron Technology, Inc. Discovery of hardware characteristics of deep learning accelerators for optimization via compiler
DE112021007485T5 (de) * 2021-06-14 2024-02-01 Mitsubishi Electric Corporation Neuronales-netz-erstellungseinrichtung, neuronales-netz-erstellungsverfahren, bildverarbeitungseinrichtung und bildverarbeitungsverfahren
CN113780542B (zh) * 2021-09-08 2023-09-12 北京航空航天大学杭州创新研究院 一种面向fpga的多目标网络结构的构建方法
CN115037553B (zh) * 2022-07-07 2023-04-18 湖南工商大学 信息安全监控模型构建及其应用方法、装置和存储介质
CN117688984A (zh) * 2022-08-25 2024-03-12 华为云计算技术有限公司 神经网络结构搜索方法、装置及存储介质
CN115906917B (zh) * 2022-11-09 2024-01-30 武汉大学 一种基于模型算法划分的神经网络模型部署方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160224903A1 (en) * 2015-01-29 2016-08-04 Qualcomm Incorporated Hyper-parameter selection for deep convolutional networks
WO2017187798A1 (ja) * 2016-04-28 2017-11-02 ソニー株式会社 情報処理装置、及び情報処理方法
US20180053091A1 (en) * 2016-08-17 2018-02-22 Hawxeye, Inc. System and method for model compression of neural networks for use in embedded platforms

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007270B2 (en) * 2001-03-05 2006-02-28 Cadence Design Systems, Inc. Statistically based estimate of embedded software execution time
US9026479B1 (en) * 2011-02-02 2015-05-05 Google Inc. Predicting user interests
US10832138B2 (en) * 2014-11-27 2020-11-10 Samsung Electronics Co., Ltd. Method and apparatus for extending neural network
US10373069B2 (en) * 2015-09-26 2019-08-06 Intel Corporation Technologies for platform-targeted machine learning
EP3416105A4 (en) * 2016-02-12 2019-02-20 Sony Corporation INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING DEVICE
CN105844627B (zh) * 2016-03-21 2019-02-05 华中科技大学 一种基于卷积神经网络的海面目标图像背景抑制方法
JP6703264B2 (ja) * 2016-06-22 2020-06-03 富士通株式会社 機械学習管理プログラム、機械学習管理方法および機械学習管理装置
CN106326985A (zh) * 2016-08-18 2017-01-11 北京旷视科技有限公司 神经网络训练方法和装置及数据处理方法和装置
US10656962B2 (en) * 2016-10-21 2020-05-19 International Business Machines Corporation Accelerate deep neural network in an FPGA
US20180121814A1 (en) * 2016-10-31 2018-05-03 Microsoft Technology Licensing, Llc Hyperparameter tuning
US11151471B2 (en) * 2016-11-30 2021-10-19 Here Global B.V. Method and apparatus for predictive classification of actionable network alerts
US10360517B2 (en) * 2017-02-22 2019-07-23 Sas Institute Inc. Distributed hyperparameter tuning system for machine learning
US11734584B2 (en) * 2017-04-19 2023-08-22 International Business Machines Corporation Multi-modal construction of deep learning networks
US11748610B1 (en) * 2017-11-22 2023-09-05 Amazon Technologies, Inc. Building sequence to sequence (S2S) models using previously generated S2S models with similar use cases
US11537439B1 (en) * 2017-11-22 2022-12-27 Amazon Technologies, Inc. Intelligent compute resource selection for machine learning training jobs
US11645520B2 (en) * 2017-12-15 2023-05-09 Nokia Technologies Oy Methods and apparatuses for inferencing using a neural network
US10948966B1 (en) * 2018-03-07 2021-03-16 Facebook, Inc. Systems and methods for optimizing power usage for systems within quality-of-service constraints
US11429862B2 (en) * 2018-03-20 2022-08-30 Sri International Dynamic adaptation of deep neural networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160224903A1 (en) * 2015-01-29 2016-08-04 Qualcomm Incorporated Hyper-parameter selection for deep convolutional networks
WO2017187798A1 (ja) * 2016-04-28 2017-11-02 ソニー株式会社 情報処理装置、及び情報処理方法
US20180053091A1 (en) * 2016-08-17 2018-02-22 Hawxeye, Inc. System and method for model compression of neural networks for use in embedded platforms

Also Published As

Publication number Publication date
WO2019216404A1 (ja) 2019-11-14
CN112088383A (zh) 2020-12-15
US20210056420A1 (en) 2021-02-25
JP6799197B2 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
JP6799197B2 (ja) ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
Mirhoseini et al. Chip placement with deep reinforcement learning
CN100504888C (zh) 使用可达性过度逼近进行验证的方法和***
JP6227195B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Gonzalez et al. Optimizing loss functions through multi-variate taylor polynomial parameterization
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
EP3260940A1 (en) Method and apparatus for automated hazard detection
US8935136B2 (en) Multi-component model engineering
JP7119820B2 (ja) 予測プログラム、予測方法および学習装置
JP6902487B2 (ja) 機械学習システム
WO2007020391A1 (en) Electronic circuit design
US20100017173A1 (en) Method of modelling the switching activity of a digital circuit
CN114492251B (zh) 超算环境的低速流场发散处理方法、装置、设备及介质
JP2021105950A (ja) ニューラルネットワーク最適化方法、ニューラルネットワーク最適化装置およびプログラム
Martens et al. Top-down heterogeneous synthesis of analog and mixed-signal systems
JP6173644B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20210279575A1 (en) Information processing apparatus, information processing method, and storage medium
WO2022113274A1 (ja) 時系列データ分析装置、時系列データ分析方法、及び時系列データ分析プログラム
CN113239655B (zh) 半导体电路的约束确定***和方法
US20110276929A1 (en) Designing apparatus, designing method, and computer readable medium storing designing program
CN115699010A (zh) 学习装置、推理装置以及可编程逻辑器件的开发用工具链
EP3518153A1 (en) Information processing method and information processing system
JP7149894B2 (ja) 機械学習装置、設計支援装置、機械学習方法および設計支援方法
JP7409396B2 (ja) 情報処理装置、情報処理方法、および、プログラム
JPWO2017159523A1 (ja) 推論システム、推論方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200713

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200713

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201119

R150 Certificate of patent or registration of utility model

Ref document number: 6799197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250