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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7398482ニューラル・ネットワークのデータセット依存の低ランク分解
<>
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図1
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図2A
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図2B
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図3
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図4
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図5
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図6
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図7
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図8
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図9A
  • 特許-ニューラル・ネットワークのデータセット依存の低ランク分解 図9B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-06
(45)【発行日】2023-12-14
(54)【発明の名称】ニューラル・ネットワークのデータセット依存の低ランク分解
(51)【国際特許分類】
   G06N 3/08 20230101AFI20231207BHJP
   G06N 3/0464 20230101ALI20231207BHJP
【FI】
G06N3/08
G06N3/0464
【請求項の数】 19
(21)【出願番号】P 2021575204
(86)(22)【出願日】2020-06-02
(65)【公表番号】
(43)【公表日】2022-08-29
(86)【国際出願番号】 IB2020055191
(87)【国際公開番号】W WO2020260991
(87)【国際公開日】2020-12-30
【審査請求日】2022-11-21
(31)【優先権主張番号】16/453,380
(32)【優先日】2019-06-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チョウドハリー、アナミトラ ロイ
(72)【発明者】
【氏名】ゴヤル、サウラビ
(72)【発明者】
【氏名】シャーマ、ヴィヴェク
(72)【発明者】
【氏名】チャクラバーティ、ヴェンカテサン
(72)【発明者】
【氏名】サバーワル、ヨギシュ
(72)【発明者】
【氏名】ヴェルマ、アシシュ
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2018-55260(JP,A)
【文献】米国特許出願公開第2019/0087729(US,A1)
【文献】中国特許出願公開第109858611(CN,A)
【文献】米国特許第5764858(US,A)
【文献】山本 康平 ほか,ディープラーニングのモデル軽量化技術,OKIテクニカルレビュー 233,Vol.86, No.1,日本,沖電気工業株式会社,2019年05月20日,pp.24~27
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実施される方法であって、前記方法は、
(i)目標データセット、および(ii)ニューラル・ネットワークの訓練されたモデルを取得することと、
前記目標データセットの少なくとも一部分を、前記訓練されたモデルにもたらすことと、
前記もたらされた部分に基づいて、前記目標データセットに対する、(i)前記ニューラル・ネットワークのフィルタ、および(ii)前記ニューラル・ネットワークのチャネルの、1つまたは複数のそれぞれの関連性を決定することであって、前記フィルタおよび前記チャネルの前記1つまたは複数は、前記ニューラル・ネットワークの少なくとも1つの層に対応する、前記決定することと、
前記決定された関連性に少なくとも部分的に基づいて、前記ニューラル・ネットワークの前記訓練されたモデルを圧縮することと
を含み、少なくとも1つのコンピューティング・デバイスによって遂行される、方法。
【請求項2】
前記決定することは、
前記目標データセットの前記一部分を用いて、訓練の所定の数のエポックを行うことと、
前記訓練の間に、前記1つまたは複数のフィルタおよびチャネルの活動化に基づいて、統計値を計算することと
を含む、請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記目標データセットは複数の画像を備え、前記決定することは、
前記フィルタおよび前記チャネルの前記1つまたは複数のどれが、(i)前記データセットの前記画像のすべて、(ii)関心のある特定のクラスの画像、(iii)閾値未満のいくつかの訓練サンプルを有するクラスの画像、および(iv)前記ニューラル・ネットワークの特定の層の、1つまたは複数に対して活動化されるかを決定すること
の1つまたは複数を含む、請求項1に記載のコンピュータによって実施される方法。
【請求項4】
前記訓練されたモデルの少なくとも1つの重みテンソルを調整するために、前記フィルタおよび前記チャネルの前記1つまたは複数の前記決定された関連性を用いることであって、前記少なくとも1つの重みテンソルは、前記少なくとも1つの層の前記フィルタおよび前記チャネルの前記1つまたは複数に対する重みを備える、前記用いること
を含む、請求項1に記載のコンピュータによって実施される方法。
【請求項5】
前記圧縮することは、
前記訓練されたモデルの前記少なくとも1つの重みテンソルを近似する、少なくとも1つの結果として生じるテンソルを生成するように、前記調整された少なくとも1つのテンソルに、重み付き低ランク因子分解プロセスを適用することであって、前記少なくとも1つの結果として生じるテンソルの目標ランクは、前記訓練されたモデルの前記少なくとも1つの重みテンソルのランクより小さい、前記適用すること
を含む、請求項4に記載のコンピュータによって実施される方法。
【請求項6】
高次特異値分解技術に少なくとも部分的に基づいて、前記少なくとも1つの結果として生じるテンソルの前記目標ランクを構成すること
を含む、請求項5に記載のコンピュータによって実施される方法。
【請求項7】
前記重み付き低ランク因子分解プロセスは、前記調整された少なくとも1つの重みテンソルのテンソル要素、および前記結果として生じる少なくとも1つのテンソルのテンソル要素にわたる、総偏差として定義される重み関数を最小化することを含む、請求項5に記載のコンピュータによって実施される方法。
【請求項8】
前記少なくとも1つの結果として生じるテンソルの前記テンソル要素は、前記目標データセットに対してより関連性があると決定された、前記フィルタおよび前記チャネルの1つまたは複数が、前記少なくとも1つの結果として生じるテンソル内に保持されるように、前記フィルタおよび前記チャネルの前記1つまたは複数の前記決定された関連性に直接依存する、請求項5に記載のコンピュータによって実施される方法。
【請求項9】
前記圧縮された訓練されたモデルの、(i)処理要件、および(ii)メモリ要件の1つまたは複数に対応する1つまたは複数の制約条件に、少なくとも部分的に基づいて、前記目標ランクを構成すること
を含む、請求項5に記載のコンピュータによって実施される方法。
【請求項10】
前記圧縮することは、最急降下法および共役勾配技術の1つまたは複数を適用することを含み、それによって前記少なくとも1つの重み付きテンソルおよび前記少なくとも1つの結果として生じるテンソルの重み付き誤差の測度を低減する、請求項5に記載のコンピュータによって実施される方法。
【請求項11】
前記重み付き誤差の前記測度は、フロベニウス・ノルムを含む、請求項10に記載のコンピュータによって実施される方法。
【請求項12】
前記重み付き低ランク因子分解プロセスは、タッカー分解およびCANDECOMP/PARAFAC分解プロセスの少なくとも1つを含む、請求項5に記載のコンピュータによって実施される方法。
【請求項13】
前記目標データセットによる前記圧縮された訓練されたモデルを再訓練すること
を含む、請求項1に記載のコンピュータによって実施される方法。
【請求項14】
前記訓練されたモデルは、(i)重みベースのプルーニング・プロセス、(ii)量子化および重み共有プロセスの少なくとも1つ、(iii)相対インデックス付けプロセス、および(iv)エンコーディング・プロセスの、1つまたは複数に基づいて生成された、圧縮されたモデルを備える、請求項1に記載のコンピュータによって実施される方法。
【請求項15】
前記訓練されたモデルを、前記少なくとも1つのコンピューティング・デバイスから、少なくとも1つの別個のコンピューティング・デバイスに出力することであって、前記少なくとも1つの別個のコンピューティング・デバイスは、前記少なくとも1つのコンピューティング・デバイスと比べて、(i)限られた処理能力、および(ii)メモリ能力の、1つまたは複数を有する、前記出力すること
を含む、請求項1に記載のコンピュータによって実施される方法。
【請求項16】
コンピュータ・プログラムであって、請求項1ないし15のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
【請求項17】
請求項16に記載のコンピュータ・プログラムを記録した、コンピュータ可読記憶媒体。
【請求項18】
システムであって、
メモリと、
前記メモリに動作可能に結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
(i)目標データセット、および(ii)ニューラル・ネットワークの訓練されたモデルを取得することと、
前記目標データセットの少なくとも一部分を、前記訓練されたモデルにもたらすことと、
前記もたらされた部分に基づいて、前記目標データセットに対する、(i)前記ニューラル・ネットワークのフィルタ、および(ii)前記ニューラル・ネットワークのチャネルの、1つまたは複数のそれぞれの関連性を決定することであって、前記フィルタおよび前記チャネルの前記1つまたは複数は、前記ニューラル・ネットワークの少なくとも1つの層に対応する、前記決定することと、
前記決定された関連性に少なくとも部分的に基づいて、前記ニューラル・ネットワークの前記訓練されたモデルを圧縮することと
を行うように構成される、システム。
【請求項19】
コンピュータによって実施される方法であって、前記方法は、
畳み込みニューラル・ネットワークの訓練されたモデル、および前記モデルがそれに対して訓練されたデータセットを取得することと、
少なくとも部分的に、前記データセットに対して、前記訓練されたモデルの訓練の1つまたは複数のエポックを行うことによって、(i)固有の冗長性、ならびに(ii)前記畳み込みニューラル・ネットワークの1つまたは複数の層の部分、および前記データセットの関連性を決定するために、前記訓練されたモデルを分析することであって、前記1つまたは複数の層の前記部分は、(a)フィルタ、および(b)チャネルの少なくとも1つを備える、前記分析することと、
前記決定された固有の冗長性および前記関連性に基づいて、前記訓練されたモデルを圧縮することと
を含み、少なくとも1つのコンピューティング・デバイスによって遂行される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は一般に情報技術に関し、より詳細には、ニューラル・ネットワーク・モデルの圧縮に関する。
【背景技術】
【0002】
深層ニューラル・ネットワークなど、ニューラル・ネットワークは、例えばコンピュータ・ビジョン、音声認識、および自然言語処理など、多様な人工知能応用において用いられる。深層ニューラル・ネットワークの層およびパラメータの数は、これらのモデルで用いられるデータセットのサイズと共に増加する。例えば、画像分類のための深層ニューラル・ネットワークは、16個の層と1億3千万個を超えるパラメータを含む場合があり、結果として500メガバイトを超える訓練されたモデルを生じる。従って、深層ニューラル・ネットワークはしばしば、かなりの量のコンピューティング・リソースを必要とし、それらを例えば携帯電話、およびモノのインターネット(IOT)との関連でのエッジ・デバイスなど、限られたリソースを有するデバイス上で用いることを特に難しくする。
【発明の概要】
【0003】
本発明の一実施形態において、ニューラル・ネットワークのデータセット依存の低ランク分解(low rank decomposition)のための技術がもたらされる。例示的なコンピュータによって実施される方法は、(i)目標データセット、および(ii)ニューラル・ネットワークの訓練されたモデルを取得することと、目標データセットの少なくとも一部分を、訓練されたモデルにもたらすことと、もたらされた部分に基づいて、目標データセットに対する、(i)ニューラル・ネットワークのフィルタ、および(ii)ニューラル・ネットワークのチャネルの、1つまたは複数のそれぞれの関連性を決定することであって、フィルタおよびチャネルの1つまたは複数は、ニューラル・ネットワークの少なくとも1つの層に対応する、決定することと、決定された関連性に少なくとも部分的に基づいて、ニューラル・ネットワークの訓練されたモデルを圧縮することとを含み得る。
【0004】
本明細書で述べられる主題の別の実施形態によれば、方法がもたらされ、方法は、畳み込みニューラル・ネットワークの訓練されたモデル、およびモデルがそれに対して訓練されたデータセットを取得することと、少なくとも部分的に、データセットに対して、訓練されたモデルの訓練の1つまたは複数のエポックを行うことによって、(i)固有の冗長性、ならびに(ii)畳み込みニューラル・ネットワークの1つまたは複数の層の部分、およびデータセットの関連性を決定するために、訓練されたモデルを分析することであって、1つまたは複数の層の部分は、(a)フィルタ、および(b)チャネルの少なくとも1つを備える、分析することと、決定された固有の冗長性および関連性に基づいて、訓練されたモデルを圧縮することとを含む。
【0005】
本発明の別の実施形態またはその要素は、実施されたとき、本明細書で述べられるように、コンピュータに複数の方法ステップを遂行させる、コンピュータ可読命令を有形に具現化するコンピュータ・プログラム製品の形で実施され得る。さらに、本発明の別の実施形態またはその要素は、メモリと、メモリに結合された少なくとも1つのプロセッサとを含み、記された方法ステップを行うように構成された、システムの形で実施され得る。さらに、本発明の別の実施形態またはその要素は、本明細書で述べられる方法ステップを遂行するための手段、またはその要素の形で実施されることができ、手段は、ハードウェア・モジュール、またはハードウェアおよびソフトウェア・モジュールの組合せを含むことができ、ソフトウェア・モジュールは、有形のコンピュータ可読記憶媒体(または複数のそのような媒体)に記憶される。
【0006】
本発明の、これらおよび他の目的、特徴、および利点は、添付の図面に関連して読まれる、それらの例示的実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0007】
図1】本発明の例示的実施形態による、システム・アーキテクチャを示す図である。
図2A】本明細書で述べられる主題の1つまたは複数の例示的実施形態による、訓練されたニューラル・ネットワークの異なる層におけるフィルタに対応するグラフである。
図2B】本明細書で述べられる主題の1つまたは複数の例示的実施形態による、訓練されたニューラル・ネットワークの異なる層におけるフィルタに対応するグラフである。
図3】本発明の例示的実施形態による、フィルタに対して「0-1」有意性を用いるシステム・アーキテクチャを示す図である。
図4】本発明の例示的実施形態による、フィルタに対して任意の有意性を用いるシステム・アーキテクチャを示す図である。
図5】本発明の実施形態による技術を示すフロー図である。
図6】本発明の少なくとも1つの実施形態が実施され得る例示的コンピュータ・システムのシステム図である。
図7】本発明の実施形態によるクラウド・コンピューティング環境を示す図である。
図8】本発明の実施形態による抽象化モデル層を示す図である。
図9A】重み付き分解技術および重みなし分解技術のためのコンピューティング・リソースを比較するグラフである。
図9B】重み付き分解技術および重みなし分解技術のためのコンピューティング・リソースを比較するグラフである。
【発明を実施するための形態】
【0008】
一般に、ニューラル・ネットワークは、非線形性が後続する、簡単な接続されたユニットまたはニューロンのいくつかの層を含むモデルであり、層の少なくとも1つは隠れ層である。隠れ層は、入力層(入力変数またはフィーチャに対応する)と、出力層(モデルの出力、例えば、入力例がもたらされたとき、予測または解に対応する)との間の合成層である。深層ニューラル・ネットワークとは、多数の隠れ層を含むニューラル・ネットワークを指す。
【0009】
ニューラル・ネットワークは、どのようにニューロンがそれらのそれぞれの入力に関係するかを記述する対応する重みを含む。例として、すべて1の入力テンソルに対して、より高い値(例えば、1に近い)を有する重みは、ニューロンが「発火する」可能性がより大きいことを示すことができ、より低い値(例えば、0に近い)を有する重みは、ニューロンが発火する可能性がより小さいことを示す。所与の層に対して、重みはテンソル(本明細書では「重みテンソル」と呼ばれる)を用いて表され得る。非限定的な例として、重みテンソルは、行列の各行が、ニューロンをその入力に接続する重みを表す、行列に対応し得る。
【0010】
畳み込みニューラル・ネットワークとは、層の少なくとも1つが畳み込み層であるニューラル・ネットワークを指す。畳み込み層は、畳み込みフィルタが入力テンソル(例えば、高さ×幅×チャネルの次元の入力テンソル)を伝達する層であり、畳み込みフィルタは、入力テンソルと同じランク(本明細書では「チャネル」と呼ばれる)であるが、より小さな形状を有するテンソルである。例えば、9×9入力行列に対するフィルタは、9×9より小さな任意の2D行列を含み得る(例えば、3×3行列など)。
【0011】
本明細書で留意されるように、深層ニューラル・ネットワークはしばしば、特に層およびパラメータの数が増加するのに従って、かなりのコンピューティング・リソースを必要とする。必要なコンピューティング・リソースの量を低減する1つの方法は、例えば、プルーニング、重み共有、エンコーディング、および接続重みの低ランク分解を行うことを含む、1つまたは複数の圧縮機構を用いてモデルを圧縮することである。
【0012】
低ランク分解方式の一例は、タッカー分解である。タッカー分解は、テンソルを行列のセットと、1つの小さなコア・テンソルとに分解する。例えば、3DテンソルX∈RI×J×Kのタッカー分解は、
【数1】

