JP6574004B2 - 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム - Google Patents

計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム Download PDF

Info

Publication number
JP6574004B2
JP6574004B2 JP2018010681A JP2018010681A JP6574004B2 JP 6574004 B2 JP6574004 B2 JP 6574004B2 JP 2018010681 A JP2018010681 A JP 2018010681A JP 2018010681 A JP2018010681 A JP 2018010681A JP 6574004 B2 JP6574004 B2 JP 6574004B2
Authority
JP
Japan
Prior art keywords
calculation
network structure
layer
calculation method
unit
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.)
Active
Application number
JP2018010681A
Other languages
English (en)
Other versions
JP2019128831A (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.)
Morpho Inc
Original Assignee
Morpho Inc
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 Morpho Inc filed Critical Morpho Inc
Priority to JP2018010681A priority Critical patent/JP6574004B2/ja
Priority to EP19743124.0A priority patent/EP3614312B1/en
Priority to CN201980002589.XA priority patent/CN110709862B/zh
Priority to US16/617,175 priority patent/US11720788B2/en
Priority to PCT/JP2019/002103 priority patent/WO2019146651A1/ja
Publication of JP2019128831A publication Critical patent/JP2019128831A/ja
Application granted granted Critical
Publication of JP6574004B2 publication Critical patent/JP6574004B2/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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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/048Activation functions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Description

