IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社モルフォの特許一覧

特開2023-4024計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム
<>
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図1
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図2
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図3
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図4
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図5
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図6
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図7
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図8
  • 特開-計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023004024
(43)【公開日】2023-01-17
(54)【発明の名称】計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラム
(51)【国際特許分類】
   G06N 3/04 20230101AFI20230110BHJP
【FI】
G06N3/04
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021105479
(22)【出願日】2021-06-25
(11)【特許番号】
(45)【特許公報発行日】2022-12-12
(71)【出願人】
【識別番号】505277358
【氏名又は名称】株式会社モルフォ
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【弁理士】
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100161425
【弁理士】
【氏名又は名称】大森 鉄平
(72)【発明者】
【氏名】平賀 督基
(72)【発明者】
【氏名】三宅 博史
(57)【要約】
【課題】計算コストを適切に考慮してネットワーク構造の各層の計算手法を決定できるシステムを提供する。
【解決手段】計算手法決定システムは、層ごとに予め準備された少なくとも1つの計算手法に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定部と、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、二層の間のデータのやり取りのために実行される適合層を決定する適合部と、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出する算出部と、組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する選択部とを備える。
【選択図】図4
【特許請求の範囲】
【請求項1】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定する計算手法決定システムであって、
前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定部と、
複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合部と、
前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出部と、
前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択部と、
を備える計算手法決定システム。
【請求項2】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含む、請求項1に記載の計算手法決定システム。
【請求項3】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるデバイスを用いて同一機能を発揮する複数のアルゴリズムを含み、
前記適合層は、異種デバイス間のデータ転送の処理を実行する、
請求項1又は2に記載の計算手法決定システム。
【請求項4】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるデータ型の前記データに対して同一の演算を行う複数のアルゴリズムを含み、
前記適合層は、データ型の変換の処理を実行する、
請求項1~3の何れか一項に記載の計算手法決定システム。
【請求項5】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるチャネル位置の前記データに対して同一の演算を行う複数のアルゴリズムを含み、
前記適合層は、データレイアウトの変更の処理を実行する、
請求項1~4の何れか一項に記載の計算手法決定システム。
【請求項6】
前記選択部は、前記複数の組み合わせの中から前記総コストが最小となる前記組み合わせを選択する、請求項1~5の何れか一項に記載の計算手法決定システム。
【請求項7】
前記ネットワーク構造が、分岐元の層から複数の層に分岐し、分岐元の層から派生した複数の出力が合流層で合流する分岐構造を有する場合、前記決定部は、分岐元の層の計算手法を拘束条件とし、前記分岐元の層の後続の層が前記拘束条件を満たすように拘束条件ごとに前記組み合わせを決定する、請求項1~6の何れか一項に記載の計算手法決定システム。
【請求項8】
前記ネットワーク構造の入力を行う入力層が複数となる場合、前記決定部は、複数の入力層の上流側に、複数の入力層それぞれに接続される補助入力層を生成し、前記補助入力層の計算手法を拘束条件とし、前記補助入力層の後続の層が前記拘束条件を満たすように拘束条件ごとに組み合わせを決定する、請求項1~7の何れか一項に記載の計算手法決定システム。
【請求項9】
前記ネットワーク構造の出力を行う出力層が複数となる場合、前記決定部は、複数の出力層の下流側に、前記複数の出力層それぞれに接続される補助出力層を生成し、前記複数の出力層よりも前段の層において分岐している層の計算手法を拘束条件とし、前記拘束条件を満たすように拘束条件ごとに前記組み合わせを決定する、請求項1~7の何れか一項に記載の計算手法決定システム。
【請求項10】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定する計算手法決定方法であって、
前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定ステップと、
複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合ステップと、
前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出ステップと、
前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択ステップと、
を備える計算手法決定方法。
【請求項11】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定するようにコンピュータを動作させる計算手法決定プログラムであって、
前記コンピュータを、
前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定部、
複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合部、
前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出部、及び、
前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択部として機能させる、計算手法決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、計算手法決定システム、計算手法決定方法、及び、計算手法決定プログラムに関する。
【背景技術】
【0002】
特許文献1は、入力層、中間層、出力層という複数層で構成される階層型ネットワークを有する認識装置のためのシステムを開示する。認識装置は、学習済みのネットワーク構造及び重みデータを用いて認識を行う。システムは、予め準備された計算手法を実行環境にて実際に動作させて計算コストを取得し、計算コストが最小となる計算手法を層ごとに選択する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-128831号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のシステムにおいては、ネットワーク構造全体の計算コストは、各層の計算コストを加算して得ることができる。このため、各層において計算コストが最小となる計算手法が選択されれば、ネットワーク構造全体の計算コストも最小となる。ところで、データをやり取りする二層間の計算手法において、計算に用いるデバイス、環境、データフォーマットなどの違いがある場合には、二層間のデータのやり取りのための処理が必要となる。このため、各層において計算コストが最小となる計算手法を選択したとしても、ネットワーク構造全体の計算コストが最小となるとは限らない。本開示は、ネットワーク構造の各層の計算手法をより適切に決定することができる技術を提供する。
【課題を解決するための手段】
【0005】
本開示の一側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、ネットワーク構造の層ごとに計算手法を決定する計算手法決定システムである。システムは、決定部、適合部、算出部及び選択部を備える。決定部は、層ごとに予め準備された少なくとも1つの計算手法に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する。適合部は、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、二層の間のデータのやり取りのために実行される適合層を決定する。算出部は、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出する。選択部は、組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する。
【0006】
この計算手法決定システムにおいては、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせが複数決定される。そして、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かが判定され、二層の間のデータのやり取りのために実行される適合層が決定される。そして、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストが算出される。組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせが選択される。このように、計算手法決定システムによれば、適合層の計算コストを考慮して各層の計算手法の組み合わせの総コストが算出される。このため、計算手法決定システムは、各層の計算コストを加算する場合と比べて、ネットワーク構造全体の計算コストをより正確に算出することができる。よって、計算手法決定システムは、ネットワーク構造の各層の計算手法をより適切に決定することができる。
【0007】
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含んでもよい。この場合、計算手法決定システムは、同一結果を出力するものの演算方法がそれぞれ異なる複数のアルゴリズムを実行環境にて実際に動作させ、得られた計算コストに基づいて最適なアルゴリズムを決定することができる。
【0008】
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なるデバイスを用いて同一機能を発揮する複数のアルゴリズムを含み、適合層は、異種デバイス間のデータ転送の処理を実行してもよい。この場合、計算手法決定システムは、異種デバイス間のデータ転送の処理の計算コストを総コストに含めることができるので、ネットワーク構造の各層の計算手法をより適切に決定することができる。
【0009】
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なるデータ型のデータに対して同一の演算を行う複数のアルゴリズムを含み、適合層は、データ型の変換の処理を実行してもよい。この場合、計算手法決定システムは、データ型の変換の処理の計算コストを総コストに含めることができるので、ネットワーク構造の各層の計算手法をより適切に決定することができる。
【0010】
一実施形態においては、少なくとも1つの計算手法は、実行環境で実行可能であり、それぞれが異なるチャネル位置のデータに対して同一の演算を行う複数のアルゴリズムを含み、適合層は、データレイアウトの変更の処理を実行してもよい。この場合、計算手法決定システムは、データレイアウトの変更の処理の計算コストを総コストに含めることができるので、ネットワーク構造の各層の計算手法をより適切に決定することができる。
【0011】
一実施形態においては、選択部は、複数の組み合わせの中から総コストが最小となる組み合わせを選択してもよい。この場合、計算手法決定システムは、ネットワーク構造の各層の計算手法を最も適切に決定することができる。
【0012】
一実施形態においては、ネットワーク構造が、分岐元の層から複数の層に分岐し、分岐元の層から派生した複数の出力が合流層で合流する分岐構造を有する場合、決定部は、分岐元の層の計算手法を拘束条件とし、分岐元の層の後続の層が拘束条件を満たすように拘束条件ごとに組み合わせを決定してもよい。分岐構造に含まれる各層において、例えば計算コストが最小となる計算手法が選択された場合、分岐元の層の計算手法が一方の分岐では第一手法となり、他方の分岐では第二手法となるような不整合が生じるおそれがある。このため、計算手法決定システムは、分岐元の層の後続の層については分岐元の層の計算手法を拘束条件として計算手法を決定し、拘束条件ごとに組み合わせを決定することにより、不整合が発生することを抑制できる。
【0013】
一実施形態においては、ネットワーク構造の入力を行う入力層が複数となる場合、決定部は、複数の入力層の上流側に、複数の入力層それぞれに接続される補助入力層を生成し、補助入力層の計算手法を拘束条件とし、補助入力層の後続の層が拘束条件を満たすように拘束条件ごとに組み合わせを決定してもよい。この場合、計算手法決定システムは、複数の入力層を有するネットワーク構造であっても、補助入力層を生成することにより、分岐構造と同一の論理を用いることができるので、不整合が発生することを抑制できる。
【0014】
一実施形態においては、ネットワーク構造の出力を行う出力層が複数となる場合、決定部は、複数の出力層の下流側に、複数の出力層それぞれに接続される補助出力層を生成し、複数の出力層よりも前段の層において分岐している層の計算手法を拘束条件とし、拘束条件を満たすように拘束条件ごとに組み合わせを決定してもよい。この場合、計算手法決定システムは、複数の出力層を有するネットワーク構造であっても、補助出力層を生成することにより、分岐構造と同一の論理を用いることができるので、不整合が発生することを抑制できる。
【0015】
本開示の他の側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、ネットワーク構造の層ごとに計算手法を決定する計算手法決定方法である。方法は、決定ステップ、適合ステップ、算出ステップ及び選択ステップを備える。決定ステップでは、層ごとに予め準備された少なくとも1つの計算手法に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する。適合ステップでは、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、二層の間のデータのやり取りのために実行される適合層を決定する。算出ステップでは、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出する。選択ステップでは、組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する。
【0016】
本開示のさらに他の側面は、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、ネットワーク構造の層ごとに計算手法を決定するようにコンピュータを動作させる計算手法決定プログラムである。プログラムは、コンピュータを、決定部、適合部、算出部及び選択部として機能させる。決定部は、層ごとに予め準備された少なくとも1つの計算手法に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する。適合部は、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、二層の間のデータのやり取りのために実行される適合層を決定する。算出部は、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出する。選択部は、組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する選択部として機能させる。
【0017】
この計算手法決定方法及び計算手法決定プログラムは、上述した計算手法決定システムと同一の効果を奏する。
【発明の効果】
【0018】
本開示の種々の側面によれば、計算コストを適切に考慮してネットワーク構造の各層の計算手法を決定することができる。
【図面の簡単な説明】
【0019】
図1】認識部を説明する図である。
図2】認識部におけるニューラルネットワークを説明する図である。
図3図2に示す人工ニューロンを説明する図である。
図4】第一実施形態に係る計算手法決定システムの機能ブロック図である。
図5図4に示す装置のハードウェア構成を示すブロック図。
図6】(A)はネットワーク構造の二層を説明する図である。(B)は(A)の二層の間に適合層が挿入された例を説明する図である。
図7】計算手法決定システムの動作を示すフローチャートである。
図8】(A)は直列に接続されたネットワーク構造、(B)は分岐されたネットワーク構造、(C)は複数分岐されたネットワーク構造、(D)は複数の入出力を有するネットワーク構造である。
図9】第二実施形態に係る計算手法決定システムの機能ブロック図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して実施形態について説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明は繰り返さない。
【0021】
[第一実施形態]
(計算手法決定システムの概要)
実施形態に係る計算手法決定システム100(図4参照)は、階層型ネットワークを有する処理装置の最適な計算手法を決定するシステムである。階層型ネットワークとは、階層構造を有するネットワークであり、一例としてニューラルネットワークである。ニューラルネットワークは、ネットワーク構造及び重みデータなどを用いて定義される。ニューラルネットワークの詳細は後述される。
【0022】
処理装置は、種々のプログラムを実行可能な実行環境を有する。実行環境では、ネットワーク構造及び重みデータを用いて入力データを処理するための計算が実行される。入力データとは、階層型ネットワークの目的を達成するために処理されるデータである。例えば、階層型ネットワークの目的が認識である場合には、入力データは認識対象データとなる。処理装置は、階層型ネットワークを有する装置であれば特に限定されない。処理装置は、一例として、画像の内容をラベリングする端末装置であったり、画像内の物体位置(人の位置など)を特定する監視カメラであったり、一般的なパーソナルコンピュータであってもよい。以下では、処理装置の一例として、ニューラルネットワークを用いて認識対象データの内容を認識する認識部11(図1図4参照)を有する端末装置を説明する。認識対象データとは、コンピュータに認識させる対象となるデータであり、例えば、画像データ、音声データ、テキストデータなどである。
【0023】
計算手法決定システム100により決定される認識部11の計算手法とは、入力に対して演算を行い、結果を出力する手法である。計算手法はルーチンともいう。計算手法決定システム100は、入力に対して所定の精度で同一の結果を出力することを前提として、実行可能な複数種類のアルゴリズムの中から最適なアルゴリズムを決定したり、リソースの種類、使用量又は使用形態が異なる複数の同一アルゴリズムの中から最適なアルゴリズムを決定したりする。リソースは、ハードウェアリソースやソフトウェアリソースが含まれる。ハードウェアリソースは、例えば演算するためのCPU(Central Processing Unit)、GPU(GraphicsProcessing Unit)、DSP(Digital Signal Processor)、キャッシュなどである。ソフトウェアリソースは、例えばライブラリである。アルゴリズムが使用するリソースは、例えばアルゴリズムのパラメータで定義される。
【0024】
計算手法決定システム100は、計算コストを考慮して認識部11の計算手法を決定する。計算コストとは、一例として、計算に要する時間(処理時間)で評価される。この場合、計算コストは、計算に要する時間が長いほど大きくなる。計算コストは、リソースの使用量で評価されてもよい。この場合、計算コストは、リソースの使用量が大きくなるほど大きくなる。計算コストは、計算に要する時間及びリソースの使用量の2つを用いて評価されてもよい。
【0025】
計算手法決定システム100は、認識部11の実行環境で実行可能な計算手法の中から計算コストが最小となる計算手法を決定する。計算手法決定システム100は、実行可能な計算手法の計算コストの平均よりも小さい計算コストとなる計算手法を選択するようにしてもよい。このように、計算手法決定システム100は、認識部11の計算速度を最適化したり、認識部11のリソース使用量を最適化したりする。
【0026】
計算手法決定システム100は、計算手法を決定する際に、認識部11の実行環境で実行可能な計算手法を実行し、実行結果に基づいて計算手法を評価し、最適な計算手法を決定する。
【0027】
具体的な一例として、計算手法決定システム100は、認識部11の実行環境において、ネットワーク構造の層ごとに予め準備された少なくとも1つの計算手法を用いて、所定データに対するネットワーク構造の各層の計算を実行することと、ネットワーク構造の各層の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得することとを実行可能に構成される。
【0028】
具体的な他の例として、計算手法決定システム100は、層ごとに予め準備された少なくとも1つの計算手法に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定することと、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、二層の間のデータのやり取りのために実行される適合層を決定することと、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出することと、組み合わせごとに算出された総コストに基づいて複数の組み合わせの中から一つの組み合わせを選択することと、を実行可能に構成される。
【0029】
(認識部の詳細)
最初に、計算手法決定システムが計算手法を決定する対象となる認識部11を説明する。以下では、一例として、認識対象データが画像データであり、認識する対象が画像の内容(人、動物、物体、風景、室内など)である場合を説明する。
【0030】
図1は、認識部11を説明する図である。図1に示されるように、認識部11は、端末装置10に備わる。認識部11は、画像データである認識対象データG1を入力し、認識結果を出力する。図1の(A)に示されるように、認識対象データG1は、犬が描画された画像の画像データである。認識部11は、画像データ(より詳細には画素値)を入力し、学習結果(例えばネットワーク構造及び重みデータ)を用いて画像の内容を表すラベルを出力する。ラベルとは、認識対象データの内容を分類するために用いるものであり、システム利用者によって予め設定されたカテゴリを識別する情報である。図1の(A)の例では、認識部11は「犬」のラベルを出力する。ラベルは、認識部11によって認識対象データG1に付与される。付与とは、関連付けされることを意味し、例えば関連テーブルなどで認識対象データG1とラベルとの関係性のみが記録されてもよいし、認識対象データG1そのものに組み込まれてもよい。認識部11は、画像データを入力してラベルを付与することができるため、画像データを自動的に分類したり、Web上で所望の画像を検索したりすることができる。
【0031】
システム利用者によって予め設定されたラベルが複数ある場合、その中から最も確からしいラベルを認識対象データに付与するシングルラベル処理と、ある一定の確からしさとなったラベルの全てを認識対象データに付与するマルチラベル処理が存在する。図1の(B)に示されるように、認識対象データG2は、人及び花が描画された画像の画像データである。認識部11がシングルラベル処理を行う場合、認識部11によって認識対象データG2に「人」のラベルが付与される。認識部11がマルチラベル処理を行う場合、認識部11によって認識対象データG2に「人」のラベルと「花」のラベルの2つが付与される。
【0032】
図2は、認識部11におけるニューラルネットワークを説明する図である。認識部11は、ニューラルネットワークを用いて画像データに対応するラベルを認識する。ニューラルネットワークとは、脳神経系をモデルにした情報処理システムである。図2に示すように、認識部11のニューラルネットワークは、いわゆる階層型ニューラルネットワークであり、円で示す多数の人工ニューロンが階層を形成しつつ連結されている。階層型ニューラルネットワークは、入力用の人工ニューロン、処理用の人工ニューロン及び出力用の人工ニューロンを備える。
【0033】
入力用の人工ニューロンは、認識対象データを取得して処理用の人工ニューロンへ分配する。以下では、ニューラルネットワークでやり取りされる信号そのものをスコアという。スコアは数値である。入力用の人工ニューロンは、並列配置されることで入力層111を形成する。
【0034】
処理用の人工ニューロンは、入力用の人工ニューロンに接続され、人工ニューロンの機能にしたがって入力を処理し、出力を他のニューロンへ伝える。処理用の人工ニューロンは、並列配置されることで中間層112を形成する。中間層112は、複数の層であってもよい。なお、中間層112を備えた3階層以上のニューラルネットワークをディープニューラルネットワークという。
【0035】
出力用の人工ニューロンは、外部へ認識スコアを出力する。出力用の人工ニューロンは、ラベルの数と同じ数だけ用意される。つまり、ニューラルネットワークでは、ラベルごとに認識スコアを出力する。図2の例では、「犬」「人」「花」の3つのラベルに合わせて3つの人工ニューロンが用意されている。出力用の人工ニューロンは、「犬」のラベルに対応する認識スコアB1、「人」のラベルに対応する認識スコアB2、「花」のラベルに対応する認識スコアB3を出力する。認識スコアは、認識結果を表すスコアであり、正評価を「1」、負評価を「0」として学習した場合には、ラベルの認識スコアが高いほど画像の内容を示すラベルである確からしさが高くなる。出力用の人工ニューロンは、並列配置されることで出力層113を形成する。
【0036】
認識部11は、出力層113によって出力された認識スコアを用いて、付与ラベルを決定する。例えば、認識部11は、所定値以上の認識スコアに対応するラベルを認識対象データに付与する。これにより、認識対象データにその内容を示すラベルが自動的に付与される。なお、シングルラベル処理の場合には、認識部11は、最も高い認識スコアに対応するラベルを認識対象データに付与する。
【0037】
図3は、図2に示す人工ニューロンを説明する図である。図3の(A)に示す人工ニューロンは、x,x,xを入力し、それぞれに対応する重み係数w1,w,wをそれぞれ積算する。人工ニューロンは、積算値(x・w1,x・w,x・w)とバイアス値bとの総和を算出する。この総和を活性化関数に代入して、人工ニューロンの出力とする。
【0038】
より詳細には、対象の人工ニューロンの出力は、以下の数式(1)となる。
【数1】

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

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

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

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

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