によって与えられ、Gはコア行列∈Rr1×r2×r3、およびA∈RI×r1、B∈RJ×r2、C∈RK×r3は3Dテンソルの各次元に沿った因子行列である。この例において、タッカー分解は、結果として次式に等しい圧縮率を生じる。
【数2】
【0013】
再構成されたテンソルは、再構成されたテンソルが重みテンソルより小さなランクを有するように、例えばニューラル・ネットワークの所与の層の重みテンソルを本質的に近似するコアと因子行列とに基づいて生成されることができ、それによって必要なサイズまたはフロップスあるいはその両方を低減する。
【0014】
既存の圧縮機構は、どのように所与のデータセットに対して重みテンソル(フィルタおよびチャネル)が挙動するかを考慮していない。例えば、いくつかのフィルタ(大きな重みエントリを有するものであっても)は、入力データセットに応じて、発火するのが少なくなり得る。
【0015】
従って、本明細書での1つまたは複数の例示の実施形態は、ニューラル・ネットワークのデータセット依存の低ランク分解のための技術を述べる。本明細書で述べられる例示の実施形態の少なくとも1つは、どのように各層における重みテンソルが特定の入力データセットに応答するかを考慮し、それにより再構成されたテンソルのランクがさらにもっと低減されることを可能にする。
【0016】
図1は、本発明の実施形態による、システム・アーキテクチャを示す図である。例として、図1は、フィルタ有意性決定モジュール106、重み付き分解モジュール108、および再訓練モジュール110を示す。フィルタ有意性決定モジュール106は、データセット104、訓練されたモデル102、および訓練されたモデル102に関連しているネットワーク情報103を取得する。ネットワーク情報103は、例えば、ニューラル・ネットワークの異なる層に対応する情報、例えば、各畳み込み層内のフィルタおよびチャネルの数などを含み得る。フィルタ有意性決定モジュール106は、訓練の1つまたは複数のエポック(例えば、順方向および逆方向パス)を行って、どのように入力画像に対して、ニューラル・ネットワークのいくつかまたはすべての層に対応するフィルタまたはチャネルあるいはその両方が応答するかを決定する。例えば、フィルタ有意性決定モジュール106は、例えば、活動化値、勾配、およびテーラー級数に対応する、統計値を計算し得る。発火する頻度が低いフィルタまたはチャネルあるいはその両方には、より低い有意性値が割り当てられる。
【0017】
また図2Aおよび図2Bを参照すると、これらの図は、特定の入力データセットが与えられた場合の、訓練されたニューラル・ネットワークの異なる層に対するフィルタ重み値の頻度に対応するグラフ200、250である。この例において、グラフ200、250は、Bird200データセット上で学習されたGoogLeNetモデル転送の結果である。グラフ200は、GoogLeNetモデルの畳み込み層「conv2/3x3」に対応し、畳み込み層(すなわち、conv2_3x3)に対する異なるフィルタ重みの頻度を示す。グラフ200から、例えば、畳み込み層における0.20と0.25の間のフィルタ重みはこのデータセットに対して用いられておらず、最も頻繁に用いられるフィルタ重みはおおよそ0.05と0.1の間であったことが分かる。図2Bのグラフ250は、訓練されたGoogLeNetモデルの別の畳み込み層(すなわち、inception_3a/3x3)に対する異なる重みの頻度を示す。グラフ250の場合、インセプション層に対する最も頻繁に用いられるフィルタ重みは、0.04と0.12の間であり、残りのフィルタ重みは用いられる頻度がずっと低かった。フィルタ有意性決定モジュール106は、特定のデータセットに対するフィルタ/チャネルの有意性を、フィルタ/チャネルの重み値、出力活動化、およびフィルタ/チャネルに対応する勾配の組合せの1つまたは複数に基づいて、割り当て得る。
【0018】
重み付き分解モジュール108は、有意性決定モジュール106によって割り当てられた有意性に基づいて、重み付きテンソル分解を行う。いくつかの例示の実施形態において、重み付き分解モジュール108は、結果として生じるテンソルに対する目標ランクを決定し、これは1つまたは複数の制約条件114(例えば、ユーザによってもたらされる制約条件など)に基づくことができる。ユーザ制約条件114は、例えば、圧縮された訓練されたモデルに対する処理要件またはメモリ要件に対応し得る。
【0019】
重み付き分解モジュール108は、因子分解プロセスを行って、訓練されたモデルを圧縮する。因子分解プロセスは、例えば、タッカー分解およびCP分解の少なくとも1つを適用することを含み得る。再訓練モジュール110は、重み付き分解モジュール108によって出力された圧縮されたモデルを再訓練し、結果として、訓練され圧縮されたモデル112を生じる。
【0020】
1つまたは複数の例示の実施形態は、訓練され圧縮されたモデル(例えば、訓練され圧縮されたモデル112など)を生成するとき、以下の方法論に基づくことができる。有意性Wを有する層の所与の重みテンソルXは、コアGと因子A、B、およびCとに分解され、Rはエントリiに対して大きな有意性W≒1に対するXに近くなり、およびRはエントリiに対して小さな有意性W≒0に対して0に近くなるように、結果として、回復されたテンソルR=G×A×B×Cを生じる。従って、Rは、W.Xと、(2-W).Xの間となるべきである。関数f(R,X)を以下のように定義する。
【数3】
【0021】
次いで、テンソル分解の目的は、f(R,X)の何らかのノルム、例えば、f(R,X)のフロベニウス・ノルムの2乗である
【数4】