本開示は、計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラムに関する。
特許文献1は、入力層、中間層、出力層という複数層で構成される階層型ネットワークを有する認識装置を開示する。認識装置は、学習装置にて学習されたネットワーク構造及び重みデータを用いて認識を行う。
特開2016−157426号公報
一般的に、認識装置は、携帯端末やカメラなど、学習装置に比べて小型ではあるものの処理能力が低い機器となる。画像センサの高性能化や通信データの大容量化に伴い、認識装置において、入力データの処理時間や処理に必要なリソースが増大する傾向にある。
本技術分野では、ネットワーク構造及び重みデータを用いて入力データを処理するための計算を行う装置において、計算コストを考慮して計算手法を決定することができる計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラムが望まれている。
本開示の一側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対するネットワーク構造の各層の計算を実行する事前計算部と、事前計算部の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得するコスト取得部と、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける決定部と、決定部によりネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行する計算部と、を備える計算手法決定システムである。
この計算手法決定システムでは、予め準備された計算手法の中から、それらを実行環境にて実際に動作させて得られた計算コストに基づいて、層ごとに1つの計算手法が選択される。このように、計算手法決定システムは、計算コストを考慮して最適な計算手法を層ごとに決定することができる。よって、計算手法決定システムは、計算コストを考慮して計算手法を決定することができる。
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含んでもよい。この場合、計算手法決定システムは、同一結果を出力するものの演算方法がそれぞれ異なる複数のアルゴリズムを実行環境にて実際に動作させ、得られた計算コストに基づいて最適なアルゴリズムを決定することができる。
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なるリソースを用いて同一の演算を行う複数のアルゴリズムを含んでもよい。この場合、計算手法決定システムは、同一の演算で同一結果を出力するものの使用するリソースがそれぞれ異なる複数のアルゴリズムを実行環境にて実際に動作させ、得られた計算コストに基づいて最適な計算手法を決定することができる。
一実施形態においては、計算手法決定システムは、実行環境に基づいて、ネットワーク構造の各層に対して少なくとも1つの計算手法を準備する候補決定部をさらに備えてもよい。この場合、計算手法決定システムは、実行環境のリソースを考慮して計算手法を準備することができる。
一実施形態においては、計算手法決定システムは、ネットワーク構造及び重みデータを外部装置から取得し、所定フォーマットに変換する変換部を備えてもよい。この場合、計算手法決定システムは、外部装置の学習結果を所定フォーマットで取り扱うことができる。
一実施形態においては、計算手法決定システムは、重みデータのデータ順を、実行環境に基づいて変更する第1調整部を備え、事前計算部及び計算部は、第1調整部により調整された重みデータに基づいて計算してもよい。この場合、計算手法決定システムは、例えばデータがキャッシュに乗りやすい状態となるように、重みデータのデータ配列を変更することができる。
一実施形態においては、計算手法決定システムは、計算部の計算に関連した事前処理を重みデータに対して行う第2調整部を備え、事前計算部及び計算部は、第2調整部により調整された重みデータに基づいて計算してもよい。この場合、計算手法決定システムは、計算部の計算負荷を軽減することができる。
一実施形態においては、事前計算部及び計算部は、第1端末に備わり、第1端末の実行環境と同一の実行環境を有する第2端末に対して、決定部により決定された計算手法を提供する提供部をさらに備えてもよい。この場合、計算手法決定システムは、同一環境の端末には、実際にその端末で計算することなく、同一環境を有する他の端末で決定した計算手法を適用させることができる。
本開示の他の側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、ネットワーク構造の層ごとに取得するデータ取得部と、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける決定部と、を備える計算手法決定装置である。
この計算手法決定装置は、計算コストを考慮して最適な計算手法を層ごとに決定することができる。よって、計算手法決定装置は、計算コストを考慮して計算手法を変更することができる。
本開示の他の側面は、ネットワーク構造、重みデータ、及び、ネットワーク構造の層と計算手法との対応関係を取得する取得部と、取得部により取得されたネットワーク構造、重みデータ、及び、対応関係に基づいて、入力データに対するネットワーク構造の各層の計算を実行する計算部と、を備える処理装置である。
この処理装置は、入力データに対するネットワーク構造の各層の計算を実行するにあたり、層ごとに計算手法を変更することができる。
本開示の他の側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対するネットワーク構造の各層の計算を実行するステップと、ネットワーク構造の各層の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得するステップと、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付けるステップと、ネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行するステップと、を備える計算手法決定方法である。
この計算手法決定方法は、上述した計算手法決定システムと同一の効果を奏する。
本開示の他の側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、ネットワーク構造の層ごとに取得するステップと、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付けるステップと、を備える計算手法決定方法である。
この計算手法決定方法は、上述した計算手法決定装置と同一の効果を奏する。
本開示の他の側面は、ネットワーク構造、重みデータ、及び、ネットワーク構造の層と計算手法との対応関係を取得するステップと、ネットワーク構造、重みデータ、及び、対応関係に基づいて入力データに対するネットワーク構造の各層の計算を実行するステップと、を備える処理方法である。
この処理方法は、上述した処理装置と同一の効果を奏する。
本開示の他の側面は、コンピュータを動作させる計算手法決定プログラムである。計算手法決定プログラムは、コンピュータを、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対するネットワーク構造の各層の計算を実行する事前計算部、事前計算部の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得するコスト取得部、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける決定部、及び、決定部によりネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行する計算部として機能させる。
この計算手法決定プログラムは、上述した計算手法決定システムと同一の効果を奏する。
本開示の他の側面は、コンピュータを動作させる計算手法決定プログラムである。計算手法決定プログラムは、コンピュータを、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、ネットワーク構造の層ごとに取得するデータ取得部、及び、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける決定部として機能させる。
この計算手法決定プログラムは、上述した計算手法決定装置と同一の効果を奏する。
本開示の他の側面は、コンピュータを動作させる処理プログラムである。処理プログラムは、コンピュータを、ネットワーク構造、重みデータ、及び、ネットワーク構造の層と計算手法との対応関係を取得する取得部、及び、取得部により取得されたネットワーク構造、重みデータ、及び、対応関係に基づいて、入力データに対するネットワーク構造の各層の計算を実行する計算部として機能させる。
この処理プログラムは、上述した処理装置と同一の効果を奏する。
本開示の種々の側面によれば、ネットワーク構造及び重みデータを用いて入力データを処理するための計算を行う装置において、計算コストを考慮して計算手法を変更することができる。
認識部を説明する図である。 認識部におけるニューラルネットワークを説明する図である。 図2に示す人工ニューロンを説明する図である。 第1実施形態に係る計算手法決定システムの機能ブロック図である。 図4に示す装置のハードウェア構成を示すブロック図。 変換処理のフローチャートである。 プロファイル取得処理のフローチャートである。 情報付与処理のフローチャートである。 計算処理のフローチャートである。 計算処理のフローチャートである。 第2実施形態に係る計算手法決定システムの機能ブロック図である。 情報付与処理のフローチャートである。 計算処理のフローチャートである。 計算処理のフローチャートである。
以下、添付図面を参照して実施形態について説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明は繰り返さない。
[第1実施形態]
(計算手法決定システムの概要)
実施形態に係る計算手法決定システム100(図4参照)は、階層型ネットワークを有する処理装置の最適な計算手法を決定するシステムである。階層型ネットワークとは、階層構造を有するネットワークであり、一例としてニューラルネットワークである。ニューラルネットワークは、ネットワーク構造及び重みデータなどを用いて定義される。ニューラルネットワークの詳細は後述される。
処理装置は、種々のプログラムを実行可能な実行環境を有する。実行環境では、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される。入力データとは、階層型ネットワークの目的を達成するために処理されるデータである。例えば、階層型ネットワークの目的が認識である場合には、入力データは認識対象データとなる。処理装置は、階層型ネットワークを有する装置であれば特に限定されない。処理装置は、一例として、画像の内容をラベリングする端末装置であったり、画像内の物体位置(人の位置など)を特定する監視カメラであったり、一般的なパーソナルコンピュータであってもよい。以下では、処理装置の一例として、ニューラルネットワークを用いて認識対象データの内容を認識する認識部11(図1,図4参照、計算部の一例)を有する端末装置を説明する。認識対象データとは、コンピュータに認識させる対象となるデータであり、例えば、画像データ、音声データ、テキストデータなどである。
計算手法決定システム100により決定される認識部11の計算手法とは、入力に対して演算を行い、結果を出力する手法である。計算手法決定システム100は、入力に対して所定の精度で同一の結果を出力することを前提として、実行可能な複数種類のアルゴリズムの中から最適なアルゴリズムを決定したり、リソースの使用量又は使用形態が異なる複数の同一アルゴリズムの中から最適なアルゴリズムを決定したりする。リソースは、ハードウェアリソースやソフトウェアリソースが含まれる。ハードウェアリソースは、例えば演算するためのCPUやキャッシュである。ソフトウェアリソースは、例えばライブラリである。アルゴリズムが使用するリソースは、例えばアルゴリズムのパラメータで定義される。
計算手法決定システム100は、計算コストを考慮して認識部11の計算手法を決定する。計算コストとは、一例として、計算に要する時間で評価される。この場合、計算コストは、計算に要する時間が長いほど大きくなる。計算コストは、リソースの使用量で評価されてもよい。この場合、計算コストは、リソースの使用量が大きくなるほど大きくなる。計算コストは、計算に要する時間及びリソースの使用量の2つを用いて評価されてもよい。
計算手法決定システム100は、認識部11の実行環境で実行可能な計算手法の中から計算コストが最も小さくなる計算手法を決定する。計算手法決定システム100は、実行可能な計算手法の計算コストの平均よりも小さい計算コストとなる計算手法を選択するようにしてもよい。このように、計算手法決定システム100は、認識部11の計算速度を最適化したり、認識部11のリソース使用量を最適化したりする。
計算手法決定システム100は、計算手法を決定する際に、認識部11の実行環境で実行可能な計算手法を網羅的に実行し、実行結果に基づいて計算手法を評価し、最適な計算手法を決定する。
具体的な一例として、計算手法決定システム100は、認識部11の実行環境において、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対するネットワーク構造の各層の計算を実行することと、ネットワーク構造の各層の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得することと、層ごとに予め準備された少なくとも1つの計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付けることと、ネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行することと、を実行可能に構成される。
(認識部の詳細)
最初に、計算手法決定システムが計算手法を決定する対象となる認識部11を説明する。以下では、一例として、認識対象データが画像データであり、認識する対象が画像の内容(人、動物、物体、風景、室内など)である場合を説明する。
図1は、認識部11を説明する図である。図1に示されるように、認識部11は、端末装置10に備わる。認識部11は、画像データである認識対象データG1を入力し、認識結果を出力する。図1の(A)に示されるように、認識対象データG1は、犬が描画された画像の画像データである。認識部11は、画像データ(より詳細には画素値)を入力し、学習結果(例えばネットワーク構造及び重みデータ)を用いて画像の内容を表すラベルを出力する。ラベルとは、認識対象データの内容を分類するために用いるものであり、システム利用者によって予め設定されたカテゴリを識別する情報である。図1の(A)の例では、認識部11は「犬」のラベルを出力する。ラベルは、認識部11によって認識対象データG1に付与される。付与とは、関連付けされることを意味し、例えば関連テーブルなどで認識対象データG1とラベルとの関係性のみが記録されてもよいし、認識対象データG1そのものに組み込まれてもよい。一般的に、認識対象データにラベルを付与することをアノテーションという。認識部11は、画像データを入力してラベルを付与することができるため、画像データを自動的に分類したり、Web上で所望の画像を検索したりすることができる。
システム利用者によって予め設定されたラベルが複数ある場合、その中から最も確からしいラベルを認識対象データに付与するシングルラベル処理と、ある一定の確からしさとなったラベルの全てを認識対象データに付与するマルチラベル処理が存在する。図1の(B)に示されるように、認識対象データG2は、人及び花が描画された画像の画像データである。認識部11がシングルラベル処理を行う場合、認識部11によって認識対象データG2に「人」のラベルが付与される。認識部11がマルチラベル処理を行う場合、認識部11によって認識対象データG2に「人」のラベルと「花」のラベルの2つが付与される。
図2は、認識部11におけるニューラルネットワークを説明する図である。認識部11は、ニューラルネットワークを用いて画像データに対応するラベルを認識する。ニューラルネットワークとは、脳神経系をモデルにした情報処理システムである。図2に示すように、認識部11のニューラルネットワークは、いわゆる階層型ニューラルネットワークであり、円で示す多数の人工ニューロンが階層を形成しつつ連結されている。階層型ニューラルネットワークは、入力用の人工ニューロン、処理用の人工ニューロン及び出力用の人工ニューロンを備える。
入力用の人工ニューロンは、認識対象データを取得して処理用の人工ニューロンへ分配する。以下では、ニューラルネットワークでやり取りされる信号そのものをスコアという。スコアは数値である。入力用の人工ニューロンは、並列配置されることで入力層111を形成する。
処理用の人工ニューロンは、入力用の人工ニューロンに接続され、人工ニューロンの機能にしたがって入力を処理し、出力を他のニューロンへ伝える。処理用の人工ニューロンは、並列配置されることで中間層112を形成する。中間層112は、複数の層であってもよい。なお、中間層112を備えた3階層以上のニューラルネットワークをディープニューラルネットワークという。
出力用の人工ニューロンは、外部へ認識スコアを出力する。出力用の人工ニューロンは、ラベルの数と同じ数だけ用意される。つまり、ニューラルネットワークでは、ラベルごとに認識スコアを出力する。図2の例では、「犬」「人」「花」の3つのラベルに合わせて3つの人工ニューロンが用意されている。出力用の人工ニューロンは、「犬」のラベルに対応する認識スコアB1、「人」のラベルに対応する認識スコアB2、「花」のラベルに対応する認識スコアB3を出力する。認識スコアは、認識結果を表すスコアであり、正評価を「1」、負評価を「0」として学習した場合には、ラベルの認識スコアが高いほど画像の内容を示すラベルである確からしさが高くなる。出力用の人工ニューロンは、並列配置されることで出力層113を形成する。
認識部11は、出力層113によって出力された認識スコアを用いて、付与ラベルを決定する。例えば、認識部11は、所定値以上の認識スコアに対応するラベルを認識対象データに付与する。これにより、認識対象データにその内容を示すラベルが自動的に付与される。なお、シングルラベル処理の場合には、認識部11は、最も高い認識スコアに対応するラベルを認識対象データに付与する。
図3は、図2に示す人工ニューロンを説明する図である。図3の(A)に示す人工ニューロンは、x,x,xを入力し、それぞれに対応する重み係数w1,w,wをそれぞれ積算する。人工ニューロンは、積算値(x・w1,x・w,x・w)とバイアス値bとの総和を算出する。この総和を活性化関数に代入して、人工ニューロンの出力とする。
より詳細には、対象の人工ニューロンの出力は、以下の数式となる。
Figure 0006574004