ここで、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となる。
【数7】
【0041】
上述したネットワーク構造、重み係数(重みデータ)及びバイアス値は、後述する学習装置30で学習され、学習結果として認識部11へ配布されたものである。つまり、学習装置30は、認識対象データの特徴量とその内容を示すラベルとを対応させるためのネットワーク構造、重み係数及びバイアス値を学習する装置である。なお、認識部11がバイアス値bを用いない場合には、学習装置30は、ネットワーク構造及び重み係数のみを学習する。
【0042】
(計算手法決定システムの構成)
図4は、実施形態に係る計算手法決定システム100の機能ブロック図である。図4に示されるように、計算手法決定システム100は、端末装置10及び提供装置40を含み、学習装置30に接続される。学習装置30は、画像データを収集して学習する。学習装置30の学習結果は、提供装置40を介して端末装置10へ提供される。
【0043】
(ハードウェア構成)
最初に、端末装置10、学習装置30及び提供装置40のハードウェアについて説明する。図5は、図4に示す装置のハードウェア構成を示すブロック図である。図5に示すように、端末装置10は、物理的には、CPU101、RAM(Random Access Memory)102及びROM(Read Only Memory)103などの主記憶装置、タッチパネルやキーボードなどの入力デバイス104、ディスプレイなどの出力デバイス105、ハードディスクなどの補助記憶装置106などを含む通常のコンピュータシステムとして構成される。端末装置10の各機能は、CPU101が、RAM102、ROM103などのハードウェア上に所定のコンピュータソフトウェアを読み込ませ、CPU101の制御の元で入力デバイス104及び出力デバイス105を動作させるとともに、主記憶装置や補助記憶装置106におけるデータの読み出し及び書き込みを行うことで実現される。なお、端末装置10は、上記以外のハードウェアを備えてもよい。例えば、端末装置10は、GPU、FPGA(Field-Programmable Gate Array)、DSPなどを備えてもよい。
【0044】
学習装置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つの筐体に収容されている必要はなく、いくつかの装置に分離していてもよい。
【0045】
(機能的構成)
次に、学習装置30の機能的構成について説明する。学習装置30は、画像データを収集して学習する。学習装置30は、画像データを格納したデータベース21、画像データを生成するカメラ22、画像データをダウンロード可能なWebサイト23などに接続されており、学習の入力データとなる画像データを取得することができる。もちろん、学習装置30は、外部記憶媒体を接続して画像データを取得してもよいし、通信を介して画像データを受信してもよく、画像データ取得の態様には限定されない。
【0046】
学習装置30は、ニューラルネットワークを機械学習により構築するプラットフォームを有する。プラットフォームは、学習モデルを学習データに基づいて機械学習する動作環境である。学習モデルは、例えばネットワーク構造及び重みデータなどであり、学習データは、例えば画像データである。プラットフォームは、機械学習を行うソフトウェア群であるフレームワークを備える。プラットフォーム及びフレームワークは、使用言語の違いや設計思想の違いなどによって、学習結果出力に複数のフォーマットが存在する。
【0047】
提供装置40は、学習装置30から取得した、フォーマットの異なる学習結果を、統一フォーマットに変換し、端末装置10へ提供する。これにより、端末装置10は、あらゆるプラットフォームで学習された学習結果を利用することができる。提供装置40は、変換部41を備える。変換部41は、ネットワーク構造及び重みデータを学習装置30から取得し、統一フォーマットの学習結果M1に変換する。
【0048】
端末装置10は、認識部11の動作が効率的となるように、学習結果M1のネットワーク構造を事前に動作させ、計算コストが最小となる計算手法を決定しておく。これにより、端末装置10は、学習結果M1を利用した認識部11の動作を効率化させることができる。このために、端末装置10は、事前計算部12、候補決定部13、組み合わせ決定部14(決定部の一例)、適合部15、コスト取得部16、算出部17及び選択部18を備える。
【0049】
事前計算部12は、学習結果M1のネットワーク構造を端末装置10の実行環境で動作させるように構成される。事前計算部12は、提供装置40から学習結果M1を取得する。そして、学習結果M1に含まれる層の情報を候補決定部13へ出力する。
【0050】
候補決定部13は、実行環境に基づいて、ネットワーク構造の各層に対して少なくとも1つの計算手法を準備する。一例として、候補決定部13は、端末装置10の実行環境のハードウェア構成プロファイル、ソフトウェアライブラリなどを参照しつつ、学習結果M1に含まれる層の情報に基づいて、各層に対して実行可能な計算手法TD1を決定する。これにより、事前計算部12の実行前に、層ごとに計算手法が予め準備される。
【0051】
計算手法TD1は、例えば、実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含む。計算手法TD1は、それぞれが異なる演算で同一機能を発揮するアルゴリズムであれば、同一リソースを用いても異なるリソースを用いてもよい。計算手法TD1の一例としては、ループの階層の順番が異なるアルゴリズムや、CPU拡張機能を利用したアルゴリズムとCPU拡張機能を利用しないアルゴリズムなどである。
【0052】
計算手法TD1は、それぞれが異なるデバイスを用いて同一機能を発揮する複数のアルゴリズムを含んでもよい。例えば、計算手法TD1は、演算に用いられるデバイス(プロセッサ)がCPUであるアルゴリズム、GPUであるアルゴリズム、及びDSPであるアルゴリズムを含む。計算手法TD1は、実行環境で実行可能であり、それぞれが異なるデータ型のデータに対して同一の演算を行う複数のアルゴリズムを含んでもよい。データ型は、一例として浮動小数点のビット数である。例えば、計算手法TD1は、処理データの浮動小数点が8ビット、32ビット、及び64ビットでそれぞれ表現されるアルゴリズムを含む。計算手法TD1は、所定のビット数で量子化されたデータを処理するアルゴリズムを含んでもよい。また、計算手法TD1は、実行環境で実行可能であり、それぞれが異なるチャネル位置のデータに対して同一の演算を行う複数のアルゴリズムを含んでもよい。チャネル位置は、画像データにおけるRGBチャネルのデータ位置のことである。チャネルファーストの場合には画像データの次元の並びはチャネル、高さ、幅の順で表現され、チャネルラストの場合には画像データの次元の並びは高さ、幅、チャネルの順で表現される。つまり、計算手法TD1は、チャネルファーストデータを扱うアルゴリズムと、チャネルラストデータを扱うアルゴリズムとを含んでもよい。
【0053】
組み合わせ決定部14は、計算手法TD1に基づいて、ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する。例えば、第一層が第一計算手法MA1、第二層が第二計算手法MA2、第三層が第三計算手法MA3である場合、計算手法の組み合わせは、(MA1,MA2,MA3)となる。少なくとも1つの層の計算手法が複数存在する場合には、計算手法の組み合わせも複数存在することになる。
【0054】
端末装置10の実行環境においては、ネットワーク構造に含まれる二層間が所定の関係を満たすとき、当該二層の間のデータのやり取りのための処理が自動で実行される。図6の(A)はネットワーク構造の二層を説明する図である。図6に示されるように、第一層L1と第二層L2とは互いに接続され、第一層L1の出力が第二層L2の入力となる。端末装置10は、第一層L1の計算手法と第二層L2の計算手法とが所定の関係を満たす場合に、適合層を自動挿入する。
【0055】
図6の(B)は図6の(A)の二層の間に適合層が挿入された例を説明する図である。図6の(B)に示されるように、第一層L1と第二層L2との間に適合層AL1が挿入されている。例えば、データを受け取る後段の第二層L2の計算手法が、前段の第一層L1の計算手法で用いられたデバイスとは異なるデバイスを用いる場合、異種デバイス間のデータ転送の処理が必要になる。より具体的な一例としては、第一層L1がGPUでデータを処理した場合であって、第二層L2がCPUでデータを処理する場合、デバイス間でデータ転送を行う適合層AL1が挿入される。
【0056】
あるいは、データを受け取る後段の第二層L2の計算手法が、前段の第一層L1の計算手法で用いられたデータ型とは異なるデータ型のデータを用いる場合、データ型の変換の処理が必要になる。より具体的な一例としては、第一層L1の計算手法として浮動小数点のビット数が64ビットで表現されたデータが処理され、第二層L2の計算手法として浮動小数点のビット数が32ビットで表現されたデータを処理する場合、64ビットから32ビットへのデータ型の変換を行う適合層AL1が挿入される。
【0057】
あるいは、データを受け取る後段の第二層L2の計算手法が、前段の第一層L1の計算手法で用いられたチャネル位置とは異なるチャネル位置のデータを用いる場合、データレイアウトの変更の処理が必要になる。例えば、第一層L1の計算手法としてチャネルファーストデータが処理され、第二層L2の計算手法としてチャネルラストデータを処理する場合、チャネルラストデータからチャネルファーストデータへの変換、つまり、データレイアウトの変更を行う適合層AL1が挿入される。なお、上記の例示は、重複して発生することもある。例えば、状況に応じて、異種デバイス間のデータ転送の処理だけでなく、データレイアウトの変更の処理も同時に実行され得る。
【0058】
このように、ネットワーク構造に含まれる二層間が所定の関係を満たすとき、当該二層の間のデータのやり取りのための処理が自動で実行される。計算手法決定システム100は、自動で実行される適合層AL1の計算コストを考慮するために、適合部15を備える。適合部15は、組み合わせ決定部14によって決定された計算手法の組み合わせごとに、適合層AL1が自動挿入される箇所及び適合層AL1の処理内容を判定する。例えば、適合部15は、組み合わせ決定部14によって決定された複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定する。所定の関係とは、二層の間のデータのやり取りのために処理が必要となる上述した関係である。
【0059】
そして、適合部15は、所定の関係が満たされる場合には二層の間のデータのやり取りのために実行される適合層を決定する。適合層を決定とは、二層間で実施される処理を決定することである。適合部15は、使用されるデバイスが異なる関係である場合にはデバイス間のデータ転送を行う適合層AL1を決定する。適合部15は、データ型に違いが生じる関係である場合にはデータ型の変換を行う適合層AL1を決定する。適合部15は、チャネル位置に違いが生じる関係である場合にはデータレイアウトの変更を行う適合層AL1を決定する。
【0060】
事前計算部12は、ネットワーク構造の層ごとに予め準備された計算手法TD1を用いて、所定データに対するネットワーク構造の各層の計算を実行する。所定データは、ニューラルネットワークで処理可能な予め定められたデータであれば何でもよく、事前に用意されたテストデータであってもよい。事前計算部12は、計算手法TD1を実行する。例えば、畳み込み層に3つの計算手法が準備されている場合、事前計算部12は、畳み込み層の計算をそれぞれの計算手法で1回または複数回実行する。
【0061】
事前計算部12は、上述した適合層AL1についても計算コストを事前に取得すべく、処理を行う。事前計算部12は、計算手法TD1を参照して、挿入される適合層AL1を判定し、適合層AL1に関する処理を実行する。あるいは、事前計算部12は、適合部15から適合層AL1に係る情報を取得し、適合層AL1に関する処理を実行してもよい。
【0062】
コスト取得部16は、事前計算部12の計算結果に基づいて、ネットワーク構造の層ごとに少なくとも1つの計算手法の計算コストを取得する。ネットワーク構造の層ごとに計算コストを取得するとは、上述したニューラルネットワークの層ごとのそれぞれ計算コストを取得することである。例えば、中間層112それぞれの計算コストが取得される。具体的な一例として、コスト取得部16は、第一の畳み込み層に対して準備された複数のアルゴリズムぞれぞれの計算コスト、第一の全結合層に対して準備された複数のアルゴリズムそれぞれの計算コスト、第二の畳み込み層に対して準備された1のアルゴリズムの計算コストなど、層ごとに準備された計算手法で、実際に処理を実行した結果から計算コストを取得する。さらに、コスト取得部16は、適合層AL1の計算コストも取得する。コスト取得部16は、層(適合層AL1を含む)と計算手法と計算コストとを対応させた結果リストTD2を生成する。一例として、コスト取得部16は、層と計算手法と演算速度とを関連付けた結果リストTD2を生成する。以下では、結果リストTD2をプロファイルともいう。
【0063】
算出部17は、計算手法の計算コストと適合層の計算コストとに基づいて、複数の組み合わせごとに総コストを算出する。算出部17は、組み合わせ決定部14及び適合部15から、複数の組み合わせと、組み合わせごとの適合層AL1に関する情報を取得する。適合層AL1に関する情報とは、ネットワーク構造における挿入位置及び処理内容である。算出部17は、組み合わせ決定部14及び適合部15から取得された複数の組み合わせ及び適合層AL1に対応する計算コストを、結果リストTD2を参照して取得する。そして、複数の組み合わせごとに総コストを算出する。算出部17は、適合層AL1を含むネットワーク構造全体において実行される層の計算コストの総和を算出し、総コストとする。
【0064】
選択部18は、組み合わせごとに算出された総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する。例えば、選択部18は、複数の組み合わせの中から総コストが最小となる組み合わせを選択する。選択部18は、選択された組み合わせに係る計算手法を学習結果M1に付与した、学習結果M2を生成する。
【0065】
認識部11は、学習結果M2を参照し、選択部18によりネットワーク構造の各層に対応付けられた計算手法を用いて、入力データに対するネットワーク構造の各層の計算を実行環境において実行する。これにより、認識処理効率が向上する。
【0066】
(計算手法決定システムの動作:計算手法決定方法)
図7は、計計算手法決定システムの動作を示すフローチャートである。図7に示されるフローチャートは、端末装置10により実行される。
【0067】
図7に示されるように、端末装置10の組み合わせ決定部14は、組み合わせ決定処理(S10:決定ステップの一例)として、計算手法TD1からネットワーク構造の各層の計算手法を取得する。そして、組み合わせ決定部14は、複数の計算手法の組み合わせを決定する。続いて、端末装置10の適合部15は、判定処理(S12:適合ステップの一例)として、組み合わせ決定処理(S10)で決定された複数の組み合わせごとに、適合層AL1の挿入箇所及び内容を判定する。続いて、端末装置10の算出部17は、算出処理(S14:算出ステップの一例)として、結果リストTD2を参照して、組み合わせごとに総コストを算出する。続いて、端末装置10の選択部18は、選択処理(S16:選択ステップの一例)として、計算手法の組み合わせごとの総コストに基づいて、複数の組み合わせの中から一つの組み合わせを選択する。そして、選択部18は、記憶処理(S18)として、選択された組み合わせに係る計算手法を学習結果M1に記憶し、学習結果M2を生成する。記憶処理(S18)が終了すると、図7のフローチャートは終了する。図7に示されるフローチャートが実行されることで、学習モデルを効率良く実行可能な計算手法が認識部11へ提供される。
【0068】
(計算手法の組み合わせの総コスト算出の詳細)
計算手法の組み合わせはネットワーク構造が複雑になるほど増加し、総コストを算出するために多くの時間が必要になる。特に、適合層AL1を考慮することにより、組み合わせパターンが複雑となる。以下では、適合層AL1が考慮されたネットワーク構造の各層の最適な計算手法を決定するアルゴリズムを説明する。
【0069】
最初にネットワーク構造の形式的な定義を説明する。ネットワーク構造は、n個の層で構成され、1つの入力と1つの出力とを有する有向非巡回グラフ(DAG: directed acyclic graph)である。n個の層はL,L,…,Lで識別され、Lが入力層であり、Lが出力層である。各層Lは計算手法(ルーチン)の集合Rを有する。R(λ)は、計算手法の内容(スキーマ)λを持つルーチンを含む集合Rのサブセットである。サブセットR(λ)に含まれるルーチンの中で最速のルーチンF(λ)は、プロファイルから得られるルーチンrの処理時間、つまり実行環境でルーチンrを実行させて計測された処理時間をT(r)とすると、以下の数式(11)で定義される。
【数8】
【0070】
計算手法の組み合わせは、各層のルーチンを順に辿ることからルーチン経路ともいう。ルーチン経路Sは、以下の数式(12)で表現できる。
【数9】

