JPWO2019135274A1 - ニューラル・ネットワークを有するデータ処理システム - Google Patents

ニューラル・ネットワークを有するデータ処理システム Download PDF

Info

Publication number
JPWO2019135274A1
JPWO2019135274A1 JP2019563722A JP2019563722A JPWO2019135274A1 JP WO2019135274 A1 JPWO2019135274 A1 JP WO2019135274A1 JP 2019563722 A JP2019563722 A JP 2019563722A JP 2019563722 A JP2019563722 A JP 2019563722A JP WO2019135274 A1 JPWO2019135274 A1 JP WO2019135274A1
Authority
JP
Japan
Prior art keywords
processing system
data processing
chopper
layers
learning process
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.)
Ceased
Application number
JP2019563722A
Other languages
English (en)
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.)
ABEJA INC.
Original Assignee
ABEJA 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 ABEJA INC. filed Critical ABEJA INC.
Publication of JPWO2019135274A1 publication Critical patent/JPWO2019135274A1/ja
Ceased legal-status Critical Current

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

Landscapes

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

Abstract

学習済みの一つのニューラル・ネットワーク(NN)から、規模の異なる複数のより小さいNNを派生させることを可能にする。データ処理システムは、例えば多数の層、次元またはチャネルなどの多重化構成要素をもつニューラル・ネットワーク(NN)と、NNの学習プロセスにおいて、NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、NNの学習プロセスにおいて、NNの多重化構成要素の多重度を削減するチョッパとを備える。チョッパは、多重化構成要素に割り当てられた順位に基づいて、多重度を可変的に削減する。

Description

