JP7342265B2 - μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置 - Google Patents
μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置 Download PDFInfo
- Publication number
- JP7342265B2 JP7342265B2 JP2022529834A JP2022529834A JP7342265B2 JP 7342265 B2 JP7342265 B2 JP 7342265B2 JP 2022529834 A JP2022529834 A JP 2022529834A JP 2022529834 A JP2022529834 A JP 2022529834A JP 7342265 B2 JP7342265 B2 JP 7342265B2
- Authority
- JP
- Japan
- Prior art keywords
- mask
- weight
- weights
- weight group
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N19/194—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
関連出願の相互参照
本出願は、2020年8月14日に出願された米国仮出願第63/065,598号に基づいて優先権を主張する、2021年5月11日に出願された米国特許出願第17/317,055号に対する優先権の利益を主張し、その各々の開示は、その全体が参照により本明細書に組み込まれる。
本出願は、2020年8月14日に出願された米国仮出願第63/065,598号に基づいて優先権を主張する、2021年5月11日に出願された米国特許出願第17/317,055号に対する優先権の利益を主張し、その各々の開示は、その全体が参照により本明細書に組み込まれる。
標準化団体や企業は、今後の映像符号化技術の標準化に向けて、積極的に潜在的なニーズを模索している。これらの標準化団体や企業は、ディープニューラルネットワーク(DNN)を用いたエンドツーエンドニューラル画像圧縮(NIC)ベースの人工知能(AI)に焦点を当ててきた。この方法の成功により、高度なニューラル画像及びビデオ圧縮方法論に産業上の関心がますます高まっている。
柔軟なビットレート制御は、以前のNIC法では依然として困難な課題である。従来、これは、レートと歪み(圧縮画像の品質)との間の各所望のトレードオフを個別にターゲットにする複数のモデルインスタンスを訓練することを含み得る。これらの全ての複数モデルインスタンスは、異なるビットレートからの画像を再構成するために、デコーダ側で格納され、展開される必要があり得る。これは、限られたストレージ及びコンピューティングリソースを有する多くのアプリケーションにとって、法外に高価であり得る。
実施形態によれば、少なくとも1つのプロセッサによって実行される、マルチレートニューラル画像圧縮の方法であって、第1ハイパーパラメータに基づいてエンコードマスクを選択するステップと、第1ニューラルネットワークの第1重み群(a first plurality of weights)及び選択されたエンコードマスクのコンボリューションを実行し、第1マスク重みを取得する、ステップと、方法はさらに、
入力画像をエンコードし、第1マスク重みを使用して、エンコード表現を取得する、ステップと、取得されたエンコード表現をエンコードし、圧縮表現を取得する、ステップと
入力画像をエンコードし、第1マスク重みを使用して、エンコード表現を取得する、ステップと、取得されたエンコード表現をエンコードし、圧縮表現を取得する、ステップと
実施形態によれば、マルチレートニューラル画像圧縮のための装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、を備え、プログラムコードは、少なくとも1つのプロセッサに、ハイパーパラメータに基づいてエンコードマスクを選択させるように構成された第1選択コードと、少なくとも1つのプロセッサに、第1ニューラルネットワークの第1重み群及び選択されたエンコードマスクのコンボリューションを実行させ、第1マスク重みを取得させるように構成された第1実行コードと、を含む。プログラムコードは、少なくとも1つのプロセッサに、第1マスク重みを使用して、入力画像をエンコードさせ、エンコード表現を取得させるように構成された第1エンコードコードと、少なくとも1つのプロセッサに、取得されたエンコード表現をエンコードさせ、圧縮表現を取得するように構成された第2エンコードコードと、を含む。
実施形態によれば、命令を格納する非一時的コンピュータ可読媒体であって、命令は、マルチレートニューラル画像圧縮のために、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、ハイパーパラメータに基づいてエンコードマスクを選択させ、第1ニューラルネットワークの第1重み群及び選択されたエンコードマスクのコンボリューションを実行させ、第1マスク重みを取得させ、入力画像をエンコードし、第1マスク重みを使用して、エンコード表現を取得させ取得されたエンコード表現をエンコードさせ、圧縮表現を取得させる。
本開示は、ストレージ及び計算の両方に関して、高効率のマルチレートNICモデルを生成するための方法及び装置を記載する。異なるビットレートをターゲットとするネストバイナリマスクのセットからのガイダンスを用いて、複数のマルチビットレートでの画像圧縮を達成するために、唯一のNICモデルインスタンスが使用される。また、モデルインスタンスの重み係数がマイクロ構造的に単一化され、推論計算を低減する。
図1は、実施形態による、本明細書に記載される方法、装置及びシステムが実施され得る環境100の図である。
図1に示すように、環境100は、ユーザ装置110、プラットフォーム120、及びネットワーク130を含むことができる。環境100のデバイスは、有線接続、無線接続、又は有線接続及び無線接続の組み合わせを介して相互接続することができる。
ユーザデバイス110は、プラットフォーム120に関連する情報を受信、生成、記憶、処理、及び/又は提供することが可能な1つ以上のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバ等)、携帯電話(例えば、スマートフォン、無線電話等)、ウェアラブルデバイス(例えば、スマート眼鏡又はスマートウオッチ)、又は類似のデバイスを含み得る。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信及び/又は送信することができる。
プラットフォーム120は、本明細書の他の場所で記載されるように、1つ以上のデバイスを含む。いくつかの実装では、プラットフォーム120は、クラウドサーバ又はクラウドサーバのグループを含み得る。いくつかの実装では、プラットフォーム120は、ソフトウェアコンポーネントがスワップイン又はスワップアウトされ得るように、モジュール式に設計し得る。そのようなものとして、プラットフォーム120は、異なる使用のために、容易に及び/又は迅速に再構成され得る。
いくつかの実装では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122でホストすることができる。特に、本明細書に記載される実装は、プラットフォーム120をクラウドコンピューティング環境122でホストされるものとして記述されるが、一部の実装では、プラットフォーム120は、クラウドベースではなく(すなわち、クラウドコンピューティング環境の外部で実装され得る)、又は部分的にクラウドベースであってもよい。クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。
クラウドコンピューティング環境122は、プラットフォーム120をホストする、(1つ以上の)システム及び/又は(1つ以上の)デバイスの物理的なロケーション及び構成に関するエンドユーザ(例えばユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供することができる。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(まとめて、「複数のコンピューティングリソース124」と称し、個別に「コンピューティングリソース124」と称する)を含み得る。
コンピューティングリソース124は、1つ以上の、パーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他の種類の計算及び/又は通信デバイスを含む。いくつかの実装では、コンピューティングリソース124はプラットフォーム120をホストすることができる。クラウドリソースは、コンピューティングリソース124において実行されるコンピューティングインスタンス、コンピューティングリソース124において提供される記憶デバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含み得る。いくつかの実装では、コンピューティングリソース124は、有線接続、無線接続、又は有線及び無線接続の組み合わせを介して、他のコンピューティングリソース124と通信することができる。
図1にさらに示すように、コンピューティングリソース124は、1つ以上のアプリケーション(「APP」)124-1、1つ以上の仮想マシン(「VM」)124-2、仮想記憶デバイス(「VS」)124-3、1つ以上のハイパーバイザ(「HYP」)124-4等のクラウドリソースのグループを含む。
アプリケーション124-1は、ユーザデバイス110及び/又はセンサデバイス120によって提供され又はアクセスされることができる1つ以上のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110上にソフトウェアアプリケーションをインストールし実行する必要をなくすことができる。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供可能な他の任意のソフトウェアを含んでもよい。いくつかの実装では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ以上の他のアプリケーション124-1との間で情報を送受信することができる。
仮想マシン124-2は、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による実際のマシンへの使用及び対応の程度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行し、単一のプロセスをサポートし得る。いくつかの実装では、仮想マシン124-2は、ユーザ(例えば、ユーザ装置110)に代わって実行することができ、データ管理、同期化、又は長時間データ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理することができる。
仮想ストレージ124-3は、ストレージシステム又はコンピューティングリソース124の内で仮想化技術を使用する1つ以上の記憶システム及び/又は1つ以上のデバイスを含む。いくつかの実装では、記憶システムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化は、物理ストレージ又は異種ストラクチャ(heterogeneous structure)に関係なくストレージシステムにアクセスできるように、物理ストレージから論理ストレージを抽象化(又は分離)することを称し得る。この分離により、ストレージシステムの管理者は、エンドユーザに対してストレージを管理する方法に柔軟性を持たせることができる。ファイルの仮想化により、ファイルレベルでアクセスされるデータと、ファイルが物理的に保存されるロケーションとの間の依存関係が排除され得る。これにより、ストレージの使用、サーバの統合、及び/又は非破壊ファイル移行のパフォーマンスの最適化が可能になり得る。
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)が、コンピューティングリソース124などのホストコンピュータ上で同時に実行されることを可能にするハードウェア仮想化技術を提供することができる。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示することができ、ゲストオペレーティングシステムの実行を管理することができる。様々なオペレーティングシステムの複数の例は、仮想化されたハードウェアリソースを共有することができる。
ネットワーク130は、1つ以上の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、コード分割多重アクセス(CDMA)ネットワーク等)、公衆陸上モバイルネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話ネットワーク(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、ファイバ光学ベースのネットワーク、及び/又は、これら又は他のタイプのネットワークの組合せ、を含み得る。
図1に示すデバイス及びネットワークの数及び配置は、一例として提供される。実際には、図1に示すものよりも、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は異なる配置のデバイス及び/又はネットワークが存在し得る。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、又は図1に示す単一のデバイスは、複数の分散デバイスとして実装されてもよい。さらに又はあるいは、環境100のデバイスのセット(例えば、1つ以上のデバイス)は、環境100の別のデバイスセットによって実行されるものとして説明される1つ以上の機能を実行することができる。
図2は、図1の1つ以上のデバイスの例示的な構成要素のブロック図である。
デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応し得る。図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、ストレージコンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インタフェース270を含み得る。
バス210は、デバイス200のコンポーネント間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせで実装される。プロセッサ220は、中央演算処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は、他のタイプの処理コンポーネント、である。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることができる1つ以上のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、及び/又は、プロセッサ220が使用するための情報及び/又は命令を格納する別のタイプの動的又は静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ及び/又は光学メモリ)を含む。
ストレージコンポーネント240は、デバイス200の操作及び使用に関連する情報及び/又はソフトウェアを格納する。例えば、ストレージコンポーネント240は、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク及び/又は固体ディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は、対応するドライブとともに、別のタイプの非一時的コンピュータ読取可能媒体を含み得る。
入力コンポーネント250は、デバイス200が、例えば、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイクロフォン)を介して情報を受信することを可能にするコンポーネントを含む。さらに又はあるいは、入力コンポーネント250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含み得る。出力インタフェース260は、デバイス200(例えば、ディスプレイ、スピーカ、及び/又は1つ以上の発光ダイオード(LED))からの出力情報を提供するコンポーネントを含む。
通信インタフェース270は、デバイス200が、有線接続、無線接続、又は有線接続と無線接続の組み合わせなどを介して、他のデバイスと通信することを可能にする送受信器のようなコンポーネント(例えば、送受信器及び/又は別個の受信器及び送信器)を含む。通信インタフェース270によって、デバイス200は他のデバイスから情報を受信し、及び/又は他のデバイスに情報を提供することができることができる。例えば、通信インタフェース270は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、汎用シリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラネットワークインタフェース等を含み得る。
デバイス200は、本願明細書において記載されている1つ以上のプロセスを実行し得る。デバイス200は、例えばメモリ230及び/又はストレージコンポーネントコンポーネント240などの非一時的なコンピュータ可読媒体によって格納されるソフトウェア命令を実行するプロセッサ220に応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、固定メモリデバイスとして本願明細書において定義されている。メモリデバイスには、単一の物理ストレージデバイス内のメモリスペース、又は複数の物理ストレージデバイスにまたがるメモリスペースが含まれる。
ソフトウェア命令は、別のコンピュータ可読媒体から、又は通信インタフェース270を介して別のデバイスから、メモリ230及び/又はストレージコンポーネント240に読み込まれることができる。実行される場合、メモリ230及び/又はストレージコンポーネント240に格納されたソフトウェア命令は、プロセッサ220に、本明細書に記載の1つ以上のプロセスを実行させることができる。さらに又はあるいは、物理的に組み込まれた回路(hardwired circuitry)を、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用されることができ、本明細書に記載の1つ以上のプロセスを実行することができる。したがって、本明細書で説明される実装は、ハードウェア回路とソフトウェアの特定の組み合わせに限定されない。
図2に示すコンポーネントの数及び配置は、例として提供されてている。実際には、デバイス200は、図2に示されるものよりも追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含み得る。さらに又はあるいは、デバイス200のコンポーネントのセット(例えば、1つ以上のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されると記載される1つ以上の機能を実行することができる。
ここでは、マイクロ構造ネストマスクによるマルチレートニューラル画像圧縮と重み付け単一化のための方法と装置について詳述する。
本開示は、マルチレート画像圧縮をサポートする唯一のNICモデルインスタンスを学習し、展開するフレームワークを提案する。特に、異なるビットレートから画像を回復するために、再構成ステージでデコーダをガイドするために、各ターゲットビットレートのためのネストバイナリマスクのセットが学習される。
図3は、実施形態による、テストステージ中の、マイクロ構造ネストマスク(micro-structured nested masks)及び重み単一化(weight unification)によるマルチレートニューラル画像圧縮のためのテスト装置300のブロック図である。
図3に示すように、テスト装置300は、テストDNNエンコーダ310、テストエンコーダ320、テストデコーダ330、及びテストDNNデコーダ340を含む。
サイズ(h,w,c)の入力画像xが与えられ、ここで、h,w,cは、それぞれ、チャネルの高さ、幅、及び数である。NICワークフローのテストステージのターゲットは、以下のように記述される。圧縮表示
(以下、y ̄とも表す。)は、格納のためにコンパクトであり、伝送が計算される。その後、圧縮表現y ̄に基づいて、出力画像
(以下、x ̄とも表す。)が再構成され、再構成された出力画像x ̄は、元の入力画像xと類似し得る。圧縮表現y ̄を計算するプロセスは:DNNエンコード表現yを計算するためにテストDNNエンコーダ310を使用するDNNエンコードプロセスと、その後、(量子化及びエントロピーコーディングを実行する)テストエンコーダ320を通して表現yがエンコードされ、圧縮表現y ̄を生成する、エンコードプロセスと、の2つの部分に分割され得る。したがって、デコードプロセスは:テストデコーダ330によって(デコード及び量子化を介して)圧縮表現y ̄がデコードされ、回復表現y’ ̄を生成するデコードプロセスと、その後、回復表現y’ ̄が、テストDNNデコーダ340によって使用され、出力画像x ̄を再構成する、DNNデコードプロセスと、の2つの部分に分割される。本開示においては、DNNエンコードに使用されるテストDNNエンコーダ310のネットワーク構造、又は、DNNデコードに使用されるテストDNNデコーダ340のネットワーク構造に制限はない。エンコード又はデコードのどちらかに使用される方法(量子化方法及びエントロピーコーディング方法)には制約がない。
(以下、y ̄とも表す。)は、格納のためにコンパクトであり、伝送が計算される。その後、圧縮表現y ̄に基づいて、出力画像
(以下、x ̄とも表す。)が再構成され、再構成された出力画像x ̄は、元の入力画像xと類似し得る。圧縮表現y ̄を計算するプロセスは:DNNエンコード表現yを計算するためにテストDNNエンコーダ310を使用するDNNエンコードプロセスと、その後、(量子化及びエントロピーコーディングを実行する)テストエンコーダ320を通して表現yがエンコードされ、圧縮表現y ̄を生成する、エンコードプロセスと、の2つの部分に分割され得る。したがって、デコードプロセスは:テストデコーダ330によって(デコード及び量子化を介して)圧縮表現y ̄がデコードされ、回復表現y’ ̄を生成するデコードプロセスと、その後、回復表現y’ ̄が、テストDNNデコーダ340によって使用され、出力画像x ̄を再構成する、DNNデコードプロセスと、の2つの部分に分割される。本開示においては、DNNエンコードに使用されるテストDNNエンコーダ310のネットワーク構造、又は、DNNデコードに使用されるテストDNNデコーダ340のネットワーク構造に制限はない。エンコード又はデコードのどちらかに使用される方法(量子化方法及びエントロピーコーディング方法)には制約がない。
NICモデルを学習するために、より良い再構築品質とより少ないビット消費という、2つの競合する要望に対処する。損失関数D(x,x ̄)が再構成誤差を測定するために使用され、これは、入力画像xと出力画像x ̄との間の、ピーク信号対雑音比(PSNR)及び/又は構造的類似性指数測度(SSIM)等の、歪み損失と称される。レート損失R(y ̄)は、圧縮表現y ̄のビット消費を測定するために計算される。したがって、トレードオフハイパーパラメータλは、ジョイントレート歪み(R-D)損失を最適化するために使用される:
大きなハイパーパラメータλを用いた訓練は、より小さな歪みを有するがビット消費がより多い圧縮モデルをもたらし、逆もまた同様である。伝統的に、各所定のトレードオフハイパーパラメータλに対して、NICモデルインスタンスが訓練され、これは、ハイパーパラメータλの他の値に対してはうまく機能しない。したがって、圧縮ストリームのマルチビットレートを達成するために、従来の方法は、ハイパーパラメータλのターゲット値ごとに1つずつ、複数のモデルインスタンスを訓練し、格納する必要とすることがある。
マスク付きマルチレートNIC
NICネットワークの単一の訓練されたモデルインスタンスを使用し、ネストバイナリマスクのセットを使用して、NICモデルインスタンスをガイドし、異なる圧縮表現並びに対応する再構成画像を生成し、各マスクはハイパーパラメータλの異なる値をターゲットにしている。具体的には、{We
j}と{Wd
j}は、それぞれ、NICモデルインスタンスのエンコーダ部分及びデコーダ部分の重み係数のセットを示し、ここで、We
jとWd
jは、それぞれ、DNNエンコーダ及びデコーダのj番目のレイヤの重み係数である。λ1,...,λNはN個のハイパーパラメータを表し、yi ̄及びxi ̄は、ハイパーパラメータλiに対応する圧縮表現及び再構成画像を表す。Me
ijとMd
ijは、それぞれ、ハイパーパラメータλiに対応するDNNエンコーダとデコーダのj番目のレイヤのバイナリマスクを示すものとする。重みWe
jは、サイズ(c1,k1,k2,k3,c2)の5次元(5D)テンソルに対応する。レイヤの入力はサイズの4次元(4D)テンソルA(h1,w1,d1,c1)であり、レイヤの出力はサイズ(h2,w2,d2,c2)の4DテンソルBである。サイズc1、k1,k2,k3,c2,h1,w1,d1,h2,w2,d2は整数で、それぞれ1以上である。サイズc1,k1,k2,k3,c2,h1,w1,d1,h2,w2,d2のいずれかが1になると、対応するテンソルは低次元に低減される。各テンソルの各アイテムは浮動小数点である。パラメータh1,w1及びd1(h2、w2及びd2)は、入力テンソルA(出力テンソルB)の高さ、重み及び深さである。パラメータc1(c2)は入力(出力)チャネルの数である。パラメータk1、k2及びk3は、それぞれ高さ、重み及び深さ軸に対応するコンボリューションカーネルのサイズである。出力Bは、入力A、マスクMe
ij、及び重みWe
jに基づくコンボリューション演算
を介して計算される。つまり、出力Bは、マスクされた重み
でコンボリューションされた入力Aとして計算され、ここで、「・」は要素毎の乗算である。同様に、重みWd
jについて、その出力はマスクされた重み
で入力Aのコンボリューションを介して計算される。
を介して計算される。つまり、出力Bは、マスクされた重み
を選択し、DNNエンコード表現yを計算するために使用されるマスク重み
を計算する。次に、テストエンコーダ320は、エンコードプロセスにおける圧縮表現y ̄を計算する。圧縮表現y ̄に基づいて、テストデコーダ330はデコードプロセスを介して回復表現y’ ̄を計算する。ハイパーパラメータλiを使用して、テストDNNデコーダ340は、デコードマスクのセット{Md ij}を選択し、マスクされた重み{Wd’ij}を計算し、これらは、回復表現y’ ̄に基づいて再構成された画像x ̄を計算するために使用される。
を計算する。次に、テストエンコーダ320は、エンコードプロセスにおける圧縮表現y ̄を計算する。圧縮表現y ̄に基づいて、テストデコーダ330はデコードプロセスを介して回復表現y’ ̄を計算する。ハイパーパラメータλiを使用して、テストDNNデコーダ340は、デコードマスクのセット{Md ij}を選択し、マスクされた重み{Wd’ij}を計算し、これらは、回復表現y’ ̄に基づいて再構成された画像x ̄を計算するために使用される。
マイクロ構造重み単一化NIC
重みWe
j又はWd
j(マスクMe
ij又はMd
ij)の形状は、再成形重みWe
j又はWd
jによる再成形入力のコンボリューションに対応して変更することができ、同じ出力を取得する。実施形態は、2つの構成を含むことができる。先ず、5D重みテンソルは、サイズ(c’1,c’2,k)の3Dテンソルに再成形され、ここでc’1×c’2×k=c1×c2×k1×k2×k3である。例えば、構成は、c’1=c1,c’2=c2,k=k1×k2×k3である。次に、5D重みテンソルは、サイズ(c’1,c’2)の2D行列に再成形され、ここで、c1×c’2=c1×c2×k1×k2×k3である。例えば、構成は、c’1=c1,c’2=c2×k1×k2×k3又はc’2=c2,c’1=c1×k1×k2×k3である。
マスクの所望のマイクロ構造は、コンボリューション演算の実装方法の基礎となる一般的な行列乗算(GEMM)行列乗算プロセスと整合するように設計されているため、マスクされた重み係数を使用する推論計算を高速化できる。本実施形態では、ブロック毎のマイクロ構造が、3D再成形重みテンソル又は2D再成形重み行列における各レイヤのマスク(マスク重み係数として)に使用される。具体的には、再成形された3D重みテンソルについては、サイズ(gi,go,gk)のブロックに分割され、再成形された2D重み行列については、サイズ(gi,go)のブロックに分割される。マスクのブロック内の全アイテムは、同じバイナリ値1(プルーニングされていない)又は0(プルーニングされている)を持つ。すなわち、重み係数は、ブロックごとにマイクロ構造化された方法でマスクされる。
We
jとWd
jの残りの重み係数(マスクMe
ijとMd
ijの対応する要素は値1をとる)については、マイクロ構造においてさらに単一化される。再び、再成形された3D重みテンソルの場合には、それはサイズ(pi,po,pk)のブロックに分割され、再成形された2D重み行列の場合には、それはサイズ(pi,po)のブロックに分割される。単一化操作はブロック内で行われる。例えば、実施形態において、重みがブロックBu内で単一化される場合、ブロック内の重みは、同じ絶対値(ブロック内の元の重みの絶対値の平均)を有し、元の符号を保持するように設定される。単一化損失Lu(Bu)は、この単一化操作によって生じる誤差を測定することによって計算できる。実施形態では、ブロック内の元の重みの絶対値の標準偏差を使用して、Lu(Bu)を計算する。マイクロ構造的に統一された重みを使用する主な利点は、推論計算における乗算の数を節約することである。単一化ブロックBuは、プルーニングブロックとは異なる形状を有し得る。
訓練ステージの目標は、マイクロ構造化されたエンコードマスク{We
ij}の対応するセットを用いたマイクロ構造化された単一エンコード重み係数のセット{We
j(λi)}、及び、各々のハイパーパラメータλiをターゲットとしたマイクロ構造化されたデコードマスクの対応セット{Md
ij}を用いたマイクロ構造化された単一デコード重み係数のセット{Wd
j(λi)}を学習することである。2つの進歩的マルチステージ訓練フレームワークは、それぞれ図4A及び4Bに図示されているこの目標を達成することができる。
図4Aは、実施形態による、訓練ステージ中の、マイクロ構造化ネストマスク及び重み付け単一化によるマルチレートニューラル画像圧縮のための訓練装置400Aのブロック図である。
図4Aに示すとおり、訓練装置400Aは、重み更新コンポーネント410、プルーニングコンポーネント420、重み更新コンポーネント430、単一化コンポーネント440及び重み更新コンポーネント450を含む。
一般性を失うことなく、ハイパーパラメータλ1,...,λiは、歪みの増加(品質の低下)とレート損失の減少(ビットレートの増加)を伴う圧縮表現を生成するマスクに対応して、降順にランク付けされると仮定する。以下、図4Aに記載される訓練フレームワークの詳細を説明する。
現在のターゲットは、ハイパーパラメータλi-1をターゲットとするマスクを訓練することであり、現在のモデルインスタンスは重み{Wj
e(λi)},{Wj
d(λi)}を有し、マスク{Mij
e},{Mij
d}が存在すると仮定する。ここでの目的は、マスク{Me
i-1j}及び{Md
i-1j}の重みのセットを計算することと同様に、{We
j(λi-1)}及び{Wd
j(λi-1)}を取得することである。
第1ステップでは、重み更新コンポーネント410は、{Me
ij}及び{Md
ij}によってマスクされる{We
j(λi)}及び{Wd
j(λi)}における重み係数をそれぞれ固定する(fixes)。たとえば、Me
ijのエントリが1の場合、We
j(λi)の対応する重みは固定される。その後、重み更新コンポーネント410は、重み更新プロセスにおいて、第1ハイパーパラメータλ1(最小歪み)を対象とする式(1)のR‐D損失を使用した規則的バックプロパゲーションを介して、{Wj
e(λi)}及び{Wj
d(λi)}の残りの非マスク重み係数を、重み係数
及び
に更新する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。
及び
に更新する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。
その後、第2ステップでマイクロ構造重みプルーニング処理を行う。このプロセスでは、プルーニングプロセスにおいて、、重み係数
及び
を入力として使用し、(例えば、マスク{Me ij}及び{Md ij}への対応する0エントリで)
及び
の固定されていない重み係数について、プルーニングコンポーネント420は、前述のように、各マイクロ構造プルーニングブロックBpに対する(3D再形成された重みテンソルの場合は3Dブロック、2D再形成された重み行列の場合は2Dブロック)、プルーニング損失Ls(Bp)を計算する(例えば、ブロック内の重みのL1又はL2ノルム)。プルーニングコンポーネント420は、これらのマイクロ構造ブロックを昇順でランク付けし、ランク付けされたマイクロ構造ブロックを、ランク付けされたリストからトップダウンで停止基準に到達するまで(例えば、プルーニングブロックにおいて対応する重みを0として設定することによって)プルーニングする。例えば、バリデーションデータセットSvalが与えられると、重み
及びマスク{Mij e},{Mij d}を有するNICは、歪み損失
を生成する。より多くのマイクロブロックがプルーニングされるにつれて、この歪み損失は徐々に増加する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。停止基準は、また、プルーニングされるべきマイクロ構造プルーニングブロックの単純なプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの80%がプルーニングされる)。プルーニングコンポーネント420は、バイナリプルーニングマスクのセット{Pe ij}及び{Pd ij}を生成する。ここで、マスク内のエントリは、0であり、対応する重みWe j又はWd jがプルーニングされることを意味する。
及び
を入力として使用し、(例えば、マスク{Me ij}及び{Md ij}への対応する0エントリで)
及び
の固定されていない重み係数について、プルーニングコンポーネント420は、前述のように、各マイクロ構造プルーニングブロックBpに対する(3D再形成された重みテンソルの場合は3Dブロック、2D再形成された重み行列の場合は2Dブロック)、プルーニング損失Ls(Bp)を計算する(例えば、ブロック内の重みのL1又はL2ノルム)。プルーニングコンポーネント420は、これらのマイクロ構造ブロックを昇順でランク付けし、ランク付けされたマイクロ構造ブロックを、ランク付けされたリストからトップダウンで停止基準に到達するまで(例えば、プルーニングブロックにおいて対応する重みを0として設定することによって)プルーニングする。例えば、バリデーションデータセットSvalが与えられると、重み
及びマスク{Mij e},{Mij d}を有するNICは、歪み損失
を生成する。より多くのマイクロブロックがプルーニングされるにつれて、この歪み損失は徐々に増加する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。停止基準は、また、プルーニングされるべきマイクロ構造プルーニングブロックの単純なプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの80%がプルーニングされる)。プルーニングコンポーネント420は、バイナリプルーニングマスクのセット{Pe ij}及び{Pd ij}を生成する。ここで、マスク内のエントリは、0であり、対応する重みWe j又はWd jがプルーニングされることを意味する。
その後、重み更新コンポーネント430は、プルーニングされるものとして、{Pij
e}及び{Pij
d}によってマスクされた
及び
内の追加の非固定重みを固定し、
及び
内の残りの重み({Me ij}及び{Md ij}によって固定されているものとしてマスクされないもの、又は{Pe ij}及び{Pd ij})によってプルーニングされているものとしてマスクされるもの)を、バックプロパゲーションによって更新し、ハイパーパラメータλi-1をターゲットとする式(1)の全体R-D損失を最適化する。この重みppdateプロセスにおいてR-D損失を最適化するために、例えば、最大反復数に達するまで、又は損失が収束するまで、複数のエポック反復が行われる。このマイクロ構造重み付けプルーニングプロセスは、更新された重み
及び
を出力する。
及び
内の追加の非固定重みを固定し、
及び
内の残りの重み({Me ij}及び{Md ij}によって固定されているものとしてマスクされないもの、又は{Pe ij}及び{Pd ij})によってプルーニングされているものとしてマスクされるもの)を、バックプロパゲーションによって更新し、ハイパーパラメータλi-1をターゲットとする式(1)の全体R-D損失を最適化する。この重みppdateプロセスにおいてR-D損失を最適化するために、例えば、最大反復数に達するまで、又は損失が収束するまで、複数のエポック反復が行われる。このマイクロ構造重み付けプルーニングプロセスは、更新された重み
及び
を出力する。
その後、第3ステップで、マイクロ構造重み単一化プロセスを行い、マイクロ構造単一化重み{We
j(λi-1)}及び{Wd
j(λi-1)}を生成する。このプロセスでは、更新された重み
及び
を入力として使用し、{Pe ij},{Pd ij}又は{Me ij},{Md ij}のいずれによってもマスクされていない
及び
の非固定重み係数について、単一化コンポーネント440は、先ず、先に述べたように、各マイクロ構造化された単一化ブロックBu(3D再成形重みテンソルに対する3Dブロック又は2D再成形重みマトリックスに対する2Dブロック)ついて単一化損失Ls(Bu)を計算する。その後、単一化コンポーネント440は、これらのマイクロ構造化された単一化ブロックを、その単一化損失に応じて昇順にランク付けし、停止基準に達するまでランク付けされたリストからトップダウンでブロックを単一化(unifies)する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準もまた、単一化されるべきマイクロ構造化された単一化ブロックのプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの50%が単一化される)。単一化コンポーネント440はバイナリ単一化マスクのセット{Ue ij}及び{Ud ij},を生成し、ここで、マスクUe ij又はUd ijのエントリが0であることは対応する重みが単一化されたことを意味する。
及び
を入力として使用し、{Pe ij},{Pd ij}又は{Me ij},{Md ij}のいずれによってもマスクされていない
及び
の非固定重み係数について、単一化コンポーネント440は、先ず、先に述べたように、各マイクロ構造化された単一化ブロックBu(3D再成形重みテンソルに対する3Dブロック又は2D再成形重みマトリックスに対する2Dブロック)ついて単一化損失Ls(Bu)を計算する。その後、単一化コンポーネント440は、これらのマイクロ構造化された単一化ブロックを、その単一化損失に応じて昇順にランク付けし、停止基準に達するまでランク付けされたリストからトップダウンでブロックを単一化(unifies)する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準もまた、単一化されるべきマイクロ構造化された単一化ブロックのプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの50%が単一化される)。単一化コンポーネント440はバイナリ単一化マスクのセット{Ue ij}及び{Ud ij},を生成し、ここで、マスクUe ij又はUd ijのエントリが0であることは対応する重みが単一化されたことを意味する。
その後、重み更新コンポーネント450はUe
ij又はUd
ijよってマスクされた
及び
内の追加の非固定重みを固定し、
及び
内の残りの重み({Me ij}及び{Md ij}によって固定されていることによりマスクされないか、又は、{Pe ij}及び{Pd ij})によってプルーニングされていることによりマスクされるか、又は、{Uij e}及び{Uij d}によって単一化されていることによりマスクされるもの)を、バックプロパゲーションによって更新し、ハイパーパラメータλi-1をターゲットとする式(1)の全体R-D損失を最適化する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。このマイクロ構造重み単一化プロセスは、更新された単一化重み{We j(λi-1)}及び{Wd j(λi-1)}を出力する。最終的に、重み更新コンポーネント450に対応するマスク{Me i-1j}及び{Md i-1j}を、Me i-1j=Me ij∪Pe ij及びMd i-1j=Md ij∪Pd ijとして計算する。すなわち、Me ij(Me ij)において非固定の非プルーニングエントリPe ij(Pd ij)は、Me(i-1j)(Md i-1j)においてマスクされているものとして、さらに1にセットされるであろう。
及び
内の追加の非固定重みを固定し、
及び
内の残りの重み({Me ij}及び{Md ij}によって固定されていることによりマスクされないか、又は、{Pe ij}及び{Pd ij})によってプルーニングされていることによりマスクされるか、又は、{Uij e}及び{Uij d}によって単一化されていることによりマスクされるもの)を、バックプロパゲーションによって更新し、ハイパーパラメータλi-1をターゲットとする式(1)の全体R-D損失を最適化する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。このマイクロ構造重み単一化プロセスは、更新された単一化重み{We j(λi-1)}及び{Wd j(λi-1)}を出力する。最終的に、重み更新コンポーネント450に対応するマスク{Me i-1j}及び{Md i-1j}を、Me i-1j=Me ij∪Pe ij及びMd i-1j=Md ij∪Pd ijとして計算する。すなわち、Me ij(Me ij)において非固定の非プルーニングエントリPe ij(Pd ij)は、Me(i-1j)(Md i-1j)においてマスクされているものとして、さらに1にセットされるであろう。
上記のマルチステップ処理サイクルは、ハイパーパラメータλ1に達するまで継続する。最後の訓練サイクルについては、第2マイクロ構造重みプルーニングステップを省略することができ、よりコンパクトでないモデルで良好なNIC性能が取得され得ることに留意されたい。最終的に更新された重み{We
j(λ1)}及び{Wd
j(λ1)}は、学習されたモデルインスタンスに対する最終的出力重み{We
j}及び」{Wd
j}である。
図4Bは、別の実施形態による、訓練ステージ中の、マイクロ構造ネストマスク及び重み単一化による、マルチレートニューラル画像圧縮のための訓練装置400Bのブロック図である。
図4Bに示すとおり、訓練装置400Bは、重み更新コンポーネント455、プルーニングコンポーネント460、重み更新コンポーネント465、単一化コンポーネント470、重み更新コンポーネント475、及び重み補充/更新コンポーネント(weight refilling/updating component)480を含む。
図4Bは、、別の提案された多段階訓練フレームワークの全体的なワークフローを示す。初期重みのセット{We
j(0)}及び{Wd
j(0)}が与えられた場合(例えば、いくつかの分布に従ってランダムに初期化される)、重み更新コンポーネント455は、ハイパーパラメータλ1(最小歪みに対応する)をターゲットとする式(1)のR-D損失を最適化することによって、訓練データセットStrを使用する規則的バックプロパゲーションを使用する重み更新プロセスを介して、モデル重みのセット
(以下、「{W~e j(λ1)},{W~d j(λ1)}」と示すことがある。)を学習する。
(以下、「{W~e j(λ1)},{W~d j(λ1)}」と示すことがある。)を学習する。
その後、モデル重み{W~e
j(λ1)},{W~d
j(λ1)}に基づいてマイクロ構造化プルーニングプロセスを実施した。このマイクロ構造化プルーニングプロセスでは、プルーニングコンポーネント460は、前述したように、各々再形成された3D重みテンソル又は2D重みマトリックスをマイクロブロックに分割し(3D再成形重みテンソルの場合は3Dブロック、2D再成形重みマトリックスの場合は2Dブロック)、各マイクロ構造ブロックBpについてプルーニング損失Ls(Bp)(例えば、ブロック内の重みのL1又はL2ノルム)を計算する。プルーニングコンポーネント460は、これらのマイクロ構造ブロックを昇順でランク付けし、クロ構造化ブロックを、ランク付けされたリスト上で上から下に(例えば、プルーニングブロックにおいて対応する重みを0として設定することによって)プルーニングし、ハイパーパラメータλ1,・・・,λNのそれぞれを以下の方法でターゲットにする。現在の重みを
とし、対応するバイナリプルーニングマスクを{Pe ij}及び{Pd ij}とし、ここで、マスクPe ij又はPd ijのエントリが0であることは、対応する重み
を取得することが目標となる。この目的を達成するために、プルーニングプロセスにおいて、プルーニングコンポーネント460は、{Pij e}及び{Pij d}によってプルーニングされるようマスクされた重み係数
又は
を固定し、ハイパーパラメータλi+1の停止基準に達するまで、リンクされたランク付けされていない残りのマイクロブロックをプルーニングする。例えば、バリデーションデータセットSvalが与えられると、重み
を有するNICは、歪み損失
を生成する。より多くのマイクロブロックがプルーニングされるにつれて、この歪み損失は徐々に増加する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準は、単に、毎回プルーニングされるプルーニングブロックのプリセットされたパーセンテージであり得る(例えば、上位ランクのブロックの50%は、ハイパーパラメータλi+1についてプルーニングされ、残りの非プルーニング上位ランクのブロックの50%は、次のハイパーパラメータλi+2についてプルーニングされる、など)。その後、プルーニングコンポーネント460は、これらの追加のプルーニングマイクロブロックを{Pij e}及び{Pij d}に加えることによって、プルーニングマスク{Pi+1j e}及び{Pi+1j d}を生成する。
とし、対応するバイナリプルーニングマスクを{Pe ij}及び{Pd ij}とし、ここで、マスクPe ij又はPd ijのエントリが0であることは、対応する重み
を取得することが目標となる。この目的を達成するために、プルーニングプロセスにおいて、プルーニングコンポーネント460は、{Pij e}及び{Pij d}によってプルーニングされるようマスクされた重み係数
又は
を固定し、ハイパーパラメータλi+1の停止基準に達するまで、リンクされたランク付けされていない残りのマイクロブロックをプルーニングする。例えば、バリデーションデータセットSvalが与えられると、重み
を有するNICは、歪み損失
を生成する。より多くのマイクロブロックがプルーニングされるにつれて、この歪み損失は徐々に増加する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準は、単に、毎回プルーニングされるプルーニングブロックのプリセットされたパーセンテージであり得る(例えば、上位ランクのブロックの50%は、ハイパーパラメータλi+1についてプルーニングされ、残りの非プルーニング上位ランクのブロックの50%は、次のハイパーパラメータλi+2についてプルーニングされる、など)。その後、プルーニングコンポーネント460は、これらの追加のプルーニングマイクロブロックを{Pij e}及び{Pij d}に加えることによって、プルーニングマスク{Pi+1j e}及び{Pi+1j d}を生成する。
その後、重み更新プロセスにおいて、重み更新コンポーネント465は、{Pi+1j
e}及び{Pi+1j
d}によってマスクされたこれら全てのプルーニングされたマイクロブロックを固定し、規則的なバックプロパゲーションを用いて残りの非固定重みを更新し、ハイパーパラメータλi-1をターゲットとする式(1)のR-D損失を最適化する。この結果、更新された重みのセット
が得られる。
が得られる。
ハイパーパラメータλ1,・・・,λNの各々について上記のプルーニング及び重み更新プロセスを繰り返すことによって、プルーニングコンポーネント460は、プルーニングマスクのセット{P1j
e},…,{PNj
e},{P1j
d},…,{PNj
d},を取得し、重み更新コンポーネント465は、最終的更新重み
を取得する。実施形態において、プルーニングマスク{Pij e}及び{Pij d}は、ハイパーパラメータλiのモデルマスク{Mij e}及び{Mij d}として直接使用される。
を取得する。実施形態において、プルーニングマスク{Pij e}及び{Pij d}は、ハイパーパラメータλiのモデルマスク{Mij e}及び{Mij d}として直接使用される。
その後、重み{Wj
e}及び{Wj
d}は、更新重み
及びマスク{M1j e},…,{Mij e}及び{M1j d},…,{Mij d}に基づいて、以下の2つのステップを交互に行うことにより、訓練される。
及びマスク{M1j e},…,{Mij e}及び{M1j d},…,{Mij d}に基づいて、以下の2つのステップを交互に行うことにより、訓練される。
ステップ1において、現在の重み
が与えられると、単一化コンポーネント470は、{Mij e}及び{Mij d}において0としてマスクされた重み係数
を固定し(すなわち、現在のハイパーパラメータλiの推論には使用されず)、{Me i+1j},{Md i+1j}において1としてマスクされた重み係数
を固定する(すなわち、以前のハイパーパラメータλi+1の推論に使用される)。マスク{Me N+1j}及び{Md N+1j}はすべてゼロエントリを有することに留意されたい。その後、マイクロ構造重み単一化プロセスを行い、マイクロ構造的化された単一化重み{Wj e(λi)}及び{Wj d(λi)}を生成する。このプロセスにおいて、単一化コンポーネント470は、先ず、先に述べたように、単一化重み係数の各マイクロ構造化された単一化ブロックBu(3D再成形重みテンソルに対する3Dブロック又は2D再成形重みマトリックスに対する2Dブロック)ついて単一化損失Ls(Bu)を計算する。その後、単一化コンポーネント470は、これらのマイクロ構造化された単一化ブロックを、その単一化損失に応じて昇順にランク付けし、停止基準に達するまでランク付けされたリストからトップダウンでブロックを単一化する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準もまた、単一化されるべきマイクロ構造化された単一化ブロックのプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの50%が単一化される)。単一化コンポーネント470はバイナリ単一化マスクのセット{Ue ij}及び{Ud ij},を生成し、ここで、マスクUe ij又はUd ijのエントリが0であることは対応する重みが単一化されたことを意味する。
が与えられると、単一化コンポーネント470は、{Mij e}及び{Mij d}において0としてマスクされた重み係数
を固定し(すなわち、現在のハイパーパラメータλiの推論には使用されず)、{Me i+1j},{Md i+1j}において1としてマスクされた重み係数
を固定する(すなわち、以前のハイパーパラメータλi+1の推論に使用される)。マスク{Me N+1j}及び{Md N+1j}はすべてゼロエントリを有することに留意されたい。その後、マイクロ構造重み単一化プロセスを行い、マイクロ構造的化された単一化重み{Wj e(λi)}及び{Wj d(λi)}を生成する。このプロセスにおいて、単一化コンポーネント470は、先ず、先に述べたように、単一化重み係数の各マイクロ構造化された単一化ブロックBu(3D再成形重みテンソルに対する3Dブロック又は2D再成形重みマトリックスに対する2Dブロック)ついて単一化損失Ls(Bu)を計算する。その後、単一化コンポーネント470は、これらのマイクロ構造化された単一化ブロックを、その単一化損失に応じて昇順にランク付けし、停止基準に達するまでランク付けされたリストからトップダウンでブロックを単一化する。停止基準は、歪み損失を増加させることができる許容可能なパーセンテージの閾値であり得る。あるいは、停止基準もまた、単一化されるべきマイクロ構造化された単一化ブロックのプリセットパーセンテージであることができる(例えば、上位ランクのプルーニングブロックの50%が単一化される)。単一化コンポーネント470はバイナリ単一化マスクのセット{Ue ij}及び{Ud ij},を生成し、ここで、マスクUe ij又はUd ijのエントリが0であることは対応する重みが単一化されたことを意味する。
その後、重み更新コンポーネント475は、単一化されたものとしてUe
ij又はUd
ijによってマスクされた
及び
の追加の非固定重みを固定し、{Me ij}及び{Md ij}によって固定されていることによりマスクされないか、又は、{Me i+1j}及び{Md i+1j}によって固定されていることによりマスクされるか、又は、{Ue ij}及び{Ud ij}によって単一化されいることによりマスクされる残りの重みを、重み更新プロセスのバックプロパゲーションによって更新し、ハイパーパラメータλiをターゲットとする式(1)の全体R-D損失を最適化する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。このマイクロ構造重み単一化プロセスは、更新された単一化重み{Wj e(λi)}及び{Wj d(λi)}を出力する。
及び
の追加の非固定重みを固定し、{Me ij}及び{Md ij}によって固定されていることによりマスクされないか、又は、{Me i+1j}及び{Md i+1j}によって固定されていることによりマスクされるか、又は、{Ue ij}及び{Ud ij}によって単一化されいることによりマスクされる残りの重みを、重み更新プロセスのバックプロパゲーションによって更新し、ハイパーパラメータλiをターゲットとする式(1)の全体R-D損失を最適化する。この重み更新プロセスでR-D損失を最適化するために、たとえば最大反復回数に達するまで、または損失が収束するまで、複数のエポック反復が行われることができる。このマイクロ構造重み単一化プロセスは、更新された単一化重み{Wj e(λi)}及び{Wj d(λi)}を出力する。
その後、ステップ2において、重み補充及び更新プロセス(weight refill and update process)において、重み補充/更新コンポーネント480は、{Mij
e}及び{Md
ij},において1としてマスクされた{Wj
e(λi)}及び{Wj
d(λi)}における重み係数を固定し、{Me
i-1j}及び{Md
i-1j}において1として、{Mij
e}及び{Mij
d}において0としてマスクされた重み係数を埋め込む。これらの重みは、プルーニングプロセスでプルーニングされるときに元の値で埋め込まれることも、ランダムに初期化された値で埋め込まれることもできる。その後、重み補充/更新コンポーネント480は、ハイパーパラメータλi-1をターゲットとする式(1)のR-D損失を最適化することによって、規則的なバックプロパゲーションでこれらの新たに埋め込まれた重みを更新する。この結果、更新された重み
が得られる。
が得られる。
この2ステッププロセスは、最後の重み{Wj
e(λ1)},{Wj
d(λ1)}が取得されるまで繰り返される。重み{Wj
e(λ1)},{Wj
d(λ1)}は最終的出力重み{Wj
e}及び{Wj
d}である。
図5は、実施形態による、マイクロ構造ネストマスク及び重み単一化による、マルチレートニューラル画像圧縮の方法500のフローチャートである。
いくつかの実装形態では、図5の1つ以上のプロセスブロックは、プラットフォーム120によって実行され得る。いくつかの実装において、図5の1つ以上のプロセスブロックは、ユーザデバイス110などのプラットフォーム110から分離されているか又はプラットフォーム120を含む、別のデバイス又はデバイスの群によって実行され得る。
図5に示すとおり、動作510において、方法500は、第1ハイパーパラメータに基づいてエンコードマスクを選択するステップを含む。
動作520において、方法500は、第1ニューラルネットワークの第1重み群及び選択されたエンコードマスクのコンボリューションを実行し、第1マスク重みを取得する、ステップを含む。
動作530において、方法500は、第1マスク重みを使用して、入力画像をエンコードし、エンコード表現を取得する、ステップを含む。
動作540において、方法500は、取得されたエンコード表現をエンコードし、圧縮表現を取得する、ステップを含む。
図5は、方法500のブロック例を示しているが、いくつかの実装において、方法500は、図5に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なって配置のブロックを含み得る。さらに又はあるいは、方法500のブロックのうちの2つ以上は、並行して実施され得る。
図6は、実施形態による、マイクロ構造ネストマスク及び重み単一化による、マルチレートニューラル画像圧縮のための装置600のブロック図である。
図6に示すように、装置600は、第1選択コード610、第1実行コード620、第1符号化コード630、第2符号化コード640を含む。
選択コード810は、少なくとも1つのプロセッサに、ハイパーパラメータに基づいてエンコードマスクを選択させるように構成されている。
第1実行コード620は、少なくとも1つのプロセッサに、第1ニューラルネットワークの第1重み群及び選択されたエンコードマスクのコンボリューションを実行させ、第1マスク重みを取得させる、ように構成されている。
第1エンコードコード630は、少なくとも1つのプロセッサに、入力画像をエンコードさせ、第1マスク重みを使用して、エンコード表現を取得させる、ように構成されている。
第2生成コード640はさらに、少なくとも1つのプロセッサに、取得されたエンコード表現をエンコードさせ、圧縮表現を取得させる、ように構成されている。
図7は、実施形態による、マイクロ構造ネストマスク及び重み単一化による、マルチレートニューラル画像解凍の方法700のフローチャートである。
いくつかの実装形態では、図7の1つ以上のプロセスブロックは、プラットフォーム120によって実行され得る。いくつかの実装において、図7の1つ以上のプロセスブロックは、ユーザデバイス110などのプラットフォーム110から分離されているか又はプラットフォーム120を含む、別のデバイス又はデバイスの群によって実行され得る。
図7に示すとおり、動作710において、方法700は、取得された圧縮表現をデコードし、回復表現を取得する、ステップを含む。
動作720において、方法700は、第1ハイパーパラメータに基づいて、デコードマスクを選択するステップを含む。
動作730において、方法700は、第2ニューラルネットワークの第2重み群及び選択されたデコードマスクのコンボリューションを実行し、第2マスク重みを取得する、ステップを含む。
動作740において、方法700は、第2マスク重みを使用して、取得された回復表現をデコードし、出力画像を再構成する、ステップを含む。
第1ニューラルネットワーク及び第2ニューラルネットワークは、エンコードマスク及びデコードマスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの1つ以上を更新し、入力画像、出力画像及び圧縮表現に基づいて決定されるレートゆがみ損失を最小化する、ステップによって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク及びデコードマスクによってそれぞれマスクされない第1重み群及び第2重み群のうちの、更新された1つ以上をプルーニングし、第1重み群及び第2重み群のうちのいずれがプルーニングされているかを示すバイナリプルーニングマスクを取得する、ステップと、エンコードマスク、デコードマスク、及び取得されたバイナリプルーニングマスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの少なくとも1つを更新し、レート歪み損失を最小化する、ステップと、によって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク、デコードマスク、及び取得された前記バイナリプルーニングマスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの、更新された少なくとも1つを単一化し、第1重み群及び第2重み群のうちのいずれが単一化されているかを示すバイナリ単一化マスクを取得する、ステップと、エンコードマスク、デコードマスク、取得されたバイナリプルーニングマスク、及び取得されたバイナリ単一化マスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの少なくとも部分を更新し、前記レート歪み損失を最小化する、ステップと、によって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、複数のハイパーパラメータのそれぞれについて、第1重み群及び第2重み群のうちの、更新された1つ以上をプルーニングするステップ、第1重み群及び第2重み群のうちの前記少なくとも1つを更新するステップ、第1重み群及び第2重み群のうちの、更新された少なくとも1つを単一化するステップ、及び第1重み群及び第2重み群のうちの部分を更新するステップ、を繰り返すステップによって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク及びデコードマスクにおいて1としてマスクされた、第1重み群及び第2重み群のうちの、更新された部分の第1セットを固定するステップ(fixing)と、エンコードマスク及びデコードマスクにおいて0としてマスクされた、第1重み群及び第2重み群のうちの、更新された部分の第2セットを埋め込むステップ(filling)と、第1重み群及び第2重み群のうちの埋め込まれた第2セットを更新し、レート歪み損失を最小化する、ステップと、によって訓練され得る。
図7は、方法700のブロック例を示しているが、いくつかの実装において、方法700は、図7に示されたものよりも、追加のブロック、より少ないブロック、異なるブロック、又は異なって配置のブロックを含み得る。さらに又はあるいは、方法700のブロックのうちの2つ以上は、並行して実施され得る。
図8は、実施形態による、マイクロ構造ネストマスク及び重み単一化による、マルチレートニューラル画像解凍のための装置800のブロック図である。
図8に示すように、装置800は、第1デコードコード810と、第2選択コード820と、第2実行コード830と、第2デコードコード840とを含む。
第1デコードコード810は、少なくとも1つのプロセッサに、取得された圧縮表現をデコードさせ、回復表現を取得させる、ように構成されている。
第2選択コード820はさらに、少なくとも1つのプロセッサに、第1ハイパーパラメータに基づいて、デコードマスクを選択させるように構成されている。
第2実行コード830はさらに、少なくとも1つのプロセッサに、第2ニューラルネットワークの第2重み群及び選択されたデコードマスクのコンボリューションを実行させ、第2マスク重みを取得させる、ように構成されている。
第2デコードコード840はさらに、少なくとも1つのプロセッサに、第2マスク重みを使用して、取得された回復表現をデコードさせ、出力画像を再構成させる、ように構成されている。
第1ニューラルネットワーク及び第2ニューラルネットワークは、エンコードマスク及kデコードマスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの1つ以上を更新し、入力画像、出力画像及び圧縮表現に基づいて決定されるレート歪み損失を最小化する、ステップによって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク及びデコードマスクによってそれぞれマスクされない第1重み群及び第2重み群のうちの、更新された1つ以上をプルーニングし、第1重み群及び第2重み群のうちのいずれがプルーニングされているかを示すバイナリプルーニングマスクを取得する、ステップと、エンコードマスク、デコードマスク、及び取得されたバイナリプルーニングマスクによって、それぞれマスクされていない第1重み群及び第2重み群のうちの少なくとも1つを更新し、レート歪み損失を最小化する、ステップと、によって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク、デコードマスク、及び取得されたバイナリプルーニングマスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの、更新された少なくとも1つを単一化し、第1重み群及び第2重み群のうちのいずれが単一化されているかを示すバイナリ単一化マスクを取得する、ステップと、エンコードマスク、デコードマスク、取得されたバイナリプルーニングマスク、及び取得されたバイナリ単一化マスクによってそれぞれマスクされていない第1重み群及び第2重み群のうちの、少なくとも部分を更新し、レート歪み損失を最小化する、ステップと、によって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、複数のハイパーパラメータそれぞれについて、第1重み群及び第2重み群のうちの、更新された1つ以上をプルーニングするステップ、第1重み群及び第2重み群のうちの少なくとも1つを更新するステップ、第1重み群及び前記第2重み群のうちの、更新された少なくとも1つを単一化するステップ、及び第1重み群及び第2重み群のうちの部分を更新するステップ、を繰り返すステップ、によって訓練され得る。
第1ニューラルネットワーク及び第2ニューラルネットワークはさらに、エンコードマスク及びデコードマスクにおいて1としてマスクされた、第1重み群及び第2重み群のうちの更新された部分の第1セットを固定するステップと、エンコードマスク及びデコードマスクにおいて0としてマスクされた、第1重み群及び第2重み群のうちの更新された部分の第2セットを埋め込むステップ(filling)と、第1重み群及び第2重み群のうちの埋め込まれた第2セットを更新し、レート歪み損失を最小化する、ステップと、によって訓練され得る。
従来のE2E画像圧縮方法と比較して、実施形態は、マルチレート圧縮を達成するための展開ストレージの大幅な削減、及び、推論時間の大幅な削減、及び、様々なタイプのNICモデルに適応する柔軟かつ汎用的なフレームワークを含む。実施形態は、さらに、マルチレートマスキング及びマイクロ構造単一化の両方のために、任意の所望のマイクロ構造を適応するための柔軟性を有する。
提案された方法は、別々に又は任意の順序で組み合わせて用いられることができる。さらに、方法(又は実施形態)、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一実施例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
前述の開示は、図示及び解説を提供するが、網羅的であることを意図するものではなく、また、実施形態を開示された正確な形態に限定することを意図するものでもない。変更及び変形は、上記の教示に照らして可能であるか、又は実施形態の実施から取得することができる。
本明細書で使用される場合、用語「構成要素」は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせとして広く解釈されることを意図している。
本明細書に記載したシステム及び/又は方法は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせの異なる形態で実施することができることは明らかであろう。これらのシステム及び/又は方法を実施するために使用される実際の特殊化された制御ハードウェア又はソフトウェアコードは、実施を制限するものではない。したがって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実施するように設計され得ることが理解される。
特徴の組み合わせが特許請求の範囲に記載され、及び/又は、明細書に開示されているとしても、これらの組み合わせは、可能な実施の開示を制限するものではない。実際、これらの特徴の多くは、請求項に具体的に記載されていない、及び/又は明細書に開示されていない方法で組み合わせることができる。以下に列挙される各従属クレームは、1つの請求項のみに直接従属し得るが、可能な実装の開示には、特許請求の範囲内の他のすべての請求項と組み合わされた各従属請求項が含まれる。
本明細書中で使用される要素、作用、又は命令は、明示的に記述されない限り、重要又は必須と解釈されない。また、本明細書で使用される「1つ(”a” and ”an”)」という用語は、1つ以上のアイテムを含むことを意図し、「1つ以上(”one or more.”)」と互換的に使用することができる。さらに、本明細書で使用される「セット(”set”)」という用語は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムとの組み合わせ等を含むことを意図し、「1つ以上」と互換的に使用することができる。1つのアイテムのみが意図される場合、用語「1つ(”one”)」又は類似の言語が使用される。また、本明細書で使用される場合、「有する、備える、持つ(”has,” ”have,” ”having,”)」などの用語は、自由形式の用語(open-ended terms)であることが意図されている。さらに、「に基づく(”based on”)」という句は、特に明記しない限り、「少なくとも部分的に、に基づく(”based, at least in part, on”)」を意味することを意図している。
Claims (9)
- 少なくとも1つのプロセッサによって実行される、マルチレートニューラル画像圧縮の方法であって、
第1ハイパーパラメータに基づいてエンコードマスクを選択するステップと、
第1ニューラルネットワークの第1重み群及び選択された前記エンコードマスクのコンボリューションを実行し、第1マスク重みを取得する、ステップと、
入力画像をエンコードし、前記第1マスク重みを使用して、エンコード表現を取得する、ステップと、
取得された前記エンコード表現をエンコードし、圧縮表現を取得する、ステップと
を含む、方法。 - 取得された前記圧縮表現をデコードし、回復表現を取得する、ステップと、
前記第1ハイパーパラメータに基づいて、デコードマスクを選択するステップと、
第2ニューラルネットワークの第2重み群及び選択された前記デコードマスクのコンボリューションを実行し、第2マスク重みを取得する、ステップと、
前記第2マスク重みを使用して、取得された前記回復表現をデコードし、出力画像を再構成する、ステップと、
を含む、請求項1記載の方法。 - 前記第1ニューラルネットワーク及び前記第2ニューラルネットワークは、
前記エンコードマスク及び前記デコードマスクによってそれぞれマスクされていない前記第1重み群及び前記第2重み群のうちの1つ以上を更新し、前記入力画像、前記出力画像及び前記圧縮表現に基づいて決定されるレート歪み損失を最小化する、ステップ
によって訓練される、請求項2記載の方法。 - 前記第1ニューラルネットワーク及び前記第2ニューラルネットワークはさらに、
前記エンコードマスク及び前記デコードマスクによってそれぞれマスクされない前記第1重み群及び前記第2重み群のうちの更新された1つ以上をプルーニングし、前記第1重み群及び前記第2重み群のうちのいずれがプルーニングされているかを示すバイナリプルーニングマスクを取得する、ステップと、
前記エンコードマスク、前記デコードマスク、及び取得された前記バイナリプルーニングマスクによってそれぞれマスクされていない前記第1重み群及び前記第2重み群のうちの少なくとも1つを更新し、前記レート歪み損失を最小化する、ステップと、
によって訓練される、請求項3記載の方法。 - 前記第1ニューラルネットワーク及び前記第2ニューラルネットワークはさらに、
前記エンコードマスク、前記デコードマスク、及び取得された前記バイナリプルーニングマスクによってそれぞれマスクされていない前記第1重み群及び前記第2重み群のうちの更新された少なくとも1つを単一化し、前記第1重み群及び前記第2重み群のうちのいずれが単一化されているかを示すバイナリ単一化マスクを取得する、ステップと、
前記エンコードマスク、前記デコードマスク、取得された前記バイナリプルーニングマスク、及び取得されたバイナリ単一化マスクによってそれぞれマスクされていない前記第1重み群及び前記第2重み群のうちの少なくとも部分を更新し、前記レート歪み損失を最小化する、ステップと、
によって訓練される、請求項4記載の方法。 - 前記第1ニューラルネットワーク及び前記第2ニューラルネットワークはさらに、
複数のハイパーパラメータそれぞれについて、前記第1重み群及び前記第2重み群のうちの更新された1つ以上をプルーニングするステップ、前記第1重み群及び前記第2重み群のうちの前記少なくとも1つを更新するステップ、前記第1重み群及び前記第2重み群のうちの前記更新された少なくとも1つを単一化するステップ、及び前記第1重み群及び前記第2重み群のうちの前記部分を更新するステップ、を繰り返すステップ
によって訓練される、請求項5記載の方法。 - 前記第1ニューラルネットワーク及び前記第2ニューラルネットワークはさらに、
前記エンコードマスク及び前記デコードマスクにおいて1としてマスクされた、前記第1重み群及び前記第2重み群のうちの更新された部分の第1セットを固定するステップと、
前記エンコードマスク及び前記デコードマスクにおいて0としてマスクされた、前記第1重み群及び前記第2重み群のうちの前記更新された部分の第2セットを埋め込むステップと、
前記第1重み群及び前記第2重み群のうちの埋め込まれた第2セットを更新し、前記レート歪み損失を最小化する、ステップと、
によって訓練される、請求項5記載の方法。 - マルチレートニューラル画像圧縮のための装置は、
プログラムコードを格納するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、
を備え、
前記プログラムコードは、前記少なくとも1つのプロセッサに請求項1乃至7記載の方法を実行させるコード、
を含む、装置。 - マルチレートニューラル画像圧縮のためのプログラムであって、少なくとも1つのプロセッサによって実行されるときに、
前記少なくとも1つのプロセッサに、請求項1乃至7いずれか1項記載の方法を実行させるように構成されている、プログラム。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063065598P | 2020-08-14 | 2020-08-14 | |
| US63/065,598 | 2020-08-14 | ||
| US17/317,055 | 2021-05-11 | ||
| US17/317,055 US20220051101A1 (en) | 2020-08-14 | 2021-05-11 | Method and apparatus for compressing and accelerating multi-rate neural image compression model by micro-structured nested masks and weight unification |
| PCT/US2021/035462 WO2022035493A1 (en) | 2020-08-14 | 2021-06-02 | Method and apparatus for compressing and accelerating multi-rate neural image compression model by micro-structured nested masks and weight unification |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023503927A JP2023503927A (ja) | 2023-02-01 |
| JP7342265B2 true JP7342265B2 (ja) | 2023-09-11 |
Family
ID=80222962
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022529834A Active JP7342265B2 (ja) | 2020-08-14 | 2021-06-02 | μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20220051101A1 (ja) |
| EP (1) | EP4026316A4 (ja) |
| JP (1) | JP7342265B2 (ja) |
| KR (1) | KR20220070291A (ja) |
| CN (1) | CN114556911B (ja) |
| WO (1) | WO2022035493A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210406691A1 (en) * | 2020-06-29 | 2021-12-30 | Tencent America LLC | Method and apparatus for multi-rate neural image compression with micro-structured masks |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7020335B1 (en) | 2000-11-21 | 2006-03-28 | General Dynamics Decision Systems, Inc. | Methods and apparatus for object recognition and compression |
| US20190124346A1 (en) | 2017-10-19 | 2019-04-25 | Arizona Board Of Regents On Behalf Of Arizona State University | Real time end-to-end learning system for a high frame rate video compressive sensing network |
| US20200234406A1 (en) | 2019-01-18 | 2020-07-23 | Arizona Board Of Regents On Behalf Of Arizona State University | Lapran: a scalable laplacian pyramid reconstructive adversarial network for flexible compressive sensing reconstruction |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6366614B1 (en) * | 1996-10-11 | 2002-04-02 | Qualcomm Inc. | Adaptive rate control for digital video compression |
| US10623775B1 (en) * | 2016-11-04 | 2020-04-14 | Twitter, Inc. | End-to-end video and image compression |
| US20200160565A1 (en) * | 2018-11-19 | 2020-05-21 | Zhan Ma | Methods And Apparatuses For Learned Image Compression |
| CN111008640B (zh) * | 2019-10-17 | 2024-03-19 | 平安科技(深圳)有限公司 | 图像识别模型训练及图像识别方法、装置、终端及介质 |
| US11816574B2 (en) * | 2019-10-25 | 2023-11-14 | Alibaba Group Holding Limited | Structured pruning for machine learning model |
| US12242969B2 (en) * | 2020-06-22 | 2025-03-04 | Nokia Technologies Oy | Graph diffusion for structured pruning of neural networks |
| US20210406691A1 (en) * | 2020-06-29 | 2021-12-30 | Tencent America LLC | Method and apparatus for multi-rate neural image compression with micro-structured masks |
| US11657285B2 (en) * | 2020-07-30 | 2023-05-23 | Xfusion Digital Technologies Co., Ltd. | Methods, systems, and media for random semi-structured row-wise pruning in neural networks |
-
2021
- 2021-05-11 US US17/317,055 patent/US20220051101A1/en active Pending
- 2021-06-02 EP EP21856383.1A patent/EP4026316A4/en active Pending
- 2021-06-02 WO PCT/US2021/035462 patent/WO2022035493A1/en not_active Ceased
- 2021-06-02 KR KR1020227014276A patent/KR20220070291A/ko not_active Ceased
- 2021-06-02 JP JP2022529834A patent/JP7342265B2/ja active Active
- 2021-06-02 CN CN202180005715.4A patent/CN114556911B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7020335B1 (en) | 2000-11-21 | 2006-03-28 | General Dynamics Decision Systems, Inc. | Methods and apparatus for object recognition and compression |
| US20190124346A1 (en) | 2017-10-19 | 2019-04-25 | Arizona Board Of Regents On Behalf Of Arizona State University | Real time end-to-end learning system for a high frame rate video compressive sensing network |
| US20200234406A1 (en) | 2019-01-18 | 2020-07-23 | Arizona Board Of Regents On Behalf Of Arizona State University | Lapran: a scalable laplacian pyramid reconstructive adversarial network for flexible compressive sensing reconstruction |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4026316A1 (en) | 2022-07-13 |
| CN114556911A (zh) | 2022-05-27 |
| EP4026316A4 (en) | 2023-01-11 |
| KR20220070291A (ko) | 2022-05-30 |
| CN114556911B (zh) | 2024-07-23 |
| JP2023503927A (ja) | 2023-02-01 |
| WO2022035493A1 (en) | 2022-02-17 |
| US20220051101A1 (en) | 2022-02-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102899664B1 (ko) | 마이크로구조화된 마스크들을 사용한 멀티레이트 신경 이미지 압축 방법 및 장치 | |
| JP7420942B2 (ja) | 敵対的生成器を用いたレート適応ニューラル画像圧縮のための方法及び装置 | |
| KR20220042455A (ko) | 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치 | |
| JP7712027B2 (ja) | ニューラル画像圧縮のための潜在空間における代用品質ファクタ学習 | |
| JP7418570B2 (ja) | スタック可能ネスト化モデル構造を用いたマルチレート・ニューラルイメージ圧縮のための方法および装置 | |
| JP7471730B2 (ja) | メタ学習によるレート制御を用いた適応ニューラル画像圧縮のための方法、装置及びプログラム | |
| JP7411117B2 (ja) | メタ学習による柔軟なハイパー事前モデルを用いる適応画像圧縮のための方法、装置及びコンピュータプログラム | |
| JP7425870B2 (ja) | 積み重ね可能な入れ子モデル構造及びマイクロ構造化された重み統一によるマルチレートニューラル画像圧縮のための方法及び装置 | |
| JP7342265B2 (ja) | μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置 | |
| JP2024518239A (ja) | ニューラル画像圧縮における反復的なコンテンツ適応型オンライントレーニングのためのシステム、方法、及びコンピュータプログラム | |
| JP2023526180A (ja) | 滑らかな品質制御による適応ニューラル画像圧縮のための代替の入力最適化 | |
| JP7652925B2 (ja) | ニューラル画像圧縮における複数ブロック用のコンテンツ適応型オンライン訓練のためのシステム、方法、およびコンピュータプログラム | |
| JP7434605B2 (ja) | メタ学習によるスムーズな品質制御を用いた適応ニューラル画像圧縮のための方法、装置、非一時的コンピュータ可読媒体、およびコンピュータプログラム | |
| JP2024513432A (ja) | ニューラルネットワークを使用する、エンドツーエンド(e2e)ニューラル画像圧縮(nic)用のコンテンツ適応型オンライン訓練の方法、装置及びコンピュータプログラム | |
| HK40072069A (en) | Multi rate neural image compression method, device and electronic equipment | |
| HK40072069B (zh) | 多速率神经图像压缩方法、装置以及电子设备 | |
| HK40072071A (en) | Multi bit rate neural image compression method, equipment and storage medium | |
| HK40072071B (zh) | 多比特率神经图像压缩方法及设备以及存储介质 | |
| HK40073581A (en) | Feature replacement method and apparatus for end-to-end image compression, electronic device and computer-readable medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220523 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230801 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230830 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7342265 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |