(57)【要約】  学習済みの一つのニューラル・ネットワーク（NN）から、規模の異なる複数のより小さいNNを派生させることを可能にする。  データ処理システムは、例えば多数の層、次元またはチャネルなどの多重化構成要素をもつニューラル・ネットワーク（NN）と、NNの学習プロセスにおいて、NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、NNの学習プロセスにおいて、NNの多重化構成要素の多重度を削減するチョッパとを備える。チョッパは、多重化構成要素に割り当てられた順位に基づいて、多重度を可変的に削減する。
2019135274.tif 000002
【特許請求の範囲】
【請求項１】
１種類以上の多重化構成要素をもつニューラル・ネットワーク（NN）と、
前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、
前記NNの学習プロセスにおいて、前記NNの少なくとも１種類の前記多重化構成要素の多重度を削減するチョッパと
を備え、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも１種類の多重化構成要素の中から、前記少なくとも１種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも１種類の多重化構成要素を選択的に削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される前記少なくとも１種類の多重化構成要素の数を変化させる、
データ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記NNは、複数次元の特徴データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
前記チョッパにより削減される前記多重度が、前記複数層のうちの少なくとも一つの層の特徴データの次元数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データから、前記特徴データの前記複数次元に割り当てられた順位において下位側のｋ次元を削除し、
前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される次元数ｋを変化させる、
データ処理システム。
【請求項３】
請求項１記載のデータ処理システムにおいて、
前記NNが、フルコネクション型NNを含み、フルコネクション型NNの前記少なくとも一つの層の特徴データは複数次元ベクタであり、
前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタの次元数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタから、前記複数次元に割り当てられた順位において下位側のｋ次元を削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される次元数ｋを変化させる、
データ処理システム。
【請求項４】
請求項１記載のデータ処理システムにおいて、
前記NNが、コンボルーショナル型NNを含み、前記コンボルーショナル型NNの前記少なくとも一つの層の特徴データは、複数のチャネルを有し、
前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データのチャネル数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数チャネルから、前記複数チャネルに割り当てられた順位において下位側のｋ個のチャネルを削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除されるチャネル数ｋを変化させる、
データ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記NNが、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
前記チョッパにより削減される前記多重度が、前記NNの層数を含み、
前記チョッパは、前記学習プロセスにおいて、前記複数層に割り当てられた順位において下位側のｋ層を削除し、
前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される層数ｋを変化させる、
データ処理システム。
【請求項６】
請求項１記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項７】
請求項１記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項８】
請求項１記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記多重化構成要素の多重度が削減された縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項９】
複数桁の浮動小数点数値データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク（NN）と、
前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、
第１の桁数の浮動小数点数値データを第２の桁数の浮動小数点数値データに変換する精度コンバータと、
前記NNの学習プロセスにおいて、前記精度コンバータを用いて、前記複数の層のうちの少なくとも一つの層の前記浮動小数点数値データの桁数を変化させるチョッパと
を備えたデータ処理システム。
【請求項１０】
請求項９記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１１】
請求項９記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１２】
請求項９記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記少なくとも一つの層の前記浮動小数点数値データの桁数が削減された縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項１３】
請求項１２記載のデータ処理システムにおいて、
前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された多重度を決定し、前記決定された多重度の前記縮小NNを前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
データ処理システム。
【請求項１４】
複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数と、前記複数の層と前記複数の層間結合関数を複数回繰り返し実行するリピータとを有するニューラル・ネットワーク（NN）と、
前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、
前記NNの学習プロセスにおおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記リピータによる前繰り返し実行回数を所定の最大回数以下の範囲で変化させるチョッパと
を備えたデータ処理システム。
【請求項１５】
請求項１４記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１６】
請求項１４記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１７】
請求項１４記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記リピータによる繰り返し実行回数を前記最大回数より少ない回数に削減した縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項１８】
請求項１７記載のデータ処理システムにおいて、
前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された繰り返し実行回数を決定し、前記決定された繰り返し実行回数をもつ前記縮小NNを、前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、ニューラル・ネットワーク応用技術に関し、特に、ニューラル・ネットワークのサイズの削減あるいは調整に関係する技術に関する。
【背景技術】
【０００２】
大サイズで複雑なニューラル・ネットワークは、それに見合った大容量で高性能のハードウェア資源を必要とする。例えば、ニューラル・ネットワークが処理するデータの次元数がR倍に増えると、各層間のウェイトの数はRの二乗倍になるから、それらのウェイトの記憶に要するメモリの容量がRの二乗倍になり、それに伴い行うべき計算量も多くなる。【０００３】
この問題に対処する一つの方法として、「モデル蒸留（Model Distillation）と呼ばれる技術が知られている（例えば、非特許文献１）。モデル蒸留によれば、大きく複雑な学習済みニューラル・ネットワーク（教師モデル）と、より小さく簡素な学習済みニューラル・ネットワーク（生徒モデル）が用意される。生徒モデルの出力データが教師モデルの出力データに近づくように、生徒モデルの学習が行われ、それにより大きいモデルの汎化能力が小さいモデルへ近似的に移転される。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】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)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
モデル蒸留によれば、大きいニューラル・ネットワークの学習とは別途に、小さいニューラル・ネットワークの学習を行う必要がある。【０００６】
本開示技術の一つの目的は、ニューラル・ネットワークのサイズを縮小するための技術を改善することにある。【０００７】
その他の目的は、後の説明から明らかにされる。
【課題を解決するための手段】
【０００８】
本開示の一側面に従えば、データ処理システムは、１種類以上の多重化構成要素をもつニューラル・ネットワーク（NN）と、前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの少なくとも１種類の前記多重化構成要素の多重度を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも１種類の多重化構成要素の中から、前記少なくとも１種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも１種類の多重化構成要素を選択的に削除することで、前記多重度を削減する。前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される前記少なくとも１種類の多重化構成要素の数を変化させる。
【図面の簡単な説明】
【０００９】
【図１】本開示に従う各実施形態が実装され得るコンピュータのハードウェア構成例を示すブロックダイヤグラム。
【図２】本開示の第１の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図３】図２のシステムにおけるチョップアウトの一方法例を示す説明図。
【図４】図２のシステムの学習プロセスの制御の一例を示すフローチャート。
【図５】図２のシステムの学習時のチョップアウトの状態変化の一例を示す説明図。
【図６】本開示の第２の実施形態にかかるデータ処理システムの構成を示す説明図。
【図７】チョップアウトを適用した学習の効果と、非適用の従来の学習の効果の違いを調べた実験結果を示す説明図。
【図８】本開示の第３の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図９】本開示の第４の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図１０】本開示の第５の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図１１】本開示の第６の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図１２】図１１のシステムの学習時のチョップアウトの状態変化の一例を示す説明図。
【図１３】本開示の第７の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図１４】本開示の第８の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【図１５】本開示の第９の実施形態にかかるデータ処理システムの構成を示すブロックダイヤグラム。
【発明を実施するための形態】
【００１０】
以下、本開示の幾つか好適な実施形態を図面を参照して説明する。
【００１１】
以下に説明するそれぞれの実施形態にかかるデータ処理システムは、典型的には、例えば、コンピュータハードウェアとそれが実行するコンピュータプログラムのセット、ハードウェア論理回路、および／または、それらの組み合わせを含んだ、コンピュータシステムを用いて実現することができる。例えば、図１に示されるコンピュータシステムは、CPU１０１、主記憶装置１０３、ストレージ１０５、マンマシンインタフェース装置１０７、入出力インタフェース装置１０９、及び各種の補助装置１１１などをハードウェア要素として有する。このようなコンピュータシステム１００において、例えば、各実施形態にかかるデータ処理システムの諸機能はストレージ１０５に格納された命令群（コンピュータプログラム）として実装されて、それらの命令群をCPU１０１が実行することにより各実施形態が実現されることができる。あるいは、各実施形態にかかるデータ処理システムの少なくとも一部の機能が、１以上の補助的なハードウェア装置（補助装置）１１１として実装され、その補助装置１１１が動作することにより、あるいは、そのことと、ストレージ１０５に格納された命令群をCPU１０１が実行することとの組み合わせにより、各実施形態が実施されることもできる。コンピュータシステム１００は、一台のコンピュータマシンでもいいし、複数のコンピュータマシンの組み合わせでもいいし、あるいは、１以上の物理コンピュータマシン上で実現される１以上の仮想コンピュータマシンであってもよい。以下では、それぞれのデータ処理システムの機能的な構成が詳細に説明される。しかし、それらの機能的構成を、具体的にどのようなハードウェア構成および／またはソフトウェア構成を実装するかについては、格別の制限はない。当業者は、その者にとり既知の設計法を用いて、各実施形態にかかるデータ処理システムを多種多様の態様で設計できることが理解できるはずなので、本明細書ではその詳細な説明を省略する。
【００１２】
図２は、本開示の第１の実施形態にかかるデータ処理システムの構成を示す。
【００１３】
図２に示されたデータ処理システム１は、ニューラル・ネットワーク（以下、「NN」と略称する）３とオプティマイザ５とチョッパ７を有する。
【００１４】
NN３は、例えばフルコネクション型のNNであり、３以上の層L1〜L5を有する。図２に示された層数はわずか５層であるが、それは例示にすぎず、任意の層数が存在してよい（実用システムの多くは非常に多数の層をもつ）。それぞれの層L1〜L5は特徴データ（入力データX、中間データZ１〜Z3、および出力データY）を保持つまり記憶する。各層の特徴データはｎ次元のベクタであり、その次元数ｎは任意の複数である（実用システムの多くでは特徴データは非常に多数の次元をもつ）。
【００１５】
それらの層L1〜L5の隣り合う層同士は、フルコネクション型の関数F1〜F4により結合される。それぞれの関数F1〜F4は、ウェイトや活性化閾値などのパラメータを有して、前層の特徴データを次層の特徴データへ変換する。
【００１６】
オプティマイザ５は、NN３の学習時にNN３のパラメータを最適化（つまり、より最適に近い方向へ修正）する。オプティマイザ５が行うパラメータ最適化方法の典型例の一つはバックプロパゲーションであるが、それ以外の既存の方法、あるいは、将来開発される新しい方法であってもよい。
【００１７】
チョッパ７は、NN３の学習時に、NN３の構造サイズを削減する。以下、ニューラルネットワークの学習時に行われるニューラルネットワークの構造サイズの削減処理を「チョップアウト（Chopout）」という。
【００１８】
一般論として、NNは、空間的または時間的な構造を有し、その構造中に、例えば、複数の層、各層の特徴データのもつ複数の次元、コンボルーショナルNNのもつ複数の特徴マップつまり複数のチャネル、または、NNの実行の複数の繰り返し回など、１種類以上の多重化された構成要素を含む。そして、NNの構造サイズは、それら多重化構成要素の多重度（つまり数）（例えば、NNの層数、各層の特徴データの次元数、コンボルーショナルNNの各層の特徴マップ数つまりチャネル数、または、NNの繰り返し実行回数など）に左右される。チョップアウトは、NN中の少なくとも１種類の多重化構成要素の多重度に対して適用される。
【００１９】
以下に説明される複数の実施形態は、それぞれ、異なる多重化構成要素の多重度に対してチョップアウトを適用した例を示す。それらの実施形態の説明では、チョップアウトに関して、ある数の構成要素を「削除する」という用語が使用される。例えば、「特徴データの下位ｋ次元セルを削除する」、「下位側のｋ個のチャネルを削除する」、あるいは「下位側のｋ個の層を削除する」などである。本開示における「削除する」という用語の意味範疇には、文字通りの削除するという意味のほかに、それを後に復元して利用できるようにそれを「一時的に無効にする（一時的に機能しないようにする）」という意味も含まれることに注意されたい。例えば、「特徴データの下位ｋ次元セルを削減する」という処理は、その下位k次元セルを一時的に無効にするが、その後にその下位k次元セルを、それが無効にされる前の状態に復元して再び利用することができる、という処理であり得る、ことに注意されたい。
【００２０】
図２に示されたデータ処理システム１では、各層の特徴データの次元数が上述した多重度の一例として採択され、この次元数に対してチョップアウトが適用される。すなわち、チョッパ７は、NN３の学習プロセス中、層L1〜L5の特徴データX,Z1〜Z3,Yの各々の次元数を削減する。このチョップアウトでは、各層の特徴データがもつ複数の次元セルに対して予め所定の順位が割り当てられ、その順位に沿ってどの次元セルを削除する（一次的に無効化する）かが決定される。
【００２１】
以下、このチョップアウトの一方法例について、図３〜図５を参照して、より具体的に説明する。
【００２２】
図３は、システム１で採用されるチョップアウトの方法例の基本を説明する。
【００２３】
図３Aに示された層Lは、NN３の任意の一つの層を意味する。層Lは、ｎ次元の特徴データV(v1, v2, v3,...,vn)を保持する。特徴データV(v1, v2, v3,...,vn)は、例えばｎビットのバイナリデータであり得る。各層特徴データV(ｃ)を構成するｎ個の次元セル（つまり、v1, v2, v3,...,vn）はそれぞれ所定の互いに異なる順位を割り当てられる。どの次元セルがどの順位をもつかという順位の割り当ては設計者が任意に決めてよい。図３では、最も単純な設定例として、より左に位置する次元セルに対してより高い順位が与えられ、より右に位置する次元セルに対してより低い順位が与えられている。したがって、図３の場合、第1次元セルv1は優先度が最高位であり、第２次元セルv2は第２位であり、第３次元セルv3は第３位であり、...、第ｎ次元セルvnは最下位である。
【００２４】
特徴データの次元数を削減するチョップアウトの一つの方法は、図３Bに示すように、特徴データV(v1, v2, v3,...,vn)の中で順位が1番からi番までの上位側のi個の次元セル（以下、「上位i次元セル」という）（図３Bでハッチングが付されたセル）は残すこととし、順位がi+1番から最下位のｎ番までの下位側のｋ個の次元セル（以下、「下位ｋ次元セル」という）に値“０”をセットすることである。図３の例では、最も右側に位置するｋ個の次元セルvi+1, vi+2, ..., vnに値“０”がセットされる。下位ｋ次元セルに値“０”をセットすることは、下位ｋ次元セルを特徴データから削除した、つまり一時的に無効化したことを、実質的に意味する。
【００２５】
特徴データの下位ｋ次元セルを削除する別のチョップアウト方法として、或る層Lを次層へ結合する層間結合関数Fのうち、層Lの下位ｋ次元セルに関与するパラメータを削除または一次的に無効化する（例えば、該当のウェイトに値“０”をセットする）という方法を採用してもよい。あるいは、或る層Lとその前層との層間結合関数Fのうち、層Lの下位ｋ次元セルに関与するパラメータを削除または一次的に無効化する（例えば、該当のウェイトに値“０”をセットするか、活性化閾値に活性化不能な値をセットする）という方法を採用してもよい。いずれの方法でも、層Lの特徴データの下位k次元は実質的に削除つまり一時的に無効化される。
【００２６】
NN３の学習時には、多数の入力データ（訓練データ）がNN３に逐次に入力され、各訓練データの入力の都度、NN３が動作して出力データを生成し、そして、その出力データの損失（期待出力データに対する誤差）に応じてNN３の関数F1〜F4のパラメータが修正される。以下、各訓練データの入力都度の学習動作を「学習セッション」と呼ぶことにする。多くの訓練データを順次にNN３に入力することで、多数回の学習セッションが繰り返される。
【００２７】
上述したチョップアウトは、繰り返される学習セッションの各々において、NN３のすべての層（または、少なくとも一部の層）に対して実行される。その際、学習セッションごとに、および／または、層ごとに、チョップアウトで削除される特徴データの下位次元数ｋを変えることができる。
【００２８】
図４は、学習セッションごと、および層ごとの、チョップアウトによる削除次元数ｋの変化の例を示す。図４では、NN３の各層の削除された次元セルを白抜きのブロックで示し、削除されない次元セルをハッチング付きのブロックで示す。
【００２９】
図４Aは最初の学習セッションの例を示し、図４Bは次の学習セッションの例を示す。用意された多数の訓練データ（入力データ）を順次に用いた多数回の学習セッションが終わると、図４Cに示すように、同じ訓練データのセットを再び用いて次のサイクルの多数回の学習セッション繰り返しを行うことができる。
【００３０】
このような学習プロセスにおいて、図４に例示するように、同じ学習セッションでは、各層特徴データから削除つまり一次的に無効化される（例えば、値“０”がセットされる）下位次元数ｋは、層によって異なる。また、図４の例では、同じ層において、削除つまり一次的に無効化される下位次元数ｋは、学習セッションによって異なる。どのように削除される下位次元数を変えるかについては、例えばランダムに変えてもいいし、あるいは、或るルールに従って変えてもよい。図４の例では、常に層ごとに、および常に学習セッションごとに、削除下位次元数ｋが変わるが、必ずしもそうしなければならないわけではない。多数回の学習セッションをもつ学習プロセスを通じて、すべての層または少なくとも一部の複数層のそれぞれの削除下位次元数が変動するように構成されることが望まれる。
【００３１】
図５は、データ処理システム１のための学習プロセスの制御の一例を示し、この学習プロセスの中で上述したチョップアウトが行われる。
【００３２】
図５に示すように、学習プロセスの開始に当たり、オプティマイザ５が、NN３のすべての層間結合関数F1〜F4のパラメータを初期化する（ステップS1）。その後、チョッパ７が、今回の学習セッションのための各層L1〜L5の残存上位次元数i（層によってiは異なる）を決定し、各層のi+1番から最下位ｎ番までの下位ｋ次元セルを削除する（例えば値“０”をセットする）（ステップS2）。以下、このように各層の下位ｋ次元セルが削除された状態を「チョップアウト状態」という。
【００３３】
その後、各層L1〜L5のチョップアウト状態を維持した状態で、NN３に今回の学習セッションのための新しい入力データ（訓練データ）を入力し、NN３を作動させ、出力データを得る（ステップS3）。そして、オプティマイザ５が、その出力データに基づいて、例えば、バックプロパゲーション法を用いて、層間結合関数F1〜F4のパラメータを索敵方向へ調整する（ステップS4）。
【００３４】
以後、上述したステップS2〜S4の学習セッションを、所定の学習終了条件が満たされるまで（例えば、実行した学習セッションの回数が所定数になるまで、あるいは、学習セッション毎の出力データの損失の改善変化率が所定値以下になるまで）繰り返す（ステップS5）。
【００３５】
以上のようにして、学習プロセス中にチョップアウトにより各層の次元数を変化させることにより、各層のより順位の高い上位次元セルに、より重要度の高い特徴値が集まるように、NN３が最適化される、と推測される。したがって、学習済みのNN３が一旦得られたならば、その学習済みNNの各層の下位次元側の一部分を削除することで、これをより小さいサイズのNNに縮小したとしても、その縮小NNは、元のフルサイズの学習済みNN３とそれほど遜色のない出力精度を達成できると、期待される。しかも、元のNN３の学習プロセスさえ行えば、縮小NNの再学習は不要である。このことは、NNの小型化、演算量の低減、必要なハードウェア資源量の削減、スループットの向上などに貢献し得る。
【００３６】
図６は、本開示の第２の実施形態にかかるデータ処理システムの構成を示す。
【００３７】
図６に示されたデータ処理システム１１は、コンボルーショナル型のNN（以下、「CNN」と略称する）１３と、オプティマイザ１５と、チョッパ１７を有する。
【００３８】
CNN１３は、複数の層L11〜L15を有する。図６の例示では、CNN１３の層数は５層にすぎないが、たいていの実用CNNは非常に多数の層を持つ。
【００３９】
各層は特徴データ（入力データXX、中間データZZ1〜ZZ3、出力データYY）を保持つまり記憶する。各層の特徴データは、長さ軸M次元×幅軸N次元×チャネル軸D次元のサイズをもつ多次元データである。すなわち、各層の特徴データは、D個のチャネルつまり特徴マップを有し、各特徴マップは長さ軸M次元×幅軸N次元のサイズをもつマトリクスである。
【００４０】
CNN１３の層間の結合関数F11〜F14は、例えばコンボリューション演算を行うコンボルーショナル関数、または、プーリング演算を行うプーリング関数であり、コンボルーショナル関数とプーリング関数は例えば交互に配置される。図６に示した例では、最初と３番目の結合関数F11とF13はコンボルーショナル関数であり、２番目と4番目の結合関数F12とF14はプーリング関数である。
【００４１】
図６に示されたCNN１３の最終層L15には、さらに、最終的な出力データを生成するためのフルコネクション型のニューラル・ネットワークが結合されている（図６では図示省略）。
【００４２】
オプティマイザ１５は、CNN１３の学習プロセスにおいて、CNN１３の層間結合関数、とりわけ、コンボルーショナル関数F11とF13のパラメータを最適化する。最適化方法としては、例えば、最終出力データの損失（誤差）に基づいたバックプロパゲーション、あるいは、その他の方法が採用できる。
【００４３】
チョッパ１７は、CNN１３の学習プロセスにおいて、各層の特徴マップの数つまりチャネル数Dに対してチョップアウトを適用する。すなわち、チョッパ１７は、複数のチャネルつまり特徴マップを有する層L12〜L15すべて（またはその一部）のチャネル数D2〜D5を、学習プロセス中に削除する。図６の例では、入力層F11は、そのチャネル数D1は“１”であるため、チョップアウトが非適用であるが、入力層F11のチャネル数D1が複数であれば、入力層F11にもチョップアウトが適用され得る。
【００４４】
チャネル数Dのチョップアウトの方法には、図３〜図５を参照して説明した、特徴データの次元数のチョップアウトのやり方と同じ原理を用いることができる。すなわち、各層の複数の特徴マップ（チャネル）予め順位を割り当てたうえで、順位の上位側のi個のチャネル（以下、「上位iチャネル」という）だけを残して、順位がi+1番から最下位までの下位側のｋ個のチャネル（以下、「下位ｋチャネル」という）を削除つまり一次的に無効化する。そして、学習プロセス中、各層の残存上位チャネル数iを、例えば学習セッション毎にランダムに、あるいは他の所定のルールに従って、変化させることができる。下位kチャネルを削除または一次的に無効化する方法としては、該当チャネルの特徴マップのM次元×N次元の全セルに値“０”をセットするか、あるいは、その特徴マップに関与する層間結合関数を一次的に無効化する（演算をしない、あるいは、無効値が出る演算を行う）、などの方法が採用し得る。
【００４５】
なお、プーリング関数F12、F14から出力される層L13、L15については、チャネル数Dのチョップアウト適用を省略してもよい。それらの層L13、L15の前段の層L12、L14のチャネル数D2、D4を削減すれば、自ずとそれらの層L13、L15のチャネル数D3、D5も同様に削減されるからである。しかし、それらの層L13、L15に対して、前段の層L12、L14のチャネル数削減に加えて、追加のチャネル数削減を適用してもよい。
【００４６】
さらに、チョッパ１７は、学習プロセスにおいて、CNN１３の下流にあるフルコネクション型のNN（図６では図示省略）の各層特徴データの次元数についても、すでに図３〜図５を参照して説明したようなチョップアウトを適用することができる。
【００４７】
このようなCNN１３の学習プロセスにおける各層チャネル数Dに対するチョップアウト適用により、各層のより順位の高いチャネルに、より重要な特徴が集まるように、CNN１３の学習が行われると、予想される。したがって、学習済みのCNN１３が一旦得られたなら、そのCNN１３のコンボルーショナル演算とプーリング演算に関わる層から下位側のチャネルを除去し、また、その下流のフルコネクション型NNの層から下位次元セルを除去することで、縮小CNNを派生させることができる。その縮小CNNを用いて推論を行った場合、元のフルサイズのCNN１３とそれほど遜色のない出力精度が達成できることが、期待される。しかも、その縮小CNNの再学習は必要ではない。
【００４８】
図７は、上述したようなチョップアウトを適用した学習と、チョップアウトを適用しない従来の学習との効果の違いを調べた実験結果を示す。
【００４９】
その実験では、まず、同一構成の２つのNNが用意された。各NNは、図６に示されたCNN１３と同様、コンボルーション演算とプーリング演算を複数回繰り返す前段のCNNと、その前段CNNの最終層に結合された、フルコネクション型の後段NNを備えていた。
【００５０】
そして、一方のNNを、チョップアウトを適用したやり方で学習させ、他方のNNを、チョップアウト非適用の従来のやり方で学習させた。いずれのNNも、CIFAR-10と呼ばれる１０種類の物体（飛行機、自動車、鳥、猫など）を示す画像セットを訓練データとして入力して、その画像セットの物体種別を判別する方法を学習した。学習時にチョップアウトを適用したか適用しなかったかという違いのみを除いて、両NNの学習条件は同じであった。
【００５１】
このようにして、チョップアウト適用の学習済みNNと、チョップアウト非適用の学習済みNNとが作成された。
【００５２】
次に、これらチョップアウト適用と非適用の２つの学習済みNNの各々から、それぞれの層の下位次元部分（前段CNNでは図６で説明したような各層の下位チャネル部分、後段フルコネクションNNでは図３で説明したような各層の下位次元セル部分）を削除することで、縮小NNを派生させた。その際、チョップアウトを適用したすべての層の残存上位次元数（前段の残存上位チャネル数と、後段の残存上位次元セル数）iの元のフルサイズNNの総次元数に対する比率（以下、「サイズ縮小率」という）を９０％から１０％まで１０％づつ異ならせた、９種類の縮小NNを派生させた。
【００５３】
そして、チョップアウト適用NNと非適用NNのそれぞれに関して、元のフルサイズの学習済みNN（サイズ縮小率１００％）と上記９種類の縮小NNに、CIFAR-10の画像セットを判別させて、その判別精度を測定した。
【００５４】
その結果、図７に示されるように、チョップアウト適用NNに関しては、サイズ縮小率が１０％の非常に小さいNNであっても、５０％以上の判別精度が得られ、サイズ縮小率が３０％以上のNNは８０％以上の判別精度（フルサイズNNにほぼ匹敵する精度）が得られた。これに対して、チョップアウト非適用NNについては、どの縮小NNも明らかに判別精度が悪く、サイズ縮小率が９０％のフルサイズに近いサイズのNNであっても、判別精度が８０％に満たなかった。
【００５５】
さらに、図示してないが、MNISTと呼ばれる手書き文字の画像セットについて、図２に示したようなフルコネクション型のNNを用いて同様の実験を行ったところ、チョップアウト適用NNに関しては、サイズ縮小率１０％で判別精度７３％、サイズ縮小率２０％で判別精度９５％、サイズ縮小率３０％〜４０％で判別精度９８％、そして、サイズ縮小率５０％以上で判別精度９９％が得られた。
【００５６】
以上の実験結果から、チョップアウト適用の学習プロセスを終えたNNは、出力精度をある程度高く維持しつつ、その構造サイスを縮小可能であることが分かった。
【００５７】
図８は、本開示の第３の実施形態にかかるデータ処理システムの構成を示す。
【００５８】
図８に示されたデータ処理システム２１は、サイズの異なる同用途の複数の推論モデルを生成するためのシステムである。このデータ処理システム２１は、訓練データ２２と、その訓練データ２２を用いて所与のNNの学習を行うNN学習部２３を有する。NN学習部２３は、例えば、すでに説明した図２あるいは図６に示されたデータ処理システム、または、後述する図１０、図１１もしくは図１３に示されたデータ処理システムを備える。以下では、説明の都合上、NN学習部２３が図２のデータ処理システムをもつ場合を例にとり説明する。
【００５９】
NN学習部２３による学習プロセスが終わると、学習済みNN２５が生成される。学習済みNN２５は、その構造サイズを縮小することが可能である、すなわち、学習済みNN２５は、それに含まれる少なくとも1種類の多重化構成要素の多重度を削減することで、その構造サイズを縮小可能である。例えば、図２に示されたNN３を学習させることで得られる学習済みNNは、学習プロセス後に、各層の特徴データの次元数を削減する（つまり、下位次元セルを削除する）ことで、サイズ縮小が可能である。
【００６０】
システム２１は、さらに、サイズ縮小部２７、２９、３１を有し、それらは、学習済みNN２５のサイズをそれぞれ異なる縮小率で縮小することにより、異なる構造サイズをもつ縮小NN３３、３５、３７を派生させる。例えば、学習済みNN２５が、図２に示されたフルコネクション型NNである場合、サイズ縮小部１７、２９、３１は、例えば図８Bに示すように、そのフルコネクション型の学習済みNN２５から、それぞれ、破線、一点鎖線、二点鎖線で示すように異なる次元数の上位次元部分を選んで複製することで、縮小NN３３、３５、３７を派生させる。
【００６１】
システム２１は、学習済みNN２３の構造または種類が上記と異なれば、サイズ縮小のために削減し得る多重化構成要素の種類が異なり得る。例えば、図６に示したCNN１３の学習済みモデルは、その各層の特徴データのチャネル数を削減することで、その構造サイズを縮小できる。図１０に示したNN６３の学習済みモデルは、その各層の浮動小数点数値データの精度つまり桁数を削減することで、その構造サイズを縮小できる。図１１に示したNN８３の学習済みモデルは、その深さつまり層数を削減することで、その構造サイズを縮小できる。図１３に示したNN９３の学習済みモデルは、その繰り返し実行回数を削減することで、その構造サイズを縮小できる。
【００６２】
このシステム２１によれば、適用デバイスの性能やその他の実装条件に応じて所望の構造サイズの学習NNを作成する場合、どのようなサイズのNNが所望されても、学習プロセスが一本化され、NNサイズごとの再学習が不要である。それにより、学習コストの削減、学習プロセスの管理の容易化と一貫化などのメリットが期待できる。
【００６３】
図９は、本開示の第４の実施形態にかかるデータ処理システムの構成を示す。
【００６４】
図９に示されたデータ処理システム４１は、性能または容量において相違する異なる種類のデバイス４３、４５、４７、４９（例えば、サーバ、パーソナル情報端末、車載機器、IoT機器など）に対して、それぞれのデバイスの容量または性能に適したサイズをもつ共通用途の推論モデルを提供することができる。
【００６５】
このシステム４１では、或る一つのデバイス、例えば通信ネットワーク上のサーバ４３が、チョップアウト適用の学習プロセスを終えたフルサイズの学習済みNN５３を有する。このフルサイズ学習済みNN５３は、そのサイズを縮小すればどのデバイスにも適した縮小NNになり得る、クロスデバイスつまりユニバーサルなNNである。
【００６６】
サーバ４３は、他のデバイス４５、４７、４９の各々に推論モデルを提供するために、他のデバイス４５、４７、４９の各々と通信してその容量や性能などを把握する。そして、サーバ４３は、把握された他デバイス４５、４７、４９の各々の容量や性能に応じた適切な構造サイズをもった縮小NN５５、５７、５９を、ユニバーサルNN５３から前述したような方法で（例えば、各層の下位次元部分を削除することで）派生させる。そして、サーバ４３は、縮小NN５５、５７、５９の各々を、対応するデバイス４５、４７、４９の各々に、例えば通信ネットワークを通じて供給する。各デバイス４５、４７、４９は、それぞれ、受信した縮小NN４５、４７、４９を自デバイス上にデプロイし、そして実行する。
【００６７】
このシステム４１によれば、容量や性能の異なるデバイス毎の学習が不要になり、また、異なるデバイスを通じた学習の一本化を担保できるというメリットが期待できる。
【００６８】
図１０は、本開示の第５の実施形態にかかるデータ処理システムの構成を示す。
【００６９】
図１０に示されたデータ処理システム６１は、浮動小数点形式の数値データにチョップアウトを適用可能にしたものである。
【００７０】
このシステム６１は、例えばフルコネクション型のNN６３を有し、このNN６３の各層L1〜L5の特徴データは浮動小数点形式の数値データであり、その精度つまり桁数（次元数）は最大で例えば１２８ビットである。精度コンバータ６９は、所定の（例えば公知の）浮動小数点精度変換方法を用いて、各層特徴データの精度つまり桁数を、複数の異なる桁数のセット（例えば、１２８ビット、６４ビット、３２ビット、１６ビット、８ビット、４ビット、および1ビットのセット、あるいは、このセットにさらに中間的なビット数も加えたセットなど）の中の任意の桁数から別の任意の桁数へと変換することができる。また、精度コンバータ６９は、各層特徴データの桁数変換に伴って、各層間の結合関数F1〜F4のパラメータも変換することができる。
【００７１】
チョッパ６７は、NN６３の学習プロセスにおいて、精度コンバータ６９を制御して、NN６３の各層の浮動小数点数値データの精度つまり桁数を随時に変更する。この桁数つまり精度の変更の方法として、例えば、図３〜図５を参照して説明したような学習セッションごとに各層の桁数をランダムに変える方法、あるいは、その他の所定ルールに基づいて各層桁数を変える方法など、を採用することができる。
【００７２】
オプティマイザ６５は、NN６３の学習プロセスにおいて、層間結合関数F1〜F4のパラメータを、例えばバックプロパゲーションの方法により、最適化する。
【００７３】
このシステム６１によれば、一つの学習プロセスで、任意の精度の浮動所数点数値方式のNNを生成することができる。
【００７４】
図１１は、本開示の第６の実施形態にかかるデータ処理システムの構成を示す。
【００７５】
図１１に示されたデータ処理システム８１では、多層のNN８３の深さつまり層数にチョップアウトが適用される。
【００７６】
NN８３は、例えば、同一サイズ（同一次元数）の多数（ｄ個）の層L81〜L8dを有し、特定サイズの特徴データを入力し、それと同サイズの特徴データを出力する。このようなNNの構造型の一例として、ResNet （Residual Network）がある。オプティマイザ８５は、NN８３の学習プロセスにおいて、NN８３の層間結合関数のパラメータを最適化する。
【００７７】
チョッパ８７は、NN８３の学習プロセス中、NN８３の深さつまり層数に対するチョップアウト、つまり、層数を変化させながら削減する。NN８３の各層L81〜L8dには順位が予め与えらえており、チョップアウトにより削除される層は、その順位に従って決定される。例えば、ｄ個の層中のより深い層（出力層L8dにより近い層）ほどより低い順位が与えられる。そして、例えば、下位側のｋ個の層（以下、下位ｋ層という）がチョップアウトにより削除つまり一次的に無効化される。削除される下位層数ｋは、学習プロセス中、例えば学習セッション（新しい訓練データが入力される回）ごとに変化する。下位ｋ層を削除つまり一次的に無効化する方法の一つは、残存する上位層の中の最下位の層の特徴データを、そのNN８３の出力データとすることである。
【００７８】
図１２は、図１１に示されたシステム８１の学習時におけるチョップアウトによる深さの変化の一例を示す。
【００７９】
図１２に示された例では、学習プロセス中、チョッパ８７は、各学習セッションの都度、つまり各入力データ（訓練データ）の入力の都度、削除される下位層数ｋを変化させる。しかし、必ずしも学習セッション都度の変化を採用する必要はなく、他の方法、例えば、何らかのルールを用いて削除層数ｋを学習プロセス中に変化させてよい。
【００８０】
このようにNNの深さにチョップアウトを適用することで、一本化された学習プロセスだけで、深さ（これは、NNをソフトウェアで実装した場合には計算量つまり計算時間に、ハードウェアで実装した場合にはハードウェア規模とコストに、直接影響する）と出力精度とのトレードオフをとることができる。
【００８１】
図１３は、本開示の第７の実施形態にかかるデータ処理システムの構成を示す。
【００８２】
図１３に示されたデータ処理システム９１では、同一のNN９３が繰り返し実行される場合に、その繰り返し実行回数にチョップアウトが適用される。
【００８３】
NN９３は、多数の層L91〜L9gを有し、例えば、入力データXとｎ次元特徴ベクタVを入力して、出力データY（またはその一部）であるｎ次元特徴ベクタVを入力へフィードバックする。ここで、このNN９３全体の関数をV’＝ｆ（X,V）と表記する。
【００８４】
NN９３は、さらに、リピータ９９を有する。リピータ９９は、NN９３の特徴ベクタVのフィードバックと、NN９３の繰り返し実行回数を制御する。すなわち、リピータ９９は、
V’＝f(X, V), V’’=f(X, V’), V’’’=f(X, V’’) .....
のように、NN９３を複数回（R回）繰り返して実行する。この繰り返し実行により、特徴ベクタ（出力データ）V, V’, V’’, V’’’,....の精度が向上していく。
【００８５】
オプティマイザ９５は、NN９３の学習プロセスにおける各学習セッションで、NN９３の層間結合関数をより最適に近い方向へ修正する。オプティマイザ９５は、このような学習セッションを複数回繰り返す。
【００８６】
チョッパ９７は、NN９３の学習プロセスの各学習セッションにおいて、リピータ９９を制御して、上述した繰り返し実行回数Rを所定の最大回数Rmaxと所定の最小回数Rmin（例えば、１回）の間で変化させる。繰り返し実行回数Rを変化させる態様には制限はないが。例えば、学習セッション毎にランダムに繰り返し実行回数Rを変化させてよい。あるいは、他の何等かのルールを用いて、繰り返し実行回数Rを変化させてよい。
【００８７】
なお、図１３に示されたNNの構成は単なる例示にすぎず、他の任意の構成をもつNNに関して、その繰り返し実行回数にチョップアウトを適用することもできる。
【００８８】
このような繰り返し実行回数へのチョップアウトの適用により、一本化された学習プロセスだけで、繰り返し実行回数（これは、計算時間に直接影響する）と出力の精度とのトレードオフをとることが可能である。
【００８９】
以上説明した幾つかの実施形態では、NNにチョップアウトが適用されている。しかし、チョップアウトの適用対象はNNに限られるわけではなく、例えば次元数、繰り返し回数、ネットワークの深さなどの「多重化構成要素の多重度」という概念をもつ任意の機構にチョップアウトが適用可能である。例えば、行列分解やテンソル分解に関わる構成要素がもつ或る次元方向の次元数に対してもチョップアウトを適用することができる。これにより、低次元な行列分解またはテンソル分解においても、ある程度に良好な同時学習が可能になる。
【００９０】
図１４は、行列分解にチョップアウトを適用したデータ処理システムの構成例を示す。
【００９１】
図１４に示されたシステム１０１において、行列記憶システム１０３は、入力された分解対象の行列（つまり２階のテンソル）Aと、その対象行列Aを分解することで得られる（換言すれば、対象行列Aを合成できる）と期待される２つの分解行列PとQを有する（記憶する）。対象行列Aは、例えば、行数（列方向次元数）M×列数（行方向次元数）Nのサイズをもつ。第一の分解行列Pは行数M×列数（潜在次元方向の次元数）Rのサイズをもち、第二の分解行列Qは行数（潜在次元方向の次元数）R×列数Nのサイズをもつ。
【００９２】
２つの分解行列PとQのそれぞれの要素値には、最初、それぞれの所定の初期値が設定される。オプティマイザ１０５は、２つの分解行列PとQの合成結果（例えば、積）と、対象行列Aとの間の誤差を最小化するように（つまり、分解行列Pのi番目行ベクトルp_iと分解行列Qのj番目列ベクトルq_jの内積と、対象行列Aのi,j番目要素値a_i,jとの間の誤差を最小化するように）、２つの分解行列PとQの各要素値を修正する。オプティマイザ１０７は、このように２つの分解行列PとQのそれぞれの要素値を修正するセッションを、逐次に繰り返していくことで、上記誤差を最小に近づけていく。
【００９３】
オプティマイザ１０５により分解行列PとQの1以上の要素値が修正される各セッションに先立ち、チョッパ１０７が、２つの分解行列PとQの潜在次元方向の次元数R（つまり、行列Pの列数と、行列Qの行数）を部分的に削減する（チョップアウトする）。すなわち、チョッパ１０７は、潜在次元方向の次元数Rの各位置（つまり、行列Pの各列と、行列Qの各行）に、予め順位を与える（図１４に示した例では、行列Pではより左方の列に、行列Qではより上方の行に、それぞれ、より高い順位を与えられる）。そして、チョッパ１０７は、分解行列PとQの低順位側の次元数R1（図中の行列Pの右側白抜き部分と、行列Qの下側白抜き部分）を各分解行列PとQから削除して（一次的に無効にして）、高順位側の次元数R2（図中の行列Pの左側ハッチング部分と、行列Qの上側ハッチング部分）を残存させる。このように、２つの分解行列PとQの潜在次元方向の次元数が元のRからR2に削減される（つまり、低順位側の次元数R1がチョップアウトされる）。ここで、チョップアウトされる次元数R1はゼロからRマイナス１までの範囲で可変である。この潜在次元数のチョップアウトの後、オプティマイザ１０５が、２つの分解行列PとQの1以上の要素値の修正セッションを、上記のようにして行う。その後、チョッパ１０７は、２つの分解行列PとQの潜在次元方向の次元数Rの削減（チョップアウト）を再び行う。この時には、削減次元数R1（残存次元数R2）を前セッションのそれとは違える（つまり、セッション毎に、削減次元数R1（残存次元数R2）を変化させる）。その後、オプティマイザ１０５が、２つの分解行列PとQの1以上の要素値の修正を再び行う。
【００９４】
このようにして、チョッパ１０７による分解行列PとQの潜在次元数の削減と、オプティマイザ１０５による分解行列PとQの要素値の修正とが、交互に複数回（通常は多数回）繰り返される。それにより、分解行列PとQのすべての要素値が最適に近づいていく（つまり、分解行列PとQの学習が行われる）。その結果、対象行列Aを復元できる精度を大きく落とすことなく、潜在次元数を削減することでサイズ縮小が可能な学習済み（最適化された）分解行列PとQが得られる。図８に示されたシステム２１において、学習済みNN２５に代えて学習済み分解行列PとQを採用し、そして、サイズ縮小部２７、２９、３１にて学習済み分解行列PとQの潜在次元数を削減することにより、分解行列PとQを異なるサイズに縮小できる。
【００９５】
図１５は、テンソル分解にチョップアウトを適用したデータ処理システムの構成例を示す。この例では、テンソル分解の一例として、CP（Canonical Polyadic）分解を挙げるが、他のテンソル分解（例えばTucker分解）にも、チョップアウトが適用できることを、当業者は以下の説明から理解できるはずである。
【００９６】
図１５に示されたシステム１１１において、テンソル記憶システム１１３は、入力された分解対象の３階以上（例えば、ｎ階）のテンソルB（図１５では、図示の都合上、第３階のテンソルとして示されている）と、その対象テンソルBをCP分解することで得られる（換言すれば、対象テンソルBを合成できる）と期待される３以上（例えばｎ個）の分解行列（分解テンソル）P、Q、…、Kを有する（記憶する）。対象テンソルBは、第一階の次元数M×第二階の次元数N×…×第ｎ階の次元数Lのサイズをもつ。第一の分解行列Pは第一次元方向（対象テンソルBの第一階に相当する）の次元数M×潜在次元方向の次元数Rのサイズをもち、第二の分解行列Qは第二次元方向（対象テンソルBの第二階に相当する）の次元数N×潜在次元方向の次元数Rのサイズをもち、…、第ｎの分解行列Wは第ｎ次元方向（対象テンソルBの第ｎ階に相当する）の次元数L×潜在次元方向の次元数Rのサイズをもつ。
【００９７】
ｎ個の分解行列P、Q、…、Kのそれぞれの要素値には、最初、それぞれの所定の初期値が設定される。オプティマイザ１１５は、それらｎ個の分解行列P、Q、…、Kの合成結果と、対象テンソルBとの間の誤差を最小化するように（つまり、例えば、第一分解行列Pのi番目ベクトルp_iと、第二分解行列Qのj番目ベクトルq_jと、…、第ｎ分解行列Wのｋ番目ベクトルw_kの拡張された内積（つまり、それらｎ個のベクトルp_i、q_j、…、w_kの対応要素値の積の総和）と、対象テンソルBのi,j,...,k番目要素値b_i,j,...,kとの間の誤差を最小化するように）、それらの分解行列P、Q、…、Wの各要素値を修正する。オプティマイザ１１７は、このようにｎ個の分解行列P、Q、…、Wのそれぞれの要素値を修正するセッションを、逐次に繰り返していくことで、上記誤差を最小に近づけていく。
【００９８】
オプティマイザ１１５により分解行列P、Q、…、Wの１以上の要素値が修正される各セッションに先立ち、チョッパ１１７が、それらの分解行列P、Q、…、Wの潜在次元方向の次元数Rを部分的に削減する（チョップアウトする）。すなわち、チョッパ１１７は、それらの分解行列P、Q、…、Wの潜在次元方向の次元数Rの各位置に、予め順位を与える（図１５に示した例では、より左方の位置により高い順位が与えられる）。そして、チョッパ１１７は、それらの分解行列P、Q、…、Wの低順位側次元数R1（図中の右側の白抜き部分）を削除して（一次的に無効にして）、高順位側の次元数R2（図中の左側のハッチング部分）を残存させる。ここで、チョップアウトされる次元数R1はゼロからRマイナス１までの範囲で可変である。このようにして、分解行列P、Q、…、Wの潜在次元方向の次元数が元のRからR2に削減された後、オプティマイザ１１５が、分解行列P、Q、…、Wの１以上の要素値の修正を行う。その後、チョッパ１１７は、それら分解行列P、Q、…、Wの潜在次元方向の次元数を再び削減する（チョップアウトする）。このときは、前セッションとは削減次元数R1（残存次元数R2）を違える。つまり、セッション毎に、削減次元数R1（残存次元数R2）が変化する。その後、オプティマイザ１１５が、分解行列P、Q、…、Wの１以上の要素値の修正を再び行う。
【００９９】
このような、チョッパ１１７による分解行列P、Q、…、Wの潜在次元数の削減と、オプティマイザ１１５による分解行列P、Q、…、Wの要素値の修正（最適化）とが、交互に複数回（通常は多数回）繰り返される。それにより、分解行列P、Q、…、Wのすべての要素値が最適に近づいていく（つまり、分解行列P、Q、…、Wの学習が行われる）。その結果、対象テンソルBを復元できる精度を大きく落とすことなく、潜在次元数を削減することが可能な学習済み（最適化された）分解行列P、Q、…、Wが得られる。図８に示されたシステム２１において、学習済みNN２５に代えて学習済み分解行列P、Q、…、Wを採用し、そして、サイズ縮小部２７、２９、３１にて学習済み分解行列P、Q、…、Wの潜在次元数を削減することにより、分解行列P、Q、…、Wを異なるサイズに縮小できる。
【０１００】
以上、本開示の幾つかの実施形態を説明したが、これは本開示の理解のための単なる例示にすぎず、本開示の範囲をそれらの実施形態のみに限定する趣旨ではない。本開示は、その趣旨を逸脱しない範囲で、上記の実施形態とは違うさまざまな構造または方法で実施することができる。
【０１０１】
例えば、チョップアウトが適用されるNNの多重化構成要素の多重度（例えば、層数、各層の次元数、各層のチャネル数、繰り返し実行回数など）は、前述したように、ランダムに変化させてもよいし、あるいは、何等かのルールで変化させてもよい。ランダムに多重度を変化させる場合、多重度がとり得る値のバリエーションの選択確率を最適化するプロセスを導入してもよい。そのようなプロセスとして、例えば、事前に多重度がとり得る値のバリエーションの各々に対して適当と考えられる選択確率値を割り当てる、あるいは、NNの学習プロセス中に出力データの損失（誤差）の大きさに応じて多重度がとり得る値ののバリエーションの各々に割り当てられる選択確率値を自動学習させる、などを採用することができる。
【０１０２】
チョップアウトとドロップアウト（Dropout）を併用してもよい。ドロップアウトとは、部分的な特徴データ欠損に対するNNの頑強性を得るために、学習プロセス中に、各層の特徴データの各次元セルを一定確率でドロップする（例えば、値“0”をセットする）処理である。チョップアウトとドロップアウトの併用態様の一例として、学習セッションごとに、まずチョップアウトを適用した後、各層の特徴データの残存部分にドロップアウトを適用する、という方法が採用できる。
【０１０３】
上述した各実施形態では、コンピュータで処理され得るモデル（NN、または、分解行列など）のもつ１種類の多重化構成要素の多重度（各層の次元数、各層のチャネル数、層数、繰り返し実行回数、または、潜在次元数など）にチョップアウトが適用された。しかし、一つの対象モデルにおいて、２種類以上の多重化構成要素の多重度にチョップアウトを適用することもできる。例えば、層数と各層の次元数の双方にチョップアウトを適用することもできる。あるいは、一つのモデル内の或る部分では、１種類以上の構成要素の多重度（例えば層数）にチョップアウトを適用し、別の部分では別の１種類以上の構成要素の多重度（例えば各層の次元数）にチョップアウトを適用することもできる。
【０１０４】
本開示は複数の側面を有し、そして、各側面は以下に例示する幾つかの目的またはその他の目的の少なくとも一つに貢献すると期待される。一つの例示的な目的は、モデルのサイズを縮小するための技術を改善することである。例えば、大きいモデルに基づいて小さいモデルを派生させる場合に、小さいモデルの別途の学習を不要にすることである。他の例示的な目的は、学習済みの一つのモデルから、サイズの異なる複数のより小さいモデルを生むことを可能にすることである。また別の例示的な目的は、ハードウェア資源の容量または性能に応じて、そこにデプロイされるモデルのサイズを調整できるようにすることである。さらにまた別の例示的な目的は、フルコネクション型やコンボルーショナル型など異なる構造型のニューラル・ネットワークに対して、その構造型に応じた異なるサイズ縮小のやり方を提供することである。またさらに別の例示的な目的は、システムの性能の低下を抑えつつシステムのサイズを縮小することを可能にすることである。
【０１０５】
本開示の一つの例示的な側面に従えば、データ処理システムは、１種類以上の多重化構成要素をもつニューラル・ネットワーク（NN）と、前記NNの学習プロセスにおいて、前記NNのもつパラメータのセットを修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの少なくとも１種類の前記多重化構成要素の多重度を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも１種類の多重化構成要素の中から、前記少なくとも１種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも１種類の多重化構成要素を選択的に削除することで、前記多重度を削減し、前記チョッパは、前記学習プロセスにおいて、前記オプティマイザによる前記学習セッションの繰り返しに関連して、前記削除される多重化構成要素の数を変化させる。
【０１０６】
本開示の別の例示的な側面に従えば、データ処理システムは、複数次元の特徴データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク（NN）と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記複数層のうち少なくとも一つの層の次元数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記複数次元から、前記複数次元に割り当てられた順位において下位側のｋ次元を削除する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される次元数ｋを変化させる。
【０１０７】
上記データ処理システムにおいて、前記チョッパは、前記学習プロセスにおいて、各学習セッション毎に、前記各層から削除される次元数kを変化させる、ように構成されてよい。
【０１０８】
上記データ処理システムにおいて、前記NNはフルコネクション型NNを含み、フルコネクション型NNの各層の特徴データは複数次元ベクタであってよい。その場合、前記チョッパは、前記フルコネクション型NNの少なくとも一つの層の前記複数次元から、前記複数次元に割り当てられた順位において下位側のｋ次元を削除する、ように構成されてよい。
【０１０９】
上記データ処理システムにおいて、前記NNはコンボルーショナル型NNを含み、前記コンボルーショナル型NNの少なくとも一つの層の特徴データは、複数のチャネルを有してよい。その場合、前記チョッパは、前記コンボルーショナル型NNの前記少なくとも一つの層の前記複数チャネルから、前記複数チャネルに割り当てられた順位において下位側のｋチャネルを削除する、ように構成されてよい。
【０１１０】
本開示のまた別の例示的な側面に従えば、データ処理システムは、所定桁数をもつ浮動小数点形式の数値データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク（NN）と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記少なくとも一部の層の各層の前記桁数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の桁数を前記所定桁数より少ない桁数に削減する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される桁数を変化させる。
【０１１１】
本開示のまた別の例示な側面に従えば、データ処理システムは、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク（NN）と、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記NNの前記層数を削減するチョッパとを備える。前記チョッパは、前記学習プロセスにおいて、前記複数層に割り当てられた順位において下位側のｋ層を削除する。前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される層数ｋを変化させる。
【０１１２】
本開示のさらに別の例示的な側面に従えば、データ処理システムは、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数と、前記複数の層と前記複数複数の層間結合関数を複数回繰り返し実行するリピータとを有するニューラル・ネットワーク（NN）を備える。さらに、前記データ処理システムは、前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、前記NNの学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記NNの前記リピータによる繰り返し実行回数を変化させるチョッパとを備える。
【０１１３】
本開示のまたさらに別の例示的な側面に従えば、データ処理システムは、少なくとも一種類の多重化構成要素を削減することが可能な学習済みニューラル・ネットワーク（NN）と、前記学習済みNNから、少なくとも一種類の多重化構成要素を削減した縮小モデルを発生させるサイズ縮小部とを備える。
【０１１４】
上記のサイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小モデルの構造サイズを決定し、前記決定された構造サイズの前記縮小モデルを派生させ、そして、前記派生された前記縮小モデルを前記他のデバイスに供給する、ように構成されてよい。
【０１１５】
本開示のさらにまた別の例示的な側面に従えば、データ処理システムは、複数階の対象テンソルと複数の分解テンソルとを有する記憶システムと、複数の分解テンソルの合成結果と対象テンソルとの誤差を小さくするように、複数の分解テンソルの１以上の要素値を修正するセッションを繰り返すオプティマイザと、前記セッションの繰り返しに関連して、複数の分解テンソルの潜在次元の次元数を可変的に削減するチョッパとを備える。オプティマイザとチョッパは交互に繰り返し動作する。
【０１１６】
本特許出願の出願人は、本特許出願または本特許出願から派生する関連特許出願において、上に例示された側面を含む本開示のあらゆる側面に関して、特許を請求する権利を保持する。
【符号の説明】
【０１１７】
１、１１、２１、４１、５１、６１、８１、９１：データ処理システム
３、１３、６３、８３、９１：ニューラル・ネットワーク（NN）
５、１５、６５、８５、９５、１０５、１１５：オプティマイザ
７、１７、６７、８７、９７、１０７、１１７：チョッパ
２３:NN学習部
２５：学習済みNN
２７、２９、３１：サイズ縮小部
３３、３５、３７：縮小NN
５３：ユニバーサルNN
４３：サーバ
４５、４７、４９：デバイス
５５、５７、５９：縮小NN
１０３：行列記憶システム
１１３：テンソル記憶システム
L1〜L5、L11〜L15、L61〜L65、L81〜L8d、L91〜L9g：層
A：対象行列
B：対象テンソル
P、Q、W：分解行列（分解テンソル）
【図１】
2019135274.tif 000003
【図２】
2019135274.tif 000004
【図３】
2019135274.tif 000005
【図４】
2019135274.tif 000006
【図５】
2019135274.tif 000007
【図６】
2019135274.tif 000008
【図７】
2019135274.tif 000009
【図８】
2019135274.tif 000010
【図９】
2019135274.tif 000011
【図１０】
2019135274.tif 000012
【図１１】
2019135274.tif 000013
【図１２】
2019135274.tif 000014
【図１３】
2019135274.tif 000015
【図１４】
2019135274.tif 000016
【図１５】
2019135274.tif 000017
【手続補正書】
【提出日】令和2年7月3日(2020.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１種類以上の多重化構成要素をもつニューラル・ネットワーク（NN）と、
前記NNの学習プロセスにおいて、異なる訓練データを用いて学習セッションを複数回繰り返し、前記学習セッションの各回では、前記異なる訓練データの各々を用いて前記NNのもつパラメータのセットを修正するオプティマイザと、
前記NNの学習プロセスにおいて、前記NNの少なくとも１種類の前記多重化構成要素の多重度を削減するチョッパと
を備え、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも１種類の多重化構成要素の中から、前記少なくとも１種類の多重化構成要素に割り当てられた順位に基づいて一部の数の前記少なくとも１種類の多重化構成要素を選択的に削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記学習セッションを繰り返しながら、前記削除される前記少なくとも１種類の多重化構成要素の数を変化させる、
データ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記NNは、複数次元の特徴データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
前記チョッパにより削減される前記多重度が、前記複数層のうちの少なくとも一つの層の特徴データの次元数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データから、前記特徴データの前記複数次元に割り当てられた順位において下位側のｋ次元を削除し、
前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される次元数ｋを変化させる、
データ処理システム。
【請求項３】
請求項１記載のデータ処理システムにおいて、
前記NNが、フルコネクション型NNを含み、フルコネクション型NNの前記少なくとも一つの層の特徴データは複数次元ベクタであり、
前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタの次元数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数次元ベクタから、前記複数次元に割り当てられた順位において下位側のｋ次元を削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される次元数ｋを変化させる、
データ処理システム。
【請求項４】
請求項１記載のデータ処理システムにおいて、
前記NNが、コンボルーショナル型NNを含み、前記コンボルーショナル型NNの前記少なくとも一つの層の特徴データは、複数のチャネルを有し、
前記チョッパにより削減される前記多重度が、前記少なくとも一つの層の前記特徴データのチャネル数を含み、
前記チョッパは、前記学習プロセスにおいて、前記少なくとも一つの層の前記特徴データの前記複数チャネルから、前記複数チャネルに割り当てられた順位において下位側のｋ個のチャネルを削除することで、前記多重度を削減し、
前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除されるチャネル数ｋを変化させる、
データ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記NNが、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有し、
前記オプティマイザにより修正される前記パラメータのセットが、前記層間結合関数を含み、
前記チョッパにより削減される前記多重度が、前記NNの層数を含み、
前記チョッパは、前記学習プロセスにおいて、前記複数層に割り当てられた順位において下位側のｋ層を削除し、
前記チョッパは、前記学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記削除される層数ｋを変化させる、
データ処理システム。
【請求項６】
請求項１記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項７】
請求項１記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項８】
請求項１記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記多重化構成要素の多重度が削減された縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項９】
複数桁の浮動小数点数値データをそれぞれもつ複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数とを有するニューラル・ネットワーク（NN）と、
前記NNの学習プロセスにおいて、前記NNの前記層間結合関数を修正する学習セッションを繰り返すオプティマイザと、
第１の桁数の浮動小数点数値データを第２の桁数の浮動小数点数値データに変換する精度コンバータと、
前記NNの学習プロセスにおいて、前記精度コンバータを用いて、前記複数の層のうちの少なくとも一つの層の前記浮動小数点数値データの桁数を変化させるチョッパと
を備えたデータ処理システム。
【請求項１０】
請求項９記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１１】
請求項９記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１２】
請求項９記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記少なくとも一つの層の前記浮動小数点数値データの桁数が削減された縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項１３】
請求項１２記載のデータ処理システムにおいて、
前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された多重度を決定し、前記決定された多重度の前記縮小NNを前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
データ処理システム。
【請求項１４】
請求項１記載のデータ処理システムにおいて、
前記NNが、複数の層と、前記複数の層のうちの隣り合う層間を結合する複数の層間結合関数と、前記複数の層と前記複数の層間結合関数の実行を複数回繰り返すリピータとを有し、
前記リピータが、前記学習プロセスにおける前記学習セッションの各回において、前記複数の層と前記複数の層間結合関数の実行を繰り返し回数だけ繰り返し、
前記チョッパにより削減される前記多重度が、前記リピータによる前記繰り返し回数を含み、
前記チョッパが、前記NNの学習プロセスにおいて、前記学習セッションの繰り返しに関連して、前記リピータによる前記繰り返し回数を所定の最大回数以下の範囲で変化させる、
データ処理システム。
【請求項１５】
請求項１４記載のデータ処理システムにおいて、
中央処理ユニット（CPU）と、コンピュータプログラムを格納したストレージとを有したコンピュータシステムを備え、
前記コンピュータシステムの前記CPUが、前記コンピュータプログラムを実行するときに、前記NN、前記オプティマイザおよび前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１６】
請求項１４記載のデータ処理システムにおいて、
１以上のハードウェア回路を備え、前記１以上のハードウェア回路が前記NN、前記オプティマイザ、および前記チョッパの全部または一部として動作するように構成された、
データ処理システム。
【請求項１７】
請求項１４記載のデータ処理システムにおいて、
前記学習プロセスを終了した学習済みNNと、
前記学習済みNNから、前記リピータによる繰り返し実行回数を前記最大回数より少ない回数に削減した縮小NNを派生させるサイズ縮小部と、
をさらに備えたデータ処理システム。
【請求項１８】
請求項１７記載のデータ処理システムにおいて、
前記サイズ縮小部は、他のデバイスの性能または容量に関する情報を受け、前記受けた情報に応じて前記縮小NNの前記削減された繰り返し実行回数を決定し、前記決定された繰り返し実行回数をもつ前記縮小NNを、前記学習済みNNから派生させ、そして、前記派生された前記縮小NNを前記他のデバイスに供給する、
データ処理システム。
【国際調査報告】
2019135274.tif 000018
2019135274.tif 000019
2019135274.tif 000020
2019135274.tif 000021