ここで、エッジの層(L,L)がネットワーク構造に存在し、かつ、異なるスキーマを有する場合には、適合層のルーチンである適合ルーチンra i、jは、ルーチン経路Sに含まれる。この定義に基づいて、最適なルーチン経路S*を定義する。最適なルーチン経路S*は、ネットワーク構造の全てのルーチン経路Sのうち、全体の処理時間が最小となる経路であり、以下の数式(13),(14)で表現される。
【数10】

最適なルーチン経路S*は、数式(13)の組み合わせ最適化の解である。
【0071】
(直列構造)
最初に最も単純なネットワーク構造を説明する。図8の(A)は直列接続されたネットワーク構造の一例である。図8の(A)では、第一層L1、第二層L2、第三層L3を有するネットワーク構造が示される。ルーチン経路におけるスキーマの集合はΛ={α,β}とする。つまり、2つのスキーマα,βが存在する場合において、最適なルーチン経路S*を算出する。スキーマα,βは任意に設定される。例えば、スキーマαは、層で処理されるデータの浮動小数点のビット数が32ビットであることを意味し、スキーマβは、層で処理されるデータが8ビットで量子化されていることを意味してもよい。この場合、スキーマα,βを層nごとに実行することになるため、最適なルーチン経路S*の探索範囲のサイズは、O(2)となる。探索範囲のサイズをO(n)に減らすために、動的計画法を採用することができる。
【数11】