ここで、gは活性化関数であり、例えばシグモイド関数である。
図3の(B)は、N階層(N=3)の人工ニューロンを説明する図である。図3の(B)に示されるように、3階層の場合には、2階層に位置する人工ニューロンの出力h (2)、h (2)、h (2)はそれぞれ以下の数式3〜5となる。ここで、nは対象階層の人工ニューロンの数、w1j (1)は2階層1番目の人工ニューロンにおける1階層j番目の出力に対応する重み係数、b (1)は1階層のバイアス値である。
Figure 0006574004

2j (1)は2階層2番目の人工ニューロンにおける1階層j番目の出力に対応する重み係数、w3j (1)は2階層3番目の人工ニューロンにおける1階層j番目の出力に対応する重み係数、b (1)は1階層2番目のバイアス値、b (1)は1階層3番目のバイアス値である。これにより、3階層の人工ニューロンの出力h (3)は以下の数式6で表される。
Figure 0006574004

なお、バイアス値bは必ずしも必要ではなく、前段の人工ニューロンの出力と重み係数との積算値だけで出力を演算してもよい。
人工ニューロンは上記に限定されるものではなく、一般化したものでもよい。i番目の中間層112の機能に関する一般式は以下の数式7となる。
Figure 0006574004

ここで、x(i)は中間層112への入力ベクトル、w(i) は中間層112の重みパラメータベクトル、b(i) はバイアスベクトル、v(i) は中間層112の出力ベクトルである。画像認識で一般的に使用される中間層112の一例として、全結合層及び畳み込み層がある。図3で表現されている全結合層の出力は、一般的には以下の数式8となる。
Figure 0006574004

ここで、x (i) はi番目の中間層112の入力の第p成分、v (i)は中間層112の出力の第q成分、wp,q (i) は中間層112の重み係数のp,q成分である。また、畳み込み層の出力は以下の数式9となる。
Figure 0006574004

