(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-02
(54)【発明の名称】ノード情報を使用してニューラルネットワークパラメーターを更新するデコーダー、エンコーダー、コントローラー、方法及びコンピュータープログラム
(51)【国際特許分類】
G06N 3/02 20060101AFI20240326BHJP
G06N 3/08 20230101ALI20240326BHJP
【FI】
G06N3/02
G06N3/08
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023563233
(86)(22)【出願日】2022-04-14
(85)【翻訳文提出日】2023-12-11
(86)【国際出願番号】 EP2022060122
(87)【国際公開番号】W WO2022219158
(87)【国際公開日】2022-10-20
(32)【優先日】2021-04-16
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】500341779
【氏名又は名称】フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】100133411
【氏名又は名称】山本 龍郎
(74)【代理人】
【識別番号】100067677
【氏名又は名称】山本 彰司
(72)【発明者】
【氏名】キルヒホッファー,ハイナー
(72)【発明者】
【氏名】ミュラー,カーステン
(72)【発明者】
【氏名】ハーゼ,パウル
(72)【発明者】
【氏名】ベッキング,ダニエル
(72)【発明者】
【氏名】テック,ゲルハード
(72)【発明者】
【氏名】サメク,ヴォイチェフ
(72)【発明者】
【氏名】シュヴァルツ,ハイコ
(72)【発明者】
【氏名】マルペ,デトレフ
(72)【発明者】
【氏名】ヴィーガンド,トーマス
(57)【要約】
本発明による実施形態は、ニューラルネットワークのパラメーターを復号化するデコーダーを含み、デコーダーは、符号化ビットストリームに基づいて、ニューラルネットワークの複数のニューラルネットワークパラメーターを取得するように構成される。さらに、デコーダーは、符号化ビットストリームから、パラメーター更新ツリーのノードを記述するノード情報を取得し、例えば受信し、例えば抽出するように構成され、ノード情報は、例えば一意の親ノード識別子である親ノード識別子、例えば整数、文字列、及び/又は暗号ハッシュを含み、ノード情報は、パラメーター更新情報、例えば1つ以上の更新命令、例えば初期ニューラルネットワークパラメーターと、例えば更新ツリーの子ノードに対応するそのより新しいバージョンとの間の差分信号を含む。さらに、デコーダーは、親ノード識別子によって識別される親ノードのパラメーター情報(パラメーター情報は、例えば、親ノードのノード情報を含み、ノード情報は、例えば、1つ以上のニューラルネットワークパラメーターの再帰的再構成又は再帰的決定又は再帰的計算又は再帰的導出のために、例えば、パラメーター更新情報及び親ノードの親ノード識別子を含み、及び/又は、例えば、親ノードのノードパラメーター、例えば、親ノードに関連付けられたニューラルネットワークパラメーター、例えば、親ノードのノード情報によって暗黙的に定義されたニューラルネットワークパラメーターを含む)を使用して、かつ、例えば、ノード情報に含まれ得るパラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出するように構成される。
【選択図】
図1a
【特許請求の範囲】
【請求項1】
ニューラルネットワークのパラメーターを復号化するデコーダー(100、100b)であって、
前記デコーダーは、符号化ビットストリームに基づいて、前記ニューラルネットワークの複数のニューラルネットワークパラメーター(104、104b、204、304、512、522、532、542、552、562、572、582、592、602、612、622、652、720、740、812)を取得するように構成され、
前記デコーダーは、パラメーター更新ツリーのノードを記述するノード情報(112、112b)を取得するように構成され、
前記ノード情報は、親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)を含み、
前記ノード情報は、パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を含み、
前記デコーダーは、前記親ノード識別子によって識別される親ノードのパラメーター情報を使用して、かつ前記パラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーター(104、104b、204、304、512、522、532、542、552、562、572、582、592、602、612、622、652、720、740、812)を導出するように構成されている、
デコーダー。
【請求項2】
請求項1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)によって識別される前記親ノードによって定義される1つ以上のニューラルネットワークパラメーターを、前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を使用して修正するように構成されている、デコーダー。
【請求項3】
請求項1又は2に記載のデコーダー(100、100b)であって、
前記デコーダーは、パラメーター更新ツリー(500)を設定するように構成され、異なるパラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を含む複数の子ノードが、共通の親ノード(510)に関連付けられる、デコーダー。
【請求項4】
請求項3に記載のデコーダー(100、100b)であって、
前記デコーダーは、現在考慮されているノードに関連付けられた前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を使用して、ルートノード(510)に関連付けられたパラメーター情報(512)を使用して、かつ前記更新ツリーにおいて前記ルートノードと前記現在考慮されているノードとの間にある1つ以上の中間ノードに関連付けられたパラメーター更新情報を使用して、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するように構成されている、デコーダー。
【請求項5】
請求項3又は4に記載のデコーダー(100、100b)であって、
前記デコーダーは、ルートノード(510)から現在考慮されているノードまで前記パラメーター更新ツリー(500)をトラバースするように構成され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、訪問先ノードの更新命令を1つ以上の初期ニューラルネットワークパラメーターに適用するように構成されている、
デコーダー。
【請求項6】
請求項3~5のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、
前記パラメーター更新ツリーの複数の連続するノード(520、550)、及び/又は
前記パラメーター更新ツリーの1つ以上の連続するノード(520、550)及び前記パラメーター更新情報、
を集約するように構成されている、
デコーダー。
【請求項7】
請求項3~6のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ノード情報(112、112b)に基づいて前記パラメーター更新ツリー(500)を更新するように構成されている、デコーダー。
【請求項8】
請求項1~7のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)を選定し、又は前記ルートノードの前記子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選定することを決定するように構成されている、デコーダー。
【請求項9】
請求項1~8のいずれか一項に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノード(570)の親ノード(530)に関連付けられた1つ以上のパラメーター値(532)のスケーリングを定義する更新命令(576)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(572)を取得するために、前記更新命令(576)によって定義されたスケーリングを適用するように構成されている、
デコーダー。
【請求項10】
請求項1~9のいずれか一項に記載のデコーダー(100、100b)であって、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた前記パラメーターテンソル(592)を取得するために、積テンソル(596)をパラメーターテンソル(542)に適用するように構成されている、
デコーダー。
【請求項11】
請求項1~10のいずれか一項に記載のデコーダー(100、100b)であって、
親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、積テンソルを含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられたパラメーターテンソルを取得するために、前記親ノードの前記パラメーターテンソルに前記積テンソルを適用するように構成されている、
デコーダー。
【請求項12】
請求項1~11のいずれか一項に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令(526、536、546、556、566、586)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(522、532、542、552、562、582)を取得するために、前記更新命令によって定義された前記変更値の加算又は減算を適用するように構成されている、
デコーダー。
【請求項13】
請求項1~12のいずれか一項に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値(582)と1つ以上の変更値との重み付き組み合わせ(606)を定義する更新命令を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(602)を取得するために、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と1つ以上の変更値との重み付き組み合わせを適用するように構成されている、
デコーダー。
【請求項14】
請求項1~13のいずれか一項に記載のデコーダー(100、100b)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
複数の変更値が、和テンソルによって表され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた前記パラメーターテンソルを取得するために、前記現在考慮されているノードの前記親ノードに関連付けられた前記パラメーターテンソルの要素にノードテンソル重み値を乗算して、スケーリングされたパラメーターテンソルを取得し、前記和テンソルの要素に和テンソル重み値を乗算して、スケーリングされた和テンソルを取得し、前記スケーリングされたパラメーターテンソルと前記スケーリングされた和テンソルとの要素ごとの和を形成するように構成されている、
デコーダー。
【請求項15】
請求項1~14のいずれか一項に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値の、1つ以上の変更値との置換を定義する更新命令(616)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(612)を取得するために、前記現在考慮されているノード(610)の親ノード(530)に関連付けられた1つ以上のパラメーター値を1つ以上の置換値で置換するように構成されている、
デコーダー。
【請求項16】
請求項1~15のいずれか一項に記載のデコーダー(100、100b)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、更新テンソルの形態の更新命令(660)を含み、
前記デコーダーは、前記親ノードの前記パラメーターテンソルの形状に従って、前記更新テンソルの形状を変換するように構成されている、
デコーダー。
【請求項17】
請求項16に記載のデコーダー(100、100b)であって、
第1の方向(652)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の所与のニューロン(642)の入力信号に対する前記ニューラルネットワークの以前の層(630)の複数のニューロン(632、634、636)の出力信号の寄与に関連付けられ、
第2の方向(654)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の複数のニューロン(642、644、646)の入力信号に対する前記ニューラルネットワークの以前の層(630)の所与のニューロン(634)の出力信号の寄与に関連付けられ、
前記デコーダーは、前記第1の方向における前記更新テンソルの拡張が前記第1の方向における前記パラメーターテンソルの次元よりも小さい場合、前記第1の方向における前記更新テンソルの次元を拡張するように構成され、及び/又は
前記デコーダーは、前記第2の方向における前記更新テンソルの拡張が前記第2の方向における前記パラメーターテンソルの次元よりも小さい場合、前記第2の方向における前記更新テンソルの次元を拡張するように構成されている、
デコーダー。
【請求項18】
請求項16又は17に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記更新テンソルの行の数が前記パラメーターテンソルの行の数よりも小さい場合、前記更新テンソル(660)の行のエントリをコピーして、形状変換された更新テンソル(670)の1つ以上の拡張行のエントリを取得するように構成され、及び/又は
前記デコーダーは、前記更新テンソルの列の数が前記パラメーターテンソルの列の数よりも小さい場合、前記更新テンソル(660)の列のエントリをコピーして、形状変換された更新テンソル(670)の1つ以上の拡張列のエントリを取得するように構成されている、
デコーダー。
【請求項19】
請求項16~18のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、更新テンソル(660)の1つ以上のエントリを行方向及び列方向にコピーして、形状変換された更新テンソル(670)のエントリを取得するように構成されている、
デコーダー。
【請求項20】
請求項16~19のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記更新テンソルの拡張に関する情報に依存して、前記更新テンソルの形状を変換する必要性、及び/又は前記更新テンソルの形状の変換の程度を決定するように構成されている、
デコーダー。
【請求項21】
請求項1~20のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)が存在するかどうかを判定するように構成され、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)が存在する場合に、請求項1~20のいずれか一項に記載の1つ以上のニューラルネットワークパラメーターを導出するように構成され、
前記デコーダーは、前記親ノード識別子が存在しない場合、前記現在考慮されているノードを前記ルートノード(510)にするように構成されている、
デコーダー。
【請求項22】
請求項1~21のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)を1つ以上のノードに関連付けられたハッシュ値と比較して、前記現在考慮されているノードの前記親ノードを識別するように構成されている、デコーダー。
【請求項23】
請求項22に記載のデコーダー(100、100b)であって、
前記ハッシュ値は、1つ以上の以前に復号化されたノードに関連付けられた完全圧縮データユニットNDUのハッシュ値である、デコーダー。
【請求項24】
請求項22又は23に記載のデコーダー(100、100b)であって、
前記ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に復号化されたノードに関連付けられた圧縮データユニットNDUのペイロード部分のハッシュ値である、デコーダー。
【請求項25】
請求項22~24のいずれか一項に記載のデコーダー(100、100b)であって、
前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、デコーダー。
【請求項26】
請求項1~25のいずれか一項に記載のデコーダー(100、100b)であって、
前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)は、前記ニューラルネットの更新ツリー(500)及び/又は層を識別する、
デコーダー。
【請求項27】
請求項1~26のいずれか一項に記載のデコーダー(100、100b)であって、
前記ノード情報(112、112b)は、ノード識別子を含む、
デコーダー。
【請求項28】
請求項1~27のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ノード識別子を記憶するように構成されている、
デコーダー。
【請求項29】
請求項1~28のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、新しいノードを追加するときに、前記新しいノードの親ノードを識別するために、1つ以上の記憶されたノード識別子を、前記新しいノードのノード情報(112、112b)内の親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)と比較するように構成されている、
デコーダー。
【請求項30】
請求項1~29のいずれか一項に記載のデコーダー(100、100b)であって、
前記ノード識別子は、前記ノード情報が関連付けられた更新ツリー(500)を識別し、及び/又は
前記ノード識別子は、前記ノード情報が関連する前記ニューラルネットの層を識別する、
デコーダー。
【請求項31】
請求項1~30のいずれか一項に記載のデコーダー(100、100b)であって、
前記ノード識別子は、デバイス識別子及び/又はパラメーター更新ツリー深度情報及び/又はパラメーター更新ツリー識別子を含む、
デコーダー。
【請求項32】
請求項1~31のいずれか一項に記載のデコーダー(100、100b)であって、
前記ノード情報(112、112b)は、ノード識別子が存在するか否かを示すシグナリングを含む、
デコーダー。
【請求項33】
請求項21~32のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)のタイプに関する情報を含むシグナリング(202、302、302b)を取得するように構成され、前記デコーダーは、前記親ノード識別子のそれぞれのタイプを考慮するために前記シグナリングを評価するように構成されている、デコーダー。
【請求項34】
請求項1~33のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)の存在を示すシンタックス要素に依存して、前記親ノード識別子のタイプを示すシンタックス要素を選択的に評価するように構成されている、デコーダー。
【請求項35】
請求項1~34のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ニューラルネットワークのトポロジー変更に関する情報を含む前記ノード情報内のトポロジー変更シグナリングを取得するように構成され、
前記デコーダーは、修正されたトポロジーを有する前記ニューラルネットワークの1つ以上のニューラルネットワークパラメーターを導出するために、前記トポロジー変更に従って前記親ノードの前記パラメーター情報を修正するように構成されている、
デコーダー。
【請求項36】
請求項1~35のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、トポロジー変更情報に応じて、1つ又は2つのテンソルの形状を変更するように構成されている、
デコーダー。
【請求項37】
請求項36に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記トポロジー変更情報に応じて前記所与の層のニューロンの数を変更するように構成されている、
デコーダー。
【請求項38】
請求項36又は37に記載のデコーダー(100、100b)であって、
前記デコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値を1つ以上の置換値で置換するように構成され、又は
前記デコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルを1つ以上の置換テンソルで置換するように構成されている、
デコーダー。
【請求項39】
請求項36~38のいずれか一項に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記トポロジー変更シグナリングに応じて、前記ニューラルネットの隣接する層に関連付けられた2つの更新ツリー中の2つのテンソルの形状を同期された方法で変更するように構成されている、
デコーダー。
【請求項40】
符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化するエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、パラメーター更新ツリー(500)のノードを記述するノード情報(212、312、312b、412)を提供するように構成され、
前記ノード情報は、親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)を含み、
前記ノード情報は、パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を含み、
前記パラメーター更新情報は、前記親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する、
エンコーダー。
【請求項41】
請求項40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を取得するために、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)によって識別される前記親ノードによって定義される1つ以上のニューラルネットワークパラメーターと、1つ以上の現在のニューラルネットワークパラメーターとの間の差分を決定するように構成されている、
エンコーダー。
【請求項42】
請求項40又は41に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、パラメーター更新ツリー(500)を設定するように構成され、異なるパラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を含む複数の子ノードが、共通の親ノード(510)に関連付けられる、エンコーダー。
【請求項43】
請求項40~42のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、現在考慮されているノードに関連付けられた前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を使用して、ルートノード(510)に関連付けられたパラメーター情報を使用して、かつ前記更新ツリーにおいて前記ルートノードと前記現在考慮されているノードとの間にある1つ以上の中間ノードに関連付けられたパラメーター更新情報を使用して、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得することが可能であるように、前記ノード情報(212、312、312b、412)を提供するように構成されている、エンコーダー。
【請求項44】
請求項40~43のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、複数のノード情報ブロック(418)を提供するように構成され、
第1のノード情報ブロックの親ノード識別子(524、534、544、554、564、574、584、594、604、614、624)が、ルートノードを指し、前記第1のノードのパラメーター更新情報(526、536、546、556、566、576、586、596、606、616、626)が、前記第1のノード情報ブロックの前記親ノード識別子によって定義される前記ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)と、前記第1のノードのニューラルネットワークパラメーターとの間の差分を記述し、
N番目のノード情報ブロックの親ノード識別子は、N-1番目のノードを指し、前記N番目のノードのパラメーター更新情報は、前記N番目のノード情報ブロックの前記親ノード識別子によって定義される前記N-1番目のノードに関連付けられたニューラルネットワークパラメーターと、前記N番目のノードのニューラルネットワークパラメーターとの間の差分を記述する、
エンコーダー。
【請求項45】
請求項40~44のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、デコーダーにシグナリング(202、302、302b)を提供して、ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)又は前記ルートノードの前記子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選択的に選定するように構成されている、エンコーダー。
【請求項46】
請求項40~45のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノード(570)の親ノード(530)に関連付けられた1つ以上のパラメーター値(532)のスケーリングを定義する更新命令(576)を含み、
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値(532)と、現在考慮されているノードのパラメーター値(572)とに基づいて、前記スケーリングを決定するように構成されている、
エンコーダー。
【請求項47】
請求項40~46のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、
前記エンコーダーは、前記現在考慮されているノードに関連付けられたパラメーターテンソル(592)を取得するために、パラメーターテンソル(542)への適用の積テンソル(596)を提供するように構成されている、
エンコーダー。
【請求項48】
請求項40~47のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、積テンソルを含み、
前記エンコーダーは、前記親ノードの前記パラメーターテンソルへの前記積テンソルの適用が、前記現在考慮されているノードに関連付けられたパラメーターテンソルをもたらすように、前記積テンソルを提供するように構成されている、
エンコーダー。
【請求項49】
請求項40~48のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令(526、536、546、556、566、586)を含む、
エンコーダー。
【請求項50】
請求項40~49のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノード(602)の親ノード(580)に関連付けられた1つ以上のパラメーター値(582)と1つ以上の変更値との重み付き組み合わせ(606)を定義する更新命令を含む、エンコーダー。
【請求項51】
請求項40~50のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
複数の変更値が、和テンソルによって表される、
エンコーダー。
【請求項52】
請求項40~51のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノード(610)の親ノード(530)に関連付けられた1つ以上のパラメーター値の、1つ以上の変更値との置換を定義する更新命令(616)を含む、エンコーダー。
【請求項53】
請求項40~52のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、更新テンソルの形態の更新命令を含み、
前記エンコーダーは、前記更新テンソルの形状が前記親ノードの前記パラメーターテンソルの形状とは異なるように、前記更新テンソル(660)を提供するように構成されている、
エンコーダー。
【請求項54】
請求項53に記載のエンコーダー(200、300、300b、400)であって、
第1の方向(652)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワーク(640)の現在考慮されている層の所与のニューロン(642)の入力信号に対する前記ニューラルネットワークの以前の層(630)の複数のニューロン(632、634、636)の出力信号の寄与に関連付けられ、
第2の方向(654)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の複数のニューロン(642、644、646)の入力信号に対する前記ニューラルネットワークの以前の層(630)の所与のニューロン(634)の出力信号の寄与に関連付けられ、
前記エンコーダーは、前記第1の方向(例えば、行方向)における前記更新テンソルの拡張が前記第1の方向における前記パラメーターテンソルの次元よりも小さくなるように、前記更新テンソルを提供するように構成され、及び/又は
前記エンコーダーは、前記第2の方向(例えば、列方向)における前記更新テンソルの拡張が前記第2の方向における前記パラメーターテンソルの次元よりも小さくなるように、前記更新テンソルを提供するように構成されている、
エンコーダー。
【請求項55】
請求項53又は54に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記更新テンソルの行の数が前記パラメーターテンソルの行の数よりも小さくなるように、前記更新テンソル(660)を提供するように構成され、及び/又は
前記エンコーダーは、前記更新テンソルの列の数が前記パラメーターテンソルの列の数よりも小さくなるように、前記更新テンソルを提供するように構成されている、
エンコーダー。
【請求項56】
請求項53~55のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記更新テンソル(660)の拡張に関する情報を提供するように構成されている、
エンコーダー。
【請求項57】
請求項40~56のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)が存在するか否かの情報を含むシグナリング(202、302、302b)を提供するように構成されている、
エンコーダー。
【請求項58】
請求項40~57のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記現在考慮されているノードの前記親ノードを識別するために、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)としてノードに関連付けられたハッシュ値を提供するように構成されている、エンコーダー。
【請求項59】
請求項58に記載のエンコーダー(200、300、300b、400)であって、
前記ハッシュ値は、1つ以上の以前に符号化されたノードに関連付けられた完全圧縮データユニットのハッシュ値である、エンコーダー。
【請求項60】
請求項58又は59に記載のエンコーダー(200、300、300b、400)であって、
前記ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に符号化されたノードに関連付けられた圧縮データユニットのペイロード部分のハッシュ値である、エンコーダー。
【請求項61】
請求項58~60のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、エンコーダー。
【請求項62】
請求項40~61のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、前記ニューラルネットの更新ツリー(500)及び/又は層を識別する、
エンコーダー。
【請求項63】
請求項40~62のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記ノード情報(212、312、312b、412)は、ノード識別子を含む、
エンコーダー。
【請求項64】
請求項40~63のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記ノード識別子を記憶するように構成されている、
エンコーダー。
【請求項65】
請求項40~64のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、新しいノードを追加するときに、前記新しいノードの親ノードを識別するために、1つ以上の記憶されたノード識別子を、前記新しいノードのノード情報(212、312、312b、412)内の親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)と比較するように構成されている、
エンコーダー。
【請求項66】
請求項40~65のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
ノード識別子は、前記ノード情報(212、312、312b、412)が関連付けられた更新ツリー(500)を識別し、及び/又は
前記ノード識別子は、前記ノード情報が関連する前記ニューラルネットの層を識別する、
エンコーダー。
【請求項67】
請求項40~66のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記ノード識別子は、デバイス識別子及び/又はパラメーター更新ツリー深度情報及び/又はパラメーター更新ツリー識別子を含む、
エンコーダー。
【請求項68】
請求項40~67のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記ノード情報(212、312、312b、412)は、ノード識別子が存在するか否かを示すシグナリングを含む、
エンコーダー。
【請求項69】
請求項40~67のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、
エンコーダー。
【請求項70】
請求項40~61のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)のタイプに関する情報を含むシグナリング(202、302、302b)を提供するように構成されている、エンコーダー。
【請求項71】
請求項40~70のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記親ノード識別子を記述するシンタックス要素が存在する場合、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)のタイプを示すシンタックス要素を選択的に提供するように構成されている、エンコーダー。
【請求項72】
請求項40~70のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記ノード情報(312、312、212b、412)内に、前記ニューラルネットワークのトポロジー変更に関する情報を含むトポロジー変更シグナリングを提供するように構成されている、エンコーダー。
【請求項73】
請求項40~72のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、トポロジー変更のシグナリングとともに、1つ又は2つのテンソルの形状の変更をシグナリングするように構成されている、
エンコーダー。
【請求項74】
請求項73に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記トポロジー変更情報を使用して前記所与の層のニューロンの数の変更をシグナリングするように構成されている、
エンコーダー。
【請求項75】
請求項73又は74に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値の、1つ以上の置換値による置換をシグナリングするように構成されるか、又は
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの、1つ以上の置換テンソルによる置換をシグナリングするように構成されている、
エンコーダー。
【請求項76】
請求項73~75のいずれか一項に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記トポロジー変更シグナリングを使用して、前記ニューラルネットの隣接する層に関連付けられた2つの更新ツリー中の2つのテンソルの形状の変更を同期された方法でシグナリングするように構成されている、
エンコーダー。
【請求項77】
ニューラルネットワークコントローラー(800)であって、
前記ニューラルネットワークコントローラーは、ニューラルネットワークを訓練して、初期ニューラルネットワークパラメーターに基づいて更新されたニューラルネットワークパラメーター(812)を取得するように構成され、
前記ニューラルネットワークコントローラーは、参照ニューラルネットワークパラメーター(822)及び前記更新されたニューラルネットワークパラメーターに基づいてパラメーター更新情報(832)を決定するように構成され、
前記パラメーター更新情報は、前記初期ニューラルネットワークパラメーターから、少なくとも近似的に、前記更新されたニューラルネットワークパラメーターをどのように導出するかを記述する1つ以上の更新命令を含み、
前記ニューラルネットワークコントローラーは、親ノード識別子と前記パラメーター更新情報とを含むノード情報(112、112b、212、312、312b、412、802)を提供するように構成され、
前記親ノード識別子は、親ノードを定義し、前記親ノードのパラメーター情報は、前記パラメーター更新情報の適用の開始点として機能する、
ニューラルネットワークコントローラー。
【請求項78】
請求項77に記載のニューラルネットワークコントローラー(800)であって、
前記ニューラルネットワークコントローラーは、請求項40~76のいずれか一項に記載のエンコーダー(200、300、300b、400)を含むか、又は
前記ニューラルネットワークコントローラーは、請求項40~76のいずれか一項に記載のエンコーダーの任意の機能又は機能の組み合わせを含む、
ニューラルネットワークコントローラー。
【請求項79】
ニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、複数のニューラルネットワークのノード情報(112、112b、212、312、312b、412、802、902)を受信するように構成され、前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含み、
前記ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報(912)を取得するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記組み合わされたパラメーター更新情報を分配するように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項80】
請求項79に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの等しい親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項81】
請求項79又は80に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子が関連付けられた親ノードのパラメーター情報を複数のデコーダーに分配するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子を含むノード情報を前記デコーダーから受信するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせるように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項82】
請求項81に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、パラメーター更新ツリーの組み合わされたノード情報を記述するノード情報を提供するように構成され、
前記組み合わされたノード情報は、前記親ノード識別子を含み、
前記組み合わされたノード情報は、前記組み合わされたパラメーター更新情報を含む、
ニューラルネットワーク連合学習コントローラー。
【請求項83】
請求項79~82のいずれか一項に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、請求項40~72のいずれか一項に記載のエンコーダー(200、300、300b、400)を含むか、又は
前記ニューラルネットワーク連合学習コントローラーは、請求項40~72のいずれか一項に記載のエンコーダーの任意の機能又は機能の組み合わせを含む、
ニューラルネットワーク連合学習コントローラー。
【請求項84】
ニューラルネットワークのパラメーターを復号化する方法(1000)であって、
符号化ビットストリームに基づいて、前記ニューラルネットワークの複数のニューラルネットワークパラメーターを取得(1010)することと、
パラメーター更新ツリーのノードを記述するノード情報を取得(1020)することであって、
前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含むことと、
前記親ノード識別子によって識別される親ノードのパラメーター情報を使用し、かつ前記パラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出(1030)することと、を含む、
方法。
【請求項85】
符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化する方法(1100)であって、
パラメーター更新ツリーのノードを記述するノード情報を提供(1110)することを含み、
前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含み、
前記パラメーター更新情報は、前記親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する、
方法。
【請求項86】
ニューラルネットワークを制御する方法(1200)であって、
初期ニューラルネットワークパラメーターに基づいて、更新されたニューラルネットワークパラメーターを取得するために、ニューラルネットワークを訓練(1210)することと、
参照ニューラルネットワークパラメーター及び前記更新されたニューラルネットワークパラメーターに基づいてパラメーター更新情報を決定(1220)することであって、
前記パラメーター更新情報は、前記初期ニューラルネットワークパラメーターから、少なくとも近似的に、前記更新されたニューラルネットワークパラメーターをどのように導出するかを記述する1つ以上の更新命令を含むことと、
親ノード識別子と前記パラメーター更新情報とを含むノード情報を提供(1230)することであって、
前記親ノード識別子は、親ノードを定義し、前記親ノードのパラメーター情報は、前記パラメーター更新情報の適用の開始点として機能することとを含む、
方法。
【請求項87】
ニューラルネットワーク連合学習を制御する方法(1300)であって、
複数のニューラルネットワークのノード情報を受信(1310)することであって、前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含むことと、
組み合わされたパラメーター更新情報を取得するために、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせる(1320)ことと、
前記組み合わされたパラメーター更新情報を分配(1330)することと、
を含む、
方法。
【請求項88】
コンピュータープログラムであって、前記コンピュータープログラムがコンピューター上で動作するとき、請求項84~87のいずれか一項に記載の方法を実行するコンピュータープログラム。
【請求項89】
ニューラルネットワークパラメーターの符号化表現であって、
前記符号化表現は、パラメーター更新ツリーのノードを記述するノード情報を含み、
前記ノード情報は、親ノード識別子とパラメーター更新情報とを含む、
符号化表現。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、ノード情報を使用してニューラルネットワークパラメーターを更新するデコーダー、エンコーダー、コントローラー、方法、及びコンピュータープログラムに関する。
【0002】
本発明による更なる実施形態は、分配型シナリオにおけるニューラルネットワーク更新の効率的なシグナリングに関する。
【背景技術】
【0003】
ニューラルネットワーク(NN)、例えばニューラルネットは、様々な応用分野で使用されている。良好な性能を提供するために、例えば複雑で計算コストの高い訓練技術が開発されてきた。専用の訓練デバイス上でかかる訓練プロセスを実行するために、ニューラルネットワークパラメーターは、例えば、エンドユーザーデバイスから訓練デバイスへ、及びその逆に伝送する必要がある場合がある。さらに、効率的なニューラルネットワークパラメーター表現及びパラメーター伝送技術は、複数のデバイスがニューラルネットワークを訓練し、それぞれの訓練プロセスの更新されたパラメーターが中央サーバーを使用して集約され得る分配型学習シナリオにおいて、更に重要になる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、学習又は更新プロセスのニューラルネットワークパラメーターの効率的な表現及び伝送を可能にする概念を得ることが望まれている。
【課題を解決するための手段】
【0005】
これは、本出願の独立請求項の主題によって達成される。
【0006】
本発明による更なる実施の形態は、本出願の従属請求項の主題によって定義される。
【0007】
本発明による実施の形態は、ニューラルネットワークのパラメーターを復号化するデコーダーを含み、デコーダーは、符号化ビットストリームに基づいて、ニューラルネットワークの複数のニューラルネットワークパラメーターを取得するように構成される。さらに、デコーダーは、符号化ビットストリームから、パラメーター更新ツリーのノードを記述するノード情報を取得し、例えば受信し、例えば抽出するように構成され、ノード情報は、例えば一意の親ノード識別子である親ノード識別子、例えば整数、文字列、及び/又は暗号ハッシュを含み、ノード情報は、パラメーター更新情報、例えば1つ以上の更新命令、例えば初期ニューラルネットワークパラメーターと、例えば更新ツリーの子ノードに対応するそのより新しいバージョンとの間の差分信号を含む。
【0008】
さらに、デコーダーは、親ノード識別子によって識別される親ノードのパラメーター情報(パラメーター情報は、例えば、親ノードのノード情報を含み、ノード情報は、例えば、1つ以上のニューラルネットワークパラメーターの再帰的再構成又は再帰的決定又は再帰的計算又は再帰的導出のために、例えば、パラメーター更新情報及び親ノードの親ノード識別子を含み、及び/又は、例えば、親ノードのノードパラメーター、例えば、親ノードに関連付けられたニューラルネットワークパラメーター、例えば、親ノードのノード情報によって暗黙的に定義されたニューラルネットワークパラメーターを含む)を使用して、かつ、例えば、ノード情報に含まれ得るパラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出するように構成される。
【0009】
本発明による実施の形態は、パラメーター更新ツリーに基づいてニューラルネットワークパラメーターの効率的な表現を提供するという主要な概念に基づく。
【0010】
本発明者らは、ニューラルネットワークを更新又は改変するために、ニューラルネットワークの全てのパラメーターを伝送/受信することが必要でない場合があることを認識した。これに代えて、更新情報、すなわち(ニューラルネットワーク)パラメーター更新情報のみを符号化/復号化して伝送/受信することができる。かかる、例えば差分情報又は例えば差異情報を利用するために、例えば変更値を含む更新情報を使用して適応される参照パラメーターの集合に関する情報を提供することができる。本発明者らは、ノード情報を使用してかかる情報を表すことができ、ノード情報は、パラメーター更新情報と、例えば、調整される参照パラメーターの集合へのポインターとして機能し得る親ノード識別子とを含むことを認識した。
【0011】
一例として、本発明のデコーダーは、パラメーター更新ツリーに関する情報を含むことができ、パラメーター更新ツリーは、例えば、階層的な順序である1つ以上のノードを含む。
【0012】
したがって、更新又は訓練されたニューラルネットワークの1つ以上のニューラルネットワークパラメーターを決定するために、デコーダーは、前述のノード情報を受信することができ、又はデコーダーに提供される符号化ビットストリームからノード情報を抽出することができる。
【0013】
親ノード識別子を使用して、デコーダーは、パラメーター更新ツリー中の特定のノードを選択することができる。
【0014】
一例として、選択されたノードに関連付けられた、例えば、ノードによって表されるニューラルネットワークの特定のバージョンに関連付けられたニューラルネットワークパラメーターは、ノード内に記憶することができる。したがって、デコーダーは、更新されたニューラルネットワークパラメーター、したがって、例えば、選択されたノードによって表されるニューラルネットワークの更新されたバージョンを決定するために、パラメーター更新情報を使用して、これらの記憶されたニューラルネットワークパラメーターを適応させ、又は調整し、又は更新することができる。一例として、受信又は抽出されたノード情報の親ノード識別子及びパラメーター更新情報を使用して、新しいノードを更新ツリーに追加することができる。新しいノードは、例えば、更新されたニューラルネットワークパラメーターを含むか、又は表すことができる。
【0015】
別の例として、選択されたノードは、自身の親ノード識別子及び自身のパラメーター更新情報を含むことができる。したがって、デコーダーは、例えば、(例えば、参照情報及び更新値へのポインターの代わりに)ニューラルネットワークパラメーターが利用可能であるノード、例えば、ルートノード又はソースノードに達するまで、選択されたノードの先行ノードを再帰的に導出することができる。したがって、これらのニューラルネットワークパラメーターは、導出されたノードのパラメーター更新情報と、選択されたノードと、最終的に、受信又は抽出されたノード情報のパラメーター更新情報とに基づいて更新することができる。
【0016】
以下では、本発明による更なる実施の形態について論じる。特定のノードに関する任意選択の例及び説明は、2つの任意のノード、例えば、ノードU2及びU3、又は後で詳細に説明する
図5及び/又は
図15に示されているノードに関係することができる。
【0017】
本発明の更なる実施の形態によれば、デコーダーは、親ノード識別子によって識別される親ノードによって定義される(例えば、パラメーター更新情報及び親ノードの親ノード情報によって暗黙的又は再帰的に定義される)1つ以上のニューラルネットワークパラメーター、例えばノードパラメーターを、親ノードに関連付けられたパラメーターをどのように更新するかに関する命令を含み得るパラメーター更新情報を使用して修正するように構成される。
【0018】
親ノード識別子によって、例えば、再帰的に決定された1つ以上のニューラルネットワークパラメーターは、例えば、パラメーター更新情報において提供される差分情報を使用して修正することができる。したがって、パラメーター更新情報は、例えば、更新値(例えば、デルタ値)と、更新命令(簡単に言えば、更新値をどう扱うかについての命令(例えば、加算、減算、乗算、除算等))とを含むことができる。本発明者らは、かかる本発明の修正が、更新されたニューラルネットワークパラメーターの効率的な決定を可能にし得ることを認識した。
【0019】
本発明の更なる実施の形態によれば、デコーダーは、パラメーター更新ツリーを設定するように構成され、異なるパラメーター更新情報を含む(及び任意選択で同一の親ノード識別子を含む)複数の子ノードは、共通の親ノード、例えばルートノードRに関連付けられ、例えば、ツリーの各ノードは、ツリーのルートノードに関連付けられたニューラルネットワークパラメーターのバージョンを表すことができる。
【0020】
一例として、デコーダーは、パラメーター更新ツリーのノードを記述するノード情報を取得するように構成されるだけでなく、それぞれの更新ツリーを設定するようにも構成することができる。したがって、デコーダーは、受信されたノード情報に基づいて、更新ツリーを操作又は更新、例えば調整することができる。一例として、複数の異なるデバイス内の複数のデコーダーは、更新されたニューラルネットワークパラメーターを取得するために、それらのそれぞれの、例えば共通の更新ツリーを更新するために、ノード情報、例えば差分情報及び参照情報のみがそれらの間で伝送される必要があり得るように、それぞれのパラメーター更新ツリーを更新することができる。
【0021】
本発明の更なる実施の形態によれば、デコーダーは、現在考慮されているノード、例えばノードU3に関連付けられたパラメーター更新情報を使用し、ルートノード、例えばノードRに関連付けられたパラメーター情報、例えばツリーパラメーター、例えばベースモデルのニューラルネットワークパラメーター、例えばニューラルネットワークのデフォルト又は事前訓練された又は初期ニューラルネットワークパラメーターを使用し、更新ツリー内のルートノード、例えばノードRと現在考慮されているノード、例えばノードU3との間にある1つ以上の中間ノード(例えば中間ノード)、例えばノードU2に関連付けられたパラメーター更新情報、例えば更新規則を使用して、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するように構成される。
【0022】
したがって、パラメーター更新は、中間ノードを介して再帰的に実施することができ、中間ノードは、例えば、更新されたニューラルネットワークパラメーターがそれに基づいて取得される先行する訓練セッションからの中間ニューラルネットワークパラメーターに例えば関連付けられる。中間ノードは、例えば、ルートノードから現在考慮されているノードへのパラメーター更新ツリーにおける1つの経路に沿って配置されてもよい。
【0023】
本発明の更なる実施の形態によれば、デコーダーは、ルートノード、例えばノードRから現在考慮されているノード、例えばノードU3までパラメーター更新ツリーをトラバースするように構成され、デコーダーは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、訪問先ノードの更新命令(例えば、ノードU2及びU3の、例えばルートノードと現在考慮されているノードとの間のノードの、かつ現在考慮されているノードの、例えば全ての訪問先ノードの更新パラメーター)を1つ以上の初期ニューラルネットワークパラメーター(例えば、例えばルートノードに関連付けられ得る、又は例えばルートノードによって定義され得る、又は例えば基本モードによって定義され得る(基本モードは、例えばパラメーター更新ツリーに関連付けられ得る)1つ以上の「ツリーパラメーター」)に適用するように構成される。
【0024】
本発明者らは、ルートノードのニューラルネットワークパラメーターの集合に基づいて、当該ルートノードから開始して、現在考慮されているノードにつながるパラメーター更新ツリーの経路のそれぞれの子ノードパラメーター更新情報を適用することによって、ニューラルネットワークパラメーターの更新されたバージョンが提供され得ることを認識した。場合によっては、多くのニューラルネットワークパラメーターがニューラルネットワークの異なる更新されたバージョン間で変化しないことがあり、したがって、例えば、ルートノードの、ニューラルネットワークパラメーターの基準集合、例えば、基本集合又は初期集合を修正するために、限られた量の差分情報しか記憶及び適用されないため、本発明者らは、これがニューラルネットワークパラメーターの効率的なコーディングを可能にし得ることを認識した。
【0025】
本発明の更なる実施の形態によれば、デコーダーは、パラメーター更新ツリーの複数の連続するノードを集約する(例えば、ノードU2及びU3を新しい単一のノードU23に集約する。例えば、複数の連続するノードを集約することは、集約されたノードの連続して実施された更新規則又は更新命令と同等又は少なくともほぼ同等である更新規則又は更新命令を決定することを含んでもよい)ように構成される。代替的に、又は加えて、デコーダーは、パラメーター更新ツリーの1つ以上の連続するノードとパラメーター更新情報とを集約するように構成される。
【0026】
本発明者らは、このようにして、簡単に言えば、集約されたノードによって表されるニューラルネットワークパラメーターの特定の集合へのショートカットが提供され得ることを認識した。したがって、連続する子ノードの複数のパラメーター更新情報を用いて親ノードのニューラルネットワークパラメーターを修正する必要はなく、ただ1つの集約されたパラメーター更新情報を用いて親ノードのニューラルネットワークパラメーターを修正する必要があり得る。
【0027】
本発明の更なる実施の形態によれば、デコーダーは、例えば、ノード情報のパラメーター更新情報に関連付けられた子ノードを、ノード情報の親ノード識別子に関連付けられたパラメーター更新ツリーのノードに追加することによって、ノード情報に基づいてパラメーター更新ツリーを更新するように構成される。
【0028】
本発明者らは、このようにして、複数のニューラルネットワーク訓練からの情報がそれぞれのパラメーター更新ツリーに組み込まれ得て、さらに、別の例として、このようにして、更新ツリーを含むデバイス間の効率的な通信を可能にするために、親ノード識別子がそれぞれの更新ツリーに知られていないノードを参照し得る状況を防止するために、複数のパラメーター更新ツリーが最新に保たれ得ることを認識した。
【0029】
本発明の更なる実施の形態によれば、デコーダーは、ルートノードに関連付けられたニューラルネットワークパラメーター、例えばツリーテンソルを選定すること、又はルートノードの子孫ノードのうちの1つ、例えば子ノードに関連付けられたニューラルネットワークパラメーター、例えばノードテンソルを選定することを決定するように構成される。
【0030】
したがって、デコーダーは、そのパラメーターがパラメーター更新ツリーにおいて表されるニューラルネットワークのどのバージョンが更なる処理のために実行又は提供されるかを選定することができる。本発明者らは、一例として、ビットストリーム中で受信された情報、例えばノード情報に基づいて、デコーダーが、特定のタスクに最も適したニューラルネットワークパラメーターを選定することが可能であり得ることを認識した。例えば、単純な実施態様では、デコーダーは、対応するニューラルネットワークパラメーターを有する最新のノードを常に選定することができる。
【0031】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値のスケーリングを定義する更新命令を含むか、又は該更新命令である。加えて、デコーダーは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、更新命令によって定義されたスケーリングを、例えば、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値に適用するように構成される。本発明者らは、スケーリング情報を使用してニューラルネットワークパラメーターが効率的に更新され得ることを認識した。
【0032】
本発明の更なる実施の形態によれば、現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、デコーダーは、例えば、入力パラメーターテンソル要素と積テンソル要素との間の要素ごとの積の形成によって、現在考慮されているノードに関連付けられたパラメーターテンソルを取得するために、積テンソルをパラメーターテンソルに適用するように構成される。本発明者らは、NNパラメーターが、テンソルを使用して効率的に表され、コーディングされ得ることを認識した。さらに、積テンソルは、NNパラメーター間の乗法的修正を表すために、パラメーターテンソルの計算的に効率的な操作を可能にすることができる。
【0033】
本発明の更なる実施の形態によれば、親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソル(例えば、親ノードテンソル、例えば、ニューラルネットワークパラメーター値の、例えば、値の多次元アレイ)によって表され、パラメーター更新情報は、例えば、親ノードテンソルと同じ形状の積テンソルを含むか、又は該積テンソルであり、デコーダーは、例えば、親ノードテンソル要素と積テンソル要素との間の要素ごとの積の形成によって、現在考慮されているノードに関連付けられたパラメーターテンソルを取得するために、親ノードのパラメーターテンソルに積テンソルを適用するように構成される。
【0034】
本発明者らは、ニューラルネットワークパラメーターがパラメーターテンソルを使用して効率的に表され得ること、及びニューラルネットワークパラメーター更新が積テンソルを使用して効率的に表され得ることを認識した。
【0035】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令を含むか、又は該更新命令である。さらに、デコーダーは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、更新命令によって定義された変更値の加算又は減算、例えば、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への加算又は該1つ以上のパラメーター値からの減算を適用するように構成される。
【0036】
本発明者らは、加算又は減算を使用して、ニューラルネットワークパラメーター更新が低い計算労力で実施され得ることを認識した。
【0037】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と1つ以上の変更値との重み付き組み合わせを、例えば、和テンソル、スカラーノードテンソル重み値、及びスカラー和テンソル重み値の形態で定義する更新命令を含むか、又は該更新命令である。
【0038】
さらに、デコーダーは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター、例えば、現在考慮されているノードに関連付けられた「ノードテンソル」の要素を取得するために、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素と、1つ以上の変更値、例えば、「和テンソル」の要素との重み付き組み合わせを適用するように構成され、重み付き組み合わせは、例えば、現在考慮されているノードの親ノードに関連付けられたパラメーター値とそれぞれの変更値との要素ごとの加重和を含むことができる。
【0039】
パラメーター値は、例えば、親ノードに関連付けられたニューラルネットワークの或る特定のバージョンのニューラルネットワークパラメーター値であってもよい。本発明者らは、重み付き組み合わせを使用して、現在考慮されているノードに関連付けられたニューラルネットワークパラメーターが効率的に提供され得ることを認識した。
【0040】
本発明の更なる実施の形態によれば、現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表される。
【0041】
さらに、複数の変更値は、例えば、親ノードのノードテンソル、例えば、親ノードテンソルと同じ形状の和テンソルによって表され、デコーダーは、現在考慮されているノードに関連付けられたパラメーターテンソル、例えば、ノードテンソルを取得するために、現在考慮されているノードの親ノードに関連付けられたパラメーターテンソルの要素にノードテンソル重み値を乗算して、スケーリングされたパラメーターテンソルを取得し、和テンソルの要素に和テンソル重み値を乗算して、スケーリングされた和テンソルを取得し、スケーリングされたパラメーターテンソルとスケーリングされた和テンソルとの要素ごとの和を形成するように構成され、例えば、パラメーター更新情報は、ノードテンソル重み値、和テンソル重み値、和テンソル及び/又は変更値のうちの少なくとも1つを含むことができる。
【0042】
任意選択で、両方の重み、例えば、ノードテンソル重み値及び和テンソル重み値はまた、1に設定することができ、これは、加重和の特殊な場合としての非加重和に対応する。代替的に、両方の重みを0.5に設定することもでき、これは、加重和の特別な場合としての平均化に対応する。
【0043】
本発明者らは、パラメーターテンソルの形態の親ノード情報及び和テンソルの形態の更新情報の個々のスケーリングが、現在考慮されているノードのパラメーターテンソルの効率的な決定を可能にし得ることを認識した。さらに、スケーリング及び加算は、低い計算コストで実施することができる。
【0044】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値の1つ以上の変更値との置換を、例えば置換テンソルの形態で定義する更新命令を含むか、又は該更新命令である。さらに、デコーダーは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター、例えば、現在考慮されているノードに関連付けられた「ノードテンソル」の要素を取得するために、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素を、1つ以上の置換値、例えば、「置換テンソル」の要素と置換するように構成される。本発明者らは、値の置換が、場合によっては、差分更新情報及び算術演算を使用するよりも少ない計算コストで実施され得ることを認識した。
【0045】
本発明の更なる実施の形態によれば、現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、パラメーター更新情報は、例えば圧縮データユニット(NDU)によって表され得る更新テンソル、例えば置換テンソル、和テンソル、及び/又は積テンソルの形態の更新命令を含むか、又は該更新命令である。さらに、デコーダーは、例えば、2Dテンソル[[a,b,c],[d,e,f]](次元は[2,3]である)であるパラメーターテンソル、例えば親ノードのノードテンソルについて、[[x],[y]](次元は[2,1]である)として与えられる更新テンソルが、例えば、暗黙的に、[[x,x,x],[y,y,y]](次元は[2,3]である)に拡張されるように、例えば、暗黙的に、親ノードのパラメーターテンソルの形状に従って更新テンソルの形状を変換するように構成される。本発明者らは、このようにして、ニューラルネットワークパラメーターは、例えば、近似的な方法で更新することができるが、例えば、ベース又は初期ニューラルネットワークパラメーター、例えば親ノードのパラメーターを表すテンソルの形状は、更新テンソルの形状と一致しないことがあることを認識した。
【0046】
さらに、テンソル形状の変更は、更新されたニューラルネットワーク又はその層のトポロジー変更に関連付けることができる。したがって、本発明による実施の形態は、訓練及び/又は更新プロセスにおいてニューラルネットワークのトポロジー変更を組み込むことを可能にすることができる。したがって、通信及び、例えば、分散訓練が、高い柔軟性を伴って提供され得る。
【0047】
本発明の更なる実施の形態によれば、第1の方向に沿って(例えば、テンソルの行に沿って)配置されたパラメーターテンソルのテンソル要素が、ニューラルネットワークの現在考慮されている層の所与のニューロンの入力信号に対するニューラルネットワークの以前の層の複数のニューロンの出力信号の寄与に関連付けられ、第2の方向に沿って(例えば、テンソルの列に沿って)配置されたパラメーターテンソルのテンソル要素が、ニューラルネットワークの現在考慮されている層の複数のニューロンの入力信号に対するニューラルネットワークの以前の層の所与のニューロンの出力信号の寄与に関連付けられる。
【0048】
さらに、デコーダーは、第1の方向(例えば、行の方向)における更新テンソルの拡張又は例えば次元が第1の方向におけるパラメーターテンソルの次元よりも小さい場合、第1の方向における更新テンソルの次元を拡張するように構成され、及び/又はデコーダーは、第2の方向(例えば、列の方向)における更新テンソルの拡張又は例えば次元が第2の方向におけるパラメーターテンソルの次元よりも小さい場合、第2の方向における更新テンソルの次元を拡張するように構成される。
【0049】
本発明の更なる実施の形態によれば、デコーダーは、更新テンソルの行の数がパラメーターテンソルの行の数よりも小さい場合、更新テンソルの行のエントリをコピーして、形状変換された更新テンソルの1つ以上の拡張行のエントリを取得するように構成される。代替的に、又は加えて、デコーダーは、更新テンソルの列の数がパラメーターテンソルの列の数よりも小さい場合、更新テンソルの列のエントリをコピーして、形状変換された更新テンソルの1つ以上の拡張列のエントリを取得するように構成される。
【0050】
本発明者らは、行又は列のコピー又は複製が、情報を拡張又は外挿する計算的に安価な方法であり得ることを認識した。さらに、関係するパラメーターのコピーは、拡張された行又は列に関連付けられたニューラルネットワークパラメーターの良好な近似であり得る。
【0051】
本発明の更なる実施の形態によれば、デコーダーは、形状変換された、例えば拡大された更新テンソルのエントリを取得するために、行方向及び列方向において、更新テンソルの1つ以上のエントリ、例えば全ての方向において1の次元を有する更新テンソルの単一のエントリ、又は更新テンソルの2つ以上のエントリのグループをコピーするように構成される。本発明者らは、パラメーターのかかる再現が計算的に安価な方法で実施され得ることを認識した。
【0052】
本発明の更なる実施の形態によれば、デコーダーは、更新テンソルの拡張に関する情報に依存して、かつ、例えば、好ましくは、形状変換された更新テンソルが適用されるパラメーターテンソルの拡張に関する情報にも依存して、更新テンソルの形状を変換する必要性、及び/又は更新テンソルの形状の変換の程度を決定するように構成される。
【0053】
ノード情報、例えば、ノード情報のパラメーター更新情報は、例えば、更新テンソルの拡張に関する情報を含むことができる。本発明者らは、このようにして、限られたリソースしか必要とせずにかかる拡張情報を伝送又は受信することができることを認識した。
【0054】
本発明の更なる実施の形態によれば、デコーダーは、例えば、親ノード識別子が存在することを示すシグナリングがあるかどうかを評価することによって、又は親ノード識別子のシンタックスを解析することによって、親ノード識別子が、例えば、現在考慮されているデータブロック内に存在するかどうかを判定するように構成される。さらに、デコーダーは、例えば、親ノード識別子が存在する場合、例えば、パラメーター更新情報を使用して、本明細書に開示される実施の形態のいずれかに従って1つ以上のニューラルネットワークパラメーターを導出するように構成され、加えて、シグナリングの値、例えば、「parent_node_id_present_flag」に応じて、現在のPUTノードの親ノードを含む別のNDUを一意に識別する親ノード識別子が、例えば、更なる新しいシンタックス要素「parent_node_id」の形態で伝送される。
【0055】
さらに、デコーダーは、親ノード識別子が存在しない場合、現在考慮されているノードをルートノードにするように構成され、この場合、デコーダーは、パラメーター更新情報に依拠しないニューラルネットワークパラメーターの独立した復号化を適用することができる。
【0056】
したがって、デコーダーは、例えばいくつかのツリーセクションが除去される場合に、例えばそれぞれのニューラルネットワークパラメーターが古くなっているときに、パラメーター更新ツリー構造を調整することができる。新しいルートツリーは、例えば、ツリー内の新しい「開始点」を確立するために、簡単に言えば、パラメーター更新情報の代わりに対応するニューラルネットワークパラメーターを用いて選択されてもよい。
【0057】
本発明の更なる実施の形態によれば、デコーダーは、現在考慮されているノードの親ノードを識別するために、例えば、任意選択で暗号学的なハッシュ値である親ノード識別子、例えば、parent_node_idを、1つ以上のノード、例えば、以前に決定されたノードに関連付けられた、例えば、暗号学的なハッシュ値と比較するように構成される。
【0058】
これにより、例えば、ニューラルネットワークパラメーターを修正する多数の先行ノードさえも発見するために、パラメーター更新ツリーを通した効率的で高速な反復を可能にすることができる。さらに、これにより、親ノード識別子が正しいハッシュ値とともにのみ使用可能であり得るように、更新情報の安全な伝送を可能にすることができる。
【0059】
本発明の更なる実施の形態によれば、ハッシュ値は、例えば、データサイズ情報、ヘッダー情報、及びペイロード情報を含む完全圧縮データユニットNDUのハッシュ値であり、ペイロード情報は、例えば、1つ以上の以前に復号化されたノードに関連付けられた、算術的にコーディングされたニューラルネットワークパラメーターを含むことができる。本発明者らは、ハッシュ値が、例えば、NDU内で効率的に伝送及び/又は受信され得ることを認識した。
【0060】
本発明の更なる実施の形態によれば、ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に復号化されたノードに関連付けられた圧縮データユニットNDUのペイロード部分(例えば、データサイズ情報、ヘッダー情報、及びペイロード情報を含み、ペイロード情報は、例えば、算術的にコーディングされたニューラルネットワークパラメーターを含むことができる)のハッシュ値である。本発明者らは、ハッシュ値がNDUのペイロード部分から効率的に抽出され得ることを認識した。
【0061】
本発明の更なる実施の形態によれば、親ノード識別子は、両方とも親ノード、例えば、NDUとして表される親ノードに関連付けられるデバイス識別子及びシリアルナンバーを表す組み合わされた値である。本発明者らは、かかるデバイス識別子及びシリアルナンバーを使用して、親ノード、したがって修正されるニューラルネットワークパラメーターがロバストに識別され得ることを認識した。
【0062】
本発明の更なる実施の形態によれば、親ノード識別子は、例えば、明示的な更新ツリー識別子を含むか又は更新ツリーを暗黙的に識別する更新ツリー、及び/又は、例えば、明示的な層識別子を使用するか、若しくは層を暗黙的に識別するニューラルネットの層を識別し、例えば、デコーダーは、ノード情報を適切な更新ツリーに割り当てるために親ノード識別子を評価するように構成されてもよく、及び/又は、例えば、デコーダーは、ノード情報をニューラルネットの適切な層に割り当てるために親ノード識別子を評価するように構成されてもよい。
【0063】
一般に、本発明の実施の形態によれば、例えば異なるニューラルネットワークのパラメーターの、又は例えば同じニューラルネットワークの異なる層のパラメーター、例えば重みの複数の更新ツリーが、当該パラメーターのそれぞれの異なるバージョン、例えば更新バージョンを記憶するために使用されてもよい。
【0064】
本発明者らは、本発明の実施の形態による親ノード識別子が、かかる複数の更新ツリー、したがってパラメーターを選択及び/又は編成及び/又は管理することを可能にし得ることを認識した。
【0065】
本発明の更なる実施の形態によれば、ノード情報は、例えばノードを識別することができるノード識別子、例えばシンタックス要素「node_id」を含む。本発明者らは、かかるノード識別子が、更新ツリーのそれぞれのノードのロバストな識別を可能にし得ることを認識した。
【0066】
本発明の更なる実施の形態によれば、デコーダーは、ノード識別子を、例えば、他のノード情報と一緒に、又は他のノード情報にリンクされた若しくは参照された方法で記憶するように構成される。本発明者らは、ノード識別子の記憶が、対応するノード情報の時間遅延処理を可能にし得ることを認識した。
【0067】
本発明の更なる実施の形態によれば、デコーダーは、新しいノードを追加するとき、新しいノードの親ノードを識別するために、例えば、新しいノードの検出に応じて更新ツリー構造を拡張するとき、又は更新ツリー構造を通ってルートノードまでの経路を識別するとき、1つ以上の記憶されたノード識別子を新しいノードのノード情報内の親ノード識別子と比較するように構成される。したがって、更新ツリーを効率的に拡張することができる。
【0068】
本発明の更なる実施の形態によれば、ノード識別子は、ノード情報が関連付けられる更新ツリーを識別し(例えば、明示的な更新ツリー識別子を含むか、又は更新ツリーを暗黙的に識別する)、及び/又はノード識別子は、例えば、明示的な層識別子を使用して、又はノード情報が関連する層を暗黙的に識別して、ニューラルネットの層を識別する。
【0069】
任意選択で、デコーダーは、例えば、ノード識別子に基づいて、ノードが関連付けられる更新ツリー(又は更新ツリー構造)、又はノードが関連付けられるニューラルネットの層を識別するように構成されてもよい。
【0070】
本発明者らは、このようにして、効率的なニューラルネットワークパラメーター更新編成が、低い計算労力及び良好な情報圧縮とともに提供され得ることを認識した。
【0071】
本発明の更なる実施の形態によれば、ノード識別子、例えば、ノード情報を符号化するビットストリーム内のシンタックス要素node_idは、デバイス識別子及び/又はパラメーター更新ツリー深度情報、例えば、現在のノードからルートノードにツリーをウォークするときに訪問されるノードの数に関する情報、及び/又はパラメーター更新ツリー識別子を含むか、又はそれらから構成される。
【0072】
任意選択で、デコーダーは、例えば、ノード識別子に依存して、ノードが関連付けられる更新ツリー(又は更新ツリー構造)、又はノードが関連付けられる更新ツリー(又は更新ツリー構造)内の位置を識別するように構成されてもよい。
【0073】
本発明者らは、かかるノード識別子に基づいて、又はそれを使用して、修正又は対処又は提供されるニューラルネットワークパラメーターが、例えば、多数のノードを有する、又は例えば複数の更新ツリーを含む異なるデバイス用の、パラメーター更新ツリー等の編成構造内でも、効率的に選択され得ることを認識した。深度情報は、選択されるノードが配置されるツリーレベル又はツリー層を迅速に見つけることを可能にすることができる。
【0074】
本発明の更なる実施の形態によれば、ノード情報は、ノード識別子が存在するか否かを示すシグナリング、例えばフラグを含む。
【0075】
任意選択で、デコーダーは、ノード識別子が存在するか否かを示すシグナリングに依存して、(例えばビットストリームを解析することによって)ノード識別子情報を選択的に評価するように構成される。
【0076】
したがって、伝送リソースが異なる情報のために提供され得るように、例えば、ビットストリーム中にノード識別子が存在しないことを指示するか又は示すフラグを有するノード情報を含むビットストリームを提供することができる。
【0077】
本発明の更なる実施の形態によれば、デコーダーは、親ノード識別子のタイプ、例えばparent_node_id_typeに関する情報を含むシグナリング、例えば、符号化ビットストリーム中で、例えば符号化ビットストリームのヘッダー中で符号化されたシグナリングを取得するように構成される。さらに、デコーダーは、親ノード識別子のそれぞれのタイプを考慮するためにシグナリングを評価するように構成される。
【0078】
これは、識別子のタイプに関する情報、例えば、親ノード識別子が、例えば、暗号ハッシュであるか、又はデバイス識別子及びシリアルナンバーを表す組み合わされた値であるか、又は本明細書に開示されるような別の情報表現であるかを効率的に抽出することを可能にすることができる。
【0079】
本発明の更なる実施の形態によれば、デコーダーは、親ノード識別子の存在を示すシンタックス要素、例えばparent_node_id_present_flagに依存して、親ノード識別子のタイプを示すシンタックス要素、例えばparent_node_id_typeを選択的に評価するように構成される。したがって、親ノード識別子が存在しないとき、親ノード識別子のタイプの指示及び評価を保存することができる。
【0080】
本発明の更なる実施の形態によれば、デコーダーは、ノード情報内、例えば、ニューラルネットワークのトポロジー変更に関する情報を含む圧縮データユニット(NDU)の形態のノード情報内のトポロジー変更シグナリングを取得するように構成され、デコーダーは、修正されたトポロジーを有するニューラルネットワークの1つ以上のニューラルネットワークパラメーターを導出するために、トポロジー変更に従って親ノードのパラメーター情報、例えば、パラメーターテンソルを修正するように構成される。
【0081】
デコーダーは、例えば、対応する親ノードのパラメーターテンソルのテンソルに一致しない形状を有する更新テンソル、例えば積又は和テンソルを受信すると、ネットワークトポロジーを暗黙的に変更するように構成することができることに留意されたい。任意選択で、ニューラルネットワーク構造をロバストに適応させるために、専用のトポロジー変更シグナリングが受信され得る(又は、例えば、対応するエンコーダーによって伝送され得る)ことに留意されたい。
【0082】
本発明の更なる実施の形態によれば、デコーダーは、トポロジー変更情報に応じて、1つ又は2つのテンソル(例えば、所与の層に先行するニューラルネット層のニューロンの出力信号に基づいて、ニューラルネットの所与の層のニューロンの入力信号の導出を記述することができ、例えば、所与の層のニューロンの出力信号に基づいて、所与の層に続くニューラルネット層の入力信号の導出を記述することができる)の形状を変更するように構成され、例えば、所与の層のニューロンの入力信号の導出を記述するテンソルのサイズ、及び所与の層に続くニューラルネット層の入力信号の導出を記述するテンソルのサイズは、協調して変化させることができ、例えば、典型的には、2つのテンソルの次元は、同じように、又は協調して変化させることができる。
【0083】
本発明者らは、例えば、ニューラルネットワークの更新バージョンに関連付けられたテンソルを調整することによって、当該ニューラルネットワークのトポロジー変更を効率的に表すことができることを認識した。
【0084】
本発明の更なる実施の形態によれば、デコーダーは、トポロジー変更情報に応じて、所与の層のニューロンの数を変更するように構成される。したがって、本発明による実施の形態は、例えば、ニューラルネットワーク構造の再形成又はトポロジー適応を組み込むことを可能にすることができる。
【0085】
本発明の更なる実施の形態によれば、デコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素を、1つ以上の置換値、例えば、「置換テンソル」の要素で置換するように構成される。
【0086】
代替的に、デコーダーは、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソル、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素を、1つ以上の置換テンソル、例えば、「置換テンソル」の要素と置換するように構成され、1つ以上の置換テンソルのエントリは、修正されたサイズを有する1つ以上のテンソルを取得するために、例えば、置換命令を使用して、ノード情報において定義することができる。
【0087】
本発明者らは、値又はテンソル全体又はそれらの組み合わせの置換、交換及び/又はスワッピングが、例えば、特にそれぞれのテンソルの形状が変更又は改変される場合に、ニューラルネットワークパラメーターの効率的な更新を可能にし得ることを認識した。
【0088】
本発明の更なる実施の形態によれば、デコーダーは、トポロジー変更シグナリングに応じて、例えば、その計算が第1の更新ツリーにおいて定義されるニューラルネットの所与の層の入力信号の数が、後続の層の入力信号の計算用のその使用が第2の更新ツリーにおいて定義される所与の層の出力信号の数と同じように変更されるように、ニューラルネットの隣接する層に関連付けられた2つの更新ツリーにおける2つのテンソルの形状、例えば、サイズを同期して変更するように構成される。
【0089】
ニューラルネットワークの1つの層におけるトポロジー変更は、(例えば、ニューラルネットワークのニューロン層を通る情報フローに関して)先行する及び/又は後続の層に影響を及ぼすことができる。したがって、本発明者らは、例えば直接的に、相互相関された層、又は例えばそのパラメーター、例えば重みパラメーターが、例えば同期的な方法で一緒に適応され得ることを認識した。
【0090】
本発明による更なる実施の形態は、符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化するエンコーダーを含み、エンコーダーは、パラメーター更新ツリーのノードを記述するノード情報を、例えば符号化ビットストリームの形態で提供するように構成され、ノード情報は、例えば一意の親ノード識別子である親ノード識別子、例えば整数、文字列及び/又は暗号ハッシュを含む。
【0091】
さらに、ノード情報は、パラメーター更新情報(例えば、1つ以上の更新命令、例えば、(例えば、親ノードに関連付けられた)初期ニューラルネットワークパラメーターと、例えば、更新ツリーの子ノードに対応する、それのより新しい(現在の)バージョンとの間の差分信号)を含み、パラメーター更新情報は、親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する。
【0092】
上述したようなエンコーダーは、上述したデコーダーと同じ考察に基づくことができる。また、エンコーダーは、デコーダーに関しても説明される全ての(例えば、全ての対応する又は全ての類似する)特徴及び機能を備えることができる。
【0093】
本発明の更なる実施の形態によれば、エンコーダーは、親ノードに関連付けられたパラメーターをどのように更新するかに関する命令を含み得るパラメーター更新情報を取得するために、親ノード識別子によって識別される親ノードによって定義された1つ以上のニューラルネットワークパラメーター、例えばノードパラメーターと、1つ以上の現在のニューラルネットワークパラメーターとの間の差分を決定するように構成される。
【0094】
本発明の更なる実施の形態によれば、エンコーダーは、パラメーター更新ツリーを設定するように構成され、異なるパラメーター更新情報を含み、任意選択で同一の親ノード識別子を含む複数の子ノードは、共通の親ノード、例えばルートノードRに関連付けられ、例えば、ツリーの各ノードは、ツリーのルートノードに関連付けられたニューラルネットワークパラメーターのバージョンを表すことができる。
【0095】
本発明の更なる実施の形態によれば、エンコーダーは、現在考慮されているノード、例えばノードU3に関連付けられたパラメーター更新情報を使用し、ルートノード、例えばノードRに関連付けられたパラメーター情報、例えばツリーパラメーター、例えばベースモデルのニューラルネットワークパラメーター、例えばニューラルネットワークのデフォルト又は事前訓練済み又は初期ニューラルネットワークパラメーターを使用し、更新ツリー内のルートノード、例えばノードRと現在考慮されているノード、例えばノードU3との間にある1つ以上の中間ノード、例えばノードU2に関連付けられたパラメーター更新情報、例えば更新規則を使用して、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得することが可能であるように、ノード情報を提供するように構成される。
【0096】
本発明の更なる実施の形態によれば、エンコーダーは、複数のノード情報ブロックを提供するように構成され、第1のノード情報ブロックの親ノード識別子が、ルートノードを指し、第1のノードのパラメーター更新情報が、第1のノード情報ブロックの親ノード識別子によって定義されるルートノードに関連付けられたニューラルネットワークパラメーターと、第1のノードのニューラルネットワークパラメーターとの間の差分を記述する。さらに、N番目のノード情報ブロックの親ノード識別子は、N-1番目のノードを指し、N番目のノードのパラメーター更新情報は、N番目のノード情報ブロックの親ノード識別子によって定義されるN-1番目のノードに関連付けられたニューラルネットワークパラメーターと、N番目のノードのニューラルネットワークパラメーターとの間の差分を記述する。
【0097】
本発明者らは、このようにして、再帰的に使用可能なパラメーター更新ツリーが提供され得て、その結果、更新又は差分情報が符号化され、伝送され、したがって効率的に評価され得ることを認識した。
【0098】
本発明の更なる実施の形態によれば、エンコーダーは、デコーダーにシグナリングを提供して、ルートノードに関連付けられたニューラルネットワークパラメーター、例えばツリーテンソル、又はルートノードの子孫ノードのうちの1つ、例えば子ノードに関連付けられたニューラルネットワークパラメーター、例えばノードテンソルを選択的に選定するように構成される。
【0099】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値のスケーリングを定義する更新命令を含むか、又は該更新命令であり、エンコーダーは、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と、現在考慮されているノードのパラメーター値とに基づいて、スケーリングを決定するように構成される。
【0100】
本発明の更なる実施の形態によれば、現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表される。さらに、エンコーダーは、例えば、入力パラメーターテンソル要素と積テンソル要素との間の要素ごとの積の形成によって、現在考慮されているノードに関連付けられたパラメーターテンソルを取得するために、パラメーターテンソルに適用する積テンソルを提供するように構成される。
【0101】
本発明の更なる実施の形態によれば、親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソル、例えば親ノードテンソル、例えば値の多次元アレイ、例えばニューラルネットワークパラメーター値の多次元アレイによって表される。さらに、パラメーター更新情報は、例えば、親ノードテンソルと同じ形状の積テンソルを含むか、又は該積テンソルである。さらに、エンコーダーは、親ノードのパラメーターテンソルへの積テンソルの適用が、例えば、親ノードテンソル要素と積テンソル要素との間の要素ごとの積の形成によって、現在考慮されているノードに関連付けられたパラメーターテンソルをもたらすように、積テンソルを提供するように構成される。
【0102】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令を含むか、又は該更新命令である。任意選択で、一例として、エンコーダーは、更新命令によって定義された変更値の加算又は減算、例えば、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への加算又は該1つ以上のパラメーター値からの減算を適用することが、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターをもたらすように、変更値を提供するように構成される。
【0103】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と1つ以上の変更値との重み付き組み合わせを、例えば、和テンソル、スカラーノードテンソル重み値、及びスカラー和テンソル重み値の形態で定義する更新命令を含むか、又は該更新命令である。
【0104】
任意選択で、一例として、エンコーダーは、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素と、1つ以上の変更値、例えば、「和テンソル」の要素との重み付き組み合わせの適用が、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター、例えば、現在考慮されているノードに関連付けられた「ノードテンソル」の要素をもたらすように、更新命令を提供するように構成され、重み付き組み合わせは、例えば、現在考慮されているノードの親ノードに関連付けられたパラメーター値とそれぞれの変更値との要素ごとの加重和を含むことができる。
【0105】
本発明の更なる実施の形態によれば、現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、複数の変更値は、例えば、親ノードのノードテンソルと同じ形状の和テンソル、例えば、親ノードテンソルによって表される。
【0106】
任意選択で、一例として、エンコーダーは、スケーリングされたパラメーターテンソルを取得する、現在考慮されているノードの親ノードに関連付けられたパラメーターテンソルの要素とノードテンソル重み値との乗算、スケーリングされた和テンソルを取得する、和テンソルの要素と和テンソル重み値との乗算、及びスケーリングされたパラメーターテンソルとスケーリングされた和テンソルとの要素ごとの和の形成が、現在考慮されているノードに関連付けられたパラメーターテンソル、例えばノードテンソルをもたらすように、変更値を提供するように構成される。任意選択で、一例として、パラメーター更新情報は、ノードテンソル重み値、和テンソル重み値、和テンソル、及び/又は変更値のうちの少なくとも1つを含むことができる。任意選択で、両方の重み、例えば、ノードテンソル重み値及び和テンソル重み値はまた、1に設定することができ、これは、加重和の特殊な場合としての非加重和に対応する。
【0107】
本発明の更なる実施の形態によれば、パラメーター更新情報は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値の1つ以上の変更値との置換を、例えば置換テンソルの形態で定義する更新命令を含むか、又は該更新命令である。
【0108】
任意選択で、一例として、エンコーダーは、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素の、1つ以上の置換値、例えば、「置換テンソル」の要素による置換が、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター、例えば、現在考慮されているノードに関連付けられた「ノードテンソル」の要素をもたらすように、命令を更新するように構成される。
【0109】
本発明の更なる実施の形態によれば、現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、パラメーター更新情報は、例えば圧縮データユニット(NDU)によって表され得る更新テンソル、例えば置換テンソル、和テンソル、及び/又は積テンソルの形態の更新命令を含むか、又は該更新命令である。さらに、エンコーダーは、更新テンソルの形状が親ノードのパラメーターテンソルの形状とは異なるように、例えば、2Dテンソル[[a,b,c],[d,e,f]](次元は[2,3]である)であるパラメーターテンソル、例えば親ノードのノードテンソルについて、[[x],[y]](次元は[2,1]である)として与えられる更新テンソルが、例えば、暗黙的に、[[x,x,x],[y,y,y]](次元は[2,3]である)に拡張されるように、更新テンソルを提供するように構成される。
【0110】
本発明の更なる実施の形態によれば、第1の方向に沿って(例えば、テンソルの行に沿って)配置されたパラメーターテンソルのテンソル要素が、ニューラルネットワークの現在考慮されている層の所与のニューロンの入力信号に対するニューラルネットワークの以前の層の複数のニューロンの出力信号の寄与に関連付けられる。さらに、第2の方向に沿って(例えば、テンソルの列に沿って)配置されたパラメーターテンソルのテンソル要素が、ニューラルネットワークの現在考慮されている層の複数のニューロンの入力信号に対するニューラルネットワークの以前の層の所与のニューロンの出力信号の寄与に関連付けられ、エンコーダーは、第1の方向(例えば、行方向)における更新テンソルの拡張が第1の方向におけるパラメーターテンソルの次元よりも小さくなるように、更新テンソルを提供するように構成される。代替的に、又は加えて、エンコーダーは、第2の方向(例えば、列方向)における更新テンソルの拡張が第2の方向におけるパラメーターテンソルの次元よりも小さくなるように、更新テンソルを提供するように構成される。
【0111】
本発明の更なる実施の形態によれば、エンコーダーは、更新テンソルの行の数がパラメーターテンソルの行の数よりも小さくなるように、更新テンソルを提供するように構成され、及び/又はエンコーダーは、更新テンソルの列の数がパラメーターテンソルの列の数よりも小さくなるように、更新テンソルを提供するように構成される。
【0112】
本発明の更なる実施の形態によれば、エンコーダーは、更新テンソルの拡張に関する情報を提供するように構成される。
【0113】
本発明の更なる実施の形態によれば、エンコーダーは、シグナリング、例えば、符号化ビットストリームにおいて、例えば符号化ビットストリームのヘッダーにおいて符号化されたシグナリング、例えばフラグ、例えば親ノード識別子が存在するか否かの情報を含む「parent_node_id_present_flag」を提供するように構成される。
【0114】
任意選択で、エンコーダーは、例えば、ルートノードのニューラルネットワークパラメーターを符号化するときに親ノードが存在するというシグナリングを省略するように構成されるか、又は別の任意選択の特徴として、エンコーダーは、例えば、ルートノードのニューラルネットワークパラメーターを符号化するときに親ノードが存在しないことを示すシグナリングを提供するように構成される。
【0115】
本発明の更なる実施の形態によれば、エンコーダーは、現在考慮されているノードの親ノードを識別するために、親ノード識別子として、ノード、例えば、以前に決定されたノードに関連付けられた、例えば、暗号学的なハッシュ値を提供するように構成される。
【0116】
本発明の更なる実施の形態によれば、ハッシュ値は、1つ以上の以前に符号化されたノードに関連付けられた完全圧縮データユニット(例えば、NDU、例えば、データサイズ情報、ヘッダー情報、及びペイロード情報を含み、ペイロード情報は、例えば、算術的にコーディングされたニューラルネットワークパラメーターを含むことができる)のハッシュ値である。
【0117】
本発明の更なる実施の形態によれば、ハッシュ値は、例えば、圧縮データユニットのデータサイズ情報、及び例えば、圧縮データユニットのヘッダー情報を考慮しないままにしながら、1つ以上の以前に符号化されたノードに関連付けられた圧縮データユニット(例えば、NDU、例えば、データサイズ情報、ヘッダー情報、及びペイロード情報を含み、ペイロード情報は、例えば、算術的にコーディングされたニューラルネットワークパラメーターを含むことができる)のペイロード部分のハッシュ値である。
【0118】
本発明の更なる実施の形態によれば、親ノード識別子は、両方とも親ノード、例えば、NDUとして表される親ノードに関連付けられるデバイス識別子及びシリアルナンバーを表す組み合わされた値である。
【0119】
本発明の更なる実施の形態によれば、親ノード識別子は、例えば、明示的な層識別子を使用して、又は層を暗黙的に識別して、更新ツリー(例えば、明示的な更新ツリー識別子を含む、又は更新ツリーを暗黙的に識別する)及び/又はニューラルネットの層を識別し、例えば、エンコーダーは、ノード情報を適切な更新ツリーに割り当てるために親ノード識別子を提供するように構成され、及び/又は例えば、エンコーダーは、ノード情報をニューラルネットの適切な層に割り当てるために親ノード識別子を提供するように構成される。
【0120】
本発明の更なる実施の形態によれば、ノード情報は、例えばノードを識別することができるノード識別子、例えばシンタックス要素「node_id」を含む。
【0121】
本発明の更なる実施の形態によれば、エンコーダーは、ノード識別子を、例えば、他のノード情報と一緒に、又は他のノード情報にリンクされた若しくは参照された方法で記憶するように構成される。
【0122】
本発明の更なる実施の形態によれば、エンコーダーは、新しいノードを追加するとき、新しいノードの親ノードを識別するために、例えば、新しいノードの検出に応じて更新ツリー構造を拡張するとき、又は更新ツリー構造を通ってルートノードまでの経路を識別するとき、1つ以上の記憶されたノード識別子を新しいノードのノード情報内の親ノード識別子と比較するように構成される。
【0123】
本発明の更なる実施の形態によれば、ノード識別子は、更新ツリーを識別し、例えば、明示的な更新ツリー識別子を含むか、又はノード情報が関連付けられる更新ツリーを暗黙的に識別し、及び/又はノード識別子は、例えば、明示的な層識別子を使用して、又はノード情報が関連する層を暗黙的に識別して、ニューラルネットの層を識別する。
【0124】
任意選択で、エンコーダーは、例えば、ノード識別子を使用して、ノードが関連付けられる更新ツリー(又は更新ツリー構造)、又はノードが関連付けられるニューラルネットの層を識別するように構成することができる。
【0125】
本発明の更なる実施の形態によれば、ノード識別子、例えば、ノード情報を符号化するビットストリーム内のシンタックス要素node_idは、デバイス識別子及び/又はパラメーター更新ツリー深度情報、例えば、現在のノードからルートノードにツリーをウォークするときに訪問されるノードの数に関する情報、及び/又はパラメーター更新ツリー識別子を含むか、又はそれらから構成される。
【0126】
任意選択で、エンコーダーは、例えば、ノード識別子を使用して、ノードが関連付けられる更新ツリー(又は更新ツリー構造)、又はノードが関連付けられる更新ツリー(又は更新ツリー構造)内の位置を識別するように構成されてもよい。
【0127】
本発明の更なる実施の形態によれば、ノード情報は、ノード識別子が存在するか否かを示すシグナリング、例えばフラグを含む。
【0128】
任意選択で、エンコーダーは、ノード識別子が存在するか否かを示すシグナリングを提供するように構成され、及び/又は、エンコーダーは、ノード識別子が存在するか否かを示すシグナリングに依存して、(例えばビットストリームを解析することによって)ノード識別子情報を選択的に符号化するように構成される。
【0129】
本発明の更なる実施の形態によれば、親ノード識別子は、両方とも親ノード、例えば、NDUとして表される親ノードに関連付けられるデバイス識別子及びシリアルナンバーを表す組み合わされた値である。
【0130】
本発明の更なる実施の形態によれば、エンコーダーは、親ノード識別子のタイプに関する情報を含むシグナリング、例えばシンタックス要素、例えば符号化ビットストリームにおいて、例えば符号化ビットストリームのヘッダーにおいて符号化されるシグナリングを提供するように構成される。
【0131】
本発明の更なる実施の形態によれば、エンコーダーは、親ノード識別子を記述するシンタックス要素が例えばビットストリームブロック内に存在する場合、親ノード識別子のタイプを示すシンタックス要素、例えばparent_node_id_typeを選択的に提供するように構成される。
【0132】
本発明の更なる実施の形態によれば、エンコーダーは、ノード情報内に、例えば、ニューラルネットワークのトポロジー変更に関する情報を含む圧縮データユニット(NDU)の形態のノード情報内に、トポロジー変更シグナリングを提供するように構成される。
【0133】
本発明の更なる実施の形態によれば、エンコーダーは、トポロジー変更のシグナリングとともに、1つ又は2つのテンソル(例えば、所与の層に先行するニューラルネット層のニューロンの出力信号に基づいて、ニューラルネットの所与の層のニューロンの入力信号の導出を記述することができ、例えば、所与の層のニューロンの出力信号に基づいて、所与の層に続くニューラルネット層の入力信号の導出を記述することができる)の形状の変更をシグナリングするように構成され、例えば、所与の層のニューロンの入力信号の導出を記述するテンソルのサイズ、及び所与の層に続くニューラルネット層の入力信号の導出を記述するテンソルのサイズは、協調して変化させることができ、典型的には、2つのテンソルの次元は、同じように、又は協調して変化する。
【0134】
本発明の更なる実施の形態によれば、エンコーダーは、トポロジー変更情報を使用して所与の層のニューロンの数の変更をシグナリングする(又は所与の層のニューロンの数を変更する)ように構成される。
【0135】
本発明の更なる実施の形態によれば、エンコーダーは、例えば、デコーダーが修正されたサイズを有する1つ以上のテンソルを取得することを可能にするために、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素と、1つ以上の置換値、例えば、「置換テンソル」の要素との置換をシグナリングするように構成される。
【0136】
代替的に、エンコーダーは、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソル、例えば、現在考慮されているノードの親ノードに関連付けられた「ノードテンソル」の要素の、1つ以上の置換テンソル、例えば、「置換テンソル」の要素との置換をシグナリングするように構成され、1つ以上の置換テンソルのエントリは、例えば、デコーダーが修正されたサイズを有する1つ以上のテンソルを取得することを可能にするために、例えば、置換命令を使用して、例えば、ノード情報において定義することができる。
【0137】
本発明の更なる実施の形態によれば、エンコーダーは、トポロジー変更シグナリングを使用して、例えば、その計算が第1の更新ツリーにおいて定義されるニューラルネットの所与の層の入力信号の数が、後続の層の入力信号の計算用のその使用が第2の更新ツリーにおいて定義される所与の層の出力信号の数と同じように変更されるように、ニューラルネットの隣接する層に関連付けられた2つの更新ツリーにおける2つのテンソルの形状、例えば、サイズの変更を同期してシグナリングするように構成される。
【0138】
本発明による更なる実施の形態は、ニューラルネットワークコントローラーを含み、ニューラルネットワークコントローラーは、例えば訓練を実施することによって、初期ニューラルネットワークパラメーターに基づいて、更新された、例えば改善されたニューラルネットワークパラメーターを取得するために、ニューラルネットワークを訓練するように構成される。
【0139】
さらに、ニューラルネットワークコントローラーは、例えば初期ニューラルネットワークパラメーターに等しくてもよい参照ニューラルネットワークパラメーターと、更新された、例えば改善されたニューラルネットワークパラメーターとに基づいてパラメーター更新情報を決定するように構成され、パラメーター更新情報は、初期ニューラルネットワークパラメーターから、又は例えば参照ニューラルネットワークパラメーターから、更新されたニューラルネットワークパラメーターを少なくとも近似的にどのように導出するかを記述する1つ以上の更新命令を含む。
【0140】
さらに、ニューラルネットワークコントローラーは、例えば、一意の親ノード識別子、例えば、整数、文字列、及び/又は暗号ハッシュである親ノード識別子と、パラメーター更新情報とを含むノード情報を提供するように構成され、親ノード識別子は、例えば、親ノード識別子が、例えば、パラメーター更新情報の決定の参照ニューラルネットワークパラメーターとして使用されたパラメーター情報を有する親ノードを指定することができるように、パラメーター更新情報の適用の開始点として機能するか、又は開始点として使用されるものとするパラメーター情報である親ノードを定義する。
【0141】
このようにして、ニューラルネットワークを訓練することができるだけでなく、訓練手順又は学習手順も効率的に表現又は編成することができる。本発明のニューラルネットワークコントローラーは、訓練プロセスの異なるニューラルネットワークパラメーターバージョンを提供するために、パラメーター更新情報の形態で、増分又は差分の訓練更新情報を提供することができる。したがって、異なる学習段階の結果が組み合わされてもよく、又は以前のパラメーター集合への復帰が単に可能であってもよい。加えて、ニューラルネットワークコントローラーは、例えば、ノード情報を提供することによって、パラメーター更新ツリーを設定又は更新するように構成することができ、これにより、異なるデバイス間でも効率的なニューラルネットワークパラメーターバージョン管理を可能にすることができる。
【0142】
さらに、ノード情報の提供は、ニューラルネットワークパラメーターの完全な伝送とは対照的に、ビットストリーム中の少量のビットのみを必要としてもよい。
【0143】
加えて、上述したようなニューラルネットワークコントローラーは、上述したデコーダー及び/又はエンコーダーと同じ考慮事項に基づき得ることに留意されたい。また、ニューラルネットワークコントローラーは、デコーダー及び/又はエンコーダーに関しても説明される全ての(例えば、全ての対応する又は全ての類似の)特徴及び機能を備えることができる。
【0144】
本発明の更なる実施形態によれば、ニューラルネットワークコントローラーは、本明細書に開示されるような任意の実施の形態によるエンコーダーを含むか、又はニューラルネットワークコントローラーは、本明細書に開示されるような任意の実施の形態によるエンコーダーの任意の機能若しくは機能の組み合わせを含む。
【0145】
本発明による更なる実施の形態は、ニューラルネットワーク連合学習コントローラーを含み、ニューラルネットワーク連合学習コントローラーは、複数のニューラルネットワーク(例えば、等しい構造を有するが、多少異なるパラメーターを有する複数のニューラルネットワーク、例えば、同一の初期ニューラルネットワークパラメーターに基づいて、例えば、異なる訓練データを使用して、及び/又は異なる訓練アルゴリズムを使用して訓練される複数のニューラルネットワーク)のノード情報を受信するように構成され、ノード情報は、例えば、一意の親ノード識別子、例えば、整数、文字列、及び/又は暗号ハッシュである親ノード識別子を含む。
【0146】
さらに、ノード情報は、パラメーター更新情報、例えば、1つ以上の更新命令、例えば、初期ニューラルネットワークパラメーターと、例えば、更新ツリーの子ノードに対応する、そのより新しいバージョンとの間の差分信号を含み、ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの複数の対応するノード、例えば、等しい親ノード識別子を有するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成される。
【0147】
さらに、ニューラルネットワーク連合学習コントローラーは、組み合わされたパラメーター更新情報を、例えば符号化された形態で、例えば上記で定義されたような複数のデコーダーに分配するように構成される。
【0148】
したがって、分散された学習及び更新構造を提供することができ、ニューラルネットワーク連合学習コントローラーは、学習又は更新の情報交換における中心ジャンクションであってもよい。本発明者らは、これが、複数のデバイス上で(例えば、対応するテンソルを介して、例えば、暗黙的又は明示的な形状適応を使用して)構造的に等しい又は更には構造的に異なるニューラルネットワークを訓練すること、又はこれらのニューラルネットワークのパラメーター集合を評価することを可能にし得て、ニューラルネットワーク連合学習コントローラーが、例えば、ニューラルネットワークのパラメーターの集合の異なるバージョンを表すパラメーター更新ツリーを更新及び/又は分配することによって、訓練結果を処理することができることを認識した。これは、パラメーター又は対応するパラメーターノードを組み合わせ、又は破棄し、又は評価すること、及び/又は、例えば、更なる訓練又は使用又は評価のために、ニューラルネットワークパラメーターの集合に関連付けられたどのパラメーター更新情報がどのデバイスに提供されるかの決定を行うことを含むことができる。
【0149】
加えて、上述したようなニューラルネットワーク連合学習コントローラーは、上述したデコーダー、エンコーダー、及び/又はニューラルネットワークコントローラーと同じ考慮事項に基づき得ることに留意されたい。また、ニューラルネットワーク連合学習コントローラーは、デコーダー、エンコーダー、及び/又はニューラルネットワークコントローラーに関しても説明される全ての(例えば、全ての対応する又は全ての類似の)特徴及び機能を備えることができる。
【0150】
本発明の更なる実施の形態によれば、ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの等しい親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成される。
【0151】
したがって、更新又は訓練結果(又は、例えば、むしろ対応する更新情報)は、算術的に組み合わせることができる。単純な例として、パラメーター更新の平均が、組み合わされたパラメーター更新情報として提供されてもよい。しかしながら、例えば、対応するノードに関連付けられたニューラルネットワークパラメーターの性能評価に基づいて、例えば、性能指数に従ったパラメーターの重み付けを含む、より複雑な組み合わせが実施されてもよい。
【0152】
本発明の更なる実施の形態によれば、ニューラルネットワーク連合学習コントローラーは、親ノード識別子が関連付けられた親ノードのパラメーター情報を、例えば、上記で定義されたような複数のデコーダーに分配するように構成され、ニューラルネットワーク連合学習コントローラーは、デコーダーから、例えば、一意の親ノード識別子、例えば、整数、文字列、及び/又は暗号ハッシュである親ノード識別子を含むノード情報(例えば、複数のニューラルネットワークのノード情報、例えば、等しい構造を有するが、多少異なるパラメーターを有する複数のニューラルネットワークのノード情報、例えば、異なる訓練データを使用して、及び/又は異なる訓練アルゴリズムを使用して、例えば、同一の初期ニューラルネットワークパラメーターに基づいて訓練された複数のニューラルネットワークのノード情報)を受信するように構成される。さらに、ニューラルネットワーク連合学習コントローラーは、親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせるように構成される。
【0153】
したがって、ニューラルネットワーク連合学習コントローラーは、それぞれのデコーダーにおける修正のために、例えば親ノードの参照NNパラメーター又は初期NNパラメーターを提供することができる。デコーダーからノード情報を受信すると、ニューラルネットワーク連合学習コントローラーは、NN訓練進行を改善するために、及び/又は(例えば、異なるデータセットを有する異なるデコーダーを含む異なるデバイスにおける、又は異なる、例えば、現実の応用における訓練に由来して)よりロバストであり得る共通パラメーターを提供するために、異なる訓練結果を組み合わせることができる。
【0154】
本発明の更なる実施の形態によれば、ニューラルネットワーク連合学習コントローラーは、パラメーター更新ツリーの組み合わされたノード情報を記述するノード情報を、例えば符号化ビットストリームの形態で提供するように構成され、組み合わされたノード情報は、例えば、一意の親ノード識別子である親ノード識別子、例えば整数、文字列及び/又は暗号ハッシュを含む。さらに、組み合わされたノード情報は、組み合わされたパラメーター更新情報、例えば、1つ以上の更新命令、例えば、初期ニューラルネットワークパラメーターと、例えば、更新ツリーの子ノードに対応する、複数のニューラルネットワークコントローラーから取得されたパラメーター更新情報を組み合わせることによって取得されたその組み合わされたバージョンとの間の差分信号を含む。
【0155】
本発明の更なる実施の形態によれば、ニューラルネットワーク連合学習コントローラーは、本明細書に開示される実施形態のいずれかによるエンコーダーを含むか、又はニューラルネットワーク連合学習コントローラーは、本明細書に開示される実施形態のいずれかによるエンコーダーの任意の機能又は機能の組み合わせを含む。
【0156】
本発明による更なる実施の形態は、ニューラルネットワークのパラメーターを復号化する方法を含み、該方法は、符号化ビットストリームに基づいてニューラルネットワークの複数のニューラルネットワークパラメーターを取得することと、符号化ビットストリームから、パラメーター更新ツリーのノードを記述するノード情報を取得し、例えば受信し、例えば抽出することとを含み、ノード情報は、例えば一意の親ノード識別子である親ノード識別子、例えば整数、文字列、及び/又は暗号ハッシュを含み、ノード情報は、パラメーター更新情報、例えば1つ以上の更新命令、例えば初期ニューラルネットワークパラメーターと、例えば更新ツリーの子ノードに対応するそのより新しいバージョンとの間の差分信号を含む。
【0157】
さらに、本方法は、親ノード識別子によって識別される親ノードのパラメーター情報(パラメーター情報は、例えば、親ノードのノード情報を含み、ノード情報は、例えば、1つ以上のニューラルネットワークパラメーターの再帰的再構成又は再帰的決定又は再帰的計算又は再帰的導出のために、例えば、パラメーター更新情報及び親ノードの親ノード識別子を含み、及び/又は、例えば、親ノードのノードパラメーター、例えば、親ノードに関連付けられたニューラルネットワークパラメーター、例えば、親ノードのノード情報によって暗黙的に定義されたニューラルネットワークパラメーターを含む)を使用して、かつ、例えば、ノード情報に含まれ得るパラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出することを含む。
【0158】
本発明による更なる実施の形態は、符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化する方法を含み、該方法は、パラメーター更新ツリーのノードを記述するノード情報を、例えば符号化ビットストリームの形態で提供することを含み、ノード情報は、例えば一意の親ノード識別子である親ノード識別子、例えば整数、文字列、及び/又は暗号ハッシュを含み、ノード情報は、パラメーター更新情報、例えば1つ以上の更新命令、例えば(例えば親ノードに関連付けられた)初期ニューラルネットワークパラメーターと、例えば更新ツリーの子ノードに対応するそのより新しい(現在の)バージョンとの間の差分信号を含む。
【0159】
さらに、パラメーター更新情報は、親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する。
【0160】
本発明による更なる実施の形態は、ニューラルネットワークを制御する方法を含み、該方法は、例えば訓練を実施することによって、初期ニューラルネットワークパラメーターに基づいて、更新された、例えば改善されたニューラルネットワークパラメーターを取得するようにニューラルネットワークを訓練することと、例えば初期ニューラルネットワークパラメーターに等しくてもよい参照ニューラルネットワークパラメーターと、更新された、例えば改善されたニューラルネットワークパラメーターとに基づいてパラメーター更新情報を決定することとを含み、パラメーター更新情報は、初期ニューラルネットワークパラメーターから更新されたニューラルネットワークパラメーターを少なくとも近似的にどのように導出するかを記述する1つ以上の更新命令を含む。
【0161】
さらに、本方法は、例えば、一意の親ノード識別子である親ノード識別子、例えば、整数、文字列、及び/又は暗号ハッシュと、パラメーター更新情報とを含むノード情報を提供することを含み、親ノード識別子は、例えば、親ノード識別子が、例えば、パラメーター更新情報の決定の参照ニューラルネットワークパラメーターとして使用されたパラメーター情報を有する親ノードを指定することができるように、パラメーター更新情報の適用の開始点として機能するか、又は開始点として使用されるものとするパラメーター情報である親ノードを定義する。
【0162】
本発明による更なる実施の形態は、ニューラルネットワーク連合学習を制御する方法を含み、該方法は、複数のニューラルネットワーク(例えば、等しい構造を有するが、多少異なるパラメーターを有する複数のニューラルネットワーク、例えば、同一の初期ニューラルネットワークパラメーターに基づいて、例えば、異なる訓練データを使用して、及び/又は異なる訓練アルゴリズムを使用して訓練される複数のニューラルネットワーク)のノード情報を受信することを含み、ノード情報は、例えば、一意の親ノード識別子である親ノード識別子、例えば、整数、文字列、及び/又は暗号ハッシュを含み、ノード情報は、パラメーター更新情報、例えば、1つ以上の更新命令、例えば、初期ニューラルネットワークパラメーターと、例えば、更新ツリーの子ノードに対応するそのより新しいバージョンとの間の差分信号を含む。
【0163】
さらに、本方法は、異なるニューラルネットワークの複数の対応するノード、例えば等しい親ノード識別子を有するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得することと、組み合わされたパラメーター更新情報を、例えば符号化された形態で、例えば上記で定義された複数のデコーダーに分配することとを含む。
【0164】
上述した方法は、上記で説明したデコーダー、エンコーダー、ニューラルネットワークコントローラー及び/又はニューラルネットワーク連合学習コントローラーと同じ考慮事項に基づき得ることに留意されたい。また、本方法は、デコーダー、エンコーダー、ニューラルネットワークコントローラー、及び/又はニューラルネットワーク連合学習コントローラーに関しても説明される全ての(例えば、全ての対応する又は全ての類似の)特徴及び機能を備えることができる。
【0165】
本発明による更なる実施の形態は、コンピュータープログラムがコンピューター上で動作するときに、本明細書に開示される実施形態のいずれかによる方法を実行するコンピュータープログラムを含む。
【0166】
本発明による更なる実施の形態は、ニューラルネットワークパラメーターの符号化表現を含み、符号化表現は、パラメーター更新ツリーのノードを記述するノード情報を含み、ノード情報は、親ノード識別子とパラメーター更新情報とを含む。
【0167】
図面は、必ずしも縮尺通りではなく、代わりに、概して、本発明の原理を図示することに重点が置かれている。以下の説明では、本発明の種々の実施形態が、以下の図面を参照して説明される。
【図面の簡単な説明】
【0168】
【
図1a】本発明の一実施形態によるデコーダーの概略図である。
【
図1b】本発明の一実施形態による、一般化ノード情報を有するデコーダーの概略図である。
【
図2】本発明の一実施形態によるエンコーダーの概略図である。
【
図3a】本発明の一実施形態による別のエンコーダーの概略図である。
【
図3b】本発明の一実施形態による一般化ノード情報を有するエンコーダーの概略図である。
【
図4】本発明の一実施形態による更なるエンコーダーの概略図である。
【
図5】本発明の実施形態による、パラメーター更新ツリーPUTの一例を示す図である。
【
図6】本発明の実施形態によるテンソル形状変換の概略図である。
【
図7】本発明の実施形態によるニューラルネットワークのトポロジー変更の一例を示す図である。
【
図8】本発明の実施形態によるニューラルネットワークコントローラーの概略図である。
【
図9】本発明の実施形態によるニューラルネットワーク連合学習コントローラーの概略図である。
【
図10】本発明の実施形態によるニューラルネットワークのパラメーターを復号化する方法の概略ブロック図である。
【
図11】本発明の実施形態による、符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化する方法の概略ブロック図である。
【
図12】本発明の実施形態によるニューラルネットワークを制御する方法の概略ブロック図である。
【
図13】本発明の実施形態によるニューラルネットワーク連合学習を制御する方法の概略ブロック図である。
【
図14】本発明の実施形態による連合学習シナリオの一例の概略図である。
【
図15】本発明の実施形態による、パラメーター更新ツリーの一例、例えば、例示的なパラメーター更新ツリーの概略図である。
【発明を実施するための形態】
【0169】
同一若しくは同等の要素、又は同一若しくは同等の機能を有する要素は、異なる図に現れる場合であっても、以下の説明において同一又は同等の参照番号によって示される。
【0170】
以下の説明では、本発明の実施形態のより完全な説明を提供するために、複数の詳細が記載される。しかしながら、本発明の実施形態がこれらの具体的な詳細なしに実施され得ることは、当業者には明らかであろう。他の例では、本発明の実施形態を不明瞭にすることを回避するために、既知の構造及びデバイスは、詳細にではなくブロック図の形態で示される。加えて、本明細書で後に説明される異なる実施形態の特徴は、特に別段の記載がない限り、互いに組み合わせることができる。
【0171】
図1aは、本発明の一実施形態によるデコーダーの概略図を示している。
図1は、取得ユニット110と、パラメーター更新ツリー(PUT)情報ユニット120と、導出ユニット130とを備えるデコーダー100を示している。
【0172】
デコーダー100は、符号化ビットストリーム102を受信することができ、それに基づいて、一例として、取得ユニット110はノード情報112を決定することができる。ノード情報112は、パラメーター更新ツリーPUTのノードを記述することができる。ノード情報112は、任意選択で親ノード識別子を含むか又は例えば該親ノード識別子である親ノード識別子情報114と、パラメーター更新情報116とを含む。
【0173】
親ノード識別子情報114を使用して、PUT情報ユニット120は、親ノード識別子情報114によって識別される親ノードのパラメーター情報122を決定するように構成することができる。
【0174】
パラメーター更新情報116及びパラメーター情報122を使用して、導出ユニット130は、1つ以上のニューラルネットワークパラメーター104を導出することができる。
【0175】
簡単に言えば、ニューラルネットワークパラメーターに関する情報は、符号化ビットストリーム102中で符号化されている、親ノード識別子情報114とパラメーター更新情報116とを含むノード情報112を使用して提供することができる。したがって、親ノード識別子及びパラメーター更新情報116は、取得ユニット110によって抽出することができる。例えば、ニューラルネットワークパラメーター自体を符号化する代わりに、親ノード識別子情報114の形態の参照情報と、パラメーター更新情報116の形態の更新情報とが提供されてもよい。
【0176】
参照情報は、例えば、パラメーター更新ツリーに基づいて、PUT情報ユニット120を使用して識別及び/又は抽出することができる。ここで、実施形態による概念は、パラメーター情報122の形態で親ノードのニューラルネットワークパラメーターを抽出し、導出ユニット130内のパラメーター更新情報116を使用してこの情報を更新することであり得る。
【0177】
換言すれば、現在のノードのニューラルネットワークパラメーター(複数の場合もある)104は、導出ユニット130を使用して、パラメーター更新情報116によって修正された現在のノードの親ノードのニューラルネットワークパラメーターを使用して導出することができる。
【0178】
任意選択の特徴として、パラメーター更新情報116は、例えば、PUT情報ユニット120に提供されてもよい。
【0179】
別の任意選択の特徴として、PUT情報ユニット120は、導出ユニット130にPUT情報124を提供するように構成されてもよい。PUT情報124は、任意選択で、パラメーター更新ツリーに関する情報を含んでもよい。
【0180】
図1bは、取得ユニット110bと、PUT情報ユニット120bと、導出ユニット130bとを備えるデコーダー100bを示している。取得ユニット110bは、例えば、一般化ノード情報112bを取得するように構成することができる。情報112bは、任意選択で、例えば親ノード識別子情報及びパラメーター更新情報を含むノード情報112と等しいか又は同様であってもよい。しかしながら、一般化ノード情報112bは、以下に詳細に説明するように、例えば、ノード識別子、及び/又はノード識別子が存在するか否かのシグナリング、及び/又は例えばシンタックス要素の形態の親ノード識別子のタイプに関する情報を含むシグナリング、トポロジー変更情報、及び/又はトポロジー変更シグナリング等の追加の情報を任意選択で含むことができる。
【0181】
さらに、PUT情報ユニット120bは、PUT情報132を導出ユニット130bに提供することができる。PUT情報132は、例えば、
図1に示されるような親ノードのパラメーター情報122であってもよい。任意選択で、更新ツリー情報132は、任意選択のPUT情報、例えば、124(
図1参照)を含んでもよい。
【0182】
したがって、取得ユニット110bは、符号化ビットストリーム102からかかる一般化ノード情報112bを取得又は提供するように構成することができ、PUT情報ユニット120bは、一般化ノード情報112bを使用して、例えば、PUTに基づいて、更新ツリー情報132を提供又は決定するように構成することができる。
【0183】
したがって、導出ユニット130bは、一般化ノード情報112b及びPUT情報132を使用して、1つ以上のニューラルネットワークパラメーター104bを導出するように構成することができる。
【0184】
図2は、本発明の一実施形態によるエンコーダーの概略図を示している。
図2は、ノード情報ユニット210及びビットストリームユニット220を備えるエンコーダー200を示している。
【0185】
図2に示されているように、エンコーダー200は、任意選択で、ニューラルネットワークパラメーター(複数の場合もある)204及び/又はパラメーター更新ツリー(PUT)情報206を受信することができる。ニューラルネットワークパラメーター(複数の場合もある)204及びPUT情報206に基づいて、ノード情報ユニット210は、パラメーター更新ツリーのノードを記述するノード情報212を提供することができる。ノード情報212は、任意選択で親ノード識別子を含む親ノード識別子情報214と、パラメーター更新情報216とを含み、パラメーター更新情報216は、親ノード識別子情報214によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと、現在のニューラルネットワークパラメーター204との間の差分を記述する。
【0186】
ノード情報212を使用して、ビットストリームユニット220は、符号化ビットストリーム202を提供することができ、該ビットストリームは、符号化されたニューラルネットワークパラメーター204を含む。
【0187】
一例として、
図2に示されているように、エンコーダー200の概念は、ニューラルネットワークパラメーター(複数の場合もある)204を、単にそれらのそれぞれの値を用いてではなく、基準と、基準に関する差分情報又は差異情報とを使用して符号化することであり得る。基準は、親ノード識別子情報214によって示される、パラメーター更新ツリーの親ノードによって識別されるニューラルネットワークパラメーターの集合であり得る。親ノードのニューラルネットワークパラメーターに対するニューラルネットワークパラメーター204の差分情報又は差異情報は、パラメーター更新情報216であり得る。
【0188】
したがって、符号化ビットストリーム202により、対応する親ノード、したがってそのニューラルネットワークパラメーターを識別するために利用可能なパラメーター更新ツリーに関する情報を有し得る対応するデコーダーが、ニューラルネットワークパラメーター(複数の場合もある)204を決定するためにそれらを適応又は修正することを可能にすることができる。
【0189】
図3aは、本発明の一実施形態による別のエンコーダーの概略図を示している。
図3は、パラメーター更新ツリー(PUT)ユニット310及びビットストリームユニット320を備えるエンコーダー300を示している。
【0190】
この例では、エンコーダー300は、ニューラルネットワークパラメーター(複数の場合もある)304を受信することができる。パラメーター(複数の場合もある)304を符号化するために、エンコーダー300は、例えば、PUTユニット310を使用して、任意選択で親ノード識別子を含む親ノード識別子情報314と、パラメーター更新情報316とを含むノード情報312を決定することができ、それにより、パラメーター(複数の場合もある)304は、パラメーター更新ツリーの親ノードのニューラルネットワークパラメーター(親ノード識別子情報314として表される)及び修正又は更新情報(パラメーター更新情報316として表される)として表すことができる。
【0191】
図2の文脈で説明したように、ビットストリームユニット320は、符号化ビットストリーム302中でノード情報312を符号化することができる。一例として、エンコーダー300は、例えば、エンコーダー200とは対照的に、パラメーター304に基づいてノード情報312を、例にすぎないが、入力信号として提供するように構成することができる。したがって、PUTユニット310は、更新情報316及び識別子の形態でパラメーター304の代替的な表現を提供するために、パラメーター更新ツリー情報を含むことができる。
【0192】
図3bは、本発明の一実施形態による一般化ノード情報を有するエンコーダーの概略図を示している。
図3bは、パラメーター更新ツリー(PUT)ユニット310b及びビットストリームユニット320bを備えるエンコーダー300bを示している。PUTユニット310bは、ニューラルネットワークパラメーター(複数の場合もある)304に基づいて、又はそれを使用して、一般化ノード情報312bを提供するように構成することができ、情報312bは、任意選択で、例えば親ノード識別子情報及びパラメーター更新情報を含むノード情報312と等しいか又は同様であってもよい。
【0193】
しかしながら、一般化ノード情報312bは、以下に詳細に説明するように、例えば、ノード識別子、及び/又はノード識別子が存在するか否かのシグナリング、及び/又は例えばシンタックス要素の形態の親ノード識別子のタイプに関する情報を含むシグナリング、トポロジー変更情報、及び/又はトポロジー変更シグナリング等の追加の情報を任意選択で含むことができる。
【0194】
一般化ノード情報312bを使用して、ビットストリームユニット320bは、符号化ビットストリーム302bを提供することができる。
【0195】
図4は、本発明の一実施形態による更なるエンコーダーの概略図を示している。
図4は、PUTユニット410及びビットストリームユニット420を備えるエンコーダー400を示している。
【0196】
任意選択の例として、PUTユニット410は、例えば、
図5の文脈で説明されるように、パラメーター更新ツリーを含んでもよい。PUTユニット410は、親ノード識別子を任意選択で含む親ノード識別子情報414及びパラメーター更新情報416を含むノード情報412を提供することができ、該ノード情報412は、符号化ビットストリーム402を取得するためにビットストリームユニット420に提供される。したがって、例えばパラメーター更新ツリーの特定のノードに関連付けられた現在のニューラルネットワークパラメーターは、ノードに関連付けられた現在のニューラルネットワークパラメーターを表すために、参照パラメーターに関する情報を提供する親ノード識別子情報414と、参照パラメーターをどのように修正するかに関する情報を提供するパラメーター更新情報416との形態で符号化され得る。したがって、パラメーター更新情報416は、親ノード識別子によって定義される親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述することができる。
【0197】
任意選択の特徴として、エンコーダー400、例えば、PUTユニット410は、複数のノード情報ブロック418を提供するように構成することができ、第1のノード情報ブロックの親ノード識別子は、ルートノードを指し、第1のノードのパラメーター更新情報は、第1のノード情報ブロックの親ノード識別子によって定義されたルートノードに関連付けられたニューラルネットワークパラメーターと第1のノードのニューラルネットワークパラメーターとの間の差分を記述し、N番目のノード情報ブロックの親ノード識別子は、N-1番目のノードを指し、N番目のノードのパラメーター更新情報は、N番目のノード情報ブロックの親ノード識別子によって定義されたN-1番目のノードに関連付けられたニューラルネットワークパラメーターとN番目のノードのニューラルネットワークパラメーターとの間の差分を記述する。
【0198】
簡単に言えば、エンコーダー400は、例えば符号化ビットストリーム402を介して、それぞれのパラメーター更新ツリーに関する情報を提供するように構成することができる。
【0199】
図5は、本発明の実施形態によるパラメーター更新ツリーPUTの一例を示している。
図5は、ルートノードR510と、いくつかの例520、530、540、550、560として複数の子ノードとを含むPUT500を示している。
【0200】
簡略化された例として、ルートノードR510は、一例として、テンソル512によって表される4つのニューラルネットワークパラメーターa11=a12=a21=a22=0の集合に対応することができる。a11、a12、a21、a22は、例えば、ノードRに関連付けられたパラメーター値であってもよい。
【0201】
したがって、子ノードU1 530は、したがって、一例として、テンソル532によって表される4つのニューラルネットワークパラメーターの集合、例えば、パラメーター値a11=a12=a22=0及びa21=1に対応することができる。
【0202】
実施形態による概念は、次のようになり得る。すなわち、4つのニューラルネットワークパラメーターa
11=a
12=a
22=0及びa
21=1の全てを伝送する代わりに、親ノード識別子534及びパラメーター更新情報536の形態の参照情報のみが伝送されてもよい。
図5の簡略化された例では、パラメーター更新情報536は、一例として加法テンソル536によって表される、4つの変更値であり得る。多くの応用では、多くのNNパラメーターは、訓練サイクル間で劇的に変化しないことがあり、したがって、テンソル536で示されるように、多くの変更値は、ゼロであるか、又はゼロに量子化され得る。したがって、かかる更新情報は、効率的に符号化(例えば、ゼロの圧縮)することができる。
【0203】
したがって、エンコーダー及び対応するデコーダーの両方が、ルートノードR510に関連付けられたニューラルネットワークパラメーター、例えば、初期ニューラルネットワークパラメーター又はデフォルトニューラルネットワークパラメーターに関する情報を含む場合、ノードU1 530に関連付けられたニューラルネットワークパラメーター532、例えば、ニューラルネットワークの第1の訓練ステップの後のニューラルネットワークパラメーターを完全に符号化する必要はなく、参照情報534及び差異情報536のみを符号化すればよい。
【0204】
したがって、エンコーダーは、パラメーター更新情報536と親ノード識別子534とを含む符号化ビットストリーム中でノード情報を伝送することができ、したがって、対応するデコーダーは、ニューラルネットワークパラメーター532を、親ノード識別子534によって識別されるルートノードR510に関連付けられたニューラルネットワークパラメーター512とパラメーター更新情報536との和、例えば、要素ごとの和として決定することができ、したがって、例えば、テンソル512+テンソル536=テンソル532となる。
【0205】
したがって、ノードU2 520は、ニューラルネットワークパラメーター522に関連付けることができ、U2の親ノードは、ノードR510であり、したがって、親ノード識別子524は、ルートノードR510へのポインターであり得る。
【0206】
ニューラルネットワークパラメーター542に関連付けられたノード540は、ノードR510の子ノードであり得て、親ノード識別子544は、ルートノードR510へのポインターであり得る。
【0207】
対照的に、ノード550、560は、ノードU2 520の子ノードであり得て、したがって、それらの親ノード識別子554、564は、U2 520を識別することができる。U3 550は、ニューラルネットワークパラメーター552に関連付けることができ、その親ノードU2 520に関するパラメーター更新情報556を含むことができる。逆に、U4 560は、ニューラルネットワークパラメーター562に関連付けることができ、その親ノードU2 520に関するパラメーター更新情報566を含むことができる。
【0208】
図5の更なる要素は、本発明の更なる実施形態に関して、ステップごとにより詳細に説明される。以下では、本発明による更なる実施形態が、
図1~
図5に関連して説明される。
【0209】
上記の説明によれば、任意選択の特徴として、エンコーダー、例えば、200、300、300b及び/又は400は、パラメーター更新情報、例えば、536を取得するために、親ノード識別子、例えば、534によって識別される親ノード、例えば、R510によって定義される1つ以上のニューラルネットワークパラメーター、例えば、512と、1つ以上の現在のニューラルネットワークパラメーター、例えば、532との間の差分を、例えば、ノード情報ユニット210又はPUTユニット310、310b、410を使用して決定するように構成することができる。
【0210】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120b、及び/又は本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、パラメーター更新ツリー500を設定するように任意選択で構成することができ、異なるパラメーター更新情報(例えば526、536、546、556、566)を含む複数の子ノード(一部のみを挙げると、例えば520、530、540、550、560)が、共通の親ノード、例えばR510に関連付けられる。したがって、
図5に示すように、いくつかのノード、例えば、U3 550及びU4 560は、異なる、例えば、中間ノード、例えば、U2 520を介して、共通の親ノードRに関連付けられてもよい。
【0211】
一例として、本発明のPUT情報ユニット(例えば、120、120b)は、パラメーター更新ツリーを含むことができ、及び/又は、例えば、パラメーター更新ツリーを設定するように構成することができる。したがって、PUT情報ユニットは、先に説明したように、対応するPUTを設定又は更新するために、パラメーター更新情報116を任意選択で受信することができる。
【0212】
本発明のエンコーダー、例えば、200、300、300b及び/又は400は、例えば、ノード情報ユニット210又はPUTユニット310、310b及び/又は410をそれぞれ使用してPUTを設定するように構成することができる。これらのユニットは、PUTを設定、記憶、及び/又は更新するように構成することができる。
【0213】
別の任意選択の特徴として、本発明のエンコーダー、例えば、200、300、300b及び/又は400、例えば、ノード情報ユニット210及び/又はPUTユニット310、310b、410は、ノード情報212、312、312b及び/又は412(例えば、パラメーター更新情報556及び親ノード識別子554を含むノード情報)を提供するように任意選択で構成することができ、それにより、ルートノード、例えば、R510に関連付けられたパラメーター情報、例えば、512を使用して、かつ更新ツリー内のルートノードと現在考慮されているノードとの間にある1つ以上の中間ノード、例えば、U2 520に関連付けられたパラメーター更新情報、例えば、526を使用して、現在考慮されているノードに関連付けられたパラメーター更新情報、例えば、556を使用して、現在考慮されているノード、例えば、U3 550に関連付けられた1つ以上のニューラルネットワークパラメーター、例えば、552を取得することが可能である。
【0214】
したがって、一例として、ノードU3 550に関連付けられたニューラルネットワークパラメーターを取得するために、ルートノードR510のニューラルネットワークパラメーター512は、ノードU3のニューラルネットワークパラメーターを表すテンソル512+テンソル526+テンソル556=テンソル552(一例として、要素ごとの和を有する)となるように、パラメーター更新情報526及び556を使用してツリー経路R-U2-U3に従って修正することができる。
【0215】
したがって、任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130bは、ルートノード、例えばR510に関連付けられたパラメーター情報、例えば512を使用して、更新ツリー内のルートノードと現在考慮されているノードとの間にある1つ以上の中間ノード、例えばU2 520に関連付けられたパラメーター更新情報、例えば526を使用して、現在考慮されているノードに関連付けられたパラメーター更新情報、例えば556を使用して、現在考慮されているノード、例えばU3 550に関連付けられた、例えば552に対応する1つ以上のニューラルネットワークパラメーター、例えば104、104bを取得するように構成されていてもよい。
【0216】
したがって、例えば、PUT情報ユニット120、120bがPUTに関する情報を含むとき、PUT情報ユニット120、120bは、例えば552に対応する1つ以上のニューラルネットワークパラメーター、例えば104、104bを取得するために、パラメーター更新情報、例えば526と、任意選択で中間ノード、例えばU2 520の親ノード識別子、例えば524とを含むPUT情報132(又は任意選択の情報124)を導出ユニット、例えば130、130bに提供することができる。この場合、一例として、符号化ビットストリーム102は、現在考慮されているノードのパラメーター更新情報、例えば、556と、(現在考慮されているノード、例えば、U3 550のニューラルネットワークパラメーター、例えば、552を決定するためにPUTを通る経路を決定するためにPUTとともに使用され得る)現在考慮されているノードの親ノード識別子、例えば、554とのみを含んでもよい。
【0217】
別の、例えば、代替の任意選択の特徴として、符号化ビットストリーム102は、取得ユニット、例えば、110、110bによって提供されるパラメーター更新情報、例えば、116が、現在考慮されているノード、例えば、U3 560、及び中間ノード、例えば、U2 520のパラメーター更新情報、例えば、556及び526を含むことができるように、PUT、例えば、500に関する情報、及び/又は、例えば、PUTの経路、例えば、R-U2-U3に関する情報を含むことができる。したがって、親ノード識別子、例えば554及び524が提供され得る。
【0218】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400は、パラメーター更新情報と、現在考慮されているノード及び中間ノードの親ノード識別子とを含むかかる符号化ビットストリーム202、302、302b及び/又は403を提供するように構成することができる。
【0219】
さらに、別の任意選択の特徴として、例えば、PUT、例えば500を含むPUT情報ユニット120、120bは、例えば、ルートノード、例えばR510から現在考慮されているノード、例えばU3 550までパラメーター更新ツリー、例えば500を(例えばPUT情報ユニット120、120bを使用して)トラバースし、現在考慮されているノード、例えばU3 550に関連付けられた1つ以上のニューラルネットワークパラメーター、例えば552を取得するために、訪問先ノード、例えばU2 520の更新命令、例えば526を1つ以上の初期ニューラルネットワークパラメーター、例えば512に適用するように構成することができる。
【0220】
別の任意選択の特徴として、本発明のデコーダー、例えば、100、100b、例えば、PUT、例えば、500を含むPUT情報ユニット120、120bは、例えば、パラメーター更新ツリー、例えば、500の複数の連続するノード、例えば、ノードU2 520、及びU3 550を、及び/又はパラメーター更新ツリーの1つ以上の連続するノード、例えば、ノードU2 520、及びU3 550とパラメーター更新情報、例えば、526、556とを集約するように構成することができる。
【0221】
したがって、
図5に示すように、ノードU2 520、及びU3 550は、新しいノードU23 540に集約又はマージすることができる。したがって、U3に関連付けられたニューラルネットワークパラメーター、すなわちパラメーター552は、U23に関連付けられたニューラルネットワークパラメーター、すなわちパラメーター542に等しくなり得る。したがって、ノードU23のパラメーター更新情報546は、パラメーター更新情報526及び556の組み合わせ(
図5の単純な例では、要素ごとの和)であり得る。したがって、親ノード識別子544は、同じノードを指してもよく、又は親ノード識別子524と等しくてもよい。
【0222】
別の任意選択の特徴として、本発明のデコーダー、例えば、100、100b、例えば、PUT情報ユニット120、120bは、ノード情報、例えば、112、112bに基づいて、パラメーター更新ツリー、例えば、500を更新するように任意選択で構成することができる。一例として、PUT情報ユニット120、120bは、任意選択で、パラメーター更新ツリー、例えば、500に関する情報を含むことができる。パラメーター更新ツリーは、例えば、新しいノード、例えばノードU4 560をパラメーター更新ツリーに追加することによって適応されてもよい。これは、対応する親ノード識別子、例えば564を追加することを含んでもよい。任意選択で、パラメーター更新情報116は、例えばテンソル566に対応するパラメーター更新情報116がPUTにも追加され得るように、PUT情報ユニット120、120bに対して証明されてもよい。したがって、新しいノード、例えば、U4 560に関する情報、すなわち、パラメーター更新情報、例えば、566と、親ノード識別子、例えば、564とは、ビットストリーム、例えば、102中で、任意選択で、新しいノードが追加されることを示すシグナリングとともに提供され得る。あるいは、本発明のデコーダー、例えば100は、かかるノードを自律的に追加するように構成されてもよい。
【0223】
別の任意選択の特徴として、本発明のデコーダー100、100bは、ルートノードに関連付けられたニューラルネットワークパラメーター、例えばR510を選定すること、又はルートノードの子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選定することを決定するように構成することができる。
【0224】
したがって、本発明のエンコーダー、例えば、200、300、300b及び/又は400、例えば、ビットストリームユニット220、320、320b、420は、ルートノードに関連付けられたニューラルネットワークパラメーター、例えば、R510、又はルートノードの子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選択的に選定するために、シグナリング、例えば、符号化ビットストリーム202、302、302b、及び/又は402、又は符号化ビットストリーム中で符号化された信号をデコーダー、例えば、100、100bに提供するように任意選択で構成することができる。
【0225】
前述のように、テンソルの要素ごとの和は、上記で説明したように、本発明の実施形態によるパラメーター更新情報の処理の1つの、例えば、単純な例にすぎないことがある。
【0226】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター572に関連付けられたノードU5 570を更に含む。ノードU5 570は、親ノード情報574によって示されるように、ノードU1 530の子ノードである。別の任意選択の特徴として、ノードU5のパラメーター更新情報576はスケーリングを含む。
【0227】
したがって、別の任意選択の特徴として、パラメーター更新情報116、216、316、及び/又は416は、例えば、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値のスケーリングを定義する更新命令を含むことができる。
【0228】
さらに、本発明のデコーダー、例えば、100、100b、例えば、導出ユニット130、130bは、現在考慮されているノード、例えば、U5 570に関連付けられた、例えば、テンソル572に対応する1つ以上のニューラルネットワークパラメーター、例えば、104、104bを取得するために、更新命令、例えば、576によって定義されたスケーリングを適用するように任意選択で構成することができ、それに対応して、本発明のエンコーダー、例えば、200、300、300b及び/又は400、例えば、ノード情報ユニット210又はPUTユニット310、310b、410は、現在考慮されているノードの親ノード、例えば、U1 530に関連付けられた1つ以上のパラメーター値と、現在考慮されているノード、例えば、U5のパラメーター値、例えば、572とに基づいてスケーリングを決定するように構成することができる。
【0229】
説明のために、簡単に言えば、スケーリング576は、ノードU5のパラメーター値572を取得するために親ノードU1のパラメーター値532を2倍にすることを示すことができる。
【0230】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター582に関連付けられたノードU0 580を更に含む。ノードU0 580は、親ノード情報584によって示されるように、ノードR510の子ノードである。別の任意選択の特徴として、ノードU0のパラメーター更新情報586は、加法変更値、例えば+3を含む。
【0231】
したがって、任意選択の特徴として、パラメーター更新情報116、216、316及び/又は416(したがって、一般化ノード情報112b、312b)は、現在考慮されているノード、例えばU0 580の親ノード、例えばR510に関連付けられたテンソル512の1つ以上のパラメーター値、例えばa12への1つ以上の変更値、例えば変更値3の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令を含むことができる。
【0232】
したがって、本発明のデコーダー、例えば、100、100b、例えば、導出ユニット130、130bは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、更新命令によって定義された変更値の加算又は減算を適用するように任意選択で構成することができる。
【0233】
任意選択の例として、ノードU4 560のパラメーター更新情報566を有するテンソル減算が
図5に示されている。したがって、実施形態は、例えばテンソル又は行列形式で、加算又は減算、例えば要素ごとの加算又は減算を含むことができる。
【0234】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター592に関連付けられたノードU8 590を更に含む。ノードU8 590は、親ノード情報594によって示されるように、ノードU23 540の子ノードである。別の任意選択の特徴として、ノードU8のパラメーター更新情報596は、積テンソルである。
【0235】
換言すれば、任意選択で、現在考慮されているノード、例えば、U8に関連付けられた複数のニューラルネットワークパラメーター、例えば、592は、パラメーターテンソルによって表すことができ、本発明のデコーダー、例えば、100、例えば、導出ユニット130、130bは、任意選択で、テンソル要素の要素ごとの乗算を使用して、又は実施して、又はそれに基づいて、例えば、単純な変形形態として示されているように、現在考慮されているノード、例えば、590に関連付けられたパラメーターテンソル、例えば、592を取得するために、積テンソル、例えば、596をパラメーターテンソル、例えば、542に適用するように構成することができる。
【0236】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210又はPUTユニット310、310b、410は、現在考慮されているノード、例えばU8 590に関連付けられたパラメーターテンソル、例えば592を取得するために、パラメーターテンソル、例えば542に適用する積テンソル、例えば596を提供するように構成することができる。
【0237】
さらに、別の任意選択の特徴として、親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表すことができ、パラメーター更新情報116、216、316及び/又は416(及び、したがって、一般化ノード情報112b、312b)は、任意選択で、積テンソル、例えば、596を含むことができる。
【0238】
さらに、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130bは、現在考慮されているノード、例えばU8 590に関連付けられたパラメーターテンソル、例えば592を取得するために、親ノード、例えば540のパラメーターテンソル、例えば542に積テンソル、例えば596を適用するように任意選択で構成することができる。
【0239】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、親ノード、例えば540のパラメーターテンソル、例えば542への積テンソルの適用が、現在考慮されているノード、例えばU8 590に関連付けられたパラメーターテンソル、例えば592をもたらすような方法で、積テンソル、例えば596を提供するように構成することができる。
【0240】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター602に関連付けられたノードU7 600を更に含む。ノードU7 600は、親ノード情報604によって示されるように、ノードU0 580の子ノードである。別の任意選択の特徴として、ノードU8のパラメーター更新情報606は、現在考慮されているノード、例えばU7 600の親ノード、例えばU0 580に関連付けられた1つ以上のパラメーター値、例えば582のa
12と、1つ以上の変更値との重み付き組み合わせを定義する更新命令である。
【0241】
したがって、任意選択で、パラメーター更新情報、例えば、116、216、316及び/又は416(したがって、一般化ノード情報112b、312b)は、現在考慮されているノード、例えば、U7 600の親ノード、例えば、U0 580に関連付けられた1つ以上のパラメーター値、例えば、582のa12と、1つ以上の変更値との重み付き組み合わせを定義する更新命令、例えば、606を含むことができる。
【0242】
したがって、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130bは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と1つ以上の変更値との重み付き組み合わせを適用するように任意選択で構成することができる。
【0243】
この場合も、処理に必要な任意の追加情報、任意選択のPUT情報124が、PUT情報ユニット120によって導出ユニット130に提供され得ることに留意されたい。したがって、PUI情報132は、かかる追加情報を含むことができる。
【0244】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター612に関連付けられたノードU6 610を更に含む。ノードU6 610は、親ノード情報614によって示されるように、ノードU1 530の子ノードである。別の任意選択の特徴として、ノードU6のパラメーター更新情報616は、U6の親ノードに関連付けられた1つ以上のパラメーター値、この場合はテンソル532のパラメーター値a
12の、1つ以上の変更値、この場合は1つの変更値5との置換を定義する更新命令である。
【0245】
したがって、本発明のパラメーター更新情報116、216、316、及び/又は416(したがって、一般化ノード情報112b、312b)は、任意選択で、現在考慮されているノード、例えばU6 610の親ノード、例えばU1 530に関連付けられた1つ以上のパラメーター値を1つ以上の変更値で置換することを定義する更新命令、例えば616を含むことができる。
【0246】
したがって、本発明のデコーダー、例えば、100、100b、例えば、導出ユニット130、130bは、現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値を1つ以上の置換値と置換するように任意選択で構成することができる。
【0247】
パラメーター更新ツリー500は、
図5に示すように、任意選択でテンソルの形態のパラメーター値、例えばニューラルネットワークパラメーター612に関連付けられたノードU9 620を更に含む。ノードU9 620は、親ノード情報624によって示されるように、ノードU6 610の子ノードである。
【0248】
任意選択の特徴として、U9 620の例で示されるように、現在考慮されているノード、例えば、U9の親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソル、例えば、612によって表すことができ、現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソル、例えば、622によって表すことができ、複数の変更値は、和テンソル、例えば、パラメーター更新情報626の和テンソル
【数1】
によって表すことができる。
【0249】
さらに、一例として、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、現在考慮されているノード、例えばU9 620の親ノード、例えばU6 610に関連付けられたパラメーターテンソルの要素、例えば612に、例えばパラメーター更新情報626の係数・2で示されるようなノードテンソル重み値を乗算して、スケーリングされたパラメーターテンソルを取得し、和テンソル、例えばパラメーター更新情報626の和テンソル
【数2】
の要素に、パラメーター更新情報626で示されるような和テンソル重み値、例えば重み値1を乗算して、スケーリングされた和テンソルを取得し、スケーリングされたパラメーターテンソルとスケーリングされた和テンソルとの要素ごとの和を形成して、現在考慮されているノード、例えばU9に関連付けられたパラメーターテンソル、例えば622を取得するように構成することができる。
【0250】
図5による実施形態は、例えば、ニューラルネットワークパラメーターの特定のバージョンを表すために、著しくより複雑なパラメーター更新情報が使用され得るように、説明目的の単純な実施形態であり得ることに留意されたい。
【0251】
任意選択の特徴として、例えば、前に説明したように、現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され得て、パラメーター更新情報116、216、316及び/又は416(及び、したがって、一般化ノード情報112b、312b)は、任意選択で、更新テンソルの形態で更新命令を含むことができる。
【0252】
さらに、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130bは、親ノードのパラメーターテンソルの形状に従って更新テンソルの形状を変換するように任意選択で構成することができる。
【0253】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、更新テンソルの形状が親ノードのパラメーターテンソルの形状とは異なるように更新テンソルを提供するように任意選択で構成することができる。
【0254】
更なる説明のために、
図6を参照する。
図6は、本発明の実施形態によるテンソル形状変換の概略的な例を示している。
図6は、ニューラルネットワークのニューロンの現在考慮されている層630及びニューラルネットワークの以前の層640の一例を示している。
【0255】
一例として、テンソル650は、現在考慮されているノードの親ノードに関連付けられたニューラルネットワークパラメーター、例えば、重みを含むことができ、第1の方向に沿って(例えば、テンソルの行652に沿って)配置されたパラメーターテンソル650のテンソル要素、例えば、a
11、a
12、a
13は、ニューラルネットワークの現在考慮されている層640の所与のニューロン、例えば、642の入力信号へのニューラルネットワークの以前の層630の複数のニューロン632、634、636の出力信号の寄与に関連付けることができ、第2の方向に沿って(例えば、テンソルの列654に沿って)配置されたパラメーターテンソルのテンソル要素、例えば、a
12、a
22、a
32は、ニューラルネットワークの現在考慮されている層640の複数のニューロン642、644、646の入力信号へのニューラルネットワークの以前の層630の所与のニューロン、例えば、634の出力信号の寄与に関連付けられる。
図6の例では、簡潔にするために、層間の全ての重みが示されているわけではない(プレースホルダー*)。
【0256】
任意選択で、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130b又は取得ユニット110、110bは、第1の方向(例えば、行方向)における更新テンソルの拡張又は次元が第1の方向におけるパラメーターテンソル650の次元よりも小さい場合、第1の方向652における更新テンソル660の次元を拡張するように任意選択で構成することができる。代替的に、又は加えて、デコーダーは、第2の方向(例えば、列方向)における更新テンソルの拡張又は次元が第2の方向におけるパラメーターテンソル650の次元よりも小さい場合、第2の方向654における更新テンソル660の次元を拡張するように構成することができる。
【0257】
したがって、親ノードのニューラルネットワークパラメーターを修正して現在のノードのニューラルネットワークパラメーターを決定するために、拡張された更新テンソル670がパラメーターテンソル650と組み合わされ得るように、拡張された更新テンソル670が提供され得る。
【0258】
一般に、ノード及び対応するテンソルは、ニューラルネットワークの層の、及び/又はニューラルネットワーク全体の、したがって複数の層のニューラルネットワークパラメーターを表し得ることに留意されたい。
【0259】
したがって、本発明のエンコーダー、例えば、200、300、300b及び/又は400、例えば、ノード情報ユニット210及び/又はPUTユニット310、310b、410は、第1の方向652(例えば、行方向)における更新テンソル660の拡張又は次元が、第1の方向におけるパラメーターテンソル650の次元又は拡張よりも小さくなるように、更新テンソル660を提供するように任意選択で構成することができる。代替的に、又は加えて、エンコーダーは、第2の方向654(例えば、列方向)における更新テンソルの拡張又は次元が第2の方向におけるパラメーターテンソル650の次元又は拡張よりも小さくなるように、更新テンソル660を提供するように構成することができる。
【0260】
図6に示すように、更新テンソル660は、例えば、変更値u
11、u
12、u
21及びu
22を含むことができる。拡張された更新テンソル670とともに示すように、任意選択で、本発明のデコーダー、例えば、100、100b、例えば、導出ユニット130、130bは、更新テンソル660の行の数がパラメーターテンソル650の行の数よりも小さい場合、更新テンソル660の行のエントリをコピーして、形状変換された更新テンソル670の1つ以上の拡張行のエントリを取得するように任意選択で構成することができる。
【0261】
代替的に、又は加えて、デコーダーは、更新テンソルの列の数がパラメーターテンソル650の列の数よりも小さい場合、更新テンソル660の列のエントリをコピーして、形状変換された更新テンソル670の1つ以上の拡張列のエントリを取得するように構成することができる。
【0262】
図6に示すように、例えば、簡略化された例として、更新テンソル660の第1の行を複製して、拡張更新テンソル670の第3の行を提供することができ、更新テンソル660の第1の列を複製して、拡張更新テンソル670の第3の列を提供することができる。
【0263】
任意選択で示されるように、本発明のデコーダー、例えば100、例えば導出ユニット130、130bは、更新テンソルの1つ以上のエントリを行方向及び列方向にコピーして、形状変換された更新テンソル670のエントリを取得するように任意選択で構成することができる。
【0264】
しかしながら、行又は列のみがコピーされてもよく、又は行及び/又は列の或る特定のエントリのみがコピーされてもよいことに留意されたい。
【0265】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、更新テンソルの行の数がパラメーターテンソル650の行の数よりも小さくなるように、更新テンソル660を提供するように任意選択で構成することができる。代替的に、又は加えて、エンコーダーは、更新テンソルの列の数がパラメーターテンソル650の列の数よりも小さくなるように、更新テンソル660を提供するように構成することができる。
【0266】
別の任意選択の特徴として、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、更新テンソルの拡張に関する情報を提供するように任意選択で構成することができる。この情報は、例えば、ビットストリーム、例えば202、302及び/又は402において追加的に符号化されてもよい。本発明のノード情報112、112b、212、312、312b及び/又は412は、任意選択で、かかる拡張情報を含んでもよい。
【0267】
したがって、本発明のデコーダー、例えば100、100b、例えば導出ユニット130、130bは、更新テンソルの拡張に関する情報に依存して、更新テンソルの形状を変換する必要性、及び/又は更新テンソルの形状の変換の程度を決定するように任意選択で構成することができる。
【0268】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えば取得ユニット110、110bは、親ノード識別子情報、例えば114が、例えば符号化ビットストリーム102中に存在するかどうかを決定するように任意選択で構成することができ、デコーダーは、親ノード識別子が存在する場合、本明細書に開示される任意の実施形態に従って、1つ以上のニューラルネットワークパラメーター、例えば104、104bを導出するように構成することができ、さらに、デコーダーは、親ノード識別子が存在しない場合、現在考慮されているノードをルートノードにするように構成することができる。
【0269】
したがって、
図1及び
図1bを参照すると、親ノード識別子情報114(又はそれぞれ一般化ノード情報112b)は、例えば、PUT情報ユニット120、120bによって設定及び記憶されたパラメーター更新ツリーがそれに応じて適応され得るように、例えば、親ノード識別子(例えば、存在する場合)の代わりに、又はそれに加えて、親ノード識別子が存在するか、又は存在しないかの情報を含むことができる。これにより、例えば、対応するパラメーター集合が古くなっているか、又はより新しいパラメーター集合よりも劣っている(例えば、より悪い)可能性があるため、もはや必要とされない可能性があるPUTの部分を破棄することが可能になり得る。したがって、簡単に言えば、PUTの新しいルートノードが現在考慮されているノードであるように、PUTの上位部分を破棄することができる。他方では、このようにして、現在考慮されているノードから開始して、新しいPUTを設定することができる。
【0270】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、親ノード識別子が存在するか否かの情報を含むシグナリングを提供するように任意選択で構成することができる。したがって、
図2~
図4を参照すると、親ノード識別子情報214、314及び/又は414の代わりに、例えば、親ノード識別子の代わりに、又は親ノード識別子に加えて、かかるシグナリングを含むことができる。
【0271】
別の任意選択の特徴として、PUTのノード(例えば、ノードR、U0~U9 510~620)は、それぞれのハッシュ値に関連付けることができる。本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120bは、親ノード識別子(親ノード識別子情報114(又はそれぞれ一般化ノード情報112b)は親ノード識別子を含み得る)を1つ以上のノードに関連付けられたハッシュ値と比較して、現在考慮されているノードの親ノードを識別するように任意選択で構成することができる。
【0272】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、親ノード識別子としてノードに関連付けられたハッシュ値を(例えば、親ノード識別子情報214、314及び/又は414内で、又は例えばビットストリーム202、302、302b及び/又は402中で符号化されたそれぞれ一般化ノード情報112b、312b内で)提供して、現在考慮されているノードの親ノードを識別するように任意選択で構成することができる。
【0273】
任意選択で、ハッシュ値は、1つ以上の以前に復号化されたノードに関連付けられた完全圧縮データユニットNDUのハッシュ値であってもよい。
【0274】
別の任意選択の特徴として、ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に符号化されたノードに関連付けられた圧縮データユニットのペイロード部分のハッシュ値であってもよい。
【0275】
別の任意選択の特徴として、親ノード識別子は、両方とも親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値であってもよい。
【0276】
別の任意選択の特徴として、親ノード識別子は、更新ツリー、例えば、500、及び/又はニューラルネットの層を識別することができる。PUTは、例えば、ニューラルネットワークのニューラルネットワークパラメーターの一部分を表すことができる。したがって、ニューラルネットワークの場合、複数の更新ツリーが設定されてもよく、したがって、ツリー間の区別が有利であり得る。一例として、PUTは、ニューラルネットワークの1つの層を表すことができる。
【0277】
別の任意選択の特徴として、ノード情報、例えば、112、112b、212、312、312b、及び/又は412は、ノード識別子を含んでもよい。本発明のデコーダー、例えば、100、100b、例えば、PUT情報ユニット120、120bは、ノード識別子を記憶するように任意選択で構成することができる。したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、ノード識別子を記憶及び/又は提供するように任意選択で構成することができる。
【0278】
別の任意選択の特徴として、本発明のデコーダー、例えば、100、100b、例えば、PUT情報ユニット120、120bは、新しいノードの親ノードを識別するために、新しいノードを追加するときに、1つ以上の記憶されたノード識別子を新しいノードのノード情報内の親ノード識別子と比較するように任意選択で構成することができる。
【0279】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、新しいノードの親ノードを識別するために、新しいノードを追加するときに、1つ以上の記憶されたノード識別子を新しいノードのノード情報内の親ノード識別子と比較するように任意選択で構成することができる。
【0280】
別の任意選択の特徴として、ノード識別子は、ノード情報、例えば、112、112b、212、312、312b、及び/又は412が関連付けられる更新ツリー、例えば、500、及び/又はノード情報が関連するニューラルネットの層を識別することができる。ニューラルネットワークは、数百万のパラメーターを含み得るため、パラメーターの選択のみを1つの単一パラメーターツリーに編成することができる。また、親ノードに関連付けられたパラメーターとして探索されるニューラルネットワークパラメーターが、どのニューラルネットワーク層に関連付けられているかという情報を使用することによって、エンコーダー又はデコーダーの探索時間を短縮させることができる。
【0281】
別の任意選択の特徴として、例えばノード識別子情報114、214、314、414及びそれぞれ一般化ノード情報112b、312b内のノード識別子は、デバイス識別子及び/又はパラメーター更新ツリー深度情報及び/又はパラメーター更新ツリー識別子を含むことができる。1つのニューラルネットワークは、異なるデバイス上で訓練することができ、それによりパラメーターの異なる集合を利用可能とすることができ、例えば、パラメーターのかかる集合の異なる反復さえも利用可能とすることができる。したがって、デバイス識別子に関する情報は、ニューラルネットワークパラメーターの特定の集合を効率的に示すことを可能にすることができる。PUT深度情報は、PUTの全ての層を通して探索する必要がない可能性があるため、現在考慮されているノードのニューラルネットワークパラメーターを決定するために、例えば、対応する親ノードを見つけるために必要とされる時間を低減することができる。
【0282】
別の任意選択の特徴として、ノード情報、例えば、112、112b、212、312、312b及び/又は412は、ノード識別子が存在するか否かを示すシグナリングを含むことができる。
【0283】
別の任意選択の特徴として、親ノード識別子(例えばビットストリーム202、302及び/又は402に符号化された、例えば、親ノード識別子情報114、214、314及び/又は414、並びにそれぞれ一般化ノード情報112b、312b内の)は、両方とも親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である。
【0284】
別の任意選択の特徴として、親ノード識別子情報114、214、314及び/又は414、並びにそれぞれ一般化ノード情報112b、312bは、任意選択で、親ノード識別子のタイプに関する情報を含むことができる。したがって、本発明のデコーダー、例えば100、100b、例えば取得ユニット110、110bは、親ノード識別子のタイプに関する情報を含むシグナリングを取得するように構成することができ、デコーダーは、親ノード識別子のそれぞれのタイプを考慮するためにシグナリングを評価するように任意選択で構成することができる。
【0285】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、親ノード識別子のタイプに関する情報を含むシグナリングを提供するように任意選択で構成することができる。
【0286】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120bは、親ノード識別子の存在を示すシンタックス要素に依存して、親ノード識別子のタイプを示すシンタックス要素を選択的に評価するように任意選択で構成することができる。
【0287】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、親ノード識別子を記述するシンタックス要素が存在する場合、親ノード識別子のタイプを示すシンタックス要素を選択的に提供するように任意選択で構成することができる。
【0288】
図7は、本発明の実施形態によるニューラルネットワークのトポロジー変更の一例を示している。
図7は、ニューロン712を有するニューラルネットワークセクションの第1のトポロジー710を示し、ニューラルネットワークパラメーターa
11、a
12、a
21、及びa
22、例えば重みは、パラメーターテンソル720によって表すことができる。一例として、ニューラルネットワークセクションのトポロジーは、新しいノード732と追加のパラメーターb
1及びb
2とを有する第2のトポロジー730に変化することができる。トポロジー730を有するニューラルネットワークのニューラルネットワークパラメーターは、テンソル740によって表すことができる。
【0289】
任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えば取得ユニット110、110bは、ニューラルネットワークのトポロジー変更に関する情報を含む、ノード情報内のトポロジー変更シグナリングを取得するように任意選択で構成することができる。一例として、親ノード識別子情報、例えば114は、任意選択で、トポロジー変更シグナリングを含むことができる。さらに、デコーダーは、修正されたトポロジーを有するニューラルネットワークの、例えばテンソル740によって表されるような、1つ以上のニューラルネットワークパラメーターを導出するために、トポロジー変更に従って親ノードのパラメーター情報を修正するように構成することができる。
【0290】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、ノード情報内に、例えば親ノード識別子情報214、314及び/又は414内に、ニューラルネットワークのトポロジー変更に関する情報を含むトポロジー変更シグナリングを提供するように任意選択で構成することができる。
【0291】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120b及び/又は例えば導出ユニット130、130bは、トポロジー変更情報に応じて1つ又は2つのテンソルの形状を変更するように任意選択で構成することができる。一例として、変更値を含むテンソルは、新しいニューラルネットワークトポロジーに従って親ノードの新しい形状に適応されてもよい。
【0292】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、トポロジー変更のシグナリングとともに、1つ又は2つのテンソルの形状の変更をシグナリングするように任意選択で構成することができる。
【0293】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120bは、トポロジー変更情報に応じて所与の層のニューロンの数を変更するように任意選択で構成することができる。一例として、ニューラルネットワークを実行するデバイス上のデコーダーは、トポロジー変更情報を受信し得て、したがって、例えば、ニューラルネットワークパラメーター、例えば、重み値を適応させることに加えて、ニューラルネットワークの構造を適応させることができる。
【0294】
したがって、本発明のエンコーダー、例えば、200、300、300b及び/又は400、例えば、ノード情報ユニット210及び/又はPUTユニット310、310b、410は、トポロジー変更情報を使用して所与の層のニューロンの数の変更をシグナリングするように任意選択で構成することができる。このようなトポロジー変更情報は、一般化ノード情報、例えば312bに含まれてもよい。
【0295】
別の任意選択の特徴として、本発明のデコーダー、例えば100、100b、例えばPUT情報ユニット120、120b及び/又は例えば導出ユニット130、130bは、修正されたサイズを有する1つ以上のテンソルを取得するために、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値を1つ以上の置換テンソルで置換するように任意選択で構成することができ、又はデコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルを1つ以上の置換テンソルで置換するように構成することができる。
【0296】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値の、1つ以上の置換値との置換をシグナリングするように任意選択で構成することができ、又はエンコーダーは、現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの、1つ以上の置換テンソルとの置換をシグナリングするように構成することができる。
【0297】
別の任意選択の特徴として、本発明のデコーダー、例えば、100、100b、例えば、導出ユニット130、130bは、トポロジー変更シグナリングに応じて、ニューラルネットの隣接する層に関連付けられた2つの更新ツリー中の2つのテンソルの形状を同期された方法で変更するように任意選択で構成することができる。
【0298】
したがって、本発明のエンコーダー、例えば200、300、300b及び/又は400、例えばノード情報ユニット210及び/又はPUTユニット310、310b、410は、トポロジー変更シグナリングを使用して、ニューラルネットの隣接する層に関連付けられた2つの更新ツリー内の2つのテンソルの形状の変更を同期してシグナリングするように任意選択で構成することができる。
【0299】
図8は、本発明の実施形態によるニューラルネットワークコントローラーの概略図を示している。
図8は、訓練ユニット810と、参照ユニット820と、パラメーター更新情報(PUI)ユニット830と、ノード情報提供ユニット840とを備えるニューラルネットワークコントローラー800を示している。
【0300】
訓練ユニット810は、ニューラルネットワークを訓練して、初期ニューラルネットワークパラメーターに基づいて更新されたニューラルネットワークパラメーター812を取得するように構成することができる。一例として、初期ニューラルネットワークパラメーターは、デフォルトパラメーター、又は、例えば、ニューラルネットワークがそこから訓練され得るニューラルネットワークパラメーターの第1の集合であってもよい。任意選択の特徴として、初期ニューラルネットワークパラメーターは、参照ユニット820を使用して、又はそれによって訓練ユニット810に提供されてもよい。初期ニューラルネットワークパラメーターは、参照ユニット820に記憶され得るか、又は、例えば、ニューラルネットワークコントローラー800に最初に提供されてもよい。
【0301】
一例として、更新されたニューラルネットワークパラメーターに基づいて、第2の訓練を実施することができる。したがって、更新されたニューラルネットワークパラメーターは、例えば、第2の訓練の参照パラメーター又は開始パラメーターであり得る。このような参照パラメーターは、参照ユニット820に記憶することができる。したがって、第1のステップでは、参照パラメーター、例えば、訓練がそれに基づいて実施されるパラメーターは、初期ニューラルネットワークパラメーターに等しくてもよい。
【0302】
さらに、PUIユニット830は、参照ニューラルネットワークパラメーター822及び更新されたニューラルネットワークパラメーター812に基づいてパラメーター更新情報(PUI)832を決定するように構成することができる。したがって、参照ユニット820は、参照ニューラルネットワークパラメーター822、例えば、更新されたニューラルネットワーク(NN)パラメーターを取得するために訓練がそれに基づいて実施されたパラメーターをPUIユニット830に提供することができる。
【0303】
PUI832は、例えば、初期ニューラルネットワークパラメーターから更新されたニューラルネットワークパラメーターを少なくとも近似的にどのように導出するかを記述する1つ以上の更新命令も含むことができる。
【0304】
参照NNパラメーター882は、例えば、パラメーター更新情報832が、更新されたNNパラメーター812を計算又は決定するために初期ニューラルネットワークパラメーターをどのように修正するかに関する情報を含み得るように、(例えば、第2の訓練ステップ、第3の訓練ステップ、第4の訓練ステップ、又は更なる訓練ステップにおいても)初期ニューラルネットワークパラメーターとすることができる。
【0305】
しかしながら、かかる情報は、再帰的再構成のために、PUI832に含まれてもよい。したがって、初期NNパラメーターとは異なる更新されたNNパラメーター812を取得するために、参照NNパラメーター822、例えば、1つの訓練サイクルの開始パラメーターをどのように修正するかに関する情報がPUIに含まれてもよい。
【0306】
図5を参照すると、PUIは、したがって、初期ニューラルネットワークパラメーター、例えば512に関連付けられたルートノードR510から、更新されたNNパラメーター、例えば552に関連付けられた現在考慮されているノード、例えばU3 550までの経路全体に関する情報、又は、例えば参照パラメーター、例えば522に関連付けられたU2 520から、更新されたNNパラメーター、例えば562に関連付けられたノードU4までの、例えば1つ以上のノードを介する、かかる経路のセクションのみに関する情報を含むことができる。ここで、簡単に言えば、参照NNパラメーター822と更新されたNNパラメーターとの間には、1つ以上の訓練、したがって1つ以上のパラメーター更新が実施され得ることに再び留意されたい。
【0307】
換言すれば、PUI情報は、更新されたNNパラメーター812を取得するために、NN訓練の最初の又は任意の又は中間の開始点である参照NNパラメーター822をどのように修正するかに関する情報を任意選択で含むことができる。
【0308】
さらに、ノード情報提供ユニット840は、(例えば、前に説明したような)親ノード識別子情報と(例えば、前に説明したような)パラメーター更新情報PUIとを含むノード情報802を提供するように構成されてもよく、親ノード識別子は親ノードを定義し、そのパラメーター情報はパラメーター更新情報の適用の開始点として機能する。
【0309】
したがって、更新されたNNパラメーター832を取得するためにPUI情報によって修正される参照NNパラメーター822を識別するために、親ノード識別子を使用して、PUI情報の参照情報を提供することができる。
【0310】
別の任意選択の特徴として、ニューラルネットワークコントローラー800は、本明細書に開示されるような実施形態のうちのいずれかによるエンコーダー、及び/又は本明細書に開示されるような任意の本発明のエンコーダーの任意の機能若しくは機能の組み合わせを含んでもよい。
【0311】
図9は、本発明の実施形態によるニューラルネットワーク連合学習コントローラーの概略図を示している。
図9は、処理ユニット910及び分配ユニット920を備えるニューラルネットワーク連合学習コントローラー900を示している。
【0312】
ニューラルネットワーク連合学習コントローラー900は、複数のニューラルネットワークのノード情報902を受信するように構成され、ノード情報は、親ノード識別子(又は、例えば、親ノード識別子を含む親ノード識別子情報)とパラメーター更新情報とを含む。
【0313】
さらに、処理ユニット910は、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成される。処理済み情報912は、組み合わされたパラメーター更新情報を含んでもよく、又はそれであってもよい。
【0314】
さらに、分配ユニット920は、処理済み情報、例えば、組み合わされたパラメーター更新情報を分配するように構成される。
【0315】
したがって、ニューラルネットワーク連合学習コントローラー900は、異なるニューラルネットワークの複数の対応するノードの複数の訓練結果(例えば、パラメーター更新情報)を組み合わせるために、協調ユニットとして動作することができる。したがって、ロバストなニューラルネットワークパラメーターが抽出され、処理済み情報の形態で提供され得る。
【0316】
任意選択の特徴として、ニューラルネットワーク連合学習コントローラー900、例えば、処理ユニット910は、異なるニューラルネットワークの等しい親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成することができる。したがって、処理済み情報912は、組み合わされたパラメーター更新情報を含んでもよく、又はそれであってもよい。
【0317】
したがって、一例として、NNパラメーターのロバストな集合を提供するために、等しい開始パラメーターに基づくNN訓練結果を組み合わせることができる。
【0318】
任意選択の特徴として、ニューラルネットワーク連合学習コントローラー900、例えば、分配ユニット920は、親ノード識別子が関連付けられた親ノードのパラメーター情報を複数のデコーダーに分配するように構成することができ、ニューラルネットワーク連合学習コントローラー900、例えば、処理ユニット912は、親ノード識別子を含むノード情報をデコーダーから受信するように構成することができる。さらに、ニューラルネットワーク連合学習コントローラー900、例えば、処理ユニット910は、親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせるように構成される。
【0319】
別の任意選択の特徴として、ニューラルネットワーク連合学習コントローラー900、例えば、分配ユニット920は、例えば、パラメーター更新ツリーの組み合わされたノード情報を記述するノード情報を、例えば、処理済み情報912内に、又は処理済み情報912であるノード情報を提供するように構成することができ、組み合わされたノード情報は、親ノード識別子を含み、組み合わされたノード情報は、組み合わされたパラメーター更新情報を含む。
【0320】
別の任意選択の特徴として、ニューラルネットワーク連合学習コントローラー900は、本明細書に開示される任意の実施形態によるエンコーダーを任意選択で含むことができ、又はニューラルネットワーク連合学習コントローラー900は、本明細書に開示される本発明のエンコーダーの任意の機能又は機能の組み合わせを任意選択で含むことができる。
【0321】
図10は、本発明の実施形態によるニューラルネットワークのパラメーターを復号化する方法の概略ブロック図を示している。方法1000は、符号化ビットストリームに基づいて、ニューラルネットワークの複数のニューラルネットワークパラメーターを取得(1010)することと、パラメーター更新ツリーのノードを記述するノード情報を取得(1020)することであって、ノード情報は、親ノード識別子を含み、ノード情報は、パラメーター更新情報を含むことと、親ノード識別子によって識別される親ノードのパラメーター情報を使用し、かつパラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出(1030)することとを含む。
【0322】
図11は、本発明の実施形態による、符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化する方法の概略的なブロック図を示している。
図11は、パラメーター更新ツリーのノードを記述するノード情報を提供(1110)することを含み、ノード情報は、親ノード識別子を含み、ノード情報は、パラメーター更新情報を含み、パラメーター更新情報は、親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する、方法1100を示している。
【0323】
図12は、本発明の実施形態によるニューラルネットワークを制御する方法の概略ブロック図を示している。
図12は、初期ニューラルネットワークパラメーターに基づいて、更新されたニューラルネットワークパラメーターを取得するために、ニューラルネットワークを訓練(1210)することと、参照ニューラルネットワークパラメーター及び更新されたニューラルネットワークパラメーターに基づいてパラメーター更新情報を決定(1220)することであって、パラメーター更新情報は、初期ニューラルネットワークパラメーターから、少なくとも近似的に、更新されたニューラルネットワークパラメーターをどのように導出するかを記述する1つ以上の更新命令を含むことと、親ノード識別子とパラメーター更新情報とを含むノード情報を提供(1230)することであって、親ノード識別子は、親ノードを定義し、親ノードのパラメーター情報は、パラメーター更新情報の適用の開始点として機能することとを含む、方法1200を示している。
【0324】
図13は、本発明の実施形態によるニューラルネットワーク連合学習を制御する方法の概略ブロック図を示している。
図13は、複数のニューラルネットワークのノード情報を受信(1310)することであって、ノード情報は、親ノード識別子を含み、ノード情報は、パラメーター更新情報を含むことを含む、方法1300を示している。本方法は、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得(1320)することと、組み合わされたパラメーター更新情報を分配(1330)することとを更に含む。
【0325】
本発明による更なる実施形態は、HLS(例えば、HTTP(例えば、ハイパーテキスト転送プロトコル(hypertext transfer protocol))ライブストリーミング)更新シグナリングに関係するか、又はそれのために使用され得るか、又はそれに対処することができる。
【0326】
さらに、実施形態は、ニューラルネットワーク全体の圧縮に適用することができ、それらのうちのいくつかは、ベースネットワークに対するニューラルネットワークの差分更新の圧縮にも適用され得ることに留意されたい。かかる差分更新は、例えば、モデルがファインチューニング又は転移学習の後に再分配されるとき、又は異なる圧縮率を有するニューラルネットワークのバージョンを提供するときに有用である。
【0327】
実施形態は、ベースニューラルネットワーク、例えば、差分更新の基準となるニューラルネットワークの使用、例えば、操作又は修正に更に対処することができる。
【0328】
実施形態は更に、更新されたニューラルネットワーク、例えば、ベースニューラルネットワークを修正することから生じるニューラルネットワークに対処するか、又はそれを含むか、又はそれを提供することができる。注:更新されたニューラルネットワークは、例えば、差分更新をベースニューラルネットワークに適用することによって再構成することができる。
【0329】
本発明による更なる実施形態は、NNRユニットの形態のシンタックス要素を含むことができる。NNRユニットは、例えば、本発明の実施形態に従って圧縮又は表現され得るニューラルネットワークデータ及び/又は関連するメタデータを搬送するデータ構造であってもよい。
【0330】
NNRユニットは、ニューラルネットワークメタデータについての圧縮された情報、ニューラルネットワークメタデータについての圧縮されていない情報、トポロジー情報、完全な又は部分的な層データ、フィルター、カーネル、バイアス、量子化された重み、テンソル等のうちの少なくとも1つを搬送することができる。
【0331】
NNRユニットは、例えば、以下のデータ要素を含むか、又はそれらからなっていてもよい。
【0332】
NNRユニットサイズ(任意選択):このデータ要素は、NNRユニットサイズを含む、NNRユニットの総バイトサイズをシグナリングすることができる。
【0333】
NNRユニットヘッダー:このデータ要素は、NNRユニットタイプ及び/又は関連するメタデータに関する情報を含むことができる。
【0334】
NNRユニットペイロード:このデータ要素は、ニューラルネットワークに関係する圧縮又は非圧縮データを含むか、又は包含することができる。
【0335】
一例として、実施形態は、以下のビットストリームシンタックスを含む(又は使用する)ことができる。
【0336】
【0337】
【0338】
【0339】
親ノード識別子は、例えば、上記のシンタックス要素のうちの1つ以上を含むことができ、例えば、device_id、parameter_id、及び/又はput_node_depthが挙げられる。
【0340】
【0341】
【0342】
decode_compressed_data_unit_payload()を使用して、更新されたモデルを取得するために、ニューラルネットワークのベースモデルのパラメーターを修正することができる。したがって、上記のnnr_compressed_data_unit_payload()を使用して、親ノード識別子によって識別される親ノードのパラメーター情報を使用し、かつ、パラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出することができる。
【0343】
1に等しいnode_id_present_flagは、シンタックス要素device_id、parameter_id、及び/又はput_node_depthが存在することを示すことができる。
【0344】
device_idは、例えば、現在のNDUを生成したデバイスを一意に識別することができる。
【0345】
parameter_idは、例えば、NDUに記憶されたテンソルが関係するモデルのパラメーターを一意に識別することができる。parent_node_id_typeがICNN_NDU_IDに等しい場合、parameter_idは、例えば、関連する親NDUのparameter_idに等しくなり得るか、又は等しいものとする。
【0346】
put_node_depthは、例えば、現在のNDUが位置するツリー深度であってもよい。0の深度は、ルートノードに対応することができる。parent_node_id_typeがICNN_NDU_IDに等しい場合、put_node_depth-1は、例えば、関連する親NDUのput_node_depthであってよく、又は更にはそれに等しくなければならない。
【0347】
1に等しいparent_node_id_present_flagは、例えば、シンタックス要素parent_node_id_typeが存在することを示すことができる。
【0348】
parent_node_id_typeは、例えば、親ノードidタイプを指定することができる。これは、親ノードを一意に識別する更なるシンタックス要素が存在することを示してもよい。parent_node_id_typeの許容値の例が次の表に定義されている。
【0349】
【0350】
temporal_context_modeling_flagは、例えば、時間コンテキストモデリングが有効にされるかどうかを指定することができる。1に等しいtemporal_context_modeling_flagは、時間コンテキストモデリングが有効にされることを示すことができる。temporal_context_modeling_flagが存在しない場合、0であると推測される。
【0351】
parent_device_idは、例えば、親NDUのシンタックス要素device_idに等しくてもよい。
【0352】
parent_node_payload_sha256は、例えば、親NDUのnnr_compressed_data_unit_payloadのSHA256ハッシュであってもよい。
【0353】
parent_node_payload_sha512は、例えば、親NDUのnnr_compressed_data_unit_payloadのSHA512ハッシュであってもよい。
【0354】
さらに、本発明による実施形態は、行スキップ機能を含むことができる。一例として、フラグrow_skip_flag_enabled_flagによって有効にされた場合、行スキップ技術は、パラメーターテンソルの第1の軸に沿って値iごとに1つのフラグrow_skip_list[i]をシグナリングする。フラグrow_skip_list[i]が1である場合、第1の軸のインデックスがiに等しいパラメーターテンソルの全ての要素がゼロに設定される。フラグrow_skip_list[i]が0である場合、第1の軸のインデックスがiに等しいパラメーターテンソルの全ての要素が個々に符号化される。
【0355】
さらに、本発明による実施形態は、コンテキストモデリングを含むことができる。一例として、コンテキストモデリングは、3つのタイプのフラグsig_flag、sign_flag、及びabs_level_greater_x/x2をコンテキストモデルに関連付けることに対応することができる。このようにして、(コンテキストモデルの内部の)確率推定器が、例えば、基礎となる統計に適応することができるように、同様の統計的挙動を有するフラグが同じコンテキストモデルに関連付けられ得るか、又は関連付けられるべきである。
【0356】
提示された手法のコンテキストモデリングは、例えば、以下の通りであってもよい。
【0357】
例えば、24個のコンテキストモデルは、状態値と、左に隣接する量子化されたパラメーターレベルがゼロであるか、ゼロよりも小さいか、又はゼロよりも大きいかとに応じて、sig_flagについて区別することができる。
【0358】
dq_flagが0である場合、例えば、最初の3個のコンテキストモデルのみを使用することができる。
【0359】
3つの他のコンテキストモデルは、例えば、左に隣接する量子化されたパラメーターレベルがゼロであるか、ゼロよりも小さいか、又はゼロよりも大きいかに応じて、sign_flagについて区別することができる。
【0360】
abs_level_greater_x/x2フラグの場合、各xは、例えば、1つ又は2つの別個のコンテキストモデルのいずれかを使用することができる。x≦maxNumNoRemMinus1の場合、sign_flagに応じて2つのコンテキストモデルが区別される。x>maxNumNoRemMinus1の場合、例えば、1つのコンテキストモデルのみを使用することができる。
【0361】
さらに、本発明による実施形態は、時間コンテキストモデリングを含むことができる。一例として、フラグtemporal_context_modeling_flagによって有効にされた場合、フラグsig_flag、sign_flag及びabs_level_greater_xの追加のコンテキストモデルセットが利用可能であり得る。ctxIdxの導出は、次いで、例えば、パラメーター更新ツリーによって一意に識別され得る、以前に符号化されたパラメーター更新テンソル中の量子化されたコロケートパラメーターレベルの値にも基づき得る。コロケートパラメーターレベルが利用可能でないか、又はゼロに等しい場合、例えば、前に説明したようなコンテキストモデリングが適用されてもよい。そうではなく、コロケートパラメーターレベルがゼロに等しくない場合、提示される手法の時間コンテキストモデリングは、以下の通りであってもよい。
【0362】
16個のコンテキストモデルは、例えば、状態値と、量子化されたコロケートパラメーターレベルの絶対値が1よりも大きいか否かとに応じて、sig_flagについて区別することができる。
【0363】
dq_flagが0である場合、最初の2つの追加のコンテキストモデルのみを使用することができる。
【0364】
更に2つのコンテキストモデルは、例えば、量子化されたコロケートパラメーターレベルがゼロよりも小さいか又は大きいかに応じて、sign_flagについて区別することができる。
【0365】
abs_level_greater_xフラグの場合、各xは2つの別個のコンテキストモデルを使用することができる。これらの2つのコンテキストモデルは、例えば、量子化されたコロケートパラメーターレベルの絶対値がx-1以上であるか否かに応じて区別することができる。
【0366】
本発明による実施形態は、任意選択で、以下のテンソルシンタックス、例えば量子化されたテンソルシンタックスを含むことができる。
【0367】
【0368】
スキップ情報は、例えば、上記の行スキップ情報、例えば、row_skip_enabled_flag及び/又はrow_skip_listのいずれか又は全てを含むことができる。
【0369】
一例として、row_skip_enabled_flagは、行スキップが有効にされるかどうかを指定することができる。1に等しいrow_skip_enabled_flagは、行スキップが有効にされることを示すことができる。
【0370】
row_skip_listは、フラグのリストを指定することができ、i番目のフラグrow_skip_lsit[i]は、第1の次元のインデックスがiに等しいQuantParamの全てのテンソル要素がゼロであるかどうかを示すことができる。row_skip_list[i]が1に等しい場合、第1の次元のインデックスがiに等しいQuantParamの全てのテンソル要素はゼロであってもよい。
【0371】
本発明による実施形態は、例えば、量子化されたパラメーターシンタックス、一例として、以下に定義されるシンタックスを更に含むことができる。全ての要素は、任意選択と見なすことができる。
【0372】
【0373】
sig_flagは、例えば、量子化された重みQuantParam[i]が非ゼロであるかどうかを指定することができる。0に等しいsig_flagは、例えば、QuantParam[i]が0であることを示すことができる。sign_flagは、例えば、量子化された重みQuantParam[i]が正であるか負であるかを指定することができる。1に等しいsign_flagは、例えば、QuantParam[i]が負であることを示すことができる。abs_level_greater_x[j]は、例えば、QuantParam[i]の絶対レベルがj+1よりも大きいかどうかを示すことができる。
【0374】
abs_level_greater_x2[j]は、例えば、指数ゴロム剰余の単項部分を含むことができる。
【0375】
abs_remainderは、例えば、固定長剰余を示すことができる。
【0376】
本発明による更なる実施形態は、例えば、以下のシフトパラメーターインデックスシンタックスを含むことができる。全ての要素は、任意選択と見なすことができる。
【0377】
【0378】
本発明による更なる実施形態は、以下で説明されるように、エントロピー復号化プロセスを含む。
【0379】
一般に、このプロセスへの入力は、例えば、シンタックス要素の値及び前の解析されたシンタックス要素の値についての要求であり得る。
【0380】
このプロセスの出力は、例えば、シンタックス要素の値とすることができる。
【0381】
シンタックス要素の解析は、例えば、以下のように進めることができる。
【0382】
シンタックス要素の要求された値ごとに、例えば、二値化を導出することができる。
【0383】
シンタックス要素の二値化及び解析されたビンのシーケンスは、例えば、復号化プロセスフローを決定することができる。
【0384】
初期化プロセスの例:
【0385】
一般に、このプロセスの出力は、例えば、初期化されたDeepCABAC内部変数とすることができる。
【0386】
算術復号化エンジンのコンテキスト変数は、例えば、以下のように初期化することができる。
【0387】
復号化エンジンは、例えば、IvlCurrRange及びIvlOffsetを両方とも16ビットレジスタ精度で登録することができ、例えば、算術復号化エンジンの初期化プロセスを呼び出すことによって初期化することができる。
【0388】
本発明による実施形態は、例えば以下で説明するように、確率推定パラメーターの初期化プロセスを含むことができる。
【0389】
このプロセスの出力は、例えば、シンタックス要素sig_flag、sign_flag、abs_level_greater_x、及びabs_level_greater_x2の各コンテキストモデルの初期化された確率推定パラメーターshift0、shift1、pStateIdx0、及びpStateIdx1であってもよい。
【0390】
2DアレイCtxParameterList[][]は、例えば、以下のように初期化することができる。
【0391】
CtxParameterList[][]={{1,4,0,0},{1,4,-41,-654},{1,4,95,1519},{0,5,0,0},{2,6,30,482},{2,6,95,1519},{2,6,-21,-337},{3,5,0,0},{3,5,30,482}}
【0392】
dq_flagが1に等しく、temporal_context_modeling_flagが1に等しい場合、例えば、シンタックス要素sig_flagの40個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsSigFlag[i]に等しくなり得る。
【0393】
dq_flag==が1に等しく、temporal_context_modeling_flagが0に等しい場合、例えば、シンタックス要素sig_flagの最初の、例えば、24個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsSigFlag[i]に等しくなり得る。
【0394】
dq_flagが0に等しく、temporal_context_modeling_flagが1に等しい場合、例えば、シンタックス要素sig_flagの、例えば、最初の3個のコンテキストモデル並びに例えば、コンテキストモデル24及び25のそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsSigFlag[i]に等しくなり得る。
【0395】
temporal_context_modeling_flagが1に等しい場合、例えば、シンタックス要素sign_flagの例えば5個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsSignFlag[i]に等しくなり得る。
【0396】
そうでない場合(temporal_context_modeling_flag==0)、例えば、シンタックス要素sign_flagの最初の、例えば、3個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterListsetId[0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsSignFlag[i]に等しくなり得る。
【0397】
temporal_context_modeling_flagが1に等しい場合、例えば、シンタックス要素abs_level_greater_xの4*(cabac_unary_length_minus1+1)個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsAbsGrX[i]に等しくなり得る。
【0398】
そうでない場合(temporal_context_modeling_flag==0)、例えば、シンタックス要素abs_level_greater_xの最初の、例えば、2*(cabac_unary_length_minus1+1)個のコンテキストモデルのそれぞれについて、関連するコンテキストパラメーターshift0は、例えば、CtxParameterList[setId][0]に設定することができ、shift1は、例えば、CtxParameterList[setId][1]に設定することができ、pStateIdx0は、例えば、CtxParameterList[setId][2]に設定することができ、pStateIdx1は、例えば、CtxParameterList[setId][3]に設定することができ、ここで、iは、例えば、コンテキストモデルのインデックスであり得て、setIdは、例えば、ShiftParameterIdsAbsGrX[i]に等しくなり得る。
【0399】
本発明による更なる実施形態は、例えば、以下で説明されるような復号化プロセスフローを含むことができる。
【0400】
一般に、このプロセスへの入力は、例えば、要求されたシンタックス要素の二値化の全てのビン文字列であってもよい。
【0401】
このプロセスの出力は、例えば、シンタックス要素の値であってもよい。
【0402】
このプロセスは、例えば、各シンタックス要素について、例えば、ビン文字列の各ビンがどのように解析されるかを指定することができる。例えば各ビンを解析した後、得られたビン文字列は、例えばシンタックス要素の二値化の全てのビン文字列と比較されてもよく、以下が適用されてもよい。
【0403】
ビン文字列がビン文字列のうちの1つに等しい場合、シンタックス要素の対応する値は、例えば、出力であり得る。
そうでない場合(ビン文字列がビン文字列のうちの1つに等しくない)、次のビットが、例えば解析され得る。
【0404】
各ビンを解析する間、変数binIdxは、例えば、最初のビンについて0に等しく設定されているbinIdxから開始して、1だけ増分することができる。
【0405】
各ビンの解析は、例えば、以下の2つの順序付けられたステップによって指定することができる。
【0406】
1.例えば、ctxIdx及びbypassFlagの導出プロセスは、例えば、binIdxを入力として、ctxIdx及びbypassFlagを出力として呼び出すことができる。
2.算術復号化プロセスは、例えば、ctxIdx及びbypassFlagを入力とし、ビンの値を出力として呼び出すことができる。
【0407】
本発明による更なる実施形態は、シンタックス要素sig_flagのctxIncの導出プロセスを含むことができる。
【0408】
このプロセスへの入力は、例えば、現在のsig_flagの前に復号化されたsig_flag、状態値stateId、存在する場合、関連するsign_flag、及び存在する場合、現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベル(coLocParam)であり得る。現在のsig_flagの前にsig_flagが復号化されなかった場合、それは、例えば、0であると推論することができる。以前に復号化されたsig_flagに関連付けられたsign_flagが復号化されなかった場合、それは、例えば、0であると推論することができる。現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベルが利用可能でない場合、それは0であると推論される。コロケートパラメーターレベルは、以前に復号化された増分更新における同じ位置における同じテンソル中のパラメーターレベルを意味する。
【0409】
このプロセスの出力は変数ctxIncである。
【0410】
変数ctxIncは、以下のように導出される。
【0411】
coLocParamが0に等しい場合、以下が適用される。
sig_flagが0に等しい場合、ctxIncはstateId*3に設定される。
そうでない場合、sign_flagが0に等しい場合、ctxIncはstateId*3+1に設定される。
そうでない場合、ctxIncは、stateId*3+2に設定される。
coLocParamが0に等しくない場合、以下が適用される。
coLocParamが1よりも大きいか、又は-1よりも小さい場合、ctxIncはstateId*2+24に設定される。
そうでない場合、ctxIncは、stateId*2+25に設定される。
【0412】
本発明による更なる実施形態は、シンタックス要素sign_flagのctxIncの導出プロセスを含むことができる。
【0413】
このプロセスへの入力は、例えば、現在のsig_flagの前に復号化されたsig_flag、存在する場合、関連するsign_flag、及び存在する場合、現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベル(coLocParam)であり得る。現在のsig_flagの前にsig_flagが復号化されなかった場合、それは、例えば、0であると推論することができる。以前に復号化されたsig_flagに関連付けられたsign_flagが復号化されなかった場合、それは、例えば、0であると推論することができる。現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベルが利用可能でない場合、それは、例えば、0であると推論することができる。コロケートパラメーターレベルは、以前に復号化された増分更新における同じ位置における同じテンソル中のパラメーターレベルを意味する。
【0414】
このプロセスの出力は、例えば、変数ctxIncであり得る。
【0415】
変数ctxIncは、例えば、以下のように導出され得る。
【0416】
coLocParamが0に等しい場合、以下を適用することができる。
sig_flagが0に等しい場合、ctxIncは、例えば、0に設定され得る。
そうでない場合、sign_flagが0に等しい場合、ctxIncは、例えば、1に設定され得る。
そうでない場合、ctxIncは、例えば、2に設定され得る。
coLocParamが0に等しくない場合、以下を適用することができる。
coLocParamが0未満である場合、ctxIncは、例えば、3に設定され得る。
そうでない場合、ctxIncは、例えば、4に設定され得る。
【0417】
更なる実施形態は、シンタックス要素abs_level_greater_x[j]のctxIncの導出プロセスを含むことができる。
【0418】
このプロセスへの入力は、例えば、現在のシンタックス要素abs_level_greater_x[j]の前に復号化されたsign_flag、及び、存在する場合、現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベル(coLocParam)であり得る。現在の増分更新の前に復号化された増分更新からのコロケートパラメーターレベルが利用可能でない場合、それは、例えば、0であると推論することができる。コロケートパラメーターレベルは、以前に復号化された増分更新における同じ位置における同じテンソル中のパラメーターレベルを意味する。
【0419】
このプロセスの出力は、例えば、変数ctxIncであり得る。
【0420】
変数ctxIncは、例えば、以下のように導出され得る。
【0421】
coLocParamがゼロに等しい場合、以下を適用することができる。
【0422】
sign_flagが0に等しい場合、ctxIncは、例えば、2*jに設定され得る。
そうでない場合、ctxIncは、例えば、2*j+1に設定され得る。
coLocParamがゼロに等しくない場合、以下を適用することができる。
coLocParamがj以上又は-j以下である場合、
ctxIncは、例えば、2*j+2*maxNumNoRemMinus1に設定され得る。
そうでない場合、ctxIncは、例えば、2*j+2*macNumNoRemMinus1+1に設定され得る。
【0423】
更なる注釈:
以下では、異なる発明の実施形態及び態様が、「序論」の章、及び「パラメーター更新ツリー(PUT)(例)」の章、並びにそれらのそれぞれの下位章で説明される。
【0424】
また、更なる実施形態は、添付の特許請求の範囲によって定義される。
【0425】
特許請求の範囲によって定義される任意の実施形態は、それぞれ上述の章及び/又は下位章に記載された詳細(特徴及び機能)のいずれかによって、及び/又は上記の開示に記載された詳細(特徴及び機能)のいずれかによって補完され得ることに留意されたい。
【0426】
また、上述の章及び/又は下位章に記載された実施形態は、個々に使用することができ、別の章の特徴のいずれかによって、又は特許請求の範囲に含まれる任意の特徴によって補完することもできる。
【0427】
また、本明細書に記載される個々の態様は、個々に又は組み合わせて使用することができることに留意されたい。したがって、当該態様の別の1つに詳細を追加することなく、当該個々の態様のそれぞれに詳細を追加することができる。
【0428】
本開示は、明示的又は暗黙的に、ニューラルネットワークエンコーダー(ニューラルネットワークパラメーターの符号化表現を提供する装置)及びニューラルネットワークデコーダー(符号化表現に基づいてニューラルネットワークパラメーターの復号化表現を提供する装置)において使用可能な特徴について説明することにも留意されたい。したがって、本明細書において説明する特徴のいずれかは、ニューラルネットワークエンコーダーの文脈及びニューラルネットワークデコーダーの文脈において使用することができる。
【0429】
さらに、方法に関して本明細書に開示される特徴及び機能は、(かかる機能を実施するように構成された)装置においても使用され得る。さらに、装置に関して本明細書に開示される任意の特徴及び機能は、対応する方法においても使用され得る。換言すれば、本明細書に開示される方法は、装置に関して説明される特徴及び機能のうちのいずれかによって補完することができる。
【0430】
また、本明細書において説明される特徴及び機能のいずれも、「代替的な実施態様」の節で説明されるように、ハードウェア若しくはソフトウェアで、又はハードウェアとソフトウェアとの組み合わせを使用して実装され得る。
【0431】
以下の節(例えば、下位節又は第1章及び第2章を含む)は、分配型シナリオにおけるニューラルネットワーク更新の効率的なシグナリングと題することができる。
【0432】
1.序論
以下では、本発明による実施形態の背景情報を提供する。しかしながら、この章で説明される特徴及び/又は機能及び/又は詳細及び/又は態様は、任意選択で、本発明の複数の実施形態に、個々に及び組み合わせて組み込まれてもよい。本発明による実施形態は、当該態様及び/又は特徴を含んでもよく、又はそれらと共に使用されてもよい。
【0433】
ニューラルネットワーク(NN)が多くの応用分野でブレークスルーをもたらしたように、効率的な伝送メカニズムも開発されている。これにより、例えば、中央サーバーデバイスにおいて、例えば、可能な複雑なNN訓練プロセスを実行することが可能になり得て、任意選択で、訓練済みのNNを、例えば、クライアントデバイスに伝送することが可能になり得る。ここで、近年、ニューラルネットワークの圧縮及び表現が標準化されている。より新しい応用分野としては、連合学習(FL:federated learning)及び訓練シナリオがあり、NNは、例えば、同時に、例えば、多くのデバイス上で訓練することができる。FLシナリオでは、例えば、クライアントデバイスと中央サーバーデバイスとの間の頻繁な通信が有益であるか、又は必要でさえあり得る。最初に、事前訓練済みのNNの第1のバージョンを、例えば、ニューラルネットワーク圧縮を使用して、例えば、更なる訓練のために、全てのクライアントに送信することができる。次いで、全てのクライアントは、NNを更に訓練することができ、例えば
図14に示すように、更新されたNNバージョンを1つ(又はそれ以上)のサーバーに送信することができる。
【0434】
図14は、本発明の実施形態による連合学習シナリオの一例の概略図を示している。
図14は、ニューラルネットワークを訓練するように構成することができる複数のクライアント1410、1420、1430を示している。サーバー1430は、それぞれのクライアントの訓練結果、例えば、更新を受信することができ、訓練結果、例えば、ニューラルネットワークパラメーターに基づいて、集約された更新されたニューラルネットワークパラメーターをクライアントに提供することができる。
【0435】
更新は、例えば、クライアントにおける、初期NNとより新しいNNバージョンとの間の差分信号であってもよい。したがって、(例えば、
図14における)サーバーとクライアントとの間の1つ以上の、又は例えば全ての矢印は、NN更新を送信することを表すことができる。サーバーは、次いで、いくつかの、又は、例えば、全てのローカルクライアントバージョンを収集することができ、NNの新しいサーバーバージョンを集約することができる。集約プロセスは、例えば、複数の又は例えば全ての利用可能なネットワークバージョンの単純な平均化、又は例えば出力ラベルの平均化のみ等のより高度なプロセスとすることができる。この後者の方法は、連合蒸留(federated distillation)として知られており、例えば、ローカルクライアントにおいて、例えば、より多くの柔軟性を可能にすることができる。これは、例えば、全てのクライアントバージョンの出力ラベルが依然としてサーバーにおいて集約され得る限り、例えば、各クライアントにおいて、例えば、異なるネットワーク及び/又はトポロジーを含むことさえできる。ここまでの処理は、通信ラウンド(CR:communication round)とも称される。その後、例えば、新しいサーバーバージョンは、例えば、更なる訓練のために、例えば、以前のNNバージョンに対する差分信号として、複数の、又は、例えば、全てのクライアントに再び送信されてもよく、プロセスが繰り返されてもよい。FLシナリオは、例えば、(推論の)或る特定の精度に達するまで、多くのCRについて継続することができる。一般に、FLシナリオは通信の柔軟性を可能にすることができる。同期通信シナリオでは、複数の、又は例えばN個全てのクライアントが、各通信ラウンドにおいて更新を送信することができ、サーバーは、バージョン、又は例えばN個のバージョンを新しいバージョンに集約することができ、次いで、このバージョンを、例えば次のCRのために、複数の、又は例えばN個全てのクライアントに送信することができる。非同期FLシナリオでは、クライアントは、或る特定の数のCRの後にのみ、更新を送信することができる。あるいは、連続する数のCRについての更新を送信することができ、次いで、或る特定の時間の間休止することができる。これは、サーバーが、例えば、クライアントに送信される新しいサーバーバージョンを集約するために、例えば、或る特定のCRにおいて部分集合K<Nのクライアントバージョンのみを有し得ることを意味することができる。
【0436】
連合シナリオにおける多くの又は例えば全てのこれらの条件は、例えば、異なるFL変形形態を処理するために、ただし任意選択で、例えば、(例えば、両方向で)サーバー(複数の場合もある)とクライアントとの間で送信されるNN更新及び/又は差分データのコーディング効率を高めるためにも、特定のシグナリングを必要とする可能性がある。したがって、以下の下位節では、本発明の関連する態様について説明する。
【0437】
2.パラメーター更新ツリー(PUT)(例)
一例として、複数のデバイス(例えば、サーバーデバイス及びクライアントデバイスを含む)と、例えば、更新がデバイス間で伝送されるものとするか又は伝送され得るニューラルネットワークであり得る、いわゆるベースモデルとを有する実施形態による、例えば分配型のシナリオを考える。本発明による実施形態は、例えば、ツリー構造を使用して、かかる更新を表すスキームを含み、及び/又は説明する。ベースモデルの複数の又は例えば個々のパラメーター(又はパラメーターのグループ)は、ツリー、例えば前述のツリー構造を有するツリーのルートノードに関連付けることができる。かかるパラメーターの更新は、ルートノードに付加された子ノードに対応することができる。子ノードは、例えば、親ノードに関連付けられたパラメーターをどのように更新するかについての命令を含むことができる。ツリーの任意のノードは、例えば、同じ方法で子ノードを付加することによって、更に更新されてもよい。一例が
図15に示されており、ここで、Rは、ベースモデルの1つのパラメーターを表すルートノードである。
【0438】
図15は、本発明の実施形態による、パラメーター更新ツリーの一例、例えば、例示的なパラメーター更新ツリーの概略図を示している。
【0439】
ノードU1及びU2は、ノードRに対する更新を記述することができ、ノードU3は、ノードU2の更新を記述することができる。ツリーの各ノードは、ベースモデルRのパラメーターのバージョンを表すことができ、例えば、Rの代わりに特定の更新されたバージョンU1、U2、又はU3を使用してモデルを実行することを決定することができる。換言すれば、実施形態によれば、デコーダーは、例えば、Rの代わりに、例えばニューラルネットワークパラメーターの特定のバージョンに対応する、特定の更新されたバージョンU1、U2、又はU3を使用してモデルの実行を決定するように構成することができる。
【0440】
かかるツリーを表すために、一意のノード識別子を複数のノード又は例えば各ノードに関連付けることができる。例えば、これは、ノードに関連付けられた整数、文字列、及び/又は暗号ハッシュ(例えば、SHA-512のような)であり得るか、又はそれらであってもよい。しかしながら、かかるツリー内では、各ノード識別子は一意であってもよく、又は例えば一意でなければならないことさえある。
【0441】
分配型シナリオでは、複数のデバイス、又は例えば各デバイス(例えば、サーバー又はクライアント)が、例えばモデルのパラメーターの更新ツリーを維持することができる。例えば、1つのデバイスから別のデバイスに特定の更新を伝送するために、例にすぎないが、対応する更新が、関連付けられたノード識別子(例えば、更新の親ノードへのポインター)とともに伝送されてもよく、又は伝送される必要があり得る。
【0442】
以下では、本発明の態様のより良い理解を提供するために、実施形態による例が開示される。例えば、両方とも利用可能なノードR(例えば、
図15のような)を有するクライアント及びサーバーを考える。クライアントが更新U2を作成し、それをサーバーが利用できるようにしたいと仮定する。このために、U2をRのノード識別子と共にサーバーに送信することができる。サーバーは、ツリーのそのバージョン内のRのノード識別子を検索することができ、Rの子ノードとしてU2を付加することができる。ここで、サーバーとクライアントの両方が、Rをルートノードとし、U2をRの子ノードとする利用可能なツリーを有することができる。
【0443】
2.1パラメーター更新手順(例)
この節では、例えば、本発明の実施形態によるPUTのノードに関連付けられた、複数の異なるタイプの更新命令を説明する。PUTに関連付けられ得るベースモデルのパラメーターは、ツリーパラメーターと示され得るか、又は示されるものとする。例えば、いわゆるノードパラメーターは、PUTの各ノードに関連付けられ得るか、又は関連付けられるものとする。しかしながら、他の例では、いわゆるノードパラメーターは、例えば、PUTのノードの集合、例えば、到達可能な(例えば、ルートノードから特定の現在のノードに到達可能な)ノードの集合、又は、例えば、ルートノードから開始する連続したノードの集合に関連付けられ得るか、又は、例えば、PUTの各ノードに関連付けられるものとする。このノードパラメーターは、例えば、ルートノードから所望のノードまでPUTをトラバースし、例えば、各訪問先ノードの更新命令をツリーパラメーターに適用することによって導出されてもよい。例えば(例えば
図15のように)、例えばU1の更新命令を適用した後、Rのノードパラメーターはツリーパラメーターに等しくてもよく、U1のノードパラメーターはツリーパラメーターに等しくてもよい。
【0444】
ノードパラメーター(及び、例えば、結果としてツリーパラメーターも)がテンソル(すなわち、例えば、値の多次元配列)である場合、それはノードテンソルであってもよく、又はノードテンソルと示すものとする。
【0445】
好ましい実施形態では、例えばノードに関連付けられた更新命令は、例えばノードテンソルと同じ形状のいわゆる積テンソルを含むことができる。パラメーターを更新することは、例えば、ノードテンソル要素と積テンソル要素との要素ごとの積に対応することができる。
【0446】
好ましい実施形態では、例えばノードに関連付けられた更新命令は、例えばノードテンソルと同じ形状のいわゆる和テンソル、スカラーノードテンソル重み値、及び/又はスカラー和テンソル重み値のうちの少なくとも1つを含むことができる。パラメーターを更新することは、例えば、ノードテンソル要素及び和テンソル要素の要素ごとの加重和に対応することができる。一例として、又は例えばより正確には、ノードテンソルの各要素にノードテンソル重み値を乗算することができ、和テンソルの各要素に和テンソル重み値を乗算することができ、次いで、両方のスケーリングされたテンソルの要素ごとの和を計算することができる。両方の重みを1に設定することもでき、これは、例えば、特殊な場合として、重み付けされていない和に対応し得ることに留意されたい。
【0447】
別の好ましい実施形態では、例えばノードに関連付けられた更新命令は、例えばノードテンソルと同じ形状のいわゆる置換テンソルを含むことができる。パラメーターを更新することは、ノードテンソルの値を、例えば、置換テンソルの値で置換することに対応することができる。
【0448】
別の好ましい実施形態では、更新テンソル(例えば、置換テンソル、和テンソル、及び/又は積テンソルとして)を使用する更新命令は、例えば、以下のように、例えば、暗黙のテンソル形状変換を含むことができる。
【0449】
以下では、本発明の態様のより良い理解を提供するために、実施形態による例が開示される。
【0450】
更新テンソル形状は、1に等しい場合がある1つ以上の個々の次元を除いて、ノードテンソル形状と同一であると仮定する。例えば、更新テンソルの次元が1である場合、この軸に沿ったテンソル要素は同じであると仮定されてもよく、又は仮定するものとする。例えば、ノードテンソルが2Dテンソル[[a,b,c],[d,e,f]](次元は[2,3])として与えられると仮定する。[[x],[y]](次元は[2,1]である)として与えられる更新テンソルは、[[x,x,x],[y,y,y]]に暗黙的に拡張され得るか、又は拡張されることになる。[[z]](次元は[1,1]である)として与えられる更新テンソルは、[[z,z,z],[z,z,z]]に暗黙的に拡張され得るか、又は拡張されることになる。[[r,s,t]](次元は[1,3]である)として与えられる更新テンソルは、[[r,s,t],[r,s,t]]に暗黙的に拡張され得るか、又は拡張されることになる。換言すれば、実施形態によるデコーダーは、例えば、上記で説明した例に従ってテンソル形状を更新するように構成することができる。
【0451】
TBD:量子化されたドメイン更新(異なるqpsの効果をチェックする)(任意選択)
任意選択で、量子化されたドメイン更新が、例えば、(例えば、代替的に、又は上記の概念と組み合わせて)使用されてもよい。
【0452】
2.2サーバー側の更新集約の例
サーバーがベースモデルを維持することができ、例えば、異なるクライアントから更新を受信することができる、本発明の実施形態による分配型シナリオでは、サーバー側のPUTは、例えば、同じモデルに対して複数の更新ノードを収集することができる。サーバーは、複数の更新ノードを組み合わせることを決定することができ、例えば、この組み合わせから、例えば、新しい更新ノードを作成することができ、例えば、それを、例えば、集合的に更新されたモデルとしてクライアントに配信することができる。次いで、複数のノード、又は例えば各ノードが、例えばこの集合的に更新されたモデルに基づいて、連合学習を継続することを決定することができる。
【0453】
2.3パラメーター更新ツリーシグナリング(例)
この節では、本発明の実施形態による、PUTの要素を、例えば、デバイス(例えば、サーバー及びクライアントを含む)間の伝送のために最適化された、例えば、データユニット(例えば、バイトシーケンス)として表す方法を提示する。例えば、本方法は、例えば、本明細書を通してNNRと称される、新興の規格「ISO/IEC 15938 Part 17: Compression of neural networks for multimedia content description and analysis」のような、ニューラルネットワークを表す既存の技術と組み合わせることができる。NNRは、いわゆる圧縮データユニット(NDU)としてニューラルネットワークの個々のパラメーターを表すことができる。例えば、NNRにおいて利用可能な効率的な圧縮技術を使用することによってPUT概念を実施することは、例えば、以下のように実行することができる。本発明の実施形態によれば、ノードが更新テンソル(例えば、上述したように、例えば、置換テンソル、和テンソル、及び/又は積テンソルのような)を含む場合を考える。かかる更新テンソルは、例えば、効率的に、NDUとして表すことができる。例えば、全ての必要な情報を有するNDUを、例えばPUTノードとして使用できるように拡張するために、例えば更なるシンタックス要素を追加してもよい。
【0454】
好ましい実施形態では、新しいシンタックス要素「parent_node_id_present_flag」が、例えば、NDUのnnr_compressed_data_unit_headerに導入され、例えば、親ノード識別子がNDU中に存在するかどうかを示すことができる。parent_node_id_present_flagの値に応じて、例えば、現在のPUTノードの親ノードを含むことができる別のNDUを一意に識別する、更なる新しいシンタックス要素「parent_node_id」を伝送することができる。
【0455】
別の好ましい実施形態では、parent_node_idは、親NDUの(例えば、SHA-512のような)暗号ハッシュであってもよい。
【0456】
別の好ましい実施形態では、parent_node_idは、親NDUのnnr_compressed_data_unit_payloadの(例えば、SHA-512のような)暗号ハッシュであってもよい。
【0457】
別の好ましい実施形態では、parent_node_idは、両方とも、例えば、親NDUに関連付けられてもよいデバイス識別子及び/又はシリアルナンバーを表す組み合わされた値であってもよい。
【0458】
別の好ましい実施形態では、新しいシンタックス要素「node_id」が、親ノードの子ノードのparent_node_idとして使用されるように、親ノード内で符号化されてもよい。node_idは、例えば、一意の識別子であってもよい。
【0459】
別の好ましい実施形態では、シンタックス要素「node_id」(例えば、ノードを一意に識別することができる)は、デバイス識別子及び/又はパラメーター更新ツリー深度情報(すなわち、例えば、現在のノードからルートノードまでツリーをウォークするときに訪問されるノードの数に関する情報)及び/又はパラメーター更新ツリー識別子から構成することができる。
【0460】
別の好ましい実施形態では、ノードに対して、node_idが存在するかどうかを示すフラグをシグナリングすることができる。このフラグの値に応じて、シンタックス要素node_idが存在する場合も存在しない場合もある。
【0461】
別の好ましい実施形態では、新しいシンタックス要素「parent_node_id_type」は、シンタックス要素parent_node_idがどのタイプであるかを示すことができる。例えば、可能な異なるタイプのparent_node_idは、以前の好ましい実施形態で説明したようなものであってもよい。
【0462】
別の好ましい実施形態では、シンタックス要素parent_node_id_typeがシグナリングされるか否かは、シンタックス要素parent_node_id_present_flagの値に依存する可能性がある。
【0463】
2.3.1トポロジー変更シグナリング(例)
分配型シナリオでは、ニューラルネットワークのトポロジーを変更することが重要になる場合がある。例えば、特定の層の出力ニューロンの数は、増加又は減少させることができるか、又は増加又は減少させられ得る。
【0464】
好ましい実施形態では、例えば、NDU内で、親ノードに関連付けられたテンソルの形状が修正されるか否かを示すシンタックス要素「shape_update」をシグナリングすることができる。親テンソル形状が更新される場合、(例えば、シンタックス要素tensor_dimensionsを使用して)新しいテンソル次元を伝送することができる。
【0465】
代替的な実施態様:
いくつかの態様が装置の文脈で説明されているが、これらの態様が対応する方法の説明も表すことは明らかであり、ブロック又はデバイスは方法ステップ又は方法ステップの特徴に対応する。同様に、方法ステップの文脈で説明される態様はまた、対応する装置の対応するブロック又は項目又は特徴の説明を表す。方法ステップのいくつか又は全部は、例えばマイクロプロセッサ、プログラマブルコンピューター又は電子回路のようなハードウェア装置によって(又はそれを使用して)実行されてもよい。いくつかの実施形態において、最も重要な方法ステップのうちの1つ以上は、かかる装置によって実行されてもよい。
【0466】
或る特定の実装要件に応じて、本発明の実施形態は、ハードウェア又はソフトウェアで実施することができる。実施態様は、それぞれの方法が実行されるようにプログラム可能なコンピューターシステムと協働する(又は協働することができる)電子的可読制御信号が記憶されたデジタル記憶媒体、例えば、フロッピーディスク、DVD、Blu-ray(登録商標)、CD、ROM、PROM、EPROM、EEPROM又はフラッシュメモリを使用して実行することができる。したがって、デジタル記憶媒体はコンピューター可読であってもよい。
【0467】
本発明によるいくつかの実施形態は、電子的可読制御信号を有するデータキャリアを備え、該電子的可読制御信号は、本明細書で説明される方法のうちの1つが実行されるように、プログラム可能なコンピューターシステムと協働することが可能である。
【0468】
概して、本発明の実施形態は、プログラムコードを有するコンピュータープログラム製品として実施することができ、プログラムコードは、コンピュータープログラム製品がコンピューター上で動作するときに方法のうちの1つを実行するように動作可能である。プログラムコードは、例えば、機械可読キャリアに記憶されてもよい。
【0469】
他の実施形態は、機械可読キャリア上に記憶された、本明細書で説明される方法のうちの1つを実行するコンピュータープログラムを含む。
【0470】
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータープログラムがコンピューター上で動作するときに、本明細書で説明される方法のうちの1つを実行するプログラムコードを有するコンピュータープログラムである。
【0471】
したがって、本発明の方法の更なる実施形態は、本明細書に記載の方法のうちの1つを実行するコンピュータープログラムを記録したデータキャリア(又はデジタル記憶媒体、又はコンピューター可読媒体)である。データキャリア、デジタル記憶媒体又は記録された媒体は、典型的には有形及び/又は非一時的である。
【0472】
したがって、本発明の方法の更なる実施形態は、本明細書に記載された方法の1つを実行するコンピュータープログラムを表すデータストリーム又はシグナルのシーケンスである。データストリーム又はシグナルのシーケンスは、例えば、データ通信接続を介して、例えばインターネットを介して転送されるように構成されてもよい。
【0473】
更なる実施形態は、本明細書に記載の方法の1つを実行するように構成又は適合された処理手段、例えばコンピューター又はプログラム可能な論理デバイスを含む。
【0474】
更なる実施形態は、本明細書に記載の方法のうちの1つを実行するコンピュータープログラムがインストールされたコンピューターを含む。
【0475】
本発明による更なる実施形態は、本明細書で説明される方法のうちの1つを実行するコンピュータープログラムを受信機に(例えば、電子的に又は光学的に)転送するように構成された装置又はシステムを含む。受信機は、例えば、コンピューター、モバイルデバイス、メモリデバイス等であってもよい。装置又はシステムは、例えば、コンピュータープログラムを受信機に転送するためのファイルサーバを備えることができる。
【0476】
いくつかの実施形態において、プログラム可能論理デバイス(例えば、フィールドプログラマブルゲートアレイ)が、本明細書に説明される方法の機能性のいくつか又は全部を行うために使用されてもよい。いくつかの実施形態において、フィールドプログラマブルゲートアレイは、本明細書に説明される方法のうちの1つを行うために、マイクロプロセッサと協働してもよい。概して、方法は、任意のハードウェア装置によって実行されることが好ましい。
【0477】
本明細書で説明される装置は、ハードウェア装置を使用して、又はコンピューターを使用して、又はハードウェア装置とコンピューターとの組み合わせを使用して実施され得る。
【0478】
本明細書で説明される装置、又は本明細書で説明される装置の任意の構成要素は、少なくとも部分的にハードウェア及び/又はソフトウェアで実施され得る。
【0479】
本明細書で説明される方法は、ハードウェア装置を使用して、又はコンピューターを使用して、又はハードウェア装置とコンピューターとの組み合わせを使用して実行され得る。
【0480】
本明細書で説明される方法、又は本明細書で説明される装置の任意の構成要素は、ハードウェア及び/又はソフトウェアによって少なくとも部分的に実行され得る。
【0481】
記載される実施形態は、本発明の原理を単に例示するものである。本明細書に記載された構成及び詳細の変更及び変形が他の当業者に明らかであることが理解される。したがって、添付の特許請求の範囲によってのみ限定され、本明細書の実施形態の記述及び説明によって提示される特定の詳細によって限定されないことが意図される。
【手続補正書】
【提出日】2023-12-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ニューラルネットワークのパラメーターを復号化するデコーダー(100、100b)であって、
前記デコーダーは、符号化ビットストリームに基づいて、前記ニューラルネットワークの複数のニューラルネットワークパラメーター(104、104b、204、304、512、522、532、542、552、562、572、582、592、602、612、622、652、720、740、812)を取得するように構成され、
前記デコーダーは、パラメーター更新ツリーのノードを記述するノード情報(112、112b)を取得するように構成され、
前記ノード情報は、親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)を含み、
前記ノード情報は、パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を含み、
前記デコーダーは、前記親ノード識別子によって識別される親ノードのパラメーター情報を使用して、かつ前記パラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーター(104、104b、204、304、512、522、532、542、552、562、572、582、592、602、612、622、652、720、740、812)を導出するように構成されている、
デコーダー。
【請求項2】
請求項1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)によって識別される前記親ノードによって定義される1つ以上のニューラルネットワークパラメーターを、前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を使用して修正するように構成されている、デコーダー。
【請求項3】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、パラメーター更新ツリー(500)を設定するように構成され、異なるパラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を含む複数の子ノードが、共通の親ノード(510)に関連付けられる、デコーダー。
【請求項4】
請求項3に記載のデコーダー(100、100b)であって、
前記デコーダーは、現在考慮されているノードに関連付けられた前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)を使用して、ルートノード(510)に関連付けられたパラメーター情報(512)を使用して、かつ前記更新ツリーにおいて前記ルートノードと前記現在考慮されているノードとの間にある1つ以上の中間ノードに関連付けられたパラメーター更新情報を使用して、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するように構成されている、デコーダー。
【請求項5】
請求項
3に記載のデコーダー(100、100b)であって、
前記デコーダーは、ルートノード(510)から現在考慮されているノードまで前記パラメーター更新ツリー(500)をトラバースするように構成され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得するために、訪問先ノードの更新命令を1つ以上の初期ニューラルネットワークパラメーターに適用するように構成されている、
デコーダー。
【請求項6】
請求項
3に記載のデコーダー(100、100b)であって、
前記デコーダーは、
前記パラメーター更新ツリーの複数の連続するノード(520、550)、及び/又は
前記パラメーター更新ツリーの1つ以上の連続するノード(520、550)及び前記パラメーター更新情報、
を集約するように構成されている、
デコーダー。
【請求項7】
請求項
3に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ノード情報(112、112b)に基づいて前記パラメーター更新ツリー(500)を更新するように構成されている、デコーダー。
【請求項8】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)を選定し、又は前記ルートノードの前記子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選定することを決定するように構成されている、デコーダー。
【請求項9】
請求項
1に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノード(570)の親ノード(530)に関連付けられた1つ以上のパラメーター値(532)のスケーリングを定義する更新命令(576)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(572)を取得するために、前記更新命令(576)によって定義されたスケーリングを適用するように構成されている、
デコーダー。
【請求項10】
請求項
1に記載のデコーダー(100、100b)であって、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた前記パラメーターテンソル(592)を取得するために、積テンソル(596)をパラメーターテンソル(542)に適用するように構成されている、
デコーダー。
【請求項11】
請求項
1に記載のデコーダー(100、100b)であって、
親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、積テンソルを含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられたパラメーターテンソルを取得するために、前記親ノードの前記パラメーターテンソルに前記積テンソルを適用するように構成されている、
デコーダー。
【請求項12】
請求項
1に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令(526、536、546、556、566、586)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(522、532、542、552、562、582)を取得するために、前記更新命令によって定義された前記変更値の加算又は減算を適用するように構成されている、
デコーダー。
【請求項13】
請求項
1に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値(582)と1つ以上の変更値との重み付き組み合わせ(606)を定義する更新命令を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(602)を取得するために、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値と1つ以上の変更値との重み付き組み合わせを適用するように構成されている、
デコーダー。
【請求項14】
請求項
1に記載のデコーダー(100、100b)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
複数の変更値が、和テンソルによって表され、
前記デコーダーは、前記現在考慮されているノードに関連付けられた前記パラメーターテンソルを取得するために、前記現在考慮されているノードの前記親ノードに関連付けられた前記パラメーターテンソルの要素にノードテンソル重み値を乗算して、スケーリングされたパラメーターテンソルを取得し、前記和テンソルの要素に和テンソル重み値を乗算して、スケーリングされた和テンソルを取得し、前記スケーリングされたパラメーターテンソルと前記スケーリングされた和テンソルとの要素ごとの和を形成するように構成されている、
デコーダー。
【請求項15】
請求項
1に記載のデコーダー(100、100b)であって、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値の、1つ以上の変更値との置換を定義する更新命令(616)を含み、
前記デコーダーは、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーター(612)を取得するために、前記現在考慮されているノード(610)の親ノード(530)に関連付けられた1つ以上のパラメーター値を1つ以上の置換値で置換するように構成されている、
デコーダー。
【請求項16】
請求項
1に記載のデコーダー(100、100b)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(116、526、536、546、556、566、576、586、596、606、616、626)は、更新テンソルの形態の更新命令(660)を含み、
前記デコーダーは、前記親ノードの前記パラメーターテンソルの形状に従って、前記更新テンソルの形状を変換するように構成されている、
デコーダー。
【請求項17】
請求項16に記載のデコーダー(100、100b)であって、
第1の方向(652)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の所与のニューロン(642)の入力信号に対する前記ニューラルネットワークの以前の層(630)の複数のニューロン(632、634、636)の出力信号の寄与に関連付けられ、
第2の方向(654)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の複数のニューロン(642、644、646)の入力信号に対する前記ニューラルネットワークの以前の層(630)の所与のニューロン(634)の出力信号の寄与に関連付けられ、
前記デコーダーは、前記第1の方向における前記更新テンソルの拡張が前記第1の方向における前記パラメーターテンソルの次元よりも小さい場合、前記第1の方向における前記更新テンソルの次元を拡張するように構成され、及び/又は
前記デコーダーは、前記第2の方向における前記更新テンソルの拡張が前記第2の方向における前記パラメーターテンソルの次元よりも小さい場合、前記第2の方向における前記更新テンソルの次元を拡張するように構成されている、
デコーダー。
【請求項18】
請求項
16に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記更新テンソルの行の数が前記パラメーターテンソルの行の数よりも小さい場合、前記更新テンソル(660)の行のエントリをコピーして、形状変換された更新テンソル(670)の1つ以上の拡張行のエントリを取得するように構成され、及び/又は
前記デコーダーは、前記更新テンソルの列の数が前記パラメーターテンソルの列の数よりも小さい場合、前記更新テンソル(660)の列のエントリをコピーして、形状変換された更新テンソル(670)の1つ以上の拡張列のエントリを取得するように構成されている、
デコーダー。
【請求項19】
請求項
16に記載のデコーダー(100、100b)であって、
前記デコーダーは、更新テンソル(660)の1つ以上のエントリを行方向及び列方向にコピーして、形状変換された更新テンソル(670)のエントリを取得するように構成されている、
デコーダー。
【請求項20】
請求項
16に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記更新テンソルの拡張に関する情報に依存して、前記更新テンソルの形状を変換する必要性、及び/又は前記更新テンソルの形状の変換の程度を決定するように構成されている、
デコーダー。
【請求項21】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)が存在するかどうかを判定するように構成され、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)が存在する場合に、請求項
1に記載の1つ以上のニューラルネットワークパラメーターを導出するように構成され、
前記デコーダーは、前記親ノード識別子が存在しない場合、前記現在考慮されているノードを前記ルートノード(510)にするように構成されている、
デコーダー。
【請求項22】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)を1つ以上のノードに関連付けられたハッシュ値と比較して、前記現在考慮されているノードの前記親ノードを識別するように構成されている、デコーダー。
【請求項23】
請求項22に記載のデコーダー(100、100b)であって、
前記ハッシュ値は、1つ以上の以前に復号化されたノードに関連付けられた完全圧縮データユニットNDUのハッシュ値である、デコーダー。
【請求項24】
請求項
22に記載のデコーダー(100、100b)であって、
前記ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に復号化されたノードに関連付けられた圧縮データユニットNDUのペイロード部分のハッシュ値である、デコーダー。
【請求項25】
請求項
22に記載のデコーダー(100、100b)であって、
前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、デコーダー。
【請求項26】
請求項
1に記載のデコーダー(100、100b)であって、
前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)は、前記ニューラルネットの更新ツリー(500)及び/又は層を識別する、
デコーダー。
【請求項27】
請求項
1に記載のデコーダー(100、100b)であって、
前記ノード情報(112、112b)は、ノード識別子を含む、
デコーダー。
【請求項28】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ノード識別子を記憶するように構成されている、
デコーダー。
【請求項29】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、新しいノードを追加するときに、前記新しいノードの親ノードを識別するために、1つ以上の記憶されたノード識別子を、前記新しいノードのノード情報(112、112b)内の親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)と比較するように構成されている、
デコーダー。
【請求項30】
請求項
1に記載のデコーダー(100、100b)であって、
前記ノード識別子は、前記ノード情報が関連付けられた更新ツリー(500)を識別し、及び/又は
前記ノード識別子は、前記ノード情報が関連する前記ニューラルネットの層を識別する、
デコーダー。
【請求項31】
請求項
1に記載のデコーダー(100、100b)であって、
前記ノード識別子は、デバイス識別子及び/又はパラメーター更新ツリー深度情報及び/又はパラメーター更新ツリー識別子を含む、
デコーダー。
【請求項32】
請求項
1に記載のデコーダー(100、100b)であって、
前記ノード情報(112、112b)は、ノード識別子が存在するか否かを示すシグナリングを含む、
デコーダー。
【請求項33】
請求項
21に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)のタイプに関する情報を含むシグナリング(202、302、302b)を取得するように構成され、前記デコーダーは、前記親ノード識別子のそれぞれのタイプを考慮するために前記シグナリングを評価するように構成されている、デコーダー。
【請求項34】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記親ノード識別子(114、524、534、544、554、564、574、584、594、604、614、624)の存在を示すシンタックス要素に依存して、前記親ノード識別子のタイプを示すシンタックス要素を選択的に評価するように構成されている、デコーダー。
【請求項35】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記ニューラルネットワークのトポロジー変更に関する情報を含む前記ノード情報内のトポロジー変更シグナリングを取得するように構成され、
前記デコーダーは、修正されたトポロジーを有する前記ニューラルネットワークの1つ以上のニューラルネットワークパラメーターを導出するために、前記トポロジー変更に従って前記親ノードの前記パラメーター情報を修正するように構成されている、
デコーダー。
【請求項36】
請求項
1に記載のデコーダー(100、100b)であって、
前記デコーダーは、トポロジー変更情報に応じて、1つ又は2つのテンソルの形状を変更するように構成されている、
デコーダー。
【請求項37】
請求項36に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記トポロジー変更情報に応じて前記所与の層のニューロンの数を変更するように構成されている、
デコーダー。
【請求項38】
請求項
36に記載のデコーダー(100、100b)であって、
前記デコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値を1つ以上の置換値で置換するように構成され、又は
前記デコーダーは、修正されたサイズを有する1つ以上のテンソルを取得するために、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルを1つ以上の置換テンソルで置換するように構成されている、
デコーダー。
【請求項39】
請求項
36に記載のデコーダー(100、100b)であって、
前記デコーダーは、前記トポロジー変更シグナリングに応じて、前記ニューラルネットの隣接する層に関連付けられた2つの更新ツリー中の2つのテンソルの形状を同期された方法で変更するように構成されている、
デコーダー。
【請求項40】
符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化するエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、パラメーター更新ツリー(500)のノードを記述するノード情報(212、312、312b、412)を提供するように構成され、
前記ノード情報は、親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)を含み、
前記ノード情報は、パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を含み、
前記パラメーター更新情報は、前記親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する、
エンコーダー。
【請求項41】
請求項40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を取得するために、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)によって識別される前記親ノードによって定義される1つ以上のニューラルネットワークパラメーターと、1つ以上の現在のニューラルネットワークパラメーターとの間の差分を決定するように構成されている、
エンコーダー。
【請求項42】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、パラメーター更新ツリー(500)を設定するように構成され、異なるパラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を含む複数の子ノードが、共通の親ノード(510)に関連付けられる、エンコーダー。
【請求項43】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、現在考慮されているノードに関連付けられた前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)を使用して、ルートノード(510)に関連付けられたパラメーター情報を使用して、かつ前記更新ツリーにおいて前記ルートノードと前記現在考慮されているノードとの間にある1つ以上の中間ノードに関連付けられたパラメーター更新情報を使用して、前記現在考慮されているノードに関連付けられた1つ以上のニューラルネットワークパラメーターを取得することが可能であるように、前記ノード情報(212、312、312b、412)を提供するように構成されている、エンコーダー。
【請求項44】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、複数のノード情報ブロック(418)を提供するように構成され、
第1のノード情報ブロックの親ノード識別子(524、534、544、554、564、574、584、594、604、614、624)が、ルートノードを指し、前記第1のノードのパラメーター更新情報(526、536、546、556、566、576、586、596、606、616、626)が、前記第1のノード情報ブロックの前記親ノード識別子によって定義される前記ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)と、前記第1のノードのニューラルネットワークパラメーターとの間の差分を記述し、
N番目のノード情報ブロックの親ノード識別子は、N-1番目のノードを指し、前記N番目のノードのパラメーター更新情報は、前記N番目のノード情報ブロックの前記親ノード識別子によって定義される前記N-1番目のノードに関連付けられたニューラルネットワークパラメーターと、前記N番目のノードのニューラルネットワークパラメーターとの間の差分を記述する、
エンコーダー。
【請求項45】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、デコーダーにシグナリング(202、302、302b)を提供して、ルートノード(510)に関連付けられたニューラルネットワークパラメーター(512)又は前記ルートノードの前記子孫ノードのうちの1つに関連付けられたニューラルネットワークパラメーターを選択的に選定するように構成されている、エンコーダー。
【請求項46】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノード(570)の親ノード(530)に関連付けられた1つ以上のパラメーター値(532)のスケーリングを定義する更新命令(576)を含み、
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値(532)と、現在考慮されているノードのパラメーター値(572)とに基づいて、前記スケーリングを決定するように構成されている、
エンコーダー。
【請求項47】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターは、パラメーターテンソルによって表され、
前記エンコーダーは、前記現在考慮されているノードに関連付けられたパラメーターテンソル(592)を取得するために、パラメーターテンソル(542)への適用の積テンソル(596)を提供するように構成されている、
エンコーダー。
【請求項48】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、積テンソルを含み、
前記エンコーダーは、前記親ノードの前記パラメーターテンソルへの前記積テンソルの適用が、前記現在考慮されているノードに関連付けられたパラメーターテンソルをもたらすように、前記積テンソルを提供するように構成されている、
エンコーダー。
【請求項49】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値への1つ以上の変更値の加算、及び/又は現在考慮されているノードの親ノードに関連付けられた1つ以上のパラメーター値からの1つ以上の変更値の減算を定義する更新命令(526、536、546、556、566、586)を含む、
エンコーダー。
【請求項50】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノード(602)の親ノード(580)に関連付けられた1つ以上のパラメーター値(582)と1つ以上の変更値との重み付き組み合わせ(606)を定義する更新命令を含む、エンコーダー。
【請求項51】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
現在考慮されているノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
複数の変更値が、和テンソルによって表される、
エンコーダー。
【請求項52】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、前記現在考慮されているノード(610)の親ノード(530)に関連付けられた1つ以上のパラメーター値の、1つ以上の変更値との置換を定義する更新命令(616)を含む、エンコーダー。
【請求項53】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記現在考慮されているノードの親ノードに関連付けられた複数のニューラルネットワークパラメーターが、パラメーターテンソルによって表され、
前記パラメーター更新情報(216、316、416、526、536、546、556、566、576、586、596、606、616、626)は、更新テンソルの形態の更新命令を含み、
前記エンコーダーは、前記更新テンソルの形状が前記親ノードの前記パラメーターテンソルの形状とは異なるように、前記更新テンソル(660)を提供するように構成されている、
エンコーダー。
【請求項54】
請求項53に記載のエンコーダー(200、300、300b、400)であって、
第1の方向(652)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワーク(640)の現在考慮されている層の所与のニューロン(642)の入力信号に対する前記ニューラルネットワークの以前の層(630)の複数のニューロン(632、634、636)の出力信号の寄与に関連付けられ、
第2の方向(654)に沿って配置された前記パラメーターテンソルのテンソル要素が、前記ニューラルネットワークの現在考慮されている層(640)の複数のニューロン(642、644、646)の入力信号に対する前記ニューラルネットワークの以前の層(630)の所与のニューロン(634)の出力信号の寄与に関連付けられ、
前記エンコーダーは、前記第1の方向(例えば、行方向)における前記更新テンソルの拡張が前記第1の方向における前記パラメーターテンソルの次元よりも小さくなるように、前記更新テンソルを提供するように構成され、及び/又は
前記エンコーダーは、前記第2の方向(例えば、列方向)における前記更新テンソルの拡張が前記第2の方向における前記パラメーターテンソルの次元よりも小さくなるように、前記更新テンソルを提供するように構成されている、
エンコーダー。
【請求項55】
請求項
53に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記更新テンソルの行の数が前記パラメーターテンソルの行の数よりも小さくなるように、前記更新テンソル(660)を提供するように構成され、及び/又は
前記エンコーダーは、前記更新テンソルの列の数が前記パラメーターテンソルの列の数よりも小さくなるように、前記更新テンソルを提供するように構成されている、
エンコーダー。
【請求項56】
請求項53に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記更新テンソル(660)の拡張に関する情報を提供するように構成されている、
エンコーダー。
【請求項57】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)が存在するか否かの情報を含むシグナリング(202、302、302b)を提供するように構成されている、
エンコーダー。
【請求項58】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記現在考慮されているノードの前記親ノードを識別するために、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)としてノードに関連付けられたハッシュ値を提供するように構成されている、エンコーダー。
【請求項59】
請求項58に記載のエンコーダー(200、300、300b、400)であって、
前記ハッシュ値は、1つ以上の以前に符号化されたノードに関連付けられた完全圧縮データユニットのハッシュ値である、エンコーダー。
【請求項60】
請求項
58に記載のエンコーダー(200、300、300b、400)であって、
前記ハッシュ値は、データサイズ情報及びヘッダー情報を考慮しないままにしながら、1つ以上の以前に符号化されたノードに関連付けられた圧縮データユニットのペイロード部分のハッシュ値である、エンコーダー。
【請求項61】
請求項
58に記載のエンコーダー(200、300、300b、400)であって、
前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、エンコーダー。
【請求項62】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、前記ニューラルネットの更新ツリー(500)及び/又は層を識別する、
エンコーダー。
【請求項63】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記ノード情報(212、312、312b、412)は、ノード識別子を含む、
エンコーダー。
【請求項64】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記ノード識別子を記憶するように構成されている、
エンコーダー。
【請求項65】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、新しいノードを追加するときに、前記新しいノードの親ノードを識別するために、1つ以上の記憶されたノード識別子を、前記新しいノードのノード情報(212、312、312b、412)内の親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)と比較するように構成されている、
エンコーダー。
【請求項66】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
ノード識別子は、前記ノード情報(212、312、312b、412)が関連付けられた更新ツリー(500)を識別し、及び/又は
前記ノード識別子は、前記ノード情報が関連する前記ニューラルネットの層を識別する、
エンコーダー。
【請求項67】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記ノード識別子は、デバイス識別子及び/又はパラメーター更新ツリー深度情報及び/又はパラメーター更新ツリー識別子を含む、
エンコーダー。
【請求項68】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記ノード情報(212、312、312b、412)は、ノード識別子が存在するか否かを示すシグナリングを含む、
エンコーダー。
【請求項69】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)は、両方とも前記親ノードに関連付けられたデバイス識別子及びシリアルナンバーを表す組み合わされた値である、
エンコーダー。
【請求項70】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)のタイプに関する情報を含むシグナリング(202、302、302b)を提供するように構成されている、エンコーダー。
【請求項71】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記親ノード識別子を記述するシンタックス要素が存在する場合、前記親ノード識別子(214、314、524、534、544、554、564、574、584、594、604、614、624)のタイプを示すシンタックス要素を選択的に提供するように構成されている、エンコーダー。
【請求項72】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記ノード情報(312、312、212b、412)内に、前記ニューラルネットワークのトポロジー変更に関する情報を含むトポロジー変更シグナリングを提供するように構成されている、エンコーダー。
【請求項73】
請求項
40に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、トポロジー変更のシグナリングとともに、1つ又は2つのテンソルの形状の変更をシグナリングするように構成されている、
エンコーダー。
【請求項74】
請求項73に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記トポロジー変更情報を使用して前記所与の層のニューロンの数の変更をシグナリングするように構成されている、
エンコーダー。
【請求項75】
請求項
73に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの1つ以上のテンソル値の、1つ以上の置換値による置換をシグナリングするように構成されるか、又は
前記エンコーダーは、前記現在考慮されているノードの親ノードに関連付けられた、形状が変更される1つ以上のテンソルの、1つ以上の置換テンソルによる置換をシグナリングするように構成されている、
エンコーダー。
【請求項76】
請求項
73に記載のエンコーダー(200、300、300b、400)であって、
前記エンコーダーは、前記トポロジー変更シグナリングを使用して、前記ニューラルネットの隣接する層に関連付けられた2つの更新ツリー中の2つのテンソルの形状の変更を同期された方法でシグナリングするように構成されている、
エンコーダー。
【請求項77】
ニューラルネットワークコントローラー(800)であって、
前記ニューラルネットワークコントローラーは、ニューラルネットワークを訓練して、初期ニューラルネットワークパラメーターに基づいて更新されたニューラルネットワークパラメーター(812)を取得するように構成され、
前記ニューラルネットワークコントローラーは、参照ニューラルネットワークパラメーター(822)及び前記更新されたニューラルネットワークパラメーターに基づいてパラメーター更新情報(832)を決定するように構成され、
前記パラメーター更新情報は、前記初期ニューラルネットワークパラメーターから、少なくとも近似的に、前記更新されたニューラルネットワークパラメーターをどのように導出するかを記述する1つ以上の更新命令を含み、
前記ニューラルネットワークコントローラーは、親ノード識別子と前記パラメーター更新情報とを含むノード情報(112、112b、212、312、312b、412、802)を提供するように構成され、
前記親ノード識別子は、親ノードを定義し、前記親ノードのパラメーター情報は、前記パラメーター更新情報の適用の開始点として機能する、
ニューラルネットワークコントローラー。
【請求項78】
請求項77に記載のニューラルネットワークコントローラー(800)であって、
前記ニューラルネットワークコントローラーは、請求項
40に記載のエンコーダー(200、300、300b、400)を含むか、又は
前記ニューラルネットワークコントローラーは、請求項
40に記載のエンコーダーの任意の機能又は機能の組み合わせを含む、
ニューラルネットワークコントローラー。
【請求項79】
ニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、複数のニューラルネットワークのノード情報(112、112b、212、312、312b、412、802、902)を受信するように構成され、前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含み、
前記ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報(912)を取得するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記組み合わされたパラメーター更新情報を分配するように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項80】
請求項79に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、異なるニューラルネットワークの等しい親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせて、組み合わされたパラメーター更新情報を取得するように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項81】
請求項
79に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子が関連付けられた親ノードのパラメーター情報を複数のデコーダーに分配するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子を含むノード情報を前記デコーダーから受信するように構成され、
前記ニューラルネットワーク連合学習コントローラーは、前記親ノード識別子を有する複数の対応するノードのパラメーター更新情報を組み合わせるように構成されている、
ニューラルネットワーク連合学習コントローラー。
【請求項82】
請求項81に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、パラメーター更新ツリーの組み合わされたノード情報を記述するノード情報を提供するように構成され、
前記組み合わされたノード情報は、前記親ノード識別子を含み、
前記組み合わされたノード情報は、前記組み合わされたパラメーター更新情報を含む、
ニューラルネットワーク連合学習コントローラー。
【請求項83】
請求項
79に記載のニューラルネットワーク連合学習コントローラー(900)であって、
前記ニューラルネットワーク連合学習コントローラーは、請求項
40に記載のエンコーダー(200、300、300b、400)を含むか、又は
前記ニューラルネットワーク連合学習コントローラーは、請求項
40に記載のエンコーダーの任意の機能又は機能の組み合わせを含む、
ニューラルネットワーク連合学習コントローラー。
【請求項84】
ニューラルネットワークのパラメーターを復号化する方法(1000)であって、
符号化ビットストリームに基づいて、前記ニューラルネットワークの複数のニューラルネットワークパラメーターを取得(1010)することと、
パラメーター更新ツリーのノードを記述するノード情報を取得(1020)することであって、
前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含むことと、
前記親ノード識別子によって識別される親ノードのパラメーター情報を使用し、かつ前記パラメーター更新情報を使用して、1つ以上のニューラルネットワークパラメーターを導出(1030)することと、を含む、
方法。
【請求項85】
符号化ビットストリームを取得するためにニューラルネットワークのパラメーターを符号化する方法(1100)であって、
パラメーター更新ツリーのノードを記述するノード情報を提供(1110)することを含み、
前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含み、
前記パラメーター更新情報は、前記親ノード識別子によって定義された親ノードに関連付けられたニューラルネットワークパラメーターと現在のニューラルネットワークパラメーターとの間の差分を記述する、
方法。
【請求項86】
ニューラルネットワークを制御する方法(1200)であって、
初期ニューラルネットワークパラメーターに基づいて、更新されたニューラルネットワークパラメーターを取得するために、ニューラルネットワークを訓練(1210)することと、
参照ニューラルネットワークパラメーター及び前記更新されたニューラルネットワークパラメーターに基づいてパラメーター更新情報を決定(1220)することであって、
前記パラメーター更新情報は、前記初期ニューラルネットワークパラメーターから、少なくとも近似的に、前記更新されたニューラルネットワークパラメーターをどのように導出するかを記述する1つ以上の更新命令を含むことと、
親ノード識別子と前記パラメーター更新情報とを含むノード情報を提供(1230)することであって、
前記親ノード識別子は、親ノードを定義し、前記親ノードのパラメーター情報は、前記パラメーター更新情報の適用の開始点として機能することとを含む、
方法。
【請求項87】
ニューラルネットワーク連合学習を制御する方法(1300)であって、
複数のニューラルネットワークのノード情報を受信(1310)することであって、前記ノード情報は、親ノード識別子を含み、
前記ノード情報は、パラメーター更新情報を含むことと、
組み合わされたパラメーター更新情報を取得するために、異なるニューラルネットワークの複数の対応するノードのパラメーター更新情報を組み合わせる(1320)ことと、
前記組み合わされたパラメーター更新情報を分配(1330)することと、
を含む、
方法。
【請求項88】
コンピュータープログラムであって、前記コンピュータープログラムがコンピューター上で動作するとき、請求項84~87のいずれか一項に記載の方法を実行するコンピュータープログラム。
【請求項89】
ニューラルネットワークパラメーターの符号化表現であって、
前記符号化表現は、パラメーター更新ツリーのノードを記述するノード情報を含み、
前記ノード情報は、親ノード識別子とパラメーター更新情報とを含む、
符号化表現。
【国際調査報告】