ここで、Fa i,j(β→α)は、層Lから層Lへ適合させるための最速のルーチンである。また、i=1のとき、S(λ)={F(λ)}であり、λは集合Λに含まれる(λ∈Λ)。数式(15)によれば、層Lの最速のルーチンを選択し、層Li-1において最適なルーチン経路を計算することによって、層Lにおける最適なルーチン経路が得られることを意味する。数式(15)の後半は、Si-1(α)またはSi-1(β)においてスキーマが変化したときに適応するための計算コストを含めている。なお、数式(15)はスキーマαについての数式であり、スキーマβに対しても同様の関係が成り立つ。数式(15)に基づいて、最適なルーチン経路S*=fastestλ∈ΛSn(λ)という命題が成立する。
【0072】
(分岐構造)
次に、層の出力が2つに分岐している例を説明する。図8の(B)は分岐されたネットワーク構造を示す。分岐構造では、分岐元の層から複数の層に分岐し、分岐元の層から派生した複数の出力が合流層で合流する。図8の(B)に示される例では、第一層L1の出力が第二層L2と第四層L4とに分岐している。分岐された経路は第五層L5で合流する。分岐構造においては、直列構造の考え方を拡張することができる。第三層L3及び第四層L4を第五層L5に接続するための適合ルーチンを有するルーチン経路S(λ)及びS(λ)の和を計算することで、経路が合流する第五層L5における最適なルーチン経路S(λ)を得ることができる。ただし、この計算では、ルーチン経路S(λ)及びS(λ)に関して、分岐元である第一層L1のスキーマが同一であるという拘束条件が必要になる。分岐元である第一層L1のスキーマが同一でない場合、ルーチン経路S(λ)は第一層L1において二つのルーチンを持つという矛盾が生じるためである。この拘束条件を反映させるため、ルーチン経路をS(λ;C)とし、制約Cを含むようにルーチン経路S(λ)の定義を修正することができる。つまり、分岐元の層のルーチンを拘束条件とし、分岐元の層の後続の層が拘束条件を満たすように拘束条件ごとに組み合わせを決定するようにする。例えば、ルーチン経路S(λ;λ=α)は、第一層L1のルーチンがスキーマαを持つ必要があることを意味する。この拡張により、第五層L5における最適なルーチン経路は、以下の式(16)によって得られる。
【数12】