ここで、xp,(r,s) (i) はi番目の中間層112の入力の第pチャンネルの(r,s)成分、vq,(r,s) (i)は中間層112の出力の第qチャンネルの(r,s)成分、wp,q,(r’,s’) (i)は中間層112の畳み込みフィルタに関する重み係数である。r’,s’は、0から畳み込みフィルタの(幅−1)、(高さ−1)の値まで変化する。以上のような中間層112及び活性化関数g(i)の計算を繰り返すことにより、出力層113直前の中間層の出力が以下の数式10となる。
Figure 0006574004
上述したネットワーク構造、重み係数(重みデータ)及びバイアス値は、後述する学習装置30で学習され、学習結果として認識部11へ配布されたものである。つまり、学習装置30は、認識対象データの特徴量とその内容を示すラベルとを対応させるためのネットワーク構造、重み係数及びバイアス値を学習する装置である。なお、認識部11がバイアス値bを用いない場合には、学習装置30は、ネットワーク構造及び重み係数のみを学習する。
(計算手法決定システムの構成)
図4は、実施形態に係る計算手法決定システム100の機能ブロック図である。図4に示されるように、計算手法決定システム100は、端末装置10及び変換装置40を含み、学習装置30に接続される。学習装置30は、画像データを収集して学習する。学習装置30の学習結果は、変換装置40を介して端末装置10へ提供される。
(ハードウェア構成)
最初に、端末装置10、学習装置30及び変換装置40のハードウェアについて説明する。図5は、図4に示す装置のハードウェア構成を示すブロック図である。図5に示すように、端末装置10は、物理的には、CPU(Central Processing Unit)101、RAM(Random Access Memory)102及びROM(Read Only Memory)103などの主記憶装置、タッチパネルやキーボードなどの入力デバイス104、ディスプレイなどの出力デバイス105、ハードディスクなどの補助記憶装置106などを含む通常のコンピュータシステムとして構成される。端末装置10の各機能は、CPU101が、RAM102、ROM103などのハードウェア上に所定のコンピュータソフトウェアを読み込ませ、CPU101の制御の元で入力デバイス104及び出力デバイス105を動作させるとともに、主記憶装置や補助記憶装置106におけるデータの読み出し及び書き込みを行うことで実現される。なお、端末装置10は、上記以外のハードウェアを備えてもよい。例えば、端末装置10は、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)、DSP(Digital Signal Processor)などを備えてもよい。
学習装置30及び変換装置40のハードウェアも端末装置10と同一のハードウェアで構成可能である。すなわち、学習装置30は、物理的には、CPU301、RAM302及びROM303などの主記憶装置、入力デバイス304、出力デバイス305、補助記憶装置306などを含む通常のコンピュータシステムとして構成される。変換装置40は、物理的には、CPU401、RAM402及びROM403などの主記憶装置、入力デバイス404、出力デバイス405、補助記憶装置406などを含む通常のコンピュータシステムとして構成される。変換装置40の各機能は、CPU401が、RAM402、ROM403などのハードウェア上に所定のコンピュータソフトウェアを読み込ませ、CPU401の制御の元で入力デバイス404及び出力デバイス405を動作させるとともに、主記憶装置や補助記憶装置406におけるデータの読み出し及び書き込みを行うことで実現される。なお、学習装置30及び変換装置40は、ハードウェアとして1つの筐体に収まっている必要はなく、いくつかの装置に分離していてもよい。
(機能的構成)
最初に、学習装置30の機能的構成について説明する。学習装置30は、画像データを収集して学習する。学習装置30は、画像データを格納したデータベース21、画像データを生成するカメラ22、画像データをダウンロード可能なWebサイト23などに接続されており、学習の入力データとなる画像データを取得することができる。もちろん、学習装置30は、外部記憶媒体を接続して画像データを取得してもよいし、通信を介して画像データを受信してもよく、画像データ取得の態様には限定されない。
学習装置30は、ニューラルネットワークを機械学習により構築するプラットフォームを有する。プラットフォームは、学習モデルを学習データに基づいて機械学習する動作環境である。学習モデルは、例えばネットワーク構造及び重みデータなどであり、学習データは、例えば画像データである。プラットフォームは、機械学習を行うソフトウェア群であるフレームワークを備える。プラットフォーム及びフレームワークは、使用言語の違いや設計思想の違いなどによって、学習結果出力に複数のフォーマットが存在する。
一例として、学習装置30は、第1プラットフォーム31と第2プラットフォーム32とを備える。第1プラットフォーム31及び第2プラットフォーム32は、互いに異なるプラットフォームである。つまり、学習装置30は、互いに異なるフォーマットで、学習済みの学習モデルを学習結果として出力する。学習結果は、ネットワーク構造及び重みデータを含む。
変換装置40は、学習装置30から取得した、フォーマットの異なる学習結果を、統一フォーマットに変換し、端末装置10へ提供する。これにより、端末装置10は、あらゆるプラットフォームで学習された学習結果を利用することができる。
変換装置40は、変換部41を備える。変換部41は、ネットワーク構造及び重みデータを学習装置30(外部装置の一例)から取得し、統一フォーマット(所定フォーマットの一例)の学習結果M1に変換する。
変換装置40は、学習結果のフォーマット変換だけでなく、端末装置10における認識部11の動作が効率的となるように、学習結果M1に所定の処理を施す。具体的には、変換装置40は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される端末装置10(処理装置の一例)から、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、ネットワーク構造の層ごとに取得することを実行可能に構成される。
このような処理のために、変換装置40は、データ取得部42を備える。変換装置40のデータ取得部42は、端末装置10から、ネットワーク構造の層ごとに予め準備された計算手法で計算した場合の計算コストを、ネットワーク構造の層ごとに取得する。ネットワーク構造の層ごとに計算コストを取得とは、上述したニューラルネットワークの層ごとのそれぞれ計算コストを取得することであり、一例としては、データ取得部42は、中間層112それぞれの計算コストを取得する。具体的な一例として、データ取得部42は、第1の畳み込み層に対して準備された複数のアルゴリズムぞれぞれの計算コスト、第1の全結合層に対して準備された複数のアルゴリズムそれぞれの計算コスト、第2の畳み込み層に対して準備された1のアルゴリズムの計算コストなど、層ごとに準備された計算手法で、実際に処理を実行した結果から計算コストを取得する。より具体的な一例として、データ取得部42は、層と計算手法と計算コストとが関連付けられた結果リストTD2を端末装置10から取得する。以下では、結果リストTD2をプロファイルともいう。
変換装置40は、データ取得部42により取得された結果リストTD2を学習結果M1と結合させる結合部43を備える。一例として、結合部43は、学習結果のデータの属性データ領域に、選択されたアルゴリズムの情報を格納する。これにより、結合部43は、結果リストTD2を関連付けさせた学習結果M2を生成する。学習結果M2は、端末装置10へ出力されるデータである。
端末装置10は、上述したデータ取得部42が結果リストTD2を取得することができるように、認識部11だけでなく、候補決定部12、事前計算部14、コスト取得部15を備える。
事前計算部14は、変換装置40から学習結果M1を取得する。そして、学習結果M1に含まれる層の情報を候補決定部12へ出力する。
候補決定部12は、実行環境に基づいて、ネットワーク構造の各層に対して少なくとも1つの計算手法を準備する。一例として、候補決定部12は、端末装置10の実行環境のハードウェア構成プロファイル、ソフトウェアライブラリなどを参照しつつ、学習結果M1に含まれる層の情報に基づいて、各層に対して実行可能な計算手法TD1を決定する。これにより、事前計算部14の実行前に、層ごとに計算手法が予め準備される。
計算手法TD1は、例えば、実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含む。計算手法TD1の一例としては、ループの階層の順番が異なるアルゴリズムや、CPU拡張機能を利用したアルゴリズムとCPU拡張機能を利用しないアルゴリズムなどである。計算手法TD1は、それぞれが異なる演算で同一機能を発揮するアルゴリズムであれば、同一リソースを用いても異なるリソースを用いてもよい。また、計算手法TD1は、例えば、実行環境で実行可能であり、それぞれが異なるリソースを用いて同一の演算を行う複数のアルゴリズムを含んでもよい。計算手法TD1の一例としては、パラメータ(使用スレッド、使用キャッシュサイズなど)が異なる同一アルゴリズム、CPUを用いて演算するアルゴリズムとGPUを用いて演算するアルゴリズム、ハードウェアアクセラレーションを用いるアルゴリズムとハードウェアアクセラレーションを用いないアルゴリズムなどである。
事前計算部14は、端末装置10において、ネットワーク構造の層ごとに予め準備された計算手法TD1を用いて、所定データに対するネットワーク構造の各層の計算を実行する。所定データは、ニューラルネットワークで処理可能な予め定められたデータであれば何でもよく、事前に用意されたテストデータであってもよい。事前計算部14は、計算手法TD1を網羅的に実行する。例えば、畳み込み層に3つの計算手法が準備されている場合、事前計算部14は、畳み込み層の計算をそれぞれの計算手法で1回または複数回実行する。
コスト取得部15は、事前計算部14の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得する。コスト取得部15は、層と計算手法と計算コストとを対応させた結果リストTD2を生成する。一例として、コスト取得部15は、層と計算手法と演算速度とを関連付けた結果リストTD2を生成する。結果リストTD2は、上述のとおり、変換装置40へ出力され、データ取得部42によって取得される。
端末装置10は、取得部16及び決定部17をさらに備える。取得部16は、変換装置40から、結果リストTD2が関連付けられた学習結果M2を取得する。
決定部17は、学習結果M2に基づいて、層ごとに予め準備された計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける。決定部17は、例えば、層ごとに計算コストが最も低い計算手法を選択する。具体的な一例として、決定部17は、第1の畳み込み層に対して準備された複数のアルゴリズムのうち、計算コストが最も低いアルゴリズムを選択する。そして、決定部17は、第1の畳み込み層と選択されたアルゴリズムとを対応付ける。対応付けるとは、特定の層の計算として特定のアルゴリズムを呼び出し可能にすることである。
認識部11は、学習結果M2を参照し、決定部17によりネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行する。これにより、認識処理効率が向上する。
(データの調整)
変換装置40は、学習結果のデータ配列(データ順)を変更してもよい。学習結果は、重みデータが非常に大きな容量のデータとなる。このため、端末装置10で参照しやすいように、重みデータのデータ配列が変更されてもよい。このような処理のために、変換装置40は、第1調整部44を備えてもよい。
第1調整部44は、学習結果M1の重みデータのデータ配列を変更してもよいし、学習結果M2の重みデータのデータ配列を変更してもよい。以下では、第1調整部44が学習結果M1の重みデータのデータ配列を変更する場合を一例として説明する。
第1調整部44は、学習結果M1の重みデータのデータ配列を、端末装置10の実行環境に基づいて変更する。例えば、端末装置10のキャッシュサイズなどに応じて、データがキャッシュに乗りやすい状態となるように、重みデータのデータ配列を変更する。これにより、事前計算部14及び認識部11は、第1調整部により調整された重みデータに基づいて計算する。
あるいは、変換装置40は、認識部11の計算に関連した事前処理を重みデータに対して行ってもよい。このような処理のために、変換装置40は、第2調整部45を備えてもよい。認識部11は、例えば畳み込み層の処理を行う場合、重みデータを周波数変換した上で演算する。このため、第2調整部45は、畳み込み層に用いられる重みデータを予め周波数変換する事前処理を行う。これにより、端末装置10側で周波数変換する必要がなくなるため、認識処理効率が向上する。あるいは、認識部11の計算においてOpenCL(Open Computing Language)(登録商標)などのコンパイルが必要な場合、第2調整部45は、オフラインでコンパイルする事前処理を行ってもよい。
また、結合部43は、セキュリティ向上のため、学習結果M2を暗号化してもよい。
(計算手法決定システムの動作:計算手法決定方法)
以下、変換装置40及び端末装置10の動作について説明する。
(変換処理)
図6は、変換処理のフローチャートである。図6に示されるフローチャートは、変換装置40の変換部41により実行される。
図6に示されるように、変換装置40の変換部41は、モデル取得処理(S10)として、学習装置30から学習モデル(ネットワーク構造及び重みデータ)を取得する。つづいて、変換部41は、フォーマット変換処理(S12)として、モデル取得処理(S10)で取得された学習モデルを統一フォーマットに変換する。つづいて、変換部41は、モデル出力処理(S14)として、統一フォーマットの学習結果M1を出力する。モデル出力処理(S14)が終了すると、図6のフローチャートは終了する。
図6に示されるフローチャートが実行されることで、学習モデルが取得され、統一フォーマットに変換される。
(プロファイル取得処理)
図7は、プロファイル取得処理のフローチャートである。図7に示されるフローチャートは、端末装置10により実行される。
図7に示されるように、端末装置10の事前計算部14は、学習結果取得処理(S20)として、学習結果M1を取得する。つづいて、事前計算部14は、計算手法取得処理(S22)として、予め準備された計算手法TD1を取得する。事前計算部14は、候補決定部12によって記憶された計算手法TD1を参照する。つづいて、事前計算部14は、事前計算処理(S24)として、テストデータを学習結果M1に入力し、準備された計算手法を網羅的に実行する。このとき、演算コストとして、計算手法ごとの処理速度や使用リソースが測定される。端末装置10のコスト取得部15は、コスト取得処理(S26)として、事前計算部14の計算に要する時間、使用リソースに基づいて、層と計算手法と演算コストとを関連付けた結果リストTD2を生成する。コスト取得処理(S26)が終了すると、図7のフローチャートは終了する。なお、学習結果取得処理(S20)及び計算手法取得処理(S22)は実行順が逆でもよい。事前計算処理S24とコスト取得処理とは層ごとに交互に実行されてもよい。
図7に示されるフローチャートが実行されることで、動作環境の動作結果を取得することができる。
(情報付与処理)
図8は、情報付与処理のフローチャートである。図8に示されるフローチャートは、変換装置40により実行される。
図8に示されるように、変換装置40のデータ取得部42は、結果リスト取得処理(S30)として、端末装置10から結果リストTD2を取得する。つづいて、結合部43は結合処理(S34)として、学習結果M1と結果リストTD2(プロファイル)とを結合させて、学習結果M2を生成する。結合処理(S34)が終了すると、図8に示されるフローチャートが終了する。
図8に示されるフローチャートが実行されることで、計算コストの結果が付与された学習結果M2が生成される。
(計算処理)
図9は、計算処理のフローチャートである。図9に示されるフローチャートは、端末装置10により実行される。
図9に示されるように、端末装置10は、第1初期化処理(S40)として、処理に必要なメモリを確保する。つづいて、端末装置10の認識部11は、学習結果読み込み処理(S42)として、変換装置40から取得された学習結果M2を読み込む。同様に、端末装置10の認識部11は、プロファイル読み込み処理(S44)として、変換装置40から取得された学習結果M2に付与された結果リストTD2を読み込む。つづいて、端末装置10は、第2初期化処理(S46)として、処理に必要なメモリを確保する。つづいて、認識部11は、入力データ読み込み処理(S48)として、識別対象データを入力する。つづいて、認識部11は、計算処理(S50)として、認識のための計算処理を各層で行う。このとき、プロファイル読み込み処理(S44)で読み込まれた結果リストTD2が利用される。計算処理(S50)の詳細は後述する(図10)。最後に、認識部11は、結果出力処理(S52)として、認識の結果を出力する。結果出力処理(S52)が終了すると、図9に示されるフローチャートは、終了する。
図10は、計算処理のフローチャートであり、図9の計算処理(S50)の詳細である。図10に示されるように、認識部11は、入力処理(S60)として入力層に1つの画像に対応した画素値すべてを入力する。つづいて、認識部11は、層情報読み込み処理(S62)として、処理対象の層の情報を入力する。層の情報には、処理対象の層がニューラルネットワークのどの層であるかを識別する情報が含まれている。つづいて、認識部11は、層判定処理(S64)として、層情報読み込み処理(S62)で取得された識別情報に基づいて、処理を分岐させる。
処理対象の層が畳み込み層である場合、決定部17は、対応判定処理(S66)として、結果リストTD2を参照し、畳み込み層処理の中で最も計算コストが小さい計算手法を特定する。畳み込み層処理Aが最も計算コストが小さい場合、決定部17は、畳み込み層処理Aと処理対象の層とを対応付ける。そして、認識部11は、実行処理(S68)として、畳み込み層処理Aを実行する。一方、畳み込み層処理Bが最も計算コストが小さい場合、決定部17は、畳み込み層処理Bと処理対象の層とを対応付ける。畳み込み層処理Bは、機能が同一であるが、実装が異なる処理である。そして、認識部11は、実行処理(S70)として、畳み込み層処理Bを実行する。上記例では、計算手法が畳み込み層処理A及び畳み込み層処理Bの2つの場合を説明したが、これらの処理は3以上であってもよい。このように、決定部17は、結果リストTD2に応じて処理を分岐させる。
一方、処理対象の層が全結合層である場合、決定部17は、対応判定処理(S72)として、結果リストTD2を参照し、全結合層処理の中で最も計算コストが小さい計算手法を特定する。全結合層処理Aが最も計算コストが小さい場合、決定部17は、全結合層処理Aと処理対象の層とを対応付ける。そして、認識部11は、実行処理(S74)として、全結合層処理Aを実行する。一方、全結合層処理Bが最も計算コストが小さい場合、決定部17は、全結合層処理Bと処理対象の層とを対応付ける。全結合層処理Bは、機能が同一であるが、実装が異なる処理である。そして、認識部11は、実行処理(S76)として、全結合層処理Bを実行する。上記例では、計算手法が全結合層処理A及び全結合層処理Bの2つの場合を説明したが、これらの処理は3以上であってもよい。このように、決定部17は、結果リストTD2に応じて処理を分岐させる。
処理対象の層がさらに別の層である場合、例えば、プーリング層、活性化関数層などである場合には、畳み込み層及び全結合層の処理と同様の処理が行われる。
各層に対応する処理が終了すると、認識部11は、判定処理(S80)として、ニューラルネットワークの全ての層に関して処理が終了したか否かを判定する。全ての層について処理が終了していないと判定された場合、層情報読み込み処理(S62)へ移行し、次の層に関する処理が継続される。全ての層について処理が終了したと判定された場合、図10に示されるフローチャートは終了する。
次に、計算手法決定システム100として機能させるための計算手法決定プログラムを説明する。計算手法決定プログラムは、メインモジュール、事前計算モジュール、コスト取得モジュール、決定モジュール及び計算モジュールを備えている。メインモジュールは、装置を統括的に制御する部分である。事前計算モジュール、コスト取得モジュール、決定モジュール及び計算モジュールを実行させることにより実現される機能は、上述した事前計算部14、コスト取得部15、決定部17及び認識部11の機能とそれぞれ同様である。
プログラムは、例えば、ROM又は半導体メモリなどの非一時的な記録媒体によって提供される。また、プログラムは、ネットワークなどの通信を介して提供されてもよい。
(第1実施形態のまとめ)
計算手法決定システム100では、予め準備された計算手法の中から、それらを実行環境にて実際に動作させて得られた計算コストに基づいて、層ごとに1つの計算手法が選択される。このように、計算手法決定システム100は、計算コストを考慮して最適な計算手法を層ごとに決定することができる。よって、計算手法決定システム100は、計算コストを考慮して計算手法を決定することができる。
計算手法決定システム100は、同一結果を出力するものの演算方法がそれぞれ異なる複数のアルゴリズムを実行環境にて実際に動作させ、得られた計算コストに基づいて最適なアルゴリズムを決定することができる。
計算手法決定システム100は、候補決定部12を備えることにより、実行環境のリソースを考慮して計算手法を準備することができる。
計算手法決定システム100は、変換部41を備えることにより、学習装置30の学習結果を所定フォーマットで取り扱うことができる。
計算手法決定システム100は、第1調整部44を備えることにより、データがキャッシュに乗りやすい状態となるように、重みデータのデータ配列を変更することができる。
計算手法決定システム100は、第2調整部45を備えることにより、認識部11の計算負荷を軽減することができる。
[第2実施形態]
第2実施形態に係る計算手法決定システム100Aは、第1実施形態に係る計算手法決定システム100と比較して、決定部17の機能が変換装置40側に存在する点が相違し、その他は同一である。第2実施形態においては、第1実施形態と重複する説明は繰り返さない。
(計算手法決定システムの構成)
図11は、第2実施形態に係る計算手法決定システム100Aの機能ブロック図である。図11に示されるように、計算手法決定システム100Aは、変換装置40A(計算手法決定装置の一例)及び端末装置10Aを備える。
変換装置40Aは、変換装置40と比較して、決定部17Aを備える点が相違する。決定部17Aは、決定部17と比較して、入力先と出力先が異なり、その他は同一である。つまり、決定部17Aは、結果リストTD2に基づいて、層ごとに予め準備された計算手法の中から、計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択し、ネットワーク構造の層と選択された1つの計算手法とを対応付ける。
結合部43Aは、決定部17Aによって対応付けられた対応関係を学習結果M1に付与する。つまり、結合部43Aは、結果リストTD2そのものを学習結果M1に付与するのではなく、結果リストTD2から導き出された結果を学習結果M1に付与する。これにより、学習結果M3が生成される。
取得部16Aは、取得部16と比較して、学習結果M3を取得する点が相違し、その他は同一である。つまり、取得部16Aは、ネットワーク構造、重みデータ、及び、ネットワーク構造の層と計算手法との対応関係を取得する。これにより、認識部11は、決定部17Aによって対応付けられた対応関係を用いて、入力データに対するネットワーク構造の各層の計算を実行する。
計算手法決定システム100Aのその他の構成は、計算手法決定システム100と同一である。
(計算手法決定システムの動作)
計算手法決定システム100Aの動作は、計算手法決定システム100の動作と比較して、情報付与処理(図8)及び計算処理(図9及び図10)が相違し、その他は同一である。
(情報付与処理)
図12は、情報付与処理のフローチャートである。図12に示されるフローチャートは、変換装置40Aにより実行される。
図12に示されるように、変換装置40Aのデータ取得部42は、結果リスト取得処理(S300)として、端末装置10から結果リストTD2を取得する。つづいて、変換装置40の決定部17Aは、決定処理(S320)として、層ごとに予め準備された計算手法の中から、データ取得部42により取得された計算コストに基づいてネットワーク構造の層ごとに1つの計算手法を選択する。つづいて、結合部43は結合処理(S340)として、学習結果M1と、層ごとに選択された1つの計算手法とを結合させて、学習結果M3を生成する。結合処理(S340)が終了すると、図12に示されるフローチャートが終了する。
図12に示されるフローチャートが実行されることで、計算コストの結果が付与された学習結果M3が生成される。
(計算処理)
図13は、計算処理のフローチャートである。図13に示されるフローチャートは、端末装置10Aにより実行される。
図13に示されるように、端末装置10Aは、第1初期化処理(S400)として、処理に必要なメモリを確保する。つづいて、端末装置10Aの認識部11は、学習結果読み込み処理(S420)として、変換装置40Aから取得された学習結果M3を読み込む。つづいて、端末装置10Aは、第2初期化処理(S460)として、処理に必要なメモリを確保する。つづいて、認識部11は、入力データ読み込み処理(S480)として、識別対象データを入力する。つづいて、認識部11は、計算処理(S500)として、認識のための計算処理を各層で行う。計算処理(S500)の詳細は後述する(図14)。最後に、認識部11は、結果出力処理(S520)として、認識の結果を出力する。結果出力処理(S520)が終了すると、図13に示されるフローチャートは、終了する。
図14は、計算処理のフローチャートである。図14に示されるフローチャートは、端末装置10Aにより実行される。
図14に示されるように、認識部11は、入力処理(S600)として入力層に一つの画像に対応した画素値すべてを入力する。つづいて、認識部11は、層情報読み込み処理(S620)として、処理対象の層の情報を入力する。層の情報には、処理対象の層がニューラルネットワークのどの層であるかを識別する情報が含まれている。つづいて、認識部11は、計算手法特定処理(S622)として、学習結果M3に付与された対応関係を読み込んで、層に対応する計算手法を特定する。つづいて、認識部11は、計算処理(S624)として、対応関係で特定された計算手法で、認識のための計算処理を行う。
各層に対応する処理が終了すると、認識部11は、判定処理(S800)として、ニューラルネットワークの全ての層に関して処理が終了したか否かを判定する。全ての層について処理が終了していないと判定された場合、層情報読み込み処理(S620)へ移行し、次の層に関する処理が継続される。全ての層について処理が終了したと判定された場合、図14に示されるフローチャートは終了する。
端末装置10A及び変換装置40Aとして機能させるための処理プログラム及び計算手法決定プログラムは、第1実施形態で説明したプログラムと同様に、装置の機能部に対応するモジュールを備える。
(第2実施形態のまとめ)
計算手法決定システム100Aでは、予め準備された計算手法の中から、それらを実行環境にて実際に動作させて得られた計算コストに基づいて、層ごとに1つの計算手法が選択される。このように、計算手法決定システム100Aは、計算コストを考慮して最適な計算手法を層ごとに決定することができる。よって、計算手法決定システム100Aは、計算コストを考慮して計算手法を決定することができる。
なお、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
計算手法決定システム100はハードウェアとして端末装置10及び変換装置40を含むことが例示されたが、これに限定されない。例えば、計算手法決定システム100は、事前計算部14用の装置、コスト取得部15用の装置、決定部17用の装置、認識部11用の装置など、機能ごとに用意された装置が通信ネットワークを介して接続されてなる集合体として構成されてもよい。あるいは、計算手法決定システム100は、全ての機能を発揮可能な単一のハードウェアで構成されていてもよい。計算手法決定システム100Aも同様に、種々のハードウェアで構成されてもよいし、単一のハードウェアで構成されてもよい。
計算手法決定システム100は認識部11の層ごとに最適な計算手法を決定しているため、1の認識部11に対して最適な計算手法のセットが1つ提供されることになる。しかしながら、提供される最適な計算手法のセットの数は1つに限定されず、2セット以上提供されてもよい。この場合、認識部11は、例えば、提供された複数のセットをそれぞれ実行し、最も速く処理することができたセットを選択すればよい。
計算手法決定システム100は、同一環境を有する他の端末に最適な計算手法を展開してもよい。例えば、端末装置10(第1端末の一例)と同一の環境を有する端末装置10X(第2端末の一例)が存在するとする。端末装置10Xは、例えば端末装置10と同一機種である。計算手法決定システム100は、端末装置10Xに対して、決定部17により決定された計算手法を提供する提供部をさらに備えてもよい。この場合、計算手法決定システム100は、同一環境の端末には、実際にその端末で計算することなく、同一環境を有する他の端末で決定した計算手法を適用させることができる。
10,10A…端末装置、11…認識部、12…候補決定部、14…事前計算部、15…コスト取得部、16,16A…取得部、17,17A…決定部、30…学習装置、40,40A…変換装置、41…変換部、42…データ取得部、43,43A…結合部、44…第1調整部、45…第2調整部、100,100A…計算手法決定システム。