を、最小化するG、A、B、およびCを決定することである。
【0022】
図3は、本発明の例示的実施形態による、「0-1」有意性を有するフィルタを用いたシステム・アーキテクチャの図である。図3に示す例において、訓練されたモデル302、ネットワーク情報303(例えば、ネットワーク情報103と同様な)、およびデータセット304の少なくとも一部分は、フィルタ有意性決定モジュール306への入力としてもたらされる。フィルタ有意性決定モジュール306は、322に示されるように、訓練のいくつかのエポック(順方向および逆方向パス)を行い、次いで324で統計値のセットを計算する。統計値のセットは、例えば、訓練されたモデルにおける各フィルタに対応する、平均活動化または勾配を含み得る。326で、フィルタ有意性決定モジュール306は、統計値のセットに基づいて、ステップ、シグモイド、およびロジスティック関数の1つまたは複数を行って、訓練されたモデルの各層に対するフィルタ有意性(W)を決定する。フィルタ有意性値は、次いで重み付き分解モジュール308への入力としてもたらされる。重み付き分解モジュール308は、338に示されるように、フィルタ値にフィルタ有意性を乗算して、ニューラル・ネットワークの所与の層に対する入力テンソルを取得する。336で、モジュール308は、1つまたは複数のリソース制約条件314に少なくとも部分的に基づいてランクを決定し、次いで334によって表されるように低ランク因子分解プロセスを行う。低ランク因子分解プロセスは、決定されたランクに等しいランクを有する、結果として生じるテンソルを生成し、結果として生じるテンソルは入力テンソルを近似する。訓練されたモデル302は、332で、データセット304と結果として生じるテンソルとを用いて再訓練される。訓練されたモデル302の圧縮されたバージョン312は、次いで重み付き分解モジュール308によって、例えば、別個のデバイスなどに出力される。
【0023】
図4は、本発明の例示的実施形態による、任意の有意性値を有するフィルタを用いたシステム・アーキテクチャの図である。図3と同様に、フィルタ有意性決定モジュール406は、訓練されたモデル402、ネットワーク情報403(例えば、ネットワーク情報103と同様な)、およびデータセット404の少なくとも一部分を取得する。フィルタ有意性決定モジュール406は、422に示されるように、訓練のいくつかのエポック(順方向および逆方向パス)を行い、424で統計値のセットを計算して、フィルタ有意性(W)を決定する。フィルタ有意性決定モジュール406は、訓練されたモデルの各層にフィルタ有意性をもたらす。重み付き分解モジュール408は、436に示されるように、ユーザ制約条件414に基づいて目標ランクを決定する。モジュール408は、次いで434で重み関数(例えば、
【数5】

)を最小化し、ここでXは入力テンソル、Rは目標ランクを有する再構成されたテンソルである。訓練されたモデル402は、432で、データセット404と再構成されたテンソルとを用いて再訓練される。訓練されたモデル402の圧縮されたバージョン412は、次いで例えば図3で述べられたのと同様なやり方で出力される。
【0024】
図5は、本発明の実施形態によるプロセス500のフロー図である。ステップ502は、目標データセットと、ニューラル・ネットワークの訓練されたモデルとを取得することを含む。ステップ504は、目標データセットの少なくとも一部分を、訓練されたモデルにもたらすことを含む。ステップ506は、もたらされた部分に基づいて、目標データセットに対する、ニューラル・ネットワークのフィルタおよびニューラル・ネットワークのチャネルの1つまたは複数のそれぞれの関連性を決定することを含み、フィルタおよびチャネルの1つまたは複数は、ニューラル・ネットワークの少なくとも1つの層に対応する。ステップ508は、決定された関連性に少なくとも部分的に基づいて、ニューラル・ネットワークの訓練されたモデルを圧縮することを含む。ステップ510は、圧縮された訓練されたモデルを出力することを含む。
【0025】
決定することは、目標データセットの一部分を用いて、訓練の所定の数のエポックを行うことと、訓練の間に、1つまたは複数のフィルタおよびチャネルの活動化に基づいて、統計値を計算することとを含み得る。目標データセットは、複数の画像を備え、フィルタおよびチャネルの1つまたは複数のそれぞれの関連性を決定することは、フィルタおよびチャネルの1つまたは複数のどれが、(i)データセットの画像のすべて、(ii)関心のある特定のクラスの画像、(iii)閾値未満のいくつかの訓練サンプルを有するクラスの画像、および(iv)ニューラル・ネットワークの特定の層の、1つまたは複数に対して活動化されるかを決定することを含み得る。プロセス500は、訓練されたモデルの少なくとも1つの重みテンソルを調整するために、フィルタおよびチャネルの1つまたは複数の決定された関連性を用いることを含み、少なくとも1つの重みテンソルは、少なくとも1つの層のフィルタおよびチャネルの1つまたは複数に対する重みを備える。圧縮することは、訓練されたモデルの少なくとも1つの重みテンソルを近似する、少なくとも1つの結果として生じるテンソルを生成するように、調整された少なくとも1つのテンソルに、重み付き低ランク因子分解プロセスを適用することを含むことができ、少なくとも1つの結果として生じるテンソルの目標ランクは、訓練されたモデルの少なくとも1つの重みテンソルのランクより小さい。少なくとも1つの結果として生じるテンソルの目標ランクを構成することは、高次特異値分解技術に少なくとも部分的に基づくことができる。重み付き低ランク因子分解プロセスは、調整された少なくとも1つの重みテンソルのテンソル要素、および結果として生じる少なくとも1つのテンソルのテンソル要素にわたる、総偏差として定義される重み関数を最小化することを含み得る。少なくとも1つの結果として生じるテンソルのテンソル要素は、目標データセットに対してより関連性があると決定された、フィルタまたはチャネルあるいはその両方が、少なくとも1つの結果として生じるテンソル内に保持されるように、フィルタおよびチャネルの1つまたは複数の決定された関連性に直接依存し得る。プロセス500は、圧縮された訓練されたモデルの、(i)処理要件、および(ii)メモリ要件の1つまたは複数に対応する1つまたは複数の制約条件に、少なくとも部分的に基づいて、目標ランクを構成することを含み得る。圧縮することは、最急降下法および共役勾配技術の1つまたは複数を適用することを含むことができ、それによって少なくとも1つの重み付きテンソルおよび少なくとも1つの結果として生じるテンソルの重み付き誤差の測度を低減する。重み付き誤差の測度は、フロベニウス・ノルムを含み得る。重み付き低ランク因子分解プロセスは、タッカー分解およびCANDECOMP/PARAFAC分解プロセスの少なくとも1つを含み得る。訓練されたモデルは、(i)重みベースのプルーニング・プロセス、(ii)量子化または重み共有プロセスあるいはその両方、(iii)相対インデックス付けプロセス、および(iv)エンコーディング・プロセスの、1つまたは複数に基づいて生成された、圧縮されたモデルを含み得る。プロセス500は、目標データセットによる圧縮された訓練されたモデルを再訓練することを含み得る。プロセス500は、訓練されたモデルを、少なくとも1つのコンピューティング・デバイスから、少なくとも1つの別個のコンピューティング・デバイスに出力することを含むことができ、少なくとも1つの別個のコンピューティング・デバイスは、少なくとも1つのコンピューティング・デバイスと比べて、(i)限られた処理能力、および(ii)メモリ能力の、1つまたは複数を有する。
【0026】
図5に示される技術はまた、本明細書で述べられるように、システムをもたらすことを含むことができ、システムは互いに異なるソフトウェア・モジュールを含み、互いに異なるソフトウェア・モジュールのそれぞれは、有形のコンピュータ可読記録可能記憶媒体上に具現化される。モジュールのすべて(またはそれらの任意のサブセット)は同じ媒体上に存在することができ、または例えばそれぞれは異なる媒体上に存在し得る。モジュールは、図に示されるまたは本明細書で述べられるあるいはその両方の構成要素の任意のものまたはすべてを含み得る。本発明の実施形態において、モジュールは、例えば、ハードウェア・プロセッサ上で実行することができる。次いで方法ステップは、上述のように、ハードウェア・プロセッサ上で実行する、システムの互いに異なるソフトウェア・モジュールを用いて遂行され得る。さらに、コンピュータ・プログラム製品は、互いに異なるソフトウェア・モジュールを有するシステムをもたらすことを含む、本明細書で述べられる少なくとも1つの方法ステップを遂行するために実行されるように適合されたコードを有する、有形のコンピュータ可読記録可能記憶媒体を含むことができる。
【0027】
本明細書で述べられる主題の別の実施形態によれば、方法は、畳み込みニューラル・ネットワークの訓練されたモデル、およびモデルがそれに対して訓練されたデータセットを取得することと、少なくとも部分的に、データセットに対して、訓練されたモデルの訓練の1つまたは複数のエポックを行うことによって、固有の冗長性、ならびに畳み込みニューラル・ネットワークの1つまたは複数の層の部分、およびデータセットの関連性を決定するために、訓練されたモデルを分析することであって、1つまたは複数の層の部分は、フィルタおよびチャネルの少なくとも1つを備える、分析することと、決定された固有の冗長性および関連性に基づいて、訓練されたモデルを圧縮することとを含む。
【0028】
加えて、図5に示される技術は、コンピュータ・プログラム製品を通じて実施されることができ、コンピュータ・プログラム製品は、データ処理システム内のコンピュータ可読記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことができ、コンピュータ使用可能プログラム・コードは、リモート・データ処理システムから、ネットワークを通してダウンロードされたものである。また本発明の実施形態において、コンピュータ・プログラム製品は、サーバ・データ処理システム内のコンピュータ可読記憶媒体に記憶されたコンピュータ使用可能プログラム・コードを含むことができ、コンピュータ使用可能プログラム・コードは、リモート・システムでコンピュータ可読記憶媒体における使用のために、ネットワークを通して、リモート・データ処理システムにダウンロードされる。
【0029】
本発明の実施形態またはその要素は、メモリと、メモリに結合された少なくとも1つのプロセッサとを含み、例示的方法ステップを行うように構成された、装置の形で実施され得る。
【0030】
加えて、本発明の実施形態は、コンピュータまたはワークステーション上で実行するソフトウェアを利用することができる。図6を参照すると、このような実装形態は、例えば、プロセッサ602、メモリ604、および例えば、ディスプレイ606およびキーボード608によって形成された入出力インターフェースを使用し得る。本明細書で用いられる「プロセッサ」という用語は、例えば、CPU(中央処理装置)または処理回路の他の形あるいはその両方を含むものなど、任意の処理デバイスを含むものである。さらに、「プロセッサ」という用語は、1つより多い個々のプロセッサを指し得る。「メモリ」とい用語は、例えば、RAM(ランダム・アクセス・メモリ)、ROM(読み出し専用メモリ)、固定メモリ・デバイス(例えば、ハード・ドライブ)、リムーバブル・メモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリなど、プロセッサまたはCPUに関連付けられたメモリを含むものである。さらに、本明細書で用いられる「入出力インターフェース」という語句は、例えば、処理ユニットにデータを入力するための機構(例えば、マウス)、および処理ユニットに関連付けられた、結果をもたらすための機構(例えば、プリンタ)を含むものである。プロセッサ602、メモリ604、ならびにディスプレイ606およびキーボード608などの入出力インターフェースは、データ処理ユニット612の一部として、例えば、バス610を通じて相互接続され得る。例えばバス610を通じた、適切な相互接続はまた、コンピュータ・ネットワークとインターフェースするためにもたらされ得る、ネットワーク・カードなどの、ネットワーク・インターフェース614に対して、および媒体618とインターフェースするためにもたらされ得る、ディスケットまたはCD-ROMドライブなどの、媒体インターフェース616に対してもたらされ得る。
【0031】
従って、本明細書で述べられるような、本発明の方法論を行うための命令またはコードを含むコンピュータ・ソフトウェアは、関連付けられたメモリ・デバイス(例えば、ROM、固定またはリムーバブル・メモリ)に記憶されることができ、利用されるように準備されたとき、一部または全体がロードされ(例えば、RAMに)、およびCPUによって実施され得る。このようなソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができるが、それらに限定されない。
【0032】
プログラム・コードを記憶するまたは実行するあるいはその両方を行うのに適したデータ処理システムは、システム・バス610を通して、メモリ要素604に直接または間接的に結合された、少なくとも1つのプロセッサ602を含むことになる。メモリ要素は、プログラム・コードの実際の実施の間に使用されるローカル・メモリ、バルク・ストレージ、および実施の間にバルク・ストレージからコードが取り出されなければならない回数を低減するために、少なくとも何らかのプログラム・コードの一時的ストレージをもたらすキャッシュ・メモリを含むことができる。
【0033】
入出力またはI/Oデバイス(キーボード608、ディスプレイ606、ポインティング・デバイスなどを含むが、それらに限定されない)は、システムに直接(バス610を通じてなど)、または介在するI/Oコントローラ(分かりやすくするために省かれている)を通して結合され得る。
【0034】
ネットワーク・インターフェース614などのネットワーク・アダプタはまた、データ処理システムが、介在するプライベートまたはパブリック・ネットワークを通して、他のデータ処理システムまたはリモート・プリンタまたは記憶デバイスに結合されるようになることを可能にするように、システムに結合され得る。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、現在使用可能なタイプのネットワーク・アダプタのほんの一部である。
【0035】
「特許請求の範囲」を含み、本明細書で用いられる「サーバ」とは、サーバ・プログラムを実行する物理的データ処理システム(例えば、図6に示されるようなシステム612)を含む。このような物理的サーバは、ディスプレイおよびキーボードを含んでも含まなくてもよいことが理解されよう。
【0036】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態を遂行させるための、コンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含み得る。
【0037】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、およびこれらの任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通して伝搬する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して送信される電気信号など、それ自体が一過性の信号であると解釈されるものではない。
【0038】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組合せを通じて、外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0039】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えばインターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の実施形態を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0040】
本明細書において本発明の実施形態は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0041】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置によって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すように、マシンを生じるべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサにもたらされることができる。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含んだ製造品を備えるように、特定のやり方で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに指示することができる、コンピュータ可読記憶媒体に記憶され得る。
【0042】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、コンピュータによって実施されるプロセスを生じるべく、一連の動作ステップが、コンピュータ、他のプログラマブル装置、または他のデバイス上で行われるようにさせることができる。
【0043】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば連続して示される2つのブロックは、実際は、実質的に並行して実行されることができ、またはブロックは関わる機能性に応じて、時には逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う、あるいは専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0044】
本明細書で述べられる方法はいずれも、コンピュータ可読記憶媒体上に具現化された互いに異なるソフトウェア・モジュールを備えたシステムをもたらす追加のステップを含むことができ、モジュールは、例えば、本明細書で詳述される構成要素のいずれかまたはすべてを含み得ることが留意されるべきである。次いで方法ステップは、上述のように、ハードウェア・プロセッサ602上で実行する、システムの互いに異なるソフトウェア・モジュールまたはサブモジュールあるいはその両方を用いて遂行され得る。さらに、コンピュータ・プログラム製品は、互いに異なるソフトウェア・モジュールを有するシステムをもたらすことを含む、本明細書で述べられる少なくとも1つの方法ステップを遂行するために実施されるように適合されたコードを有する、コンピュータ可読記憶媒体を含むことができる。
【0045】
いずれの場合も、本明細書で示される構成要素は、例えば、特定用途向け集積回路(ASIC)、機能回路、関連付けられたメモリを有する適切にプログラムされたデジタル・コンピュータなど、様々な形のハードウェア、ソフトウェア、またはそれらの組合せにおいて実施され得ることが理解されるべきである。本明細書に示された本発明の教示が与えられた場合、当業者は、本発明の構成要素の他の実装形態を企図することができるであろう。
【0046】
加えて、本開示はクラウド・コンピューティングについての詳しい説明を含むが、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことが予め理解される。むしろ本発明の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と共に実施されることが可能である。
【0047】
クラウド・コンピューティングは、最小の管理努力またはサービスのプロバイダとの対話により迅速に用意され、リリースされ得る、構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有されたプールへの便利な、オンデマンド・ネットワーク・アクセスを可能にするためのサービス供給のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0048】
特性は以下の通りである。
【0049】
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を必要とせずに、自動的に必要に応じて、サーバ時間およびネットワーク・ストレージなどの、コンピューティング能力を一方的に用意することができる。
【0050】
広いネットワーク・アクセス:能力はネットワークを通して使用可能であり、標準の機構を通じてアクセスされ、これは異種のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する。
【0051】
リソース・プーリング:プロバイダのコンピューティング・リソースは、異なる物理および仮想リソースが需要に従って動的に割り当てられ、および再割り当てされながら、マルチ・テナント・モデルを用いて複数の消費者にサービスするようにプールされる。消費者は一般に、もたらされるリソースの正確な位置に対する制御または知識をもたないが、抽象化のより高いレベルにおいて位置を指定する(例えば国、州、またはデータセンタ)ことが可能になり得るという点で、位置的な独立性の感覚がある。
【0052】
迅速な融通性:能力は、いくつかの場合において自動的に、速やかにスケール・アウトするように迅速におよび弾力的に用意されることができ、ならびに速やかにスケール・インするように迅速に解放され得る。消費者には、用意するための使用可能な能力は、しばしば無限であるように見え、任意の時点で任意の量において購入され得る。
【0053】
測定されるサービス:クラウド・システムは、サービスのタイプ(例えばストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した、何らかのレベルの抽象化における計量能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量は監視され、制御され、および報告されて、利用されるサービスのプロバイダおよび消費者の両方に対して透明性をもたらす。
【0054】
サービス・モデルは以下の通りである。
【0055】
サービスとしてのソフトウェア(SaaS):消費者にもたらされる能力は、クラウド・インフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通して、様々なクライアント・デバイスからアクセス可能である。限られたユーザ固有のアプリケーション構成設定を可能性のある例外として、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャを管理または制御しない。
【0056】
サービスとしてのプラットフォーム(PaaS):消費者にもたらされる能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作り出された、消費者により作り出されたまたは取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションに対する制御を有する。
【0057】
サービスとしてのインフラストラクチャ(IaaS):消費者にもたらされる能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを用意することであり、消費者は任意のソフトウェアを展開および実行することができ、これはオペレーティング・システムおよびアプリケーションを含むことができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては選ばれたネットワーク化構成要素(例えばホスト・ファイアウォール)の限られた制御を有する。
【0058】
展開モデルは以下の通りである。
【0059】
プライベート・クラウド:クラウド・インフラストラクチャは、専ら組織のために運用される。これは組織またはサード・パーティによって管理されることができ、構内または構外に存在し得る。
【0060】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心(例えばミッション、セキュリティ要件、ポリシー、およびコンプライアンス配慮)を有する特定のコミュニティをサポートする。これは組織またはサード・パーティによって管理されることができ、構内または構外に存在し得る。
【0061】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きな業界グループに対して使用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0062】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーション可搬性(例えばクラウドの間の負荷バランスのためのクラウド・バースティング)を可能にする標準化されたまたは独自開発の技術によって一緒に結び付けられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
【0063】
クラウド・コンピューティング環境は、ステートレス性、低いカップリング、モジュール性、およびセマンティック相互運用性に焦点を当てて方向付けられたサービスである。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えたインフラストラクチャである。
【0064】
次に図7を参照すると、例示のクラウド・コンピューティング環境50が示される。示されるように、クラウド・コンピューティング環境50は、例えば携帯情報端末(PDA)またはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなどの、クラウド消費者によって用いられるローカル・コンピューティング・デバイスがそれと通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信することができる。それらは、本明細書で上記で述べられたようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組合せなどの、1つまたは複数のネットワークにおいて物理的または仮想的にグループ化され得る(図示せず)。これはクラウド・コンピューティング環境50が、クラウド消費者はそのためにローカル・コンピューティング・デバイス上にリソースを維持する必要がない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを提供することを可能にする。図7に示されるコンピューティング・デバイス54A~Nのタイプは例示のためのみであること、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続(例えばウェブ・ブラウザを用いた)あるいはその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0065】
次に図8を参照すると、クラウド・コンピューティング環境50(図7)によってもたらされる、機能抽象化層のセットが示される。予め、図8に示される構成要素、層、および機能は、例示のためのみであり、本発明の実施形態はそれらに限定されないことが理解されるべきである。示されるように、以下の層および対応する機能がもたらされる。
【0066】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーク化構成要素66を含む。いくつかの実施形態において、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0067】
仮想化層70は抽象化層をもたらし、それから以下の仮想エンティティの例、すなわち仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75がもたらされ得る。一例において管理層80は、以下に述べられる機能をもたらすことができる。リソース供給81は、クラウド・コンピューティング環境内でタスクを行うために利用される、コンピューティング・リソースおよび他のリソースの動的調達をもたらす。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるのに従ってコスト追跡、およびこれらのリソースの消費に対する請求書発行またはインボイス発行をもたらす。
【0068】
一例においてこれらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクに対する識別情報検証、ならびにデータおよび他のリソースに対する保護をもたらす。ユーザ・ポータル83は、消費者およびシステム管理者のために、クラウド・コンピューティング環境へのアクセスをもたらす。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り振りおよび管理をもたらす。サービス・レベル・アグリーメント(SLA)計画および履行85は、SLAに従って将来の必要条件が予想される、クラウド・コンピューティング・リソースの事前準備および調達をもたらす。
【0069】
作業負荷層90は、クラウド・コンピューティング環境がそれのために利用され得る機能性の例を示す。この層からもたらされ得る作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、および本発明の1つまたは複数の実施形態による、ニューラル・ネットワークのデータセット依存の低ランク分解96を含む。
【0070】
本明細書で用いられる専門用語は、特定の実施形態を述べるためのみであり、本発明を限定するものではない。本明細書で用いられる単数形「a」、「an」、および「the」は、文脈が異なる解釈を明らかに示す場合を除き、複数形も含むものである。さらに本明細書で用いられるとき、用語「備える(comprises)」または「備える(comprising)」あるいはその両方は、記載された特徴、ステップ、動作、要素、または構成要素あるいはその組合せの存在を明記するものであるが、他の特徴、ステップ、動作、要素、構成要素、またはそれらのグループあるいはその組合せの存在または追加を除外するものではないことが理解されるであろう。
【0071】
本発明の少なくとも1つの実施形態は、例えば、既存の圧縮技術と比較して、ニューラル・ネットワークのサイズまたはフロップスあるいはその両方を低減するなどの有益な効果をもたらし得る。本発明の1つまたは複数の実施形態はまた、例えば、より多数の層およびパラメータを有する深層学習モデルが、限られたリソースを有するデバイス(例えば携帯電話、およびIOTとの関連での他のエッジ・デバイスなど)上で用いられることを可能にすることなどの有益な効果をもたらし得る。図9Aは、従来の圧縮技術(重みなしタッカー分解902)、および本明細書で述べられる主題の例示の実施形態による圧縮技術(重み付きタッカー分解904)に対する、精度パーセンテージ対モデル・サイズ(MBでの)を示すグラフ900である。グラフ900から分かるように、重み付きタッカー分解技術は、精度のわずかな低下のみで、より小さなモデル・サイズをもたらす。同様に、図9Bは、重み付きタッカー分解技術912は、同様な精度を保ちながら、重みなし圧縮技術914より少ないフロップスを必要とすることを示すグラフ950を示す。
【0072】
本発明の様々な実施形態の説明は、例示のために提示されてきたが、網羅的であること、または開示される実施形態に限定されるものではない。当業者には、述べられる実施形態の範囲および思想から逸脱せずに、多くの変更形態および変形形態が明らかになるであろう。本明細書で用いられる専門用語は、実施形態の原理、実用的な応用例、または市場で見出される技術に対する技術的改良を最もよく説明するように、または当業者が本明細書で開示される実施形態を理解することを可能にするように選ばれた。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9A
図9B