第三層L3及び第四層L4における最適なルーチン経路S(λ)及びS(λ)の結合を考慮することで、最速となるルーチン経路を得られる。各経路には、選択されたスキーマに応じて二つの候補が存在する。したがって、最速となるルーチン経路は、合計で四つの候補を評価することで得ることができる。より一般化した議論においては、m個の制約層が存在する場合には、制約はスキーマの集合Λにおけるべき乗のm個目の要素とみなすことができる。A={a,…,a}をm個の被制約層の集合とした場合、タプルλ=(λa1,…,λam)∈Λとなり、タプルλは層に対するスキーマの制約の組合せとなる。タプルλが制約となる場合、スキーマλを有する層の最速ルーチンF(λ)は、拘束条件を満たす最適なルーチン経路S(λ;λ)に含まれなければならない。これにより、拘束条件を満たす最適なルーチン経路S*は、以下の式(17)となる。
【数13】
【0073】
(複数の分岐構造)
次に、ネットワーク構造が複数の分岐構造を有する場合を説明する。図8の(C)は複数分岐されたネットワーク構造を示す。図8の(C)に示される例では、第一層L1の出力が第二層L2と第六層L6とに分岐している。さらに、第二層L2の出力が第三層L3と第四層L4とに分岐している。第二層L2から分岐された経路は、第五層L5で合流する。そして、第一層L1から分岐された経路は、第八層L8で合流する。上述した単一の分岐構造の考え方を拡張すると、分岐元である第一層L1及び第二層L2に基づいて拘束条件が設定される。スキーマは2つであるとする。まず、第二層L2の下流に位置する層の最適なルーチン経路を計算する。第二層L2の下流に位置する層は、ここでは、第三層L3、第四層L4、第五層L5及び第八層L8の4つの層である。このため、合計で8つの候補が評価される。候補数は、図8の(B)と比較すると2倍になる。簡易的に一般化すると、b個の分岐を持つネットワーク構造には、2個のスキーマの組み合わせが得られることになる。
【0074】
分岐の個数に応じて指数関数的に組み合わせの個数が増大するため、演算のためのコストを低減させる工夫が必要になる。一例として、分岐がマージされる場合、つまり分岐が合流する場合には制約を緩和することが考えられる。例えば、第五層L5と第七層L7の経路を第八層L8にマージする場合、必要な制約は第一層L1のスキーマのみである。なぜなら、第三層L3と第四層L4とをマージするときに、第二層L2の拘束条件が第五層L5においてすでに満たされている必要があるためである。したがって、第二層L2の拘束条件は、以下の式(18)のように、第五層L5で緩和することができる。
【数14】