Claims (19)

  1. ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対する前記ネットワーク構造の各層の計算を実行する事前計算部と、
    前記事前計算部の計算結果に基づいて、前記ネットワーク構造の層ごとに前記少なくとも1つの計算手法の計算コストを取得するコスト取得部と、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付ける決定部と、
    前記決定部により前記ネットワーク構造の各層に対応付けられた前記計算手法を用いて、前記入力データに対する前記ネットワーク構造の各層の計算を前記実行環境において実行する計算部と、
    を備える計算手法決定システム。
  2. 前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含む、請求項1に記載の計算手法決定システム。
  3. 前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるリソースを用いて同一の演算を行う複数のアルゴリズムを含む、請求項1又は2に記載の計算手法決定システム。
  4. 前記実行環境に基づいて、前記ネットワーク構造の各層に対して前記少なくとも1つの計算手法を準備する候補決定部をさらに備える、請求項1〜3の何れか一項に記載の計算手法決定システム。
  5. 前記ネットワーク構造及び前記重みデータを外部装置から取得し、所定フォーマットに変換する変換部を備え、
    前記事前計算部及び前記計算部は、前記変換部により変換された前記所定フォーマットの前記ネットワーク構造及び前記重みデータに基づいて計算する、請求項1〜4の何れか一項に記載の計算手法決定システム。
  6. 前記重みデータのデータ順を、前記実行環境に基づいて変更する第1調整部をさらに備え、
    前記事前計算部及び前記計算部は、前記第1調整部により調整された前記重みデータに基づいて計算する、請求項1〜5の何れか一項に記載の計算手法決定システム。
  7. 前記計算部の計算に関連した事前処理を前記重みデータに対して行う第2調整部をさらに備え、
    前記事前計算部及び前記計算部は、前記第2調整部により調整された前記重みデータに基づいて計算する、請求項1〜6の何れか一項に記載の計算手法決定システム。
  8. 前記事前計算部及び前記計算部は、第1端末に備わり、
    前記第1端末の実行環境と同一の実行環境を有する第2端末に対して、前記決定部により決定された前記計算手法を提供する提供部をさらに備える、請求項1〜7の何れか一項に記載の計算手法決定システム。
  9. ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、前記ネットワーク構造の層ごとに取得するデータ取得部と、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付ける決定部と、
    を備える計算手法決定装置。
  10. 請求項9に記載の前記計算手法決定装置の前記データ取得部の計算コスト取得先である処理装置であって、
    ネットワーク構造、重みデータ、及び、前記決定部により対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得する取得部と、
    前記取得部により取得された前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行する計算部と、
    を備える、処理装置。
  11. 請求項9に記載の前記計算手法決定装置の前記データ取得部の計算コスト取得先である処理装置と同一の実行環境を有する処理装置であって、
    ネットワーク構造、重みデータ、及び、前記決定部により対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得する取得部と、
    前記取得部により取得された前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行する計算部と、
    を備える、処理装置。
  12. ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対する前記ネットワーク構造の各層の計算を実行するステップと、
    前記ネットワーク構造の各層の計算結果に基づいて、前記ネットワーク構造の層ごとに前記少なくとも1つの計算手法の計算コストを取得するステップと、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付けるステップと、
    前記ネットワーク構造の各層に対応付けられた前記計算手法を用いて、前記入力データに対する前記ネットワーク構造の各層の計算を前記実行環境において実行するステップと、
    を備える計算手法決定方法。
  13. ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、前記ネットワーク構造の層ごとに取得するステップと、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付けるステップと、
    を備える計算手法決定方法。
  14. 請求項13に記載の前記計算手法決定方法の前記取得するステップにおける計算コスト取得先の処理装置において入力データを処理する処理方法であって、
    ネットワーク構造、重みデータ、及び、前記対応付けるステップにより対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得するステップと、
    前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行するステップと、
    を備える、処理方法。
  15. 請求項13に記載の前記計算手法決定方法の前記取得するステップにおける計算コスト取得先の処理装置と同一の実行環境を有する処理装置において入力データを処理する処理方法であって、
    ネットワーク構造、重みデータ、及び、前記対応付けるステップにより対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得するステップと、
    前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行するステップと、
    を備える、処理方法。
  16. コンピュータを動作させる計算手法決定プログラムであって、
    前記コンピュータを、
    ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される実行環境において、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対する前記ネットワーク構造の各層の計算を実行する事前計算部、
    前記事前計算部の計算結果に基づいて、前記ネットワーク構造の層ごとに前記少なくとも1つの計算手法の計算コストを取得するコスト取得部、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付ける決定部、及び、
    前記決定部により前記ネットワーク構造の各層に対応付けられた前記計算手法を用いて、前記入力データに対する前記ネットワーク構造の各層の計算を前記実行環境において実行する計算部として機能させる、計算手法決定プログラム。
  17. コンピュータを動作させる計算手法決定プログラムであって、
    前記コンピュータを、
    ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される処理装置から、前記ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法で計算した場合の計算コストを、前記ネットワーク構造の層ごとに取得するデータ取得部、及び、
    層ごとに予め準備された前記少なくとも1つの計算手法の中から、前記計算コストに基づいて前記ネットワーク構造の層ごとに1つの計算手法を選択し、前記ネットワーク構造の層と前記選択された1つの計算手法とを対応付ける決定部として機能させる、
    計算手法決定プログラム。
  18. 請求項17に記載の前記計算手法決定プログラムにより動作する前記コンピュータの計算コスト取得先である処理装置を動作させる処理プログラムであって、
    前記処理装置を、
    ネットワーク構造、重みデータ、及び、前記決定部により対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得する取得部、及び、
    前記取得部により取得された前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行する計算部として機能させる、
    処理プログラム。
  19. 請求項17に記載の前記計算手法決定プログラムにより動作する前記コンピュータの計算コスト取得先である処理装置と同一の実行環境を有する処理装置を動作させる処理プログラムであって、
    前記同一の実行環境を有する処理装置を、
    ネットワーク構造、重みデータ、及び、前記決定部により対応付けられた前記ネットワーク構造の層と計算手法との対応関係を取得する取得部、及び、
    前記取得部により取得された前記ネットワーク構造、前記重みデータ、及び、前記対応関係に基づいて、入力データに対する前記ネットワーク構造の各層の計算を実行する計算部として機能させる、
    処理プログラム。