本発明は、一般には、ニューラル・ネットワーク応用技術に関し、特に、ニューラル・ネットワークのサイズの削減あるいは調整に関係する技術に関する。
大サイズで複雑なニューラル・ネットワークは、それに見合った大容量で高性能のハードウェア資源を必要とする。例えば、ニューラル・ネットワークが処理するデータの次元数がR倍に増えると、各層間のウェイトの数はRの二乗倍になるから、それらのウェイトの記憶に要するメモリの容量がRの二乗倍になり、それに伴い行うべき計算量も多くなる。
この問題に対処する一つの方法として、「モデル蒸留(Model Distillation)と呼ばれる技術が知られている(例えば、非特許文献1)。モデル蒸留によれば、大きく複雑な学習済みニューラル・ネットワーク(教師モデル)と、より小さく簡素な学習済みニューラル・ネットワーク(生徒モデル)が用意される。生徒モデルの出力データが教師モデルの出力データに近づくように、生徒モデルの学習が行われ、それにより大きいモデルの汎化能力が小さいモデルへ近似的に移転される。
Geoffrey Hinton, Oriol Vinyals and Jeff Dean. Distilling the Knowledge in a Neural Network. arXiv preprint arXiv:1503.02531. 9 March 2015. (https://arxiv.org/abs/1503.02531)
モデル蒸留によれば、大きいニューラル・ネットワークの学習とは別途に、小さいニューラル・ネットワークの学習を行う必要がある。
本開示技術の一つの目的は、ニューラル・ネットワークのサイズを縮小するための技術を改善することにある。
その他の目的は、後の説明から明らかにされる。
本開示の一側面に従えば、データ処理システムは、1種類以上の多重化構成要素をもつニューラル・ネットワーク(NN)と、前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの少なくとも1種類の前記多重化構成要素の多重度を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも1種類の多重化構成要素の中から、前記少なくとも1種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも1種類の多重化構成要素を選択的に削除することで、前記多重度を削減する。前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される前記少なくとも1種類の多重化構成要素の数を変化させる。
本開示に従う各実施形態が実装され得るコンピュータのハードウェア構成例を示すブロックダイヤグラム。 本開示の第1の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 図2のシステムにおけるチョップアウトの一方法例を示す説明図。 図2のシステムの学習プロセスの制御の一例を示すフローチャート。 図2のシステムの学習時のチョップアウトの状態変化の一例を示す説明図。 本開示の第2の実施形態にかかるデータ処理システムの構成を示す説明図。 チョップアウトを適用した学習の効果と、非適用の従来の学習の効果の違いを調べた実験結果を示す説明図。 本開示の第3の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 本開示の第4の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 本開示の第5の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 本開示の第6の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 図11のシステムの学習時のチョップアウトの状態変化の一例を示す説明図。 本開示の第7の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 本開示の第8の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。 本開示の第9の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
以下、本開示の幾つか好適な実施形態を図面を参照して説明する。
以下に説明するそれぞれの実施形態にかかるデータ処理システムは、典型的には、例えば、コンピュータハードウェアとそれが実行するコンピュータプログラムのセット、ハードウェア論理回路、および/または、それらの組み合わせを含んだ、コンピュータシステムを用いて実現することができる。例えば、図1に示されるコンピュータシステムは、CPU101、主記憶装置103、ストレージ105、マンマシンインタフェース装置107、入出力インタフェース装置109、及び各種の補助装置111などをハードウェア要素として有する。このようなコンピュータシステム100において、例えば、各実施形態にかかるデータ処理システムの諸機能はストレージ105に格納された命令群(コンピュータプログラム)として実装されて、それらの命令群をCPU101が実行することにより各実施形態が実現されることができる。あるいは、各実施形態にかかるデータ処理システムの少なくとも一部の機能が、1以上の補助的なハードウェア装置(補助装置)111として実装され、その補助装置111が動作することにより、あるいは、そのことと、ストレージ105に格納された命令群をCPU101が実行することとの組み合わせにより、各実施形態が実施されることもできる。コンピュータシステム100は、一台のコンピュータマシンでもいいし、複数のコンピュータマシンの組み合わせでもいいし、あるいは、1以上の物理コンピュータマシン上で実現される1以上の仮想コンピュータマシンであってもよい。以下では、それぞれのデータ処理システムの機能的な構成が詳細に説明される。しかし、それらの機能的構成を、具体的にどのようなハードウェア構成および/またはソフトウェア構成を実装するかについては、格別の制限はない。当業者は、その者にとり既知の設計法を用いて、各実施形態にかかるデータ処理システムを多種多様の態様で設計できることが理解できるはずなので、本明細書ではその詳細な説明を省略する。
図2は、本開示の第1の実施形態にかかるデータ処理システムの構成を示す。
図2に示されたデータ処理システム1は、ニューラル・ネットワーク(以下、「NN」と略称する)3とオプティマイザ5とチョッパ7を有する。
NN3は、例えばフルコネクション型のNNであり、3以上の層L1〜L5を有する。図2に示された層数はわずか5層であるが、それは例示にすぎず、任意の層数が存在してよい(実用システムの多くは非常に多数の層をもつ)。それぞれの層L1〜L5は特徴データ(入力データX、中間データZ1〜Z3、および出力データY)を保持つまり記憶する。各層の特徴データはn次元のベクタであり、その次元数nは任意の複数である(実用システムの多くでは特徴データは非常に多数の次元をもつ)。
それらの層L1〜L5の隣り合う層同士は、フルコネクション型の関数F1〜F4により結合される。それぞれの関数F1〜F4は、ウェイトや活性化閾値などのパラメータを有して、前層の特徴データを次層の特徴データへ変換する。
オプティマイザ5は、NN3の学習時にNN3のパラメータを最適化(つまり、より最適に近い方向へ修正)する。オプティマイザ5が行うパラメータ最適化方法の典型例の一つはバックプロパゲーションであるが、それ以外の既存の方法、あるいは、将来開発される新しい方法であってもよい。
チョッパ7は、NN3の学習時に、NN3の構造サイズを削減する。以下、ニューラルネットワークの学習時に行われるニューラルネットワークの構造サイズの削減処理を「チョップアウト(Chopout)」という。
一般論として、NNは、空間的または時間的な構造を有し、その構造中に、例えば、複数の層、各層の特徴データのもつ複数の次元、コンボルーショナルNNのもつ複数の特徴マップつまり複数のチャネル、または、NNの実行の複数の繰り返し回など、1種類以上の多重化された構成要素を含む。そして、NNの構造サイズは、それら多重化構成要素の多重度(つまり数)(例えば、NNの層数、各層の特徴データの次元数、コンボルーショナルNNの各層の特徴マップ数つまりチャネル数、または、NNの繰り返し実行回数など)に左右される。チョップアウトは、NN中の少なくとも1種類の多重化構成要素の多重度に対して適用される。
以下に説明される複数の実施形態は、それぞれ、異なる多重化構成要素の多重度に対してチョップアウトを適用した例を示す。それらの実施形態の説明では、チョップアウトに関して、ある数の構成要素を「削除する」という用語が使用される。例えば、「特徴データの下位k次元セルを削除する」、「下位側のk個のチャネルを削除する」、あるいは「下位側のk個の層を削除する」などである。本開示における「削除する」という用語の意味範疇には、文字通りの削除するという意味のほかに、それを後に復元して利用できるようにそれを「一時的に無効にする(一時的に機能しないようにする)」という意味も含まれることに注意されたい。例えば、「特徴データの下位k次元セルを削減する」という処理は、その下位k次元セルを一時的に無効にするが、その後にその下位k次元セルを、それが無効にされる前の状態に復元して再び利用することができる、という処理であり得る、ことに注意されたい。
図2に示されたデータ処理システム1では、各層の特徴データの次元数が上述した多重度の一例として採択され、この次元数に対してチョップアウトが適用される。すなわち、チョッパ7は、NN3の学習プロセス中、層L1〜L5の特徴データX,Z1〜Z3,Yの各々の次元数を削減する。このチョップアウトでは、各層の特徴データがもつ複数の次元セルに対して予め所定の順位が割り当てられ、その順位に沿ってどの次元セルを削除する(一次的に無効化する)かが決定される。
以下、このチョップアウトの一方法例について、図3〜図5を参照して、より具体的に説明する。
図3は、システム1で採用されるチョップアウトの方法例の基本を説明する。
図3Aに示された層Lは、NN3の任意の一つの層を意味する。層Lは、n次元の特徴データV(v1, v2, v3,...,vn)を保持する。特徴データV(v1, v2, v3,...,vn)は、例えばnビットのバイナリデータであり得る。各層特徴データV(c)を構成するn個の次元セル(つまり、v1, v2, v3,...,vn)はそれぞれ所定の互いに異なる順位を割り当てられる。どの次元セルがどの順位をもつかという順位の割り当ては設計者が任意に決めてよい。図3では、最も単純な設定例として、より左に位置する次元セルに対してより高い順位が与えられ、より右に位置する次元セルに対してより低い順位が与えられている。したがって、図3の場合、第1次元セルv1は優先度が最高位であり、第2次元セルv2は第2位であり、第3次元セルv3は第3位であり、...、第n次元セルvnは最下位である。
特徴データの次元数を削減するチョップアウトの一つの方法は、図3Bに示すように、特徴データV(v1, v2, v3,...,vn)の中で順位が1番からi番までの上位側のi個の次元セル(以下、「上位i次元セル」という)(図3Bでハッチングが付されたセル)は残すこととし、順位がi+1番から最下位のn番までの下位側のk個の次元セル(以下、「下位k次元セル」という)に値“0”をセットすることである。図3の例では、最も右側に位置するk個の次元セルvi+1, vi+2, ..., vnに値“0”がセットされる。下位k次元セルに値“0”をセットすることは、下位k次元セルを特徴データから削除した、つまり一時的に無効化したことを、実質的に意味する。
特徴データの下位k次元セルを削除する別のチョップアウト方法として、或る層Lを次層へ結合する層間結合関数Fのうち、層Lの下位k次元セルに関与するパラメータを削除または一次的に無効化する(例えば、該当のウェイトに値“0”をセットする)という方法を採用してもよい。あるいは、或る層Lとその前層との層間結合関数Fのうち、層Lの下位k次元セルに関与するパラメータを削除または一次的に無効化する(例えば、該当のウェイトに値“0”をセットするか、活性化閾値に活性化不能な値をセットする)という方法を採用してもよい。いずれの方法でも、層Lの特徴データの下位k次元は実質的に削除つまり一時的に無効化される。
NN3の学習時には、多数の入力データ(訓練データ)がNN3に逐次に入力され、各訓練データの入力の都度、NN3が動作して出力データを生成し、そして、その出力データの損失(期待出力データに対する誤差)に応じてNN3の関数F1〜F4のパラメータが修正される。以下、各訓練データの入力都度の学習動作を「学習セッション」と呼ぶことにする。多くの訓練データを順次にNN3に入力することで、多数回の学習セッションが繰り返される。
上述したチョップアウトは、繰り返される学習セッションの各々において、NN3のすべての層(または、少なくとも一部の層)に対して実行される。その際、学習セッションごとに、および/または、層ごとに、チョップアウトで削除される特徴データの下位次元数kを変えることができる。
図4は、学習セッションごと、および層ごとの、チョップアウトによる削除次元数kの変化の例を示す。図4では、NN3の各層の削除された次元セルを白抜きのブロックで示し、削除されない次元セルをハッチング付きのブロックで示す。
図4Aは最初の学習セッションの例を示し、図4Bは次の学習セッションの例を示す。用意された多数の訓練データ(入力データ)を順次に用いた多数回の学習セッションが終わると、図4Cに示すように、同じ訓練データのセットを再び用いて次のサイクルの多数回の学習セッション繰り返しを行うことができる。
このような学習プロセスにおいて、図4に例示するように、同じ学習セッションでは、各層特徴データから削除つまり一次的に無効化される(例えば、値“0”がセットされる)下位次元数kは、層によって異なる。また、図4の例では、同じ層において、削除つまり一次的に無効化される下位次元数kは、学習セッションによって異なる。どのように削除される下位次元数を変えるかについては、例えばランダムに変えてもいいし、あるいは、或るルールに従って変えてもよい。図4の例では、常に層ごとに、および常に学習セッションごとに、削除下位次元数kが変わるが、必ずしもそうしなければならないわけではない。多数回の学習セッションをもつ学習プロセスを通じて、すべての層または少なくとも一部の複数層のそれぞれの削除下位次元数が変動するように構成されることが望まれる。
図5は、データ処理システム1のための学習プロセスの制御の一例を示し、この学習プロセスの中で上述したチョップアウトが行われる。
図5に示すように、学習プロセスの開始に当たり、オプティマイザ5が、NN3のすべての層間結合関数F1〜F4のパラメータを初期化する(ステップS1)。その後、チョッパ7が、今回の学習セッションのための各層L1〜L5の残存上位次元数i(層によってiは異なる)を決定し、各層のi+1番から最下位n番までの下位k次元セルを削除する(例えば値“0”をセットする)(ステップS2)。以下、このように各層の下位k次元セルが削除された状態を「チョップアウト状態」という。
その後、各層L1〜L5のチョップアウト状態を維持した状態で、NN3に今回の学習セッションのための新しい入力データ(訓練データ)を入力し、NN3を作動させ、出力データを得る(ステップS3)。そして、オプティマイザ5が、その出力データに基づいて、例えば、バックプロパゲーション法を用いて、層間結合関数F1〜F4のパラメータを索敵方向へ調整する(ステップS4)。
以後、上述したステップS2〜S4の学習セッションを、所定の学習終了条件が満たされるまで(例えば、実行した学習セッションの回数が所定数になるまで、あるいは、学習セッション毎の出力データの損失の改善変化率が所定値以下になるまで)繰り返す(ステップS5)。
以上のようにして、学習プロセス中にチョップアウトにより各層の次元数を変化させることにより、各層のより順位の高い上位次元セルに、より重要度の高い特徴値が集まるように、NN3が最適化される、と推測される。したがって、学習済みのNN3が一旦得られたならば、その学習済みNNの各層の下位次元側の一部分を削除することで、これをより小さいサイズのNNに縮小したとしても、その縮小NNは、元のフルサイズの学習済みNN3とそれほど遜色のない出力精度を達成できると、期待される。しかも、元のNN3の学習プロセスさえ行えば、縮小NNの再学習は不要である。このことは、NNの小型化、演算量の低減、必要なハードウェア資源量の削減、スループットの向上などに貢献し得る。
図6は、本開示の第2の実施形態にかかるデータ処理システムの構成を示す。
図6に示されたデータ処理システム11は、コンボルーショナル型のNN(以下、「CNN」と略称する)13と、オプティマイザ15と、チョッパ17を有する。
CNN13は、複数の層L11〜L15を有する。図6の例示では、CNN13の層数は5層にすぎないが、たいていの実用CNNは非常に多数の層を持つ。
各層は特徴データ(入力データXX、中間データZZ1〜ZZ3、出力データYY)を保持つまり記憶する。各層の特徴データは、長さ軸M次元×幅軸N次元×チャネル軸D次元のサイズをもつ多次元データである。すなわち、各層の特徴データは、D個のチャネルつまり特徴マップを有し、各特徴マップは長さ軸M次元×幅軸N次元のサイズをもつマトリクスである。
CNN13の層間の結合関数F11〜F14は、例えばコンボリューション演算を行うコンボルーショナル関数、または、プーリング演算を行うプーリング関数であり、コンボルーショナル関数とプーリング関数は例えば交互に配置される。図6に示した例では、最初と3番目の結合関数F11とF13はコンボルーショナル関数であり、2番目と4番目の結合関数F12とF14はプーリング関数である。
図6に示されたCNN13の最終層L15には、さらに、最終的な出力データを生成するためのフルコネクション型のニューラル・ネットワークが結合されている(図6では図示省略)。
オプティマイザ15は、CNN13の学習プロセスにおいて、CNN13の層間結合関数、とりわけ、コンボルーショナル関数F11とF13のパラメータを最適化する。最適化方法としては、例えば、最終出力データの損失(誤差)に基づいたバックプロパゲーション、あるいは、その他の方法が採用できる。
チョッパ17は、CNN13の学習プロセスにおいて、各層の特徴マップの数つまりチャネル数Dに対してチョップアウトを適用する。すなわち、チョッパ17は、複数のチャネルつまり特徴マップを有する層L12〜L15すべて(またはその一部)のチャネル数D2〜D5を、学習プロセス中に削除する。図6の例では、入力層F11は、そのチャネル数D1は“1”であるため、チョップアウトが非適用であるが、入力層F11のチャネル数D1が複数であれば、入力層F11にもチョップアウトが適用され得る。
チャネル数Dのチョップアウトの方法には、図3〜図5を参照して説明した、特徴データの次元数のチョップアウトのやり方と同じ原理を用いることができる。すなわち、各層の複数の特徴マップ(チャネル)予め順位を割り当てたうえで、順位の上位側のi個のチャネル(以下、「上位iチャネル」という)だけを残して、順位がi+1番から最下位までの下位側のk個のチャネル(以下、「下位kチャネル」という)を削除つまり一次的に無効化する。そして、学習プロセス中、各層の残存上位チャネル数iを、例えば学習セッション毎にランダムに、あるいは他の所定のルールに従って、変化させることができる。下位kチャネルを削除または一次的に無効化する方法としては、該当チャネルの特徴マップのM次元×N次元の全セルに値“0”をセットするか、あるいは、その特徴マップに関与する層間結合関数を一次的に無効化する(演算をしない、あるいは、無効値が出る演算を行う)、などの方法が採用し得る。
なお、プーリング関数F12、F14から出力される層L13、L15については、チャネル数Dのチョップアウト適用を省略してもよい。それらの層L13、L15の前段の層L12、L14のチャネル数D2、D4を削減すれば、自ずとそれらの層L13、L15のチャネル数D3、D5も同様に削減されるからである。しかし、それらの層L13、L15に対して、前段の層L12、L14のチャネル数削減に加えて、追加のチャネル数削減を適用してもよい。
さらに、チョッパ17は、学習プロセスにおいて、CNN13の下流にあるフルコネクション型のNN(図6では図示省略)の各層特徴データの次元数についても、すでに図3〜図5を参照して説明したようなチョップアウトを適用することができる。
このようなCNN13の学習プロセスにおける各層チャネル数Dに対するチョップアウト適用により、各層のより順位の高いチャネルに、より重要な特徴が集まるように、CNN13の学習が行われると、予想される。したがって、学習済みのCNN13が一旦得られたなら、そのCNN13のコンボルーショナル演算とプーリング演算に関わる層から下位側のチャネルを除去し、また、その下流のフルコネクション型NNの層から下位次元セルを除去することで、縮小CNNを派生させることができる。その縮小CNNを用いて推論を行った場合、元のフルサイズのCNN13とそれほど遜色のない出力精度が達成できることが、期待される。しかも、その縮小CNNの再学習は必要ではない。
図7は、上述したようなチョップアウトを適用した学習と、チョップアウトを適用しない従来の学習との効果の違いを調べた実験結果を示す。
その実験では、まず、同一構成の2つのNNが用意された。各NNは、図6に示されたCNN13と同様、コンボルーション演算とプーリング演算を複数回繰り返す前段のCNNと、その前段CNNの最終層に結合された、フルコネクション型の後段NNを備えていた。
そして、一方のNNを、チョップアウトを適用したやり方で学習させ、他方のNNを、チョップアウト非適用の従来のやり方で学習させた。いずれのNNも、CIFAR-10と呼ばれる10種類の物体(飛行機、自動車、鳥、猫など)を示す画像セットを訓練データとして入力して、その画像セットの物体種別を判別する方法を学習した。学習時にチョップアウトを適用したか適用しなかったかという違いのみを除いて、両NNの学習条件は同じであった。
このようにして、チョップアウト適用の学習済みNNと、チョップアウト非適用の学習済みNNとが作成された。
次に、これらチョップアウト適用と非適用の2つの学習済みNNの各々から、それぞれの層の下位次元部分(前段CNNでは図6で説明したような各層の下位チャネル部分、後段フルコネクションNNでは図3で説明したような各層の下位次元セル部分)を削除することで、縮小NNを派生させた。その際、チョップアウトを適用したすべての層の残存上位次元数(前段の残存上位チャネル数と、後段の残存上位次元セル数)iの元のフルサイズNNの総次元数に対する比率(以下、「サイズ縮小率」という)を90%から10%まで10%づつ異ならせた、9種類の縮小NNを派生させた。
そして、チョップアウト適用NNと非適用NNのそれぞれに関して、元のフルサイズの学習済みNN(サイズ縮小率100%)と上記9種類の縮小NNに、CIFAR-10の画像セットを判別させて、その判別精度を測定した。
その結果、図7に示されるように、チョップアウト適用NNに関しては、サイズ縮小率が10%の非常に小さいNNであっても、50%以上の判別精度が得られ、サイズ縮小率が30%以上のNNは80%以上の判別精度(フルサイズNNにほぼ匹敵する精度)が得られた。これに対して、チョップアウト非適用NNについては、どの縮小NNも明らかに判別精度が悪く、サイズ縮小率が90%のフルサイズに近いサイズのNNであっても、判別精度が80%に満たなかった。
さらに、図示してないが、MNISTと呼ばれる手書き文字の画像セットについて、図2に示したようなフルコネクション型のNNを用いて同様の実験を行ったところ、チョップアウト適用NNに関しては、サイズ縮小率10%で判別精度73%、サイズ縮小率20%で判別精度95%、サイズ縮小率30%〜40%で判別精度98%、そして、サイズ縮小率50%以上で判別精度99%が得られた。
以上の実験結果から、チョップアウト適用の学習プロセスを終えたNNは、出力精度をある程度高く維持しつつ、その構造サイスを縮小可能であることが分かった。
図8は、本開示の第3の実施形態にかかるデータ処理システムの構成を示す。
図8に示されたデータ処理システム21は、サイズの異なる同用途の複数の推論モデルを生成するためのシステムである。このデータ処理システム21は、訓練データ22と、その訓練データ22を用いて所与のNNの学習を行うNN学習部23を有する。NN学習部23は、例えば、すでに説明した図2あるいは図6に示されたデータ処理システム、または、後述する図10、図11もしくは図13に示されたデータ処理システムを備える。以下では、説明の都合上、NN学習部23が図2のデータ処理システムをもつ場合を例にとり説明する。
NN学習部23による学習プロセスが終わると、学習済みNN25が生成される。学習済みNN25は、その構造サイズを縮小することが可能である、すなわち、学習済みNN25は、それに含まれる少なくとも1種類の多重化構成要素の多重度を削減することで、その構造サイズを縮小可能である。例えば、図2に示されたNN3を学習させることで得られる学習済みNNは、学習プロセス後に、各層の特徴データの次元数を削減する(つまり、下位次元セルを削除する)ことで、サイズ縮小が可能である。
システム21は、さらに、サイズ縮小部27、29、31を有し、それらは、学習済みNN25のサイズをそれぞれ異なる縮小率で縮小することにより、異なる構造サイズをもつ縮小NN33、35、37を派生させる。例えば、学習済みNN25が、図2に示されたフルコネクション型NNである場合、サイズ縮小部17、29、31は、例えば図8Bに示すように、そのフルコネクション型の学習済みNN25から、それぞれ、破線、一点鎖線、二点鎖線で示すように異なる次元数の上位次元部分を選んで複製することで、縮小NN33、35、37を派生させる。
システム21は、学習済みNN23の構造または種類が上記と異なれば、サイズ縮小のために削減し得る多重化構成要素の種類が異なり得る。例えば、図6に示したCNN13の学習済みモデルは、その各層の特徴データのチャネル数を削減することで、その構造サイズを縮小できる。図10に示したNN63の学習済みモデルは、その各層の浮動小数点数値データの精度つまり桁数を削減することで、その構造サイズを縮小できる。図11に示したNN83の学習済みモデルは、その深さつまり層数を削減することで、その構造サイズを縮小できる。図13に示したNN93の学習済みモデルは、その繰り返し実行回数を削減することで、その構造サイズを縮小できる。
このシステム21によれば、適用デバイスの性能やその他の実装条件に応じて所望の構造サイズの学習NNを作成する場合、どのようなサイズのNNが所望されても、学習プロセスが一本化され、NNサイズごとの再学習が不要である。それにより、学習コストの削減、学習プロセスの管理の容易化と一貫化などのメリットが期待できる。
図9は、本開示の第4の実施形態にかかるデータ処理システムの構成を示す。
図9に示されたデータ処理システム41は、性能または容量において相違する異なる種類のデバイス43、45、47、49(例えば、サーバ、パーソナル情報端末、車載機器、IoT機器など)に対して、それぞれのデバイスの容量または性能に適したサイズをもつ共通用途の推論モデルを提供することができる。
このシステム41では、或る一つのデバイス、例えば通信ネットワーク上のサーバ43が、チョップアウト適用の学習プロセスを終えたフルサイズの学習済みNN53を有する。このフルサイズ学習済みNN53は、そのサイズを縮小すればどのデバイスにも適した縮小NNになり得る、クロスデバイスつまりユニバーサルなNNである。
サーバ43は、他のデバイス45、47、49の各々に推論モデルを提供するために、他のデバイス45、47、49の各々と通信してその容量や性能などを把握する。そして、サーバ43は、把握された他デバイス45、47、49の各々の容量や性能に応じた適切な構造サイズをもった縮小NN55、57、59を、ユニバーサルNN53から前述したような方法で(例えば、各層の下位次元部分を削除することで)派生させる。そして、サーバ43は、縮小NN55、57、59の各々を、対応するデバイス45、47、49の各々に、例えば通信ネットワークを通じて供給する。各デバイス45、47、49は、それぞれ、受信した縮小NN45、47、49を自デバイス上にデプロイし、そして実行する。
このシステム41によれば、容量や性能の異なるデバイス毎の学習が不要になり、また、異なるデバイスを通じた学習の一本化を担保できるというメリットが期待できる。
図10は、本開示の第5の実施形態にかかるデータ処理システムの構成を示す。
図10に示されたデータ処理システム61は、浮動小数点形式の数値データにチョップアウトを適用可能にしたものである。
このシステム61は、例えばフルコネクション型のNN63を有し、このNN63の各層L1〜L5の特徴データは浮動小数点形式の数値データであり、その精度つまり桁数(次元数)は最大で例えば128ビットである。精度コンバータ69は、所定の(例えば公知の)浮動小数点精度変換方法を用いて、各層特徴データの精度つまり桁数を、複数の異なる桁数のセット(例えば、128ビット、64ビット、32ビット、16ビット、8ビット、4ビット、および1ビットのセット、あるいは、このセットにさらに中間的なビット数も加えたセットなど)の中の任意の桁数から別の任意の桁数へと変換することができる。また、精度コンバータ69は、各層特徴データの桁数変換に伴って、各層間の結合関数F1〜F4のパラメータも変換することができる。
チョッパ67は、NN63の学習プロセスにおいて、精度コンバータ69を制御して、NN63の各層の浮動小数点数値データの精度つまり桁数を随時に変更する。この桁数つまり精度の変更の方法として、例えば、図3〜図5を参照して説明したような学習セッションごとに各層の桁数をランダムに変える方法、あるいは、その他の所定ルールに基づいて各層桁数を変える方法など、を採用することができる。
オプティマイザ65は、NN63の学習プロセスにおいて、層間結合関数F1〜F4のパラメータを、例えばバックプロパゲーションの方法により、最適化する。
このシステム61によれば、一つの学習プロセスで、任意の精度の浮動所数点数値方式のNNを生成することができる。
図11は、本開示の第6の実施形態にかかるデータ処理システムの構成を示す。
図11に示されたデータ処理システム81では、多層のNN83の深さつまり層数にチョップアウトが適用される。
NN83は、例えば、同一サイズ(同一次元数)の多数(d個)の層L81〜L8dを有し、特定サイズの特徴データを入力し、それと同サイズの特徴データを出力する。このようなNNの構造型の一例として、ResNet (Residual Network)がある。オプティマイザ85は、NN83の学習プロセスにおいて、NN83の層間結合関数のパラメータを最適化する。
チョッパ87は、NN83の学習プロセス中、NN83の深さつまり層数に対するチョップアウト、つまり、層数を変化させながら削減する。NN83の各層L81〜L8dには順位が予め与えらえており、チョップアウトにより削除される層は、その順位に従って決定される。例えば、d個の層中のより深い層(出力層L8dにより近い層)ほどより低い順位が与えられる。そして、例えば、下位側のk個の層(以下、下位k層という)がチョップアウトにより削除つまり一次的に無効化される。削除される下位層数kは、学習プロセス中、例えば学習セッション(新しい訓練データが入力される回)ごとに変化する。下位k層を削除つまり一次的に無効化する方法の一つは、残存する上位層の中の最下位の層の特徴データを、そのNN83の出力データとすることである。
図12は、図11に示されたシステム81の学習時におけるチョップアウトによる深さの変化の一例を示す。
図12に示された例では、学習プロセス中、チョッパ87は、各学習セッションの都度、つまり各入力データ(訓練データ)の入力の都度、削除される下位層数kを変化させる。しかし、必ずしも学習セッション都度の変化を採用する必要はなく、他の方法、例えば、何らかのルールを用いて削除層数kを学習プロセス中に変化させてよい。
このようにNNの深さにチョップアウトを適用することで、一本化された学習プロセスだけで、深さ(これは、NNをソフトウェアで実装した場合には計算量つまり計算時間に、ハードウェアで実装した場合にはハードウェア規模とコストに、直接影響する)と出力精度とのトレードオフをとることができる。
図13は、本開示の第7の実施形態にかかるデータ処理システムの構成を示す。
図13に示されたデータ処理システム91では、同一のNN93が繰り返し実行される場合に、その繰り返し実行回数にチョップアウトが適用される。
NN93は、多数の層L91〜L9gを有し、例えば、入力データXとn次元特徴ベクタVを入力して、出力データY(またはその一部)であるn次元特徴ベクタVを入力へフィードバックする。ここで、このNN93全体の関数をV’=f(X,V)と表記する。
NN93は、さらに、リピータ99を有する。リピータ99は、NN93の特徴ベクタVのフィードバックと、NN93の繰り返し実行回数を制御する。すなわち、リピータ99は、
V’=f(X, V), V’’=f(X, V’), V’’’=f(X, V’’) .....
のように、NN93を複数回(R回)繰り返して実行する。この繰り返し実行により、特徴ベクタ(出力データ)V, V’, V’’, V’’’,....の精度が向上していく。
オプティマイザ95は、NN93の学習プロセスにおける各学習セッションで、NN93の層間結合関数をより最適に近い方向へ修正する。オプティマイザ95は、このような学習セッションを複数回繰り返す。
チョッパ97は、NN93の学習プロセスの各学習セッションにおいて、リピータ99を制御して、上述した繰り返し実行回数Rを所定の最大回数Rmaxと所定の最小回数Rmin(例えば、1回)の間で変化させる。繰り返し実行回数Rを変化させる態様には制限はないが。例えば、学習セッション毎にランダムに繰り返し実行回数Rを変化させてよい。あるいは、他の何等かのルールを用いて、繰り返し実行回数Rを変化させてよい。
なお、図13に示されたNNの構成は単なる例示にすぎず、他の任意の構成をもつNNに関して、その繰り返し実行回数にチョップアウトを適用することもできる。
このような繰り返し実行回数へのチョップアウトの適用により、一本化された学習プロセスだけで、繰り返し実行回数(これは、計算時間に直接影響する)と出力の精度とのトレードオフをとることが可能である。
以上説明した幾つかの実施形態では、NNにチョップアウトが適用されている。しかし、チョップアウトの適用対象はNNに限られるわけではなく、例えば次元数、繰り返し回数、ネットワークの深さなどの「多重化構成要素の多重度」という概念をもつ任意の機構にチョップアウトが適用可能である。例えば、行列分解やテンソル分解に関わる構成要素がもつ或る次元方向の次元数に対してもチョップアウトを適用することができる。これにより、低次元な行列分解またはテンソル分解においても、ある程度に良好な同時学習が可能になる。
図14は、行列分解にチョップアウトを適用したデータ処理システムの構成例を示す。
図14に示されたシステム101において、行列記憶システム103は、入力された分解対象の行列(つまり2階のテンソル)Aと、その対象行列Aを分解することで得られる(換言すれば、対象行列Aを合成できる)と期待される2つの分解行列PとQを有する(記憶する)。対象行列Aは、例えば、行数(列方向次元数)M×列数(行方向次元数)Nのサイズをもつ。第一の分解行列Pは行数M×列数(潜在次元方向の次元数)Rのサイズをもち、第二の分解行列Qは行数(潜在次元方向の次元数)R×列数Nのサイズをもつ。
2つの分解行列PとQのそれぞれの要素値には、最初、それぞれの所定の初期値が設定される。オプティマイザ105は、2つの分解行列PとQの合成結果(例えば、積)と、対象行列Aとの間の誤差を最小化するように(つまり、分解行列Pのi番目行ベクトルp_iと分解行列Qのj番目列ベクトルq_jの内積と、対象行列Aのi,j番目要素値a_i,jとの間の誤差を最小化するように)、2つの分解行列PとQの各要素値を修正する。オプティマイザ107は、このように2つの分解行列PとQのそれぞれの要素値を修正するセッションを、逐次に繰り返していくことで、上記誤差を最小に近づけていく。
オプティマイザ105により分解行列PとQの1以上の要素値が修正される各セッションに先立ち、チョッパ107が、2つの分解行列PとQの潜在次元方向の次元数R(つまり、行列Pの列数と、行列Qの行数)を部分的に削減する(チョップアウトする)。すなわち、チョッパ107は、潜在次元方向の次元数Rの各位置(つまり、行列Pの各列と、行列Qの各行)に、予め順位を与える(図14に示した例では、行列Pではより左方の列に、行列Qではより上方の行に、それぞれ、より高い順位を与えられる)。そして、チョッパ107は、分解行列PとQの低順位側の次元数R1(図中の行列Pの右側白抜き部分と、行列Qの下側白抜き部分)を各分解行列PとQから削除して(一次的に無効にして)、高順位側の次元数R2(図中の行列Pの左側ハッチング部分と、行列Qの上側ハッチング部分)を残存させる。このように、2つの分解行列PとQの潜在次元方向の次元数が元のRからR2に削減される(つまり、低順位側の次元数R1がチョップアウトされる)。ここで、チョップアウトされる次元数R1はゼロからRマイナス1までの範囲で可変である。この潜在次元数のチョップアウトの後、オプティマイザ105が、2つの分解行列PとQの1以上の要素値の修正セッションを、上記のようにして行う。その後、チョッパ107は、2つの分解行列PとQの潜在次元方向の次元数Rの削減(チョップアウト)を再び行う。この時には、削減次元数R1(残存次元数R2)を前セッションのそれとは違える(つまり、セッション毎に、削減次元数R1(残存次元数R2)を変化させる)。その後、オプティマイザ105が、2つの分解行列PとQの1以上の要素値の修正を再び行う。
このようにして、チョッパ107による分解行列PとQの潜在次元数の削減と、オプティマイザ105による分解行列PとQの要素値の修正とが、交互に複数回(通常は多数回)繰り返される。それにより、分解行列PとQのすべての要素値が最適に近づいていく(つまり、分解行列PとQの学習が行われる)。その結果、対象行列Aを復元できる精度を大きく落とすことなく、潜在次元数を削減することでサイズ縮小が可能な学習済み(最適化された)分解行列PとQが得られる。図8に示されたシステム21において、学習済みNN25に代えて学習済み分解行列PとQを採用し、そして、サイズ縮小部27、29、31にて学習済み分解行列PとQの潜在次元数を削減することにより、分解行列PとQを異なるサイズに縮小できる。
図15は、テンソル分解にチョップアウトを適用したデータ処理システムの構成例を示す。この例では、テンソル分解の一例として、CP(Canonical Polyadic)分解を挙げるが、他のテンソル分解(例えばTucker分解)にも、チョップアウトが適用できることを、当業者は以下の説明から理解できるはずである。
図15に示されたシステム111において、テンソル記憶システム113は、入力された分解対象の3階以上(例えば、n階)のテンソルB(図15では、図示の都合上、第3階のテンソルとして示されている)と、その対象テンソルBをCP分解することで得られる(換言すれば、対象テンソルBを合成できる)と期待される3以上(例えばn個)の分解行列(分解テンソル)P、Q、…、Kを有する(記憶する)。対象テンソルBは、第一階の次元数M×第二階の次元数N×…×第n階の次元数Lのサイズをもつ。第一の分解行列Pは第一次元方向(対象テンソルBの第一階に相当する)の次元数M×潜在次元方向の次元数Rのサイズをもち、第二の分解行列Qは第二次元方向(対象テンソルBの第二階に相当する)の次元数N×潜在次元方向の次元数Rのサイズをもち、…、第nの分解行列Wは第n次元方向(対象テンソルBの第n階に相当する)の次元数L×潜在次元方向の次元数Rのサイズをもつ。
n個の分解行列P、Q、…、Kのそれぞれの要素値には、最初、それぞれの所定の初期値が設定される。オプティマイザ115は、それらn個の分解行列P、Q、…、Kの合成結果と、対象テンソルBとの間の誤差を最小化するように(つまり、例えば、第一分解行列Pのi番目ベクトルp_iと、第二分解行列Qのj番目ベクトルq_jと、…、第n分解行列Wのk番目ベクトルw_kの拡張された内積(つまり、それらn個のベクトルp_i、q_j、…、w_kの対応要素値の積の総和)と、対象テンソルBのi,j,...,k番目要素値b_i,j,...,kとの間の誤差を最小化するように)、それらの分解行列P、Q、…、Wの各要素値を修正する。オプティマイザ117は、このようにn個の分解行列P、Q、…、Wのそれぞれの要素値を修正するセッションを、逐次に繰り返していくことで、上記誤差を最小に近づけていく。
オプティマイザ115により分解行列P、Q、…、Wの1以上の要素値が修正される各セッションに先立ち、チョッパ117が、それらの分解行列P、Q、…、Wの潜在次元方向の次元数Rを部分的に削減する(チョップアウトする)。すなわち、チョッパ117は、それらの分解行列P、Q、…、Wの潜在次元方向の次元数Rの各位置に、予め順位を与える(図15に示した例では、より左方の位置により高い順位が与えられる)。そして、チョッパ117は、それらの分解行列P、Q、…、Wの低順位側次元数R1(図中の右側の白抜き部分)を削除して(一次的に無効にして)、高順位側の次元数R2(図中の左側のハッチング部分)を残存させる。ここで、チョップアウトされる次元数R1はゼロからRマイナス1までの範囲で可変である。このようにして、分解行列P、Q、…、Wの潜在次元方向の次元数が元のRからR2に削減された後、オプティマイザ115が、分解行列P、Q、…、Wの1以上の要素値の修正を行う。その後、チョッパ117は、それら分解行列P、Q、…、Wの潜在次元方向の次元数を再び削減する(チョップアウトする)。このときは、前セッションとは削減次元数R1(残存次元数R2)を違える。つまり、セッション毎に、削減次元数R1(残存次元数R2)が変化する。その後、オプティマイザ115が、分解行列P、Q、…、Wの1以上の要素値の修正を再び行う。
このような、チョッパ117による分解行列P、Q、…、Wの潜在次元数の削減と、オプティマイザ115による分解行列P、Q、…、Wの要素値の修正(最適化)とが、交互に複数回(通常は多数回)繰り返される。それにより、分解行列P、Q、…、Wのすべての要素値が最適に近づいていく(つまり、分解行列P、Q、…、Wの学習が行われる)。その結果、対象テンソルBを復元できる精度を大きく落とすことなく、潜在次元数を削減することが可能な学習済み(最適化された)分解行列P、Q、…、Wが得られる。図8に示されたシステム21において、学習済みNN25に代えて学習済み分解行列P、Q、…、Wを採用し、そして、サイズ縮小部27、29、31にて学習済み分解行列P、Q、…、Wの潜在次元数を削減することにより、分解行列P、Q、…、Wを異なるサイズに縮小できる。
以上、本開示の幾つかの実施形態を説明したが、これは本開示の理解のための単なる例示にすぎず、本開示の範囲をそれらの実施形態のみに限定する趣旨ではない。本開示は、その趣旨を逸脱しない範囲で、上記の実施形態とは違うさまざまな構造または方法で実施することができる。
例えば、チョップアウトが適用されるNNの多重化構成要素の多重度(例えば、層数、各層の次元数、各層のチャネル数、繰り返し実行回数など)は、前述したように、ランダムに変化させてもよいし、あるいは、何等かのルールで変化させてもよい。ランダムに多重度を変化させる場合、多重度がとり得る値のバリエーションの選択確率を最適化するプロセスを導入してもよい。そのようなプロセスとして、例えば、事前に多重度がとり得る値のバリエーションの各々に対して適当と考えられる選択確率値を割り当てる、あるいは、NNの学習プロセス中に出力データの損失(誤差)の大きさに応じて多重度がとり得る値ののバリエーションの各々に割り当てられる選択確率値を自動学習させる、などを採用することができる。
チョップアウトとドロップアウト(Dropout)を併用してもよい。ドロップアウトとは、部分的な特徴データ欠損に対するNNの頑強性を得るために、学習プロセス中に、各層の特徴データの各次元セルを一定確率でドロップする(例えば、値“0”をセットする)処理である。チョップアウトとドロップアウトの併用態様の一例として、学習セッションごとに、まずチョップアウトを適用した後、各層の特徴データの残存部分にドロップアウトを適用する、という方法が採用できる。
上述した各実施形態では、コンピュータで処理され得るモデル(NN、または、分解行列など)のもつ1種類の多重化構成要素の多重度(各層の次元数、各層のチャネル数、層数、繰り返し実行回数、または、潜在次元数など)にチョップアウトが適用された。しかし、一つの対象モデルにおいて、2種類以上の多重化構成要素の多重度にチョップアウトを適用することもできる。例えば、層数と各層の次元数の双方にチョップアウトを適用することもできる。あるいは、一つのモデル内の或る部分では、1種類以上の構成要素の多重度(例えば層数)にチョップアウトを適用し、別の部分では別の1種類以上の構成要素の多重度(例えば各層の次元数)にチョップアウトを適用することもできる。
本開示は複数の側面を有し、そして、各側面は以下に例示する幾つかの目的またはその他の目的の少なくとも一つに貢献すると期待される。一つの例示的な目的は、モデルのサイズを縮小するための技術を改善することである。例えば、大きいモデルに基づいて小さいモデルを派生させる場合に、小さいモデルの別途の学習を不要にすることである。他の例示的な目的は、学習済みの一つのモデルから、サイズの異なる複数のより小さいモデルを生むことを可能にすることである。また別の例示的な目的は、ハードウェア資源の容量または性能に応じて、そこにデプロイされるモデルのサイズを調整できるようにすることである。さらにまた別の例示的な目的は、フルコネクション型やコンボルーショナル型など異なる構造型のニューラル・ネットワークに対して、その構造型に応じた異なるサイズ縮小のやり方を提供することである。またさらに別の例示的な目的は、システムの性能の低下を抑えつつシステムのサイズを縮小することを可能にすることである。
本開示の一つの例示的な側面に従えば、データ処理システムは、1種類以上の多重化構成要素をもつニューラル・ネットワーク(NN)と、前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの少なくとも1種類の前記多重化構成要素の多重度を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも1種類の多重化構成要素の中から、前記少なくとも1種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも1種類の多重化構成要素を選択的に削除することで、前記多重度を削減し、前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される多重化構成要素の数を変化させる。
本開示の別の例示的な側面に従えば、データ処理システムは、複数次元の特徴データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク(NN)と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記複数層のうち少なくとも一つの層の次元数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記複数次元から、前記複数次元に割り当てられた順位において下位側のk次元を削除する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される次元数kを変化させる。
上記データ処理システムにおいて、前記チョッパは、前記学習プロセスにおいて、各学習セッション毎に、前記各層から削除される次元数kを変化させる、ように構成されてよい。
上記データ処理システムにおいて、前記NNはフルコネクション型NNを含み、フルコネクション型NNの各層の特徴データは複数次元ベクタであってよい。その場合、前記チョッパは、前記フルコネクション型NNの少なくとも一つの層の前記複数次元から、前記複数次元に割り当てられた順位において下位側のk次元を削除する、ように構成されてよい。
上記データ処理システムにおいて、前記NNはコンボルーショナル型NNを含み、前記コンボルーショナル型NNの少なくとも一つの層の特徴データは、複数のチャネルを有してよい。その場合、前記チョッパは、前記コンボルーショナル型NNの前記少なくとも一つの層の前記複数チャネルから、前記複数チャネルに割り当てられた順位において下位側のkチャネルを削除する、ように構成されてよい。
本開示のまた別の例示的な側面に従えば、データ処理システムは、所定桁数をもつ浮動小数点形式の数値データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク(NN)と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記少なくとも一部の層の各層の前記桁数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の桁数を前記所定桁数より少ない桁数に削減する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される桁数を変化させる。
本開示のまた別の例示な側面に従えば、データ処理システムは、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク(NN)と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記層数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記複数層に割り当てられた順位において下位側のk層を削除する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される層数kを変化させる。
本開示のさらに別の例示的な側面に従えば、データ処理システムは、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数と、前記複数の層と前記複数複数の層間結合関数を複数回繰り返し実行するリピータとを有するニューラル・ネットワーク(NN)を備える。さらに、前記データ処理システムは、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記NNの前記リピータによる繰り返し実行回数を変化させるチョッパとを備える。
本開示のまたさらに別の例示的な側面に従えば、データ処理システムは、少なくとも一種類の多重化構成要素を削減することが可能な学習済みニューラル・ネットワーク(NN)と、前記学習済みNNから、少なくとも一種類の多重化構成要素を削減した縮小モデルを発生させるサイズ縮小部とを備える。
上記のサイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小モデルの構造サイズを決定し、前記決定された構造サイズの前記縮小モデルを派生させ、そして、前記派生された前記縮小モデルを前記他のデバイスに供給する、ように構成されてよい。
本開示のさらにまた別の例示的な側面に従えば、データ処理システムは、複数階の対象テンソルと複数の分解テンソルとを有する記憶システムと、複数の分解テンソルの合成結果と対象テンソルとの誤差を小さくするように、複数の分解テンソルの1以上の要素値を修正するセッションを繰り返すオプティマイザと、前記セッションの繰り返しに関連して、複数の分解テンソルの潜在次元の次元数を可変的に削減するチョッパとを備える。オプティマイザとチョッパは交互に繰り返し動作する。
本特許出願の出願人は、本特許出願または本特許出願から派生する関連特許出願において、上に例示された側面を含む本開示のあらゆる側面に関して、特許を請求する権利を保持する。
1、11、21、41、51、61、81、91:データ処理システム
3、13、63、83、91:ニューラル・ネットワーク(NN)
5、15、65、85、95、105、115:オプティマイザ
7、17、67、87、97、107、117:チョッパ
23:NN学習部
25:学習済みNN
27、29、31:サイズ縮小部
33、35、37:縮小NN
53:ユニバーサルNN
43:サーバ
45、47、49:デバイス
55、57、59:縮小NN
103:行列記憶システム
113:テンソル記憶システム
L1〜L5、L11〜L15、L61〜L65、L81〜L8d、L91〜L9g:層
A:対象行列
B:対象テンソル
P、Q、W:分解行列(分解テンソル)

Claims (18)

  1. 1種類以上の多重化構成要素をもつニューラル・ネットワーク(NN)と、
    前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、
    前記NNの学習プロセスにおいて、前記NNの少なくとも1種類の前記多重化構成要素の多重度を削減するチョッパと
    を備え、
    前記チョッパは、前記学習プロセスにおいて、前記少なくとも1種類の多重化構成要素の中から、前記少なくとも1種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも1種類の多重化構成要素を選択的に削除することで、前記多重度を削減し、
    前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される前記少なくとも1種類の多重化構成要素の数を変化させる、
    データ処理システム。
  2. 請求項1記載のデータ処理システムにおいて、
    前記NNは、複数次元の特徴データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
    前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
    前記チョッパにより削減される前記多重度が、前記複数層のうちの少なくとも一つの層の特徴データの次元数を含み、
    前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データから、前記特徴データの前記複数次元に割り当てられた順位において下位側のk次元を削除し、
    前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される次元数kを変化させる、
    データ処理システム。
  3. 請求項1記載のデータ処理システムにおいて、
    前記NNが、フルコネクション型NNを含み、フルコネクション型NNの前記少なくとも一つの層の特徴データは複数次元ベクタであり、
    前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタの次元数を含み、
    前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタから、前記複数次元に割り当てられた順位において下位側のk次元を削除することで、前記多重度を削減し、
    前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される次元数kを変化させる、
    データ処理システム。
  4. 請求項1記載のデータ処理システムにおいて、
    前記NNが、コンボルーショナル型NNを含み、前記コンボルーショナル型NNの前記少なくとも一つの層の特徴データは、複数のチャネルを有し、
    前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データのチャネル数を含み、
    前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数チャネルから、前記複数チャネルに割り当てられた順位において下位側のk個のチャネルを削除することで、前記多重度を削減し、
    前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除されるチャネル数kを変化させる、
    データ処理システム。
  5. 請求項1記載のデータ処理システムにおいて、
    前記NNが、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
    前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
    前記チョッパにより削減される前記多重度が、前記NNの層数を含み、
    前記チョッパは、前記学習プロセスにおいて、前記複数層に割り当てられた順位において下位側のk層を削除し、
    前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される層数kを変化させる、
    データ処理システム。
  6. 請求項1記載のデータ処理システムにおいて、
    中央処理ユニット(CPU)と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
    前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  7. 請求項1記載のデータ処理システムにおいて、
    1以上のハードウェア回路を備え、前記1以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  8. 請求項1記載のデータ処理システムにおいて、
    前記学習プロセスを終了した学習済みNNと、
    前記学習済みNNから、前記多重化構成要素の多重度が削減された縮小NNを派生させるサイズ縮小部と、
    をさらに備えたデータ処理システム。
  9. 複数桁の浮動小数点数値データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク(NN)と、
    前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、
    第1の桁数の浮動小数点数値データを第2の桁数の浮動小数点数値データに変換する精度コンバータと、
    前記NNの学習プロセスにおいて、前記精度コンバータを用いて、前記複数の層のうちの少なくとも一つの層の前記浮動小数点数値データの桁数を変化させるチョッパと
    を備えたデータ処理システム。
  10. 請求項9記載のデータ処理システムにおいて、
    中央処理ユニット(CPU)と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
    前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  11. 請求項9記載のデータ処理システムにおいて、
    1以上のハードウェア回路を備え、前記1以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  12. 請求項9記載のデータ処理システムにおいて、
    前記学習プロセスを終了した学習済みNNと、
    前記学習済みNNから、前記少なくとも一つの層の前記浮動小数点数値データの桁数が削減された縮小NNを派生させるサイズ縮小部と、
    をさらに備えたデータ処理システム。
  13. 請求項12記載のデータ処理システムにおいて、
    前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された多重度を決定し、前記決定された多重度の前記縮小NNを前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
    データ処理システム。
  14. 複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数と、前記複数の層と前記複数の層間結合関数を複数回繰り返し実行するリピータとを有するニューラル・ネットワーク(NN)と、
    前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、
    前記NNの学習プロセスにおおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記リピータによる前繰り返し実行回数を所定の最大回数以下の範囲で変化させるチョッパと
    を備えたデータ処理システム。
  15. 請求項14記載のデータ処理システムにおいて、
    中央処理ユニット(CPU)と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
    前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  16. 請求項14記載のデータ処理システムにおいて、
    1以上のハードウェア回路を備え、前記1以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
    データ処理システム。
  17. 請求項14記載のデータ処理システムにおいて、
    前記学習プロセスを終了した学習済みNNと、
    前記学習済みNNから、前記リピータによる繰り返し実行回数を前記最大回数より少ない回数に削減した縮小NNを派生させるサイズ縮小部と、
    をさらに備えたデータ処理システム。
  18. 請求項17記載のデータ処理システムにおいて、
    前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された繰り返し実行回数を決定し、前記決定された繰り返し実行回数をもつ前記縮小NNを、前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
    データ処理システム。
JP2019563722A 2018-01-04 2018-01-04 ニューラル・ネットワークを有するデータ処理システム Ceased JPWO2019135274A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/000045 WO2019135274A1 (ja) 2018-01-04 2018-01-04 ニューラル・ネットワークを有するデータ処理システム

Publications (1)

Publication Number Publication Date
JPWO2019135274A1 true JPWO2019135274A1 (ja) 2020-12-17

Family

ID=67144117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019563722A Ceased JPWO2019135274A1 (ja) 2018-01-04 2018-01-04 ニューラル・ネットワークを有するデータ処理システム

Country Status (2)

Country Link
JP (1) JPWO2019135274A1 (ja)
WO (1) WO2019135274A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7068242B2 (ja) * 2019-07-31 2022-05-16 株式会社東芝 学習装置、学習方法およびプログラム
JP2021032116A (ja) * 2019-08-22 2021-03-01 トヨタ自動車株式会社 車両用制御装置、車両用学習システム、および車両用学習装置
JP2021032114A (ja) * 2019-08-22 2021-03-01 トヨタ自動車株式会社 車両用学習制御システム、車両用制御装置、および車両用学習装置
JP2021032115A (ja) 2019-08-22 2021-03-01 トヨタ自動車株式会社 車両用学習制御システム、車両用制御装置、および車両用学習装置
JP7210792B2 (ja) * 2021-05-20 2023-01-23 アクタピオ,インコーポレイテッド 情報処理方法、情報処理装置および情報処理プログラム
KR102612695B1 (ko) * 2022-10-20 2023-12-13 연세대학교 산학협력단 변동성 플로팅 포인트 뉴럴넷을 이동 표적으로 사용하여 바이너리 뉴럴넷을 학습하는 자기지도학습 방법 및 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675935A (ja) * 1992-08-26 1994-03-18 Sony Corp 多変数システム構成方法およびその装置
JP2015095215A (ja) * 2013-11-14 2015-05-18 株式会社デンソーアイティーラボラトリ 学習装置、学習プログラム、及び学習方法
JP2017097807A (ja) * 2015-11-27 2017-06-01 富士通株式会社 学習方法、学習プログラムおよび情報処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102449837B1 (ko) * 2015-02-23 2022-09-30 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675935A (ja) * 1992-08-26 1994-03-18 Sony Corp 多変数システム構成方法およびその装置
JP2015095215A (ja) * 2013-11-14 2015-05-18 株式会社デンソーアイティーラボラトリ 学習装置、学習プログラム、及び学習方法
JP2017097807A (ja) * 2015-11-27 2017-06-01 富士通株式会社 学習方法、学習プログラムおよび情報処理装置

Also Published As

Publication number Publication date
WO2019135274A1 (ja) 2019-07-11

Similar Documents

Publication Publication Date Title
JPWO2019135274A1 (ja) ニューラル・ネットワークを有するデータ処理システム
KR102558300B1 (ko) 신경망 및 신경망 트레이닝 방법
Deco et al. An information-theoretic approach to neural computing
WO2018016608A1 (ja) ニューラルネットワーク装置、車両制御システム、分解処理装置、及びプログラム
US20200026992A1 (en) Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
KR102163209B1 (ko) 컨볼루션 신경망 훈련의 다차원 병렬화 방법과 이를 수행하는 장치 사이의 재구성 가능한 연결 구조
US20200387400A1 (en) Allocation system, method and apparatus for machine learning, and computer device
KR20180075368A (ko) 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법
US20220036189A1 (en) Methods, systems, and media for random semi-structured row-wise pruning in neural networks
Assunção et al. Fast denser: Efficient deep neuroevolution
WO2020041026A1 (en) Efficently building deep neural networks
CN115017178A (zh) 数据到文本生成模型的训练方法和装置
CN114422382A (zh) 网络流量预测方法、计算机装置、产品及存储介质
JP2020123270A (ja) 演算装置
CN111915011A (zh) 一种单振幅量子计算模拟方法
Baranyi et al. Complexity reduction of singleton based neuro-fuzzy algorithm
CN115470889A (zh) 基于强化学习的片上网络自主最优映射探索系统及方法
US20230289563A1 (en) Multi-node neural network constructed from pre-trained small networks
US20220027714A1 (en) Convolution block array for implementing neural network application and method using the same, and convolution block circuit
JP7279225B2 (ja) 破滅的忘却の発生を抑えつつ、転移学習を行う方法、情報処理装置及びプログラム
EP3987456B1 (en) Cross replica reduction on networks having degraded nodes
KR20200078865A (ko) 신경망의 프루닝-재훈련 장치 및 방법
KR20210157826A (ko) 심층 신경망 구조 학습 및 경량화 방법
WO2022141189A1 (zh) 一种循环神经网络精度和分解秩的自动搜索方法和装置
JP2023076839A (ja) 機械学習装置およびプルーニング方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200703

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210611

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210713

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20211130