式(18)においては、高速な経路を選択することによってスキーマλの制約を除去する。同様の緩和はS(α;λ=β)、S(β;λ=α)、S(β;λ=β)にも適用することができる。より一般化した内容は、以下のとおりである。分岐層Lの全ての下流の経路が通過する層の集合をAとする。層Lにおける層Lに対する制約は、層Lが集合Aに属する場合のみ、緩和することができる。例えば、L∈Aである場合、層Lの全ての下流の経路は層Lを通ることになる。層Lの下流では、層Lに対する制約とのマージは発生しない。よって、層Lに対する制約を緩和することができる。しかしながら、L∈Aではない場合、層Lを通らずに層Lに至る経路ρが存在する。つまり、層Lの下流には層L(j<k<=n)で経路ρと交差する経路が存在することになる。この場合、層Lにおける拘束を緩和することはできない。
【0075】
(複数の入出力)
次に、ネットワーク構造が複数の入力又は複数の出力を有する場合を説明する。図8の(D)は、複数の入出力を有するネットワーク構造である。図8の(D)に示されるように、第一層L1及び第二層L2の二つの層が入力層として機能する。第四層L4及び第五層L5の二つの層が出力層として機能する。上述した議論を適用させるために、ネットワーク構造に対して、補助入力層AU1及び補助出力層AU2の概念が導入される。補助入力層AU1は、第一層L1及び第二層L2よりも上流側に擬似的に導入される。補助入力層AU1は、第一層L1及び第二層L2のデータの入力条件を揃えるために導入される。つまり、補助入力層AU1の計算手法を拘束条件とし、第一層L1及び第二層L2の計算手法が補助入力層AU1の計算手法となるようにスキーマ経路が決定される。このようなスキーマ経路の決定は、補助入力層AU1が擬似的に導入されることで実現するこれにより、上述した分岐構造の考え方と同様の議論が可能となり、第一層L1及び第二層L2が個々に最速となる計算手法を選択したために第一層L1及び第二層L2のデータのデータ型や取り扱うデバイスが異なる、という不整合が生じることを回避することができる。
【0076】
補助出力層AU2は、第四層L4及び第五層L5よりも下流側に擬似的に導入される。補助出力層AU2は、第四層L4及び第五層L5のデータの入力条件を揃えるために導入される。言い換えれば、第四層L4及び第五層L5よりも前段の層において分岐している層(ここでは第三層L3)において第四層L4及び第五層L5によって要求される計算手法が異なるという不整合を回避するために導入される。第三層L3の計算手法を拘束条件とし、第四層L4及び第五層L5の計算手法が補助出力層AU2の計算手法となるようにスキーマ経路が決定される。このようなスキーマ経路の決定は、補助出力層AU2が擬似的に導入されることで実現する。これにより、上述した分岐構造の考え方と同様の議論が可能となり、第四層L4及び第五層L5が個々に最速となる計算手法を選択したために第四層L4及び第五層L5のデータのデータ型や取り扱うデバイスが異なる、という不整合が生じることを回避することができる。
【0077】
次に、計算手法決定システム100として機能させるための計算手法決定プログラムを説明する。計算手法決定プログラムは、メインモジュール、決定モジュール、適合モジュール、算出モジュール及び選択モジュールを備えている。メインモジュールは、装置を統括的に制御する部分である。決定モジュール、適合モジュール、算出モジュール及び選択モジュールを実行させることにより実現される機能は、上述した組み合わせ決定部14、適合部15、算出部17及び選択部18の機能とそれぞれ同様である。
【0078】
プログラムは、例えば、ROM又は半導体メモリなどの非一時的な記録媒体によって提供される。また、プログラムは、ネットワークなどの通信を介して提供されてもよい。
【0079】
(第一実施形態のまとめ)
計算手法決定システム100では、適合層AL1の計算コストを考慮して各層の計算手法の組み合わせの総コストが算出される。このため、計算手法決定システム100は、各層の計算コストを加算する場合と比べて、ネットワーク構造全体の計算コストをより正確に算出することができる。よって、計算手法決定システム100は、ネットワーク構造の各層の計算手法をより適切に決定することができる。これにより、認識部11の計算負荷を軽減することができる。
【0080】
計算手法決定システム100によれば、同一結果を出力するものの演算方法がそれぞれ異なる複数のアルゴリズムを実行環境にて実際に動作させ、得られた計算コストに基づいて最適なアルゴリズムを決定することができる。計算手法決定システム100によれば、異種デバイス間のデータ転送の処理の計算コストを総コストに含めることにより、ネットワーク構造の各層の計算手法をより適切に決定することができる。計算手法決定システム100によれば、データ型の変換の処理の計算コストを総コストに含めることにより、ネットワーク構造の各層の計算手法をより適切に決定することができる。計算手法決定システム100によれば、データレイアウトの変更の処理の計算コストを総コストに含めることにより、ネットワーク構造の各層の計算手法をより適切に決定することができる。計算手法決定システム100によれば、複数の組み合わせの中から総コストが最小となる組み合わせを選択することにより、ネットワーク構造の各層の計算手法を最も適切に決定することができる。
【0081】
計算手法決定システム100によれば、分岐元の層の後続の層については分岐元の層の計算手法を拘束条件として計算手法を決定し、拘束条件ごとに組み合わせを決定することにより、不整合が発生することを抑制できる。計算手法決定システム100によれば、複数の入力層を有するネットワーク構造において補助入力層を生成することにより、不整合が発生することを抑制できる。計算手法決定システム100によれば、複数の出力層を有するネットワーク構造において補助出力層を生成することにより、不整合が発生することを抑制できる。
【0082】
[第二実施形態]
第二実施形態に係る計算手法決定システム100Aは、第一実施形態に係る計算手法決定システム100と比較して、組み合わせ決定部14、適合部15、算出部17及び選択部18の機能が提供装置40側に存在する点が相違し、その他は同一である。第二実施形態においては、第一実施形態と重複する説明は繰り返さない。
【0083】
図9は、第二実施形態に係る計算手法決定システム100Aの機能ブロック図である。図9に示されるように、計算手法決定システム100Aは、提供装置40A及び端末装置10Aを備える。提供装置40Aは、提供装置40と比較して、組み合わせ決定部14、適合部15、算出部17及び選択部18を備える点が相違する。組み合わせ決定部14、適合部15、算出部17及び選択部18の各機能は、第一実施形態において説明された内容と同一である。また、計算手法決定システム100Aのその他の構成は、計算手法決定システム100と同一である。
【0084】
(第二実施形態のまとめ)
計算手法決定システム100Aでは、適合層AL1の計算コストを考慮して各層の計算手法の組み合わせの総コストが算出される。このため、計算手法決定システム100Aは、各層の計算コストを加算する場合と比べて、ネットワーク構造全体の計算コストをより正確に算出することができる。よって、計算手法決定システム100Aは、ネットワーク構造の各層の計算手法をより適切に決定することができる。これにより、認識部11の計算負荷を軽減することができる。また、計算手法決定システム100Aは、計算手法決定システム100と比べて、端末装置10Aに導入される機能を最小限にすることができる。これにより、システムのメンテナンス性が向上する。
【0085】
なお、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0086】
計算手法決定システム100はハードウェアとして端末装置10及び提供装置40を含むことが例示されたが、これに限定されない。例えば、計算手法決定システム100は、機能ごとに用意された装置が通信ネットワークを介して接続されてなる集合体として構成されてもよい。あるいは、計算手法決定システム100は、全ての機能を発揮可能な単一のハードウェアで構成されていてもよい。計算手法決定システム100Aも同様に、種々のハードウェアで構成されてもよいし、単一のハードウェアで構成されてもよい。
【0087】
計算手法決定システム100は認識部11の層ごとに最適な計算手法を決定しているため、1の認識部11に対して最適な計算手法のセットが1つ提供されることになる。しかしながら、提供される最適な計算手法のセットの数は1つに限定されず、2セット以上提供されてもよい。この場合、認識部11は、例えば、提供された複数のセットをそれぞれ実行し、最も速く処理することができたセットを選択すればよい。
【0088】
計算手法決定システム100は、同一環境を有する他の端末に最適な計算手法を展開してもよい。例えば、端末装置10と同一の環境を有する端末装置10Xが存在するとする。端末装置10Xは、例えば端末装置10と同一機種である。計算手法決定システム100は、端末装置10Xに対して、選択部18により選択された計算手法を提供する提供部をさらに備えてもよい。この場合、計算手法決定システム100は、同一環境の端末には、実際にその端末で計算することなく、同一環境を有する他の端末で決定した計算手法を適用させることができる。
【符号の説明】
【0089】
10,10A…端末装置、11…認識部、12…事前計算部、13…候補決定部、14…組み合わせ決定部、15…適合部、16…コスト取得部、17…算出部、18…選択部、100,100A…計算手法決定システム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【手続補正書】
【提出日】2022-10-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定する計算手法決定システムであって、
前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定部であって、少なくとも1つの層の計算手法が複数存在する、前記決定部と、
複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合部と、
前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出部と、
前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択部と、
を備える計算手法決定システム。
【請求項2】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なる演算で同一機能を発揮する複数のアルゴリズムを含む、請求項1に記載の計算手法決定システム。
【請求項3】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるデバイスを用いて同一機能を発揮する複数のアルゴリズムを含み、
前記適合層は、異種デバイス間のデータ転送の処理を実行する、
請求項1又は2に記載の計算手法決定システム。
【請求項4】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるデータ型の前記データに対して同一の演算を行う複数のアルゴリズムを含み、
前記適合層は、データ型の変換の処理を実行する、
請求項1~3の何れか一項に記載の計算手法決定システム。
【請求項5】
前記少なくとも1つの計算手法は、前記実行環境で実行可能であり、それぞれが異なるチャネル位置の前記データに対して同一の演算を行う複数のアルゴリズムを含み、
前記適合層は、データレイアウトの変更の処理を実行する、
請求項1~4の何れか一項に記載の計算手法決定システム。
【請求項6】
前記選択部は、前記複数の組み合わせの中から前記総コストが最小となる前記組み合わせを選択する、請求項1~5の何れか一項に記載の計算手法決定システム。
【請求項7】
前記ネットワーク構造が、分岐元の層から複数の層に分岐し、分岐元の層から派生した複数の出力が合流層で合流する分岐構造を有する場合、前記決定部は、分岐元の層の計算手法を拘束条件とし、前記分岐元の層の後続の層が前記拘束条件を満たすように拘束条件ごとに前記組み合わせを決定する、請求項1~6の何れか一項に記載の計算手法決定システム。
【請求項8】
前記ネットワーク構造の入力を行う入力層が複数となる場合、前記決定部は、複数の入力層の上流側に、複数の入力層それぞれに接続される補助入力層を生成し、前記補助入力層の計算手法を拘束条件とし、前記補助入力層の後続の層が前記拘束条件を満たすように拘束条件ごとに組み合わせを決定する、請求項1~7の何れか一項に記載の計算手法決定システム。
【請求項9】
前記ネットワーク構造の出力を行う出力層が複数となる場合、前記決定部は、複数の出力層の下流側に、前記複数の出力層それぞれに接続される補助出力層を生成し、前記複数の出力層よりも前段の層において分岐している層の計算手法を拘束条件とし、前記拘束条件を満たすように拘束条件ごとに前記組み合わせを決定する、請求項1~7の何れか一項に記載の計算手法決定システム。
【請求項10】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定する計算手法決定方法であって、決定部、適合部、算出部、及び選択部がコンピュータに実装され、
前記決定部が、前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定ステップであって、少なくとも1つの層の計算手法が複数存在する、前記決定ステップと、
前記適合部が、複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合ステップと、
前記算出部が、前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出ステップと、
前記選択部が、前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択ステップと、
を備える計算手法決定方法。
【請求項11】
ネットワーク構造及び重みデータを用いて入力データを処理するための計算が行われる実行環境において、前記ネットワーク構造の層ごとに計算手法を決定するようにコンピュータを動作させる計算手法決定プログラムであって、
前記コンピュータを、
前記層ごとに予め準備された少なくとも1つの計算手法に基づいて、前記ネットワーク構造の入力から出力までの間の各層の計算手法の組み合わせを複数決定する決定部であって、少なくとも1つの層の計算手法が複数存在する、前記決定部
複数の組み合わせごとに、データのやり取りを行う二層の計算手法が所定の関係を満たすか否かを判定し、前記所定の関係が満たされる場合には前記二層の間のデータのやり取りのために実行される適合層を決定する適合部、
前記計算手法の計算コストと前記適合層の計算コストとに基づいて、前記複数の組み合わせごとに総コストを算出する算出部、及び、
前記組み合わせごとに算出された前記総コストに基づいて、前記複数の組み合わせの中から一つの前記組み合わせを選択する選択部として機能させる、計算手法決定プログラム。