JP2018010681A 2018-01-25 2018-01-25 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム Active JP6574004B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018010681A JP6574004B2 (ja) 2018-01-25 2018-01-25 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム
EP19743124.0A EP3614312B1 (en) 2018-01-25 2019-01-23 System, method and processing program for determining a calculation technique
CN201980002589.XA CN110709862B (zh) 2018-01-25 2019-01-23 计算方法决定系统、计算方法决定方法、记录介质
US16/617,175 US11720788B2 (en) 2018-01-25 2019-01-23 Calculation scheme decision system, calculation scheme decision device, calculation scheme decision method, and storage medium
PCT/JP2019/002103 WO2019146651A1 (ja) 2018-01-25 2019-01-23 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018010681A JP6574004B2 (ja) 2018-01-25 2018-01-25 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム

Publications (2)

Publication Number Publication Date
JP2019128831A JP2019128831A (ja) 2019-08-01
JP6574004B2 true JP6574004B2 (ja) 2019-09-11

Family

ID=67394977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018010681A Active JP6574004B2 (ja) 2018-01-25 2018-01-25 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム

Country Status (5)

Country Link
US (1) US11720788B2 (ja)
EP (1) EP3614312B1 (ja)
JP (1) JP6574004B2 (ja)
CN (1) CN110709862B (ja)
WO (1) WO2019146651A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7021158B2 (ja) * 2019-09-04 2022-02-16 株式会社東芝 ロボットシステムおよび駆動方法
JP7447529B2 (ja) * 2020-02-17 2024-03-12 ソニーグループ株式会社 情報処理装置、情報処理方法、および、プログラム
JP7537734B2 (ja) 2020-08-24 2024-08-21 アシオット株式会社 情報処理装置、及びプログラム
JP7538002B2 (ja) * 2020-11-11 2024-08-21 日立Astemo株式会社 情報処理装置およびニューラルネットワーク縮約方法
AU2020477732B2 (en) * 2020-11-19 2024-02-01 Nippon Telegraph And Telephone Corporation Estimation device, estimation method, and estimation program
JP7187065B1 (ja) 2021-06-25 2022-12-12 株式会社モルフォ 計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3600977B2 (ja) * 1998-09-29 2004-12-15 日立ソフトウエアエンジニアリング株式会社 メッセージ出力制御方法
JP2004153466A (ja) * 2002-10-29 2004-05-27 Matsushita Electric Ind Co Ltd 受信方法、受信装置及び無線伝送システム
US20100208722A1 (en) * 2007-10-18 2010-08-19 Itaru Nishioka Network system, path calculation method, and path calculation program
CN101707788B (zh) 2009-10-27 2014-04-02 北京邮电大学 基于差异化定价策略的多层网络业务动态规划方法
JP5392129B2 (ja) * 2010-02-08 2014-01-22 富士通株式会社 プログラムおよび情報処理装置
US9268620B2 (en) 2011-01-24 2016-02-23 Sony Corporation Information processing device
KR102449837B1 (ko) 2015-02-23 2022-09-30 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
US11113771B1 (en) * 2015-04-28 2021-09-07 Intuit Inc. Systems, methods and articles for generating sub-graphs of a tax calculation graph of a tax preparation system
US10832120B2 (en) * 2015-12-11 2020-11-10 Baidu Usa Llc Systems and methods for a multi-core optimized recurrent neural network
CN105678379B (zh) * 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
CN107169560B (zh) 2017-04-19 2020-10-16 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置
US11365963B2 (en) * 2017-09-12 2022-06-21 Nec Corporation State determination apparatus, state determination method, and computer-readable recording medium
US10872038B1 (en) * 2019-09-30 2020-12-22 Facebook, Inc. Memory organization for matrix processing
KR102476368B1 (ko) * 2019-11-27 2022-12-12 한국전자통신연구원 수동형 광 네트워크의 통합형 동적 대역 할당 방법 및 장치
US20220207361A1 (en) * 2020-12-25 2022-06-30 Samsung Electronics Co., Ltd. Neural network model quantization method and apparatus

Also Published As

Publication number Publication date
WO2019146651A1 (ja) 2019-08-01
EP3614312B1 (en) 2024-09-18
CN110709862B (zh) 2023-06-23
JP2019128831A (ja) 2019-08-01
EP3614312A4 (en) 2021-01-20
CN110709862A (zh) 2020-01-17
EP3614312A1 (en) 2020-02-26
US20210158136A1 (en) 2021-05-27
US11720788B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
JP6574004B2 (ja) 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム
CN113449857B (zh) 一种数据处理方法和数据处理设备
Zhang et al. Deep learning-enabled intelligent process planning for digital twin manufacturing cell
WO2022068623A1 (zh) 一种模型训练方法及相关设备
US20230082597A1 (en) Neural Network Construction Method and System
CN112216307B (zh) 语音情感识别方法以及装置
CN113449859A (zh) 一种数据处理方法及其装置
JP7191443B2 (ja) 機械学習に基づくターゲットオブジェクト属性予測方法、関連機器及びコンピュータプログラム
EP3809337B1 (en) Method and apparatus with neural network operation
US20220335293A1 (en) Method of optimizing neural network model that is pre-trained, method of providing a graphical user interface related to optimizing neural network model, and neural network model processing system performing the same
CN113707323B (zh) 基于机器学习的疾病预测方法、装置、设备及介质
CN111428854A (zh) 一种结构搜索方法及结构搜索装置
CN116312489A (zh) 一种模型训练方法及其相关设备
CN112699907B (zh) 数据融合的方法、装置和设备
CN117056589A (zh) 一种物品推荐方法及其相关设备
CN116362301A (zh) 一种模型的量化方法以及相关设备
CN114548237A (zh) 一种人机交互的多模态数据融合方法、装置及设备
CN115879524A (zh) 一种模型训练方法及其相关设备
CN113065638A (zh) 一种神经网络压缩方法及其相关设备
JP6980263B2 (ja) 異種データ深層学習装置、異種データ深層学習方法、および異種データ深層学習プログラム
JP7187065B1 (ja) 計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム
CN118485858B (zh) 基于多分类器融合的土地利用遥感监测方法及系统
KR102710829B1 (ko) 3차원 이미지에 대한 어노테이션 정보를 제공하는 방법 및 시스템
CN117852603A (zh) 一种任务信息获取方法以及相关设备
CN116882472A (zh) 一种训练数据评估方法及其相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190610

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: 20190813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190814

R150 Certificate of patent or registration of utility model

Ref document number: 6574004

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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