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

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

▶ 楽天株式会社の特許一覧

特開2024-19050マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム
<>
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図1
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図2
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図3
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図4
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図5
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図6
  • 特開-マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019050
(43)【公開日】2024-02-08
(54)【発明の名称】マルチタスク学習用のオンライン知識蒸留システム、方法、デバイス、及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240201BHJP
   G06V 10/82 20220101ALI20240201BHJP
   G06N 3/08 20230101ALI20240201BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N3/08
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023118915
(22)【出願日】2023-07-21
(31)【優先権主張番号】17/877,159
(32)【優先日】2022-07-29
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】ジェイコブ ギス
(72)【発明者】
【氏名】アガーウォール ヴィシャール
(72)【発明者】
【氏名】シュテンガー ビヨン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096EA03
5L096FA09
5L096FA19
5L096FA59
5L096HA11
5L096KA04
(57)【要約】      (修正有)
【課題】機械学習モデル及びマルチタスクニューラルネットワークフレームワークを使用する画像処理の方法、システム、装置及び非一時的コンピューター可読媒体を提供する。
【解決手段】方法は、1以上のプロセッサによって実行され、入力画像を受け取ることと、マルチタスクニューラルネットワークフレームワークを使用し、入力画像に基づいて画像処理タスクを実行することとを含む。マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練され、タスク固有損失は、マルチタスクニューラルネットワークフレームワークに関する複数の第1の損失と、複数のシングルタスクニューラルネットワークモデルに関する複数の第2の損失とを含む。方法はまた、マルチタスクニューラルネットワークフレームワークの出力をアップサンプリングすることに基づいて、画像処理タスクの出力を生成することを含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
マルチタスクニューラルネットワークフレームワークを使用する画像処理の方法であって、前記方法は、1つ以上のプロセッサにより実行され、
入力画像を受け取ることと、
前記マルチタスクニューラルネットワークフレームワークを使用して、前記入力画像に基づいて、画像処理タスクを実行することと、
前記マルチタスクニューラルネットワークフレームワークの出力をアップサンプリングすることに基づいて、前記画像処理タスクの出力を生成することと、
を含み、
前記マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練され、前記タスク固有損失は、前記マルチタスクニューラルネットワークフレームワークに関連する複数の第1の損失と、複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失とを含む、
方法。
【請求項2】
前記タスク固有損失の組み合わせは、複数のタスク重みに基づいており、前記複数のタスク重みは、前記マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応し、前記複数のタスク重みのうち第1のタスク重みは、前記複数の第1の損失からの第1の損失と、前記複数の第2の損失からの第1の損失との比較に基づく、請求項1に記載の方法。
【請求項3】
前記タスク固有損失の組み合わせは、前記複数の第1の損失と前記複数の第2の損失との線形結合である、請求項1に記載の方法。
【請求項4】
前記マルチタスクニューラルネットワークフレームワークは、共有トランスフォーマーバックボーンネットワーク及び複数のタスク固有ヘッドを含む、請求項1に記載の方法。
【請求項5】
前記マルチタスクニューラルネットワークフレームワーク及び前記複数のシングルタスクニューラルネットワークモデルは、同時に訓練される、請求項1に記載の方法。
【請求項6】
同一の損失関数は、前記複数のシングルタスクニューラルネットワークモデルのそれぞれのシングルタスクニューラルネットワークモデル、及び前記マルチタスクニューラルネットワークフレームワークのタスクヘッドに関連付けられる、請求項1に記載の方法。
【請求項7】
前記画像処理タスクは、セマンティックセグメンテーション、深度推定、表面法線推定、画像分類、又は顔ランドマーク位置特定の1つを含む、請求項1に記載の方法。
【請求項8】
前記画像処理タスクは、前記入力画像のセマンティックセグメンテーションを含み、前記方法は、
前記マルチタスクニューラルネットワークフレームワークの前記出力のアップサンプリング及び再形成に基づいて、前記画像処理タスクの前記出力として、前記入力画像と同じサイズの複数のクラスマップを生成すること、
を更に含む、請求項1に記載の方法。
【請求項9】
前記画像処理タスクは、深度予測又は表面法線予測の一方を含み、前記方法は、
前記マルチタスクニューラルネットワークフレームワークの前記出力のアップサンプリング及び再形成に基づいて、前記画像処理タスクの前記出力として、前記入力画像と同じサイズの1つ以上の再構成済み画像を生成すること、
を更に含む、請求項1に記載の方法。
【請求項10】
マルチタスクニューラルネットワークフレームワークを使用する画像処理の装置であって、前記装置は、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによる指示のとおりに動作するように構成された少なくとも1つのプロセッサと、
を備え、
前記プログラムコードは、
前記少なくとも1つのプロセッサに対して、入力画像を受け取らせるように構成された受け取りコードと、
前記少なくとも1つのプロセッサに対して、前記マルチタスクニューラルネットワークフレームワークを使用して、前記入力画像に基づいて、画像処理タスクを実行させるように構成された実行コードと、
前記少なくとも1つのプロセッサに対して、前記マルチタスクニューラルネットワークフレームワークの出力のアップサンプリングに基づいて、前記画像処理タスクの出力を生成させるように構成された生成コードと、
を含み、
前記マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練され、前記タスク固有損失は、前記マルチタスクニューラルネットワークフレームワークの複数のタスクヘッドに関連する複数の第1の損失、及び複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失を含む、
装置。
【請求項11】
前記タスク固有損失の組み合わせは、複数のタスク重みに基づいており、前記複数のタスク重みは、前記マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応し、前記複数のタスク重みのうち第1のタスク重みは、前記複数の第1の損失からの第1の損失と、前記複数の第2の損失からの第1の損失との比較に基づく、請求項10に記載の装置。
【請求項12】
前記タスク固有損失の組み合わせは、前記複数の第1の損失と前記複数の第2の損失との線形結合である、請求項10に記載の装置。
【請求項13】
前記マルチタスクニューラルネットワークフレームワーク及び前記複数のシングルタスクニューラルネットワークモデルは、同時に訓練される、請求項10に記載の装置。
【請求項14】
同一の損失関数は、前記複数のシングルタスクニューラルネットワークモデルのそれぞれのシングルタスクニューラルネットワークモデル、及び前記マルチタスクニューラルネットワークフレームワークのタスクヘッドに関連付けられる、請求10に記載の装置。
【請求項15】
前記画像処理タスクは、前記入力画像のセマンティックセグメンテーションを含み、前記プログラムコードは、
前記少なくとも1つのプロセッサに対して、前記マルチタスクニューラルネットワークフレームワークの前記出力のアップサンプリング及び再形成に基づいて、前記画像処理タスクの前記出力として、前記入力画像と同じサイズの複数のクラスマップを生成させるように構成された出力生成コード、
を更に含む、請求項10に記載の装置。
【請求項16】
前記画像処理タスクは、深度予測又は表面法線予測のうち一方を含み、前記プログラムコードは、
前記少なくとも1つのプロセッサに対して、前記マルチタスクニューラルネットワークフレームワークの前記出力のアップサンプリング及び再形成に基づいて、前記画像処理タスクの前記出力として、前記入力画像と同じサイズの1つ以上の再構成済み画像を生成させるように構成された出力生成コードを更に含む、請求項10に記載の装置。
【請求項17】
画像処理向けのマルチタスクニューラルネットワークフレームワークを訓練する命令を記憶する非一時的コンピューター可読媒体であって、前記命令は、1つ以上の命令を含み、前記1つ以上の命令は、1つ以上のプロセッサにより実行されると、前記1つ以上のプロセッサに対して、
複数のシングルタスクニューラルネットワークモデルを使用して、前記マルチタスクニューラルネットワークフレームワークを訓練することを実行させ、前記訓練することは、
前記マルチタスクニューラルネットワークフレームワークの複数のタスクヘッドに関連する複数の第1の損失を決定することと、
前記複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失を決定することと、
前記複数の第1の損失及び前記複数の第2の損失の組み合わせに基づいて、前記マルチタスクニューラルネットワークフレームワークを訓練することと、
を含む、非一時的コンピューター可読媒体。
【請求項18】
前記複数の第1の損失及び前記複数の第2の損失の前記組み合わせは、複数のタスク重みに基づいており、前記複数のタスク重みは、前記マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応し、前記複数のタスク重みの第1のタスク重みは、前記複数の第1の損失からの第1の損失と、前記複数の第2の損失からの第1の損失との比較に基づく、請求項17に記載の非一時的コンピューター可読媒体。
【請求項19】
前記複数の第1の損失及び前記複数の第2の損失の前記組み合わせは、前記複数の第1の損失と前記複数の第2の損失との線形結合である、請求項17に記載の非一時的コンピューター可読媒体。
【請求項20】
同一の損失関数は、前記複数のシングルタスクニューラルネットワークモデルのそれぞれのシングルタスクニューラルネットワークモデル、及び前記マルチタスクニューラルネットワークフレームワークのタスクヘッドに関連付けられる、請求項17に記載の非一時的コンピューター可読媒体。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理に関する。具体的には、本開示は、機械学習モデル及びマルチタスクニューラルネットワークフレームワークを使用する画像処理に関する。
【背景技術】
【0002】
マルチタスク学習技術は、コンピュータービジョン及び音声認識に関連する分野において、幅広い用途がある。関連技術におけるマルチタスク学習では、パラメーターの大部分が複数のタスク間で共通しており、僅かなパラメーターのみが特定のタスク専用とされる、分岐アーキテクチャに依存している。マルチタスク学習は、関連するタスクの訓練データの情報を活用して、共有表現を学習し、汎化を向上させるように構成される。
【0003】
マルチタスク学習はストレージと速度の面から効率的なアーキテクチャではあるが、とりわけ、コンピュータービジョン及び画像処理分野において、マルチタスク学習技術は、シングルタスクモデルよりも性能が劣る。基礎となるアーキテクチャが様々なタスク間で共有されるので、一部の画像処理タスクのタスク難易度のバランスが崩れが、より簡単な画像処理タスクの予期しない重視を招き、複雑な画像処理タスクの進捗が遅くなったり、又は、性能が低下したりするということになり得る。共有パラメーターの大部分を含む、共有フレームワークを使用して学習されるタスクが複数あれば、マルチタスクフレームワークの他のタスクの性能を低下させることを代償にしても、一部のタスクの性能向上につなげられる。関連技術で提案された解決策では、マルチタスクニューラルネットワークフレームワークのストレージと効率性を維持することができない(例えば、ストレージ要件の増加、推論の効率低下等を引き起こす)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、マルチタスクフレームワークのストレージと速度を維持するのと同時に、或るタスクの性能が別のタスクによって損なわれない、マルチタスク学習用の方法、装置、及びシステムが必要とされている。
【課題を解決するための手段】
【0005】
本開示の一態様によると、マルチタスクニューラルネットワークフレームワークを使用する画像処理の方法が提供されてよい。この方法は、1つ以上のプロセッサにより実行されてよく、入力画像を受け取ることと、マルチタスクニューラルネットワークフレームワークを使用して、入力画像に基づいて、画像処理タスクを実行することと、マルチタスクニューラルネットワークフレームワークの出力のアップサンプリングに基づいて、画像処理タスクの出力を生成することとを含んでよく、マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練されてよく、タスク固有損失は、マルチタスクニューラルネットワークフレームワークに関連する複数の第1の損失と、複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失とを含んでよい。
【0006】
幾つかの実施の形態において、タスク固有損失の組み合わせは、複数のタスク重みに基づいてよく、複数のタスク重みは、マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応してよく、複数のタスク重みのうち第1のタスク重みは、複数の第1の損失からの第1の損失と、複数の第2の損失からの第1の損失との比較に基づいてよい。
【0007】
幾つかの実施の形態において、タスク固有損失の組み合わせは、複数の第1の損失と複数の第2の損失との線形結合であってよい。
【0008】
幾つかの実施の形態において、マルチタスクニューラルネットワークフレームワークは、共有トランスフォーマーバックボーンネットワーク及び複数のタスク固有ヘッドを含んでよい。
【0009】
幾つかの実施の形態において、マルチタスクニューラルネットワークフレームワーク及び複数のシングルタスクニューラルネットワークモデルは、同時に訓練されてよい。
【0010】
幾つかの実施の形態において、同一の損失関数は、複数のシングルタスクニューラルネットワークモデルのそれぞれのシングルタスクニューラルネットワークモデル、及びマルチタスクニューラルネットワークフレームワークのタスクヘッドに関連付けられてよい。
【0011】
幾つかの実施の形態において、画像処理タスクは、セマンティックセグメンテーション、深度推定、表面法線推定、画像分類、又は顔ランドマーク位置特定のタスクを含んでよい。
【0012】
幾つかの実施の形態において、画像処理タスクは、入力画像のセマンティックセグメンテーションを含んでよく、方法は、マルチタスクニューラルネットワークフレームワークの出力のアップサンプリング及び再形成に基づいて、画像処理タスクの出力として、入力画像と同じサイズの複数のクラスマップを生成することを更に含んでよい。
【0013】
幾つかの実施の形態において、画像処理タスクは、深度予測又は表面法線予測の一方を含んでよく、方法は、マルチタスクニューラルネットワークフレームワークの出力のアップサンプリング及び再形成に基づいて、画像処理タスクの出力として、入力画像と同じサイズの1つ以上の再構成済み画像を生成することを含んでよい。
【0014】
本開示の一態様によると、マルチタスクニューラルネットワークフレームワークを使用する画像処理の装置が提供されてよい。装置は、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードによる指示のとおりに動作するように構成された少なくとも1つのプロセッサとを備えてよい。プログラムコードは、少なくとも1つのプロセッサに対して、入力画像を受け取らせるように構成された受け取りコードと、少なくとも1つのプロセッサに対して、マルチタスクニューラルネットワークフレームワークを使用して、入力画像に基づいて、画像処理タスクを実行させるように構成された実行コードと、少なくとも1つのプロセッサに対して、マルチタスクニューラルネットワークフレームワークの出力のアップサンプリングに基づいて、画像処理タスクの出力を生成させるように構成された生成コードとを含んでよく、マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練され、タスク固有損失は、マルチタスクニューラルネットワークフレームワークの複数のタスクヘッドに関連する複数の第1の損失、及び複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失を含んでよい。
【0015】
本開示の一態様によると、マルチタスクニューラルネットワークフレームワークを使用する画像処理の命令を記憶する非一時的コンピューター可読媒体が提供されてよい。この命令は、1つ以上の命令を含んでよく、1つ以上の命令は、1つ以上のプロセッサにより実行されると、1つ以上のプロセッサに対して、入力画像を受け取ることと、マルチタスクニューラルネットワークフレームワークを使用して、入力画像に基づいて、画像処理タスクを実行することと、マルチタスクニューラルネットワークフレームワークの出力のアップサンプリングことに基づいて、画像処理タスクの出力を生成することとを、実行させてよく、マルチタスクニューラルネットワークフレームワークは、タスク固有損失の組み合わせを使用して訓練され、タスク固有損失は、マルチタスクニューラルネットワークフレームワークの複数のタスクヘッドに関連する複数の第1の損失、及び複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失を含んでよい。
【0016】
本開示の一態様によると、画像処理向けのマルチタスクニューラルネットワークフレームワークを訓練する命令を記憶する非一時的コンピューター可読媒体であって、命令は、1つ以上の命令を含み、1つ以上の命令は、1つ以上のプロセッサにより実行されると、1つ以上のプロセッサに対して、複数のシングルタスクニューラルネットワークモデルを使用して、マルチタスクニューラルネットワークフレームワークを訓練することを実行させ、訓練することは、マルチタスクニューラルネットワークフレームワークの複数のタスクヘッドに関連する複数の第1の損失を決定することと、複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失を決定することと、複数の第1の損失及び複数の第2の損失の組み合わせに基づいて、マルチタスクニューラルネットワークフレームワークを訓練することとを含んでよい、非一時的コンピューター可読媒体。幾つかの実施の形態において、複数の第1の損失及び複数の第2の損失の組み合わせは、複数のタスク重みに基づいてよく、複数のタスク重みは、マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応し、複数のタスク重みの第1のタスク重みは、複数の第1の損失からの第1の損失と、複数の第2の損失からの第1の損失との比較に基づく。
【0017】
以下、添付の図面を参照して、本開示の例示的な実施の形態の特徴、利点、及び意義について説明する。なお、添付の図面において、類似の符号は類似の要素を示している。
【図面の簡単な説明】
【0018】
図1】本開示に記載のシステム及び/又は方法が実装されうる画像処理用のニューラルネットワークフレームワークの例示的な図である。
図2】本開示の一実施形態にかかる、マルチタスクニューラルネットワークフレームワークを使用する画像処理の例示的プロセスについて説明する例示的フローチャートである。
図3】本開示の一実施形態にかかる、マルチタスクニューラルネットワークフレームワークを使用する画像処理の例示的プロセスについて説明する例示的フローチャートである。
図4】本開示の一実施形態にかかる、マルチタスクニューラルネットワークフレームワークを使用する画像処理の例示的ブロック図である。
図5】本開示の一実施形態にかかる、マルチタスクニューラルネットワークフレームワークを使用する画像処理の例示的ブロック図である。
図6】本開示の一実施形態にかかる、図1のニューラルネットワークフレームワークを実装しうる例示的環境の図である。
図7】本開示の一実施形態にかかる、図1のニューラルネットワークフレームワークを実装しうる1つ以上のデバイスの例示的コンポーネントの図である。
【発明を実施するための形態】
【0019】
例示の実施形態の以下の詳細な説明は、添付の図面を参照したものである。異なる図面における同じ参照番号が、同一又は類似の要素を特定する場合がある。
【0020】
前述の開示は、例示及び説明を提供するものであり、網羅的であること又は開示の正確な形態に実装を限定することを意図するものではない。上記の開示に照らして修正及び変形が可能である、又は修正及び変形を実装の実践から獲得することもできる。
【0021】
上述のように、マルチタスク学習はストレージと速度の面から効率的なアーキテクチャではあるが、とりわけ、コンピュータービジョン及び画像処理分野において、マルチタスク学習技術は、シングルタスクモデルよりも性能が劣る。共有パラメーターの大部分を含む、共有フレームワークを使用して学習されるタスクが複数あれば、マルチタスクフレームワークの他のタスクの性能を低下させることを代償にしても、一部のタスクの性能向上につなげられる。或るタスクの性能向上が、別のタスクの性能低下につながることがあるという問題は、「負の転移(negative transfer)」として知られうる。関連技術における技術の幾つかには、タスクの重み付け、特徴融合、特徴選択、及び知識蒸留が含まれ得る。
【0022】
ビジョントランスフォーマー(ViT)は、画像分類、物体検出、並びに深度推定及びセマンティックセグメンテーション等の画素単位の予測問題等、多くの画像処理タスクに使用されうる。本開示の一実施形態によると、複数のタスクを同時に学習するために、共有バックボーン及びタスク固有のヘッドを備えたViTベースのマルチタスク学習アーキテクチャが使用されてよい。本開示の一実施形態において、ViTベースのアーキテクチャを使用するだけでなく、オンライン蒸留が使用されてよい。オンライン蒸留は、マルチタスクニューラルネットワークフレームワークとシングルタスクニューラルネットワークモデルとを同時に訓練し、マルチタスクニューラルネットワークフレームワークがそれぞれのシングルタスクニューラルネットワークモデルから知識を学習又は蒸留することを含んでよい。オンライン蒸留は、マルチタスクモデルの訓練に使用されてよく、シングルタスクニューラルネットワークモデルと同等の性能を実現しつつ、推論時間とメモリ要件の削減につなげられる。
【0023】
本開示の一実施形態によると、オンライン蒸留は、適応型特徴蒸留及び/又はオンラインタスクの重み付けを含んでよい。オンラインタスク重み付け方式は、マルチタスクニューラルネットワークフレームワーク及び複数のシングルタスクニューラルネットワークモデルからのタスク固有損失の組み合わせを使用して、マルチタスクニューラルネットワークフレームワーク及び複数のシングルタスクニューラルネットワークモデルを同時に訓練することと、複数のシングルタスクニューラルネットワークモデルからマルチタスクニューラルネットワークフレームワークへと特徴を蒸留することとを含んでよい。幾つかの実施形態において、オンライン訓練は、マルチタスクニューラルネットワークフレームワークとシングルタスクニューラルネットワークが同時に訓練されうることを含んでよく、特徴抽出は、訓練の反復ごとに発生してよい。
【0024】
マルチタスクニューラルネットワークフレームワークとシングルタスクニューラルネットワークモデルとを同時に訓練し、マルチタスクニューラルネットワークフレームワーク及びシングルタスクニューラルネットワークモデルの双方からのタスク固有損失を使用することで、マルチタスクニューラルネットワークフレームワークからのタスクヘッドの性能を、それぞれのシングルタスクニューラルネットワークモデルの性能と合わせて監視することができる。マルチタスクニューラルネットワークフレームワーク及びそれぞれのシングルタスクニューラルネットワークモデルからのタスクヘッドを組み合わせ、また場合によっては並行して監視することで、それぞれのシングルタスクニューラルネットワークモデルの性能と比較した、マルチタスクニューラルネットワークフレームワークからのタスクヘッドの性能の相違について理解できる。本明細書に記載のオンラインタスク重み付け技法では、シングルタスクニューラルネットワークモデルと同様の計算要件とメモリ要件でマルチタスクニューラルネットワークを訓練することができるので、メモリとストレージの効率を維持しつつ、マルチタスクニューラルネットワークフレームワークの性能が向上する。
【0025】
本開示の幾つかの実施形態において、オンライン蒸留は、適応型特徴蒸留を含んでよい。適応型特徴蒸留は、マルチタスクニューラルネットワークフレームワークの訓練中に、シングルタスクニューラルネットワークモデルからマルチタスクニューラルネットワークフレームワークに特徴知識(例えば、中間特徴表現)を選択的に蒸留することを含んでよい。適応型特徴蒸留では、マルチタスクニューラルネットワークフレームワークからのタスクヘッドの性能がそれぞれのシングルタスクニューラルネットワークモデルの性能よりも低い場合、マルチタスクニューラルネットワークフレームワークからのタスクヘッドにシングルタスクニューラルネットワークモデルの中間特徴を整合させて使用することを可能にしてよい。
【0026】
幾つかの実施形態において、マルチタスクニューラルネットワークフレームワークを訓練する間に、適応型特徴蒸留及び/又はオンライン重み付け方式を使用する訓練が実施されてよく、マルチタスクニューラルネットワークフレームワークの性能を高められる。マルチタスクニューラルネットワークフレームワークの訓練中に適応型特徴蒸留を実施すること及び/又はオンライン重み付け方式を使用してマルチタスクニューラルネットワークフレームワークを訓練することにより、マルチタスクニューラルネットワークフレームワークの性能向上と合わせて、マルチタスク学習によるストレージ削減及び速度向上の利点が保たれる。
【0027】
一実施形態によると、マルチタスクニューラルネットワークフレームワークは、共有のビジョントランスフォーマー(ViT)バックボーンと、N個の画像処理タスク用の複数の別個のヘッドとからなってよい。また、このアーキテクチャは、シングルヘッドとViTバックボーンを備えた、シングルタスクニューラルネットワークモデルからなってもよい。ViTバックボーンは、1つのタスクに特化したものでよい。一実施形態において、オンライン蒸留は、N個のタスクに対してシングルタスクニューラルネットワークモデル(STL)及びマルチタスクニューラルネットワークフレームワーク(MTL)を同時に訓練するための訓練戦略を含んでよい。シングルタスクニューラルネットワークモデルは、訓練プロセスを通じて、マルチタスクネットワークの最適化を誘導してよい。マルチタスクネットワークの重みは、中間特徴に関する蒸留損失を通じて、シングルタスクニューラルネットワークモデルに結び付けられてよい。エンドツーエンドモデルは、以下の損失関数を最小化してよい。
【数1】
【0028】
式(1)において、L STLはi番目のシングルタスクニューラルネットワークモデルのタスク固有損失を示し、L MTLはマルチタスクニューラルネットワークフレームワークのi番目のヘッドのタスク固有損失であり、LAFDはシングルタスクネットワークの特徴とマルチタスクネットワークの特徴との間の適応型知識蒸留損失を示す。損失重みλ(i=1,2...N)は、シングルタスクニューラルネットワークモデルの損失値、及びマルチタスクニューラルネットワークフレームワークのそれぞれのヘッドの損失に基づいて、各タスクの訓練反復ごとに計算されてよい。
【0029】
幾つかの実施形態において、事前訓練済みのViTモデルは、全てのモデルのバックボーンとして使用されてよい。マルチタスクニューラルネットワークフレームワークは、N個のヘッドを有する共有バックボーンからなってよく、シングルタスクニューラルネットワークモデルはそれぞれ、独立したバックボーンネットワーク及び1個のヘッドを有してよい。幾つかの実施形態において、入力画像は16×16画素のPパッチに分割されてよい。各パッチは、パッチ埋め込み(patch embedding)ネットワークを介してマッピングされ、ViTエンコーダーに渡されてよい。サイズW×Hの画像をパッチに分割した後、パッチグリッドのサイズはW/16~Wpatch×H/16~Hpatchとなる。パッチは線形埋め込みネットワークに渡されてよく、Npatch=Wpatch×Hpatch埋め込みは、シングルタスクニューラルネットワークモデル及びマルチタスクニューラルネットワークフレームワーク双方のトランスフォーマーエンコーダーへと入力されてよい。
【0030】
上述のように、マルチタスク学習で既知の難題は、「負の転移」である。この問題を軽減するには、オンライン知識蒸留が使用されてよい。シングルタスクニューラルネットワークモデル及びマルチタスクニューラルネットワークフレームワークは、訓練フェーズ中に最適化されてよい。各反復において、シングルタスクトランスフォーマーエンコーダーの特徴の知識は、マルチタスクモデルの特徴に蒸留されてよい。幾つかの実施形態において、オンライン蒸留は、適応型特徴蒸留(AFD)及び/又はオンラインタスクの重み付け(OTW)を含んでよい。
【0031】
適応型特徴蒸留は、バックボーンモデルの中間特徴を共有することを含んでよい。中間特徴に関するオンライン重み付け後の知識蒸留は、マルチタスクニューラルネットワークフレームワーク(MTL)の共有バックボーンからのものである。Lを共有トランスフォーマーエンコーダーの層数、w をl番目の層のi番目のタスクの学習可能なパラメーターであるとする。AFD損失であるLAFDは、次のように定義することができる。
【数2】
【0032】
式中、fMTL(l)は、共有MTLバックボーンのl番目の層から抽出された特徴とすることができ、f STL(l)は、i番目のシングルタスクニューラルネットワークモデルからのl番目の層の特徴とすることができる。MTL特徴に対する各タスクのSTL特徴の整合性の度合いは、パラメーターw で決まる。AFD関数は、MTLネットワークの特徴空間がSTLネットワークの特徴空間と整合することを保証し得る。上記の訓練方式を直接実装すると、パラメーターがMTLネットワークのパラメーターの影響を受けるであろうため、STLネットワークの性能に負の影響を及ぼしうる。このような負の影響を避けるために、AFD関数からの勾配は、STLネットワークにバックプロパゲートすることを禁止してよい。一実施形態において、AFD損失を計算する一方で、シングルタスク中間特徴(例えば、テンソル)f STL(l)は、各シングルタスクニューラルネットワークモデルの計算グラフ(computational graph)から切り離されてよい。
【0033】
オンラインタスクの重み付けは、シングルタスクニューラルネットワークモデル及びマルチタスクニューラルネットワークフレームワークの同時学習中に、タスク固有の重みを使用することを含んでよい。マルチタスクニューラルネットワークは、タスク固有損失の線形結合を使用して訓練されてよく、タスク固有の重みは、シングルタスクニューラルネットワークモデルに対するマルチタスクモデルの性能に基づいてよい。
【数3】
【0034】
任意の反復tにおけるマルチタスクモデルの損失をL MTL(t)、i番目の画像処理タスクのシングルタスク損失をL STL(t)とする。反復tにおけるi番目のタスクのタスク固有の重みは、マルチタスク損失とシングルタスク損失との比の「温度」スケーリングソフトマックス関数(“temperature” scaled softmax function)として計算され得る。
【0035】
実施形態によると、マルチタスクの損失が対応するシングルタスクの損失よりも大きいタスクには、より高い重みが与えられてよい。τは、タスクの重み付けの柔らかさ(softness)を制御する温度(temperature)を表し得る。τを大きくすれば、様々なタスク同士の配分をより均等にしうる。係数N(タスク数)は、
【数4】
を確保し得る。
【0036】
一実施形態によると、同時訓練の場合、タスク固有の損失関数がそれぞれの画像処理タスクに使用されてよい。画像処理タスクは、セマティックセグメンテーション、深度予測、及び表面損失予測を含んでよく、さらに、或る特定のタスクについて、この特定のタスク用のシングルタスクニューラルネットワーク、及びマルチタスクニューラルネットワークフレームワークにおけるその特定タスク用のタスクヘッドの双方にわたって、同じ損失関数が使用されてよい。したがって、幾つかの実施形態において、マルチタスクニューラルネットワークにおけるそれぞれのタスク、及びそれに対応するシングルタスクニューラルネットワークモデルについて、同じ損失関数が使用されてよい。
【0037】
一例として、幾つかの実施形態において、クロスエントロピー損失はセマンティックセグメンテーション用に使用されてよく、SIログ損失(SILogloss)は深度推定用に使用されてよく、コサイン類似度損失は表面法線推定用に使用されてよい。一例として、第1のタスクがセマンティックセグメンテーション、第2のタスクが深度予測、第3のタスクが表面法線予測である場合、それらの損失はそれぞれ、以下のように定義してよい。
【数5】
【0038】
式(5)~式(7)において、Nは画素数であってよく、画素pについて、
【数6】
である。
【0039】
ビジュアルシーン理解の一環として、複数の分類と回帰のタスクが考慮されてよい。一例として、セマンティックセグメンテーション等の分類タスクの場合、マスクトランスフォーマーアーキテクチャが使用されてよい。トランスフォーマー層に渡されるパッチとトークンの埋め込みサイズをEとする。(Npatch×E次元を有する)ViTエンコーダーのバックボーンから抽出されたパッチは、マルチタスクニューラルネットワークフレームワークの分類ヘッドに渡されてよい。(NCLS×E次元の)クラスクエリは、パッチ埋め込み(patch embedding)と共に導入され、2層のトランスフォーマーエンコーダーに渡されてよい。クラスクエリ数(NCLS)は、分類タスクのクラス数として捉えられてよい。クラスクエリとパッチ埋め込みとのスカラー積が計算されてよい(出力次元 Npatch×NCLS)。その後、出力がアップサンプリングされ、画像サイズに合わせて再形成されてよい。また、それぞれが入力画像と同じサイズのNCLSクラスマップが得られてもよい。幾つかの実施形態において、画素ラベルは、NCLSクラスマップのargmax(最大点集合)として推定されてよい。
【0040】
別の例として、深度予測及び表面法線予測は回帰タスクとして定式化することができる。Nreg(経験的に128と設定する)を、マルチタスクニューラルネットワークフレームワークの回帰ヘッドへと、各次元EのNpatch埋め込みと共に渡されるクエリ埋め込みの数とする。クエリとパッチとのスカラー積が計算され(その出力次元 Npatch×Nreg)、MLPブロック及び/又は層へ渡されてよい。MLPブロックでは、一連の線形層が使用されてよく、最後の線形層の出力次元は画像処理タスクに従う。深度予測の出力次元をNpatch×1としてよく、表面法線予測の出力次元をNpatch×3としてよい。次に、出力がアップサンプリングされ、画像サイズに再形成されてよい。
【0041】
図1は、本開示に記載のシステム及び/又は方法を実装することができる画像処理用のニューラルネットワークフレームワーク100の例示的な概略図である。
【0042】
図1で見られるように、フレームワーク100は、マルチタスクニューラルネットワーク及び複数のシングルタスクニューラルネットワークを含んでよい。マルチタスクニューラルネットワーク(マルチタスクニューラルネットワークフレームワークとも称する)は、共有トランスフォーマーバックボーンネットワーク及び複数のタスク固有ヘッドを含んでよい。一例として、フレームワーク100のマルチタスクニューラルネットワークは、マルチタスクトランスフォーマーエンコーダー120の共有バックボーンと、複数のタスク用のタスク固有ヘッド(例えば、タスク1ヘッド115-1、タスク2ヘッド115-2、及びタスク3ヘッド115-2)とを含んでよい。フレームワーク100は、複数のシングルタスクニューラルネットワークモデルを含んでよい。複数のシングルタスクニューラルネットワークモデルは、マルチタスクニューラルネットワークフレームワークの各タスクヘッドに対応してよく、シングルタスクトランスフォーマーエンコーダー(例えば、タスク1シングルタスクトランスフォーマーエンコーダー105-1、タスク2シングルタスクトランスフォーマーエンコーダー105-2、及びタスク3シングルタスクトランスフォーマーエンコーダー105-3)を含んでよい。さらに、シングルタスクニューラルネットワークモデルは、それぞれのタスク固有ヘッド(例えば、タスク1ヘッド110-1、タスク2ヘッド110-2、及びタスク3ヘッド110-3)を有してよい。
【0043】
マルチタスクニューラルネットワークのタスクヘッドが実行する画像処理タスクは、シングルタスクニューラルネットワークモデルの個々のタスクヘッドが実行する画像処理タスクに対応してよい。したがって、タスク1ヘッド115-1及びタスク1ヘッド110-1は、同じ画像処理タスクを実行してよい。一例として、タスク1ヘッド115-1及びタスク1ヘッド110-1は、セマンティックセグメンテーションの第1の画像処理タスクを実行してよく、タスク2ヘッド115-2及びタスク2ヘッド110-2は、深度予測の第2の画像処理タスクを実行してよく、タスク3ヘッド115-3及びタスク3ヘッド110-3は、表面法線予測の第3の画像処理タスクを実行してよい。
【0044】
中間特徴125は、マルチタスクトランスフォーマーエンコーダー120のバックボーンのトランスフォーマーエンコーダー層の中間特徴であってよい。中間特徴135-1、135-2、及び135-3は、それぞれシングルタスクトランスフォーマーエンコーダー105-1、105-2、及び105-3のトランスフォーマーエンコーダー層の中間特徴であってよい。
【0045】
適応型特徴蒸留関数(AFD)101が使用されて、オンラインタスク重み付けを用いたタスク固有損失の組み合わせに基づいて、マルチタスクニューラルネットワークを訓練してよい。タスク固有損失は、特定のタスクについて、ニューラルネットワークを訓練するのに使用される損失関数であってよい。一例として、セマンティックセグメンテーションの第1の画像処理タスクについて、セマンティックセグメンテーションに対してタスク固有損失関数が使用されてよい。実施形態において、マルチタスクニューラルネットワークのタスクヘッドのセマンティックセグメンテーションタスク、及びシングルタスクニューラルネットワークモデルのセマンティックセグメンテーションの双方の訓練において、同じタスク固有損失関数が使用されてよい。別の例として、深度予測の第2の画像処理タスクについて、マルチタスクニューラルネットワークのタスクヘッドの深度予測タスク、及びシングルタスクニューラルネットワークモデルの深度予測の双方の訓練において、深度予測に対してタスク固有損失関数が使用されてよい。
【0046】
タスク固有損失の組み合わせは、オンラインタスク重み付け、又はオンラインタスク重み付け方式とも称され、マルチタスクニューラルネットワークフレームワークに関連する複数の第1の損失と、複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失とを含んでよい。複数の第1の損失は、マルチタスクニューラルネットワークフレームワーク内の各タスクヘッドに対応する第1の損失を含んでよい。一例として、複数の第1の損失は、セマンティックセグメンテーションタスクとタスク1ヘッド115-1に関連するL MTL、深度予測タスクとタスク2ヘッド115-2に関連するL MTL、及び、表面法線予測タスクとタスク3ヘッド115-3に関連するL MTLを含んでよい。複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失は、各シングルタスクニューラルネットワークモデルに対応する損失を含んでよい。一例として、複数の第2の損失は、セマンティックセグメンテーションタスクとタスク1ヘッド110-1に関連するL STL、深度予測タスクとタスク2ヘッド110-2に関連するL STL、及び、表面法線予測タスクとタスク3ヘッド110-3に関連するL STLを含んでよい。
【0047】
幾つかの実施形態において、タスク固有損失の組み合わせは、複数のタスク重みに基づいてよい。複数のタスク重みは、マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応してよい。一例として、タスク重みλは、マルチタスクニューラルネットワークフレームワークのi番目のタスクヘッドに関連するi番目の損失関数L MTLに対応してよい。幾つかの実施形態において、タスク固有損失の組み合わせは、複数の第1の損失と複数の第2の損失との線形結合であってよい。
【0048】
実施形態において、複数のタスク重みは、複数の第1の損失と複数の第2の損失との比較に基づいてよい。i番目のタスク重みは、マルチタスクニューラルネットワークフレームワークのi番目のタスクヘッドに関連するi番目の第1の損失L MTLと、i番目のシングルタスクニューラルネットワークフレームワークに関連するi番目の第2の損失L MTLとの比較に基づいてよい。一例として、複数のタスク重みのうち第1のタスク重み(例えば、セマンティックセグメンテーションタスクに関連する)は、複数の第1の損失からの第1の損失(セマンティックセグメンテーションタスクヘッドに関連する)と、複数の第2の損失からの第1の損失(セマンティックセグメンテーションタスクに関連する)との比較に基づいてよい。
【0049】
幾つかの実施形態において、同一の損失関数が、マルチタスクニューラルネットワークフレームワークのタスクヘッド、並びに、複数のシングルタスクニューラルネットワークモデルのそれぞれの及び/又は対応するシングルタスクニューラルネットワークに関連付けられてよい。一例として、第1のタスク固有損失関数が使用されて、タスク1ヘッド115-1とタスク1ヘッド110-1を訓練してよく、第2のタスク固有損失関数が使用されて、タスク2ヘッド115-2とタスク2ヘッド110-2を訓練してよく、第3のタスク固有損失関数が使用されて、タスク3ヘッド115-3とタスク3ヘッド110-3を訓練してよい。
【0050】
適応型蒸留関数101を使用するオンラインタスク重み付けは、特定のタスクに関するマルチタスクニューラルネットワークの性能と、そのタスクに関連付けられたシングルタスクニューラルネットワークモデルとを比較することによって、マルチタスクニューラルネットワークの性能を向上させるが、シングルタスクニューラルネットワークのパラメーターがマルチタスクニューラルネットワークのパラメーターの影響を受けることにより、タスク固有損失の組み合わせに基づく損失をシングルタスクニューラルネットワークにプロパゲートすると、シングルタスクニューラルネットワークの性能に負の影響を及ぼしうる。シングルタスクニューラルネットワークの性能低下を避けるために、タスク固有の組み合わせに基づく損失からの勾配をシングルタスクニューラルネットワークへバックプロパゲートすることが禁止されてよい。一実施形態において、適応型特徴蒸留損失を計算する一方で、計算グラフからシングルタスク中間特徴表現(例えば、テンソル)を切り離すことによって、この勾配がシングルタスクニューラルネットワークにバックプロパゲートされることが禁止されてよい。
【0051】
幾つかの実施形態において、適応型特徴蒸留関数101を使用して、マルチタスクニューラルネットワークフレームワークが訓練されてよい。適応型蒸留関数101を用いたマルチタスクニューラルネットワークフレームワークの訓練について、図3においてより詳細に説明する。
【0052】
図2は、マルチタスクニューラルネットワークフレームワークを使用する画像処理に関する例示のプロセス200を示す例示的フローチャートである。
【0053】
図2で見られるように、プロセス200は、動作205~215を含んでよい。動作205において、1つ以上の入力画像が受け取られてよい。入力画像は、任意の適切なフォーマット(例えば、JPEG、MPEG等)であってよく、任意の適切なコーデックを使用して符号化されてよい。幾つかの実施形態において、入力画像は所定のサイズであってよい。幾つかの実施形態において、入力画像は前処理されてよく、入力画像に基づいて、1つ以上の画像パッチが生成されてよい。幾つかの実施形態において、1つ以上の画像パッチは、入力画像に基づく所定のサイズであってよい。
【0054】
動作210において、マルチタスクニューラルネットワークフレームワークを使用して、入力画像に基づいて、画像処理タスクが実行されてよい。画像処理タスクは、セマンティックセグメンテーション、深度推定、表面法線推定、画像分類又は顔ランドマーク位置特定のいずれかを含んでよい。幾つかの実施形態において、マルチタスクニューラルネットワークフレームワークの第1のヘッドによって実行される第1の画像処理タスクは、セマンティックセグメンテーションタスクを含んでよい。一例として、マルチタスクニューラルネットワークフレームワークの第2のヘッドによって実行される第2の画像処理タスクは、深度予測タスクを含んでよく、マルチタスクニューラルネットワークフレームワークの第3のヘッドによって実行される第3の画像処理タスクは、表面法線予測タスクを含んでよい。
【0055】
幾つかの実施形態において、タスク固有損失の組み合わせを使用して、マルチタスクニューラルネットワークフレームワークが訓練されてよい。幾つかの実施形態において、タスク固有損失は、マルチタスクニューラルネットワークフレームワークに関連する複数の第1の損失と、複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失とを含んでよい。一例として、タスク固有損失は、マルチタスクニューラルネットワークフレームワークのタスク1ヘッド115-1、タスク2ヘッド115-2、及びタスク3ヘッド115-3のタスクヘッドにそれぞれ関連付けられたL MTL、L MTL、及びL MTLを含んでよい。さらに、タスク固有損失は、シングルタスクニューラルネットワークフレームワークのタスク1ヘッド110-1、タスク2ヘッド110-2、及びタスク3ヘッド110-3にそれぞれ関連付けられたL STL、L STL、及びL STLも含んでよい。
【0056】
幾つかの実施形態において、タスク固有損失の組み合わせは、複数の第1の損失と複数の第2の損失との線形結合であってよい。幾つかの実施形態において、この組み合わせは、任意の適切な関数に基づいてよい。
【0057】
一実施形態によると、タスク固有損失の組み合わせは、複数のタスク重みに基づいてよい。複数のタスク重みは、マルチタスクニューラルネットワークフレームワークのそれぞれのタスクヘッドに対応する。一例として、タスク重みλは、マルチタスクニューラルネットワークフレームワークのi番目のタスクヘッドに関連するi番目の損失関数L MTLに対応してよい。
【0058】
実施形態において、複数のタスク重みは、複数の第1の損失と複数の第2の損失との比較に基づいてよい。i番目のタスク重みは、マルチタスクニューラルネットワークフレームワークのi番目のタスクヘッドに関連するi番目の第1の損失L MTLと、i番目のシングルタスクニューラルネットワークフレームワークに関連するi番目の第2の損失L STLとの比較に基づいてよい。一例として、複数のタスク重みの第1のタスク重み(例えば、セマンティックセグメンテーションタスクに関連する)は、複数の第1の損失からの(セマンティックセグメンテーションタスクヘッドに関連する)第1の損失と、複数の第2の損失からの(セマンティックセグメンテーションタスクに関連する)第1の損失との比較に基づいてよい。
【0059】
幾つかの実施形態において、本明細書に記載のオンラインタスク重み付け方式を使用して、マルチタスクニューラルネットワークが訓練されてよく、マルチタスクニューラルネットワークフレームワークの性能を向上させる。マルチタスクニューラルネットワークフレームワークの訓練中に適応型特徴蒸留を実施すること、且つ/又は、オンライン重み付け方式を使用してマルチタスクニューラルネットワークフレームワークを訓練することにより、マルチタスクニューラルネットワークフレームワークの性能向上と合わせて、マルチタスク学習によるストレージ削減及び速度向上の利点が保たれる。
【0060】
動作215において、画像処理タスクの出力は、マルチタスクニューラルネットワークフレームワークの出力をアップサンプリングすることに基づいて、生成されてよい。幾つかの実施形態において、マルチタスクニューラルネットワークフレームワークの出力は、スカラー積としてよい。そして、画像処理タスクの出力を生成するために、このスカラー積がアップサンプリングされ処理されてよい。
【0061】
一例として、セマンティックセグメンテーション画像処理タスクの場合、クラスクエリ及びパッチ埋め込み(patch embeddings)は、マルチタスクニューラルネットワークフレームワーク及び/又はマルチタスクニューラルネットワークフレームワークのトランスフォーマーエンコーダーへと入力されてよい。マルチタスクニューラルネットワークフレーワークの出力及び/又はマルチタスクニューラルネットワークフレームワークの分類ヘッドは、クラスクエリとパッチ埋め込みに基づくスカラー積であってよい。次に、スカラー積はアップサンプリングされ画像サイズに合わせて再形成されて、クラスマップを得てよい。各クラスマップは入力画像と同じサイズである。
【0062】
別の例として、深度予測タスク又は表面法線予測タスクの場合、クエリ埋め込み(query embeddings)とパッチ埋め込みは、マルチタスクニューラルネットワークフレームワークへと入力されてよい。マルチタスクニューラルネットワークフレームワークの出力及び/又はマルチタスクニューラルネットワークフレームワークの回帰ヘッドは、クエリ埋め込み及びパッチ埋め込みに基づくスカラー積であってよい。その後、スカラー積はMLPブロックに通され、アップサンプリング及び/又はリサイズされてよい。MLPブロックは、画像処理タスクに基づき、最終線形層の出力次元を有してよい。
【0063】
図3は、オンラインタスク重み付けを使用して、マルチタスクニューラルネットワークフレームワークを訓練するための例示のプロセス300について説明する、例示的フローチャートである。実施形態によると、プロセス300は、選択的な訓練の反復、又は各訓練の反復について繰り返されてよい。
【0064】
動作305において、マルチタスクニューラルネットワークフレームワークに関連する複数の第1の損失が決定されてよい。複数の第1の損失は、マルチタスクニューラルネットワークフレームワーク内の各タスクヘッドに対応する第1の損失を含んでよい。一例として、複数の第1の損失は、セマンティックセグメンテーションタスクとタスク1ヘッド115-1に関連するL MTL、深度予測タスクとタスク2ヘッド115-2に関連するL MTL、及び、表面法線予測タスクとタスク3ヘッド115-3に関連するL MTLを含んでよい。
【0065】
動作310において、マルチタスクニューラルネットワークフレームワークに関連する複数の第2の損失が決定されてよい。複数のシングルタスクニューラルネットワークモデルに関連する複数の第2の損失は、各シングルタスクニューラルネットワークモデルに対応する損失を含んでよい。一例として、複数の第2の損失は、セマンティックセグメンテーションタスクとタスク1ヘッド110-1に関連するL STL、深度予測タスクとタスク2ヘッド110-2に関連するL STL、及び、表面法線予測タスクとタスク3ヘッド110-3に関連するL STLを含んでよい。
【0066】
動作315において、複数のタスク重みは、複数の第1の損失と複数の第2の損失との比較に基づいて、決定されてよい。i番目のタスク重みは、マルチタスクニューラルネットワークフレームワークのi番目のタスクヘッドに関連するi番目の第1の損失L MTLと、i番目のシングルタスクニューラルネットワークフレームワークに関連するi番目の第2の損失L STLとの比較に基づいて、決定されてよい。一例として、複数のタスク重みの(例えば、深度予測タスクに関連する)第2のタスク重みは、複数の第1の損失からの(深度予測タスクヘッドに関連する)第2の損失と、複数の第2の損失からの(深度予測タスクに関連する)第2の損失との比較に基づいてよい。
【0067】
動作320において、タスク固有損失の組み合わせは、複数のタスク重みに基づいて決定されてよい。幾つかの実施形態において、タスク固有損失の組み合わせは、複数の第1の損失と複数の第2の損失との線形結合であってよい。
【0068】
タスク固有損失の組み合わせに基づいて、マルチタスクニューラルネットワークフレームワークが訓練されてよい。幾つかの実施形態において、上記のオンラインタスク重み付け方式を直接実装すると、シングルタスクニューラルネットワークのパラメーターがマルチタスクのニューラルネットワークのパラメーターの影響を受けるため、シングルタスクニューラルネットワークの性能に負の影響を及ぼす場合がある。このような負の影響を回避するために、タスク固有損失の組み合わせの勾配がシングルタスクニューラルネットワークにバックプロパゲートされることを禁止してよい。一実施形態において、適応型特徴蒸留損失を計算する一方で、シングルタスク中間特徴(例えば、テンソル)は、それぞれのシングルタスクニューラルネットワークモデルの計算グラフから切り離されてよい。
【0069】
幾つかの実施形態において、シングルタスクニューラルネットワークモデルはマルチタスクニューラルネットワークフレームワークの訓練にのみ使用されてよく、マルチタスクニューラルネットワークフレームワークのみが推論に使用されてよい。これにより、マルチタスクニューラルネットワークフレームワークは、推論中に、シングルタスクニューラルネットワークモデルと同様の計算要件とメモリ要件を得ることが可能になる。したがって、適応型特徴蒸留は、メモリとストレージの効率を維持しつつ、マルチタスクニューラルネットワークフレームワークの性能を向上させる。
【0070】
図4は、マルチタスクニューラルネットワークフレームワークの分類ヘッド400を使用した画像処理の例示的プロセスについて説明するブロック図を示す。
【0071】
入力画像のセマンティックセグメンテーション等の分類タスクについては、適切なトランスフォーマーアーキテクチャ、例えば、ViT、ViT-tiny又はマスクアーキテクチャが使用されてよい。画像パッチ及びパッチのサイズがマルチタスクニューラルネットワークへと入力されてよい。トランスフォーマーエンコーダーバックボーン(例えば、マルチタスクトランスフォーマーエンコーダー120)から抽出されたパッチ埋め込み405が、マルチタスクニューラルネットワークフレームワークの分類ヘッドトランスフォーマー層410~415に渡されてよい。幾つかの実施形態において、パッチ埋め込みの次元は、Npatch×Eであってよい。分類タスクの場合、(次元NCLS×Eの)クラスクエリはパッチ埋め込みと共に導入され、分類ヘッドトランスフォーマー層410~415に渡されてよい。クラスクエリ及びパッチ埋め込みのスカラー積430が計算されてよい(出力次元 Npatch×NCLS)。次に、出力がアップサンプリングされ、画像サイズに合わせて再形成され(425)、再構成済み画像を生成してよい。また、それぞれが入力画像と同じサイズとなるNCLSクラスマップが得られてよい。幾つかの実施形態において、画素ラベルは、NCLSクラスマップのargmaxとして推定されてよい。
【0072】
図5は、マルチタスクニューラルネットワークフレームワークの回帰ヘッド500を使用した画像処理のための例示的プロセスについて説明する例示的ブロック図である。
【0073】
入力画像の深度予測及び表面法線予測等の回帰タスクの場合、適切なトランスフォーマーアーキテクチャ、例えば、ViT、ViT-tiny又はマスクアーキテクチャが使用されてよい。画像パッチ及びパッチのサイズがマルチタスクニューラルネットワークへと入力されてよい。トランスフォーマーエンコーダーバックボーン(例えば、マルチタスクトランスフォーマーエンコーダー120)から抽出されたパッチ埋め込み505が、マルチタスクニューラルネットワークフレームワークの回帰ヘッドトランスフォーマー層510~515に渡されてよい。幾つかの実施形態において、パッチ埋め込みの次元は、Npatch×Eであってよい。回帰タスクの場合、複数のクエリ埋め込み(経験上、128に設定され得るNreg)が、パッチ埋め込みと共に、マルチタスクニューラルネットワークフレームワークの回帰ヘッドトランスフォーマー層510~515に渡されてよい。スカラー積530(出力次元、Npatch×Nreg)は、クエリ埋め込み及びパッチ埋め込みに基づいて計算されてよい。スカラー積は、MLPブロック525及び1つ以上のアップサンプリング及び再形成層535に通されてよい。MLPブロック525では、一連の線形層が使用されてよく、最終線形層の出力次元は、画像処理タスクに基づく。一例として、深度予測の出力次元はNpatch×1としてよく、表面法線予測の出力次元はNpatch×3としてよい。次に、出力がアップサンプリングされ、再形成され、入力画像と同じサイズの再構成画像を生成してよい。
【0074】
図6は、図1図5の1つ以上のデバイス、動作、ニューラルネットワーク、及び/又はフレームワークを実装するための例示的環境を示す図である。
【0075】
図6に示されるように、環境600は、ユーザーデバイス110、プラットフォーム620及びネットワーク630を含んでよい。環境600のデバイスは、有線接続、無線接続又は有線接続と無線接続との組み合わせを介して相互接続されてよい。一実施形態において、ネットワークインフラストラクチャ100に含まれる要素の機能のいずれも、図6に示される要素の任意の組み合わせによって実行されてよい。例えば、実施形態において、ユーザーデバイス110は、パーソナルコンピューティングデバイスに関連する1つ以上の機能を実行してよく、プラットフォーム620は、ネットワーク要素115のいずれかに関連する1つ以上の機能を実行してよい。
【0076】
ユーザーデバイス110は、プラットフォーム620に関連する情報を受信、生成、記憶、処理、及び/又は供給可能とする、1つ以上のデバイスを含んでよい。例えば、ユーザーデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、ハンドヘルドコンピューター、スマートスピーカー、サーバー等)、携帯電話(例えば、スマートフォン、無線電話等)、ウェアラブルデバイス(例えば、スマートグラス又はスマートウォッチ)、又は同様のデバイスを含んでよい。幾つかの実施態様において、ユーザーデバイス110は、プラットフォーム620との間で情報を受信及び/又は送信してよい。
【0077】
プラットフォーム620は、情報を受信、生成、記憶、処理、及び/又は供給可能とする、1つ以上のデバイスを含んでよい。幾つかの実施態様において、プラットフォーム620は、クラウドサーバー又はクラウドサーバー群を含むことができる。幾つかの実装において、プラットフォーム620は、特定の必要性に応じて、或る特定のソフトウェアコンポーネントが入れ替えられてよいように、モジュラー式に設計されてよい。したがって、プラットフォーム620は、様々な用途に合わせて、容易に及び/又は迅速に再構成されてよい。
【0078】
幾つかの実装において、図示のように、プラットフォーム620は、クラウドコンピューティング環境622においてホストされてよい。注目すべき点として、本明細書に記載の実装は、プラットフォーム620がクラウドコンピューティング環境622においてホストされているものとして説明しているが、幾つかの実装においては、プラットフォーム620は、クラウドベースでない(すなわち、クラウドコンピューティング環境外で実装されてもよい)、又は、一部がクラウドベースであってもよい。
【0079】
クラウドコンピューティング環境622は、プラットフォーム620をホストする環境を含む。クラウドコンピューティング環境622は、プラットフォーム620をホストするシステム(複数の場合もある)及び/又はデバイス(複数の場合もある)の物理的位置及び構成に関するエンドユーザー(例えば、ユーザーデバイス110)の知識を必要としない、計算、ソフトウェア、データアクセス、ストレージ等のサービスを提供し得る。図示のように、クラウドコンピューティング環境622は、コンピューティングリソース624群(「コンピューティングリソース624」と総称したり、「コンピューティングリソース624」と個別に称したりする)を含んでよい。
【0080】
コンピューティングリソース624は、1つ以上のパーソナルコンピューター、コンピューティングデバイスのクラスター、ワークステーションコンピューター、サーバーデバイス、又は、他の種類の計算及び/又は通信デバイスを含む。幾つかの実装において、コンピューティングリソース624は、プラットフォーム620をホストしてよい。クラウドリソースは、コンピューティングリソース624において実行される計算インスタンス、コンピューティングリソース624において提供されるストレージデバイス、コンピューティングリソース624によって提供されるデータ転送デバイス等を含んでよい。幾つかの実施態様において、コンピューティングリソース624は、有線接続、無線接続、又は、有線接続と無線接続との組み合わせを介して、他のコンピューティングリソース624と通信してよい。
【0081】
更に図6に示されるように、コンピューティングリソース624は、1つ以上のアプリケーション(「APP」)624-1、1つ以上の仮想マシン(「VM」)624-2、仮想化ストレージ(「VS」)624-3、1つ以上のハイパーバイザー(「HYP」)624-4等のクラウドリソース群を含む。
【0082】
アプリケーション624-1は、ユーザーデバイス110又はネットワーク要素115に提供されうる又はこれらによりアクセスされうる、1つ以上のソフトウェアアプリケーションを含む。アプリケーション624-1によって、ユーザーデバイス110又はネットワーク要素115にソフトウェアアプリケーションをインストールして実行する必要をなくしてよい。例えば、アプリケーション624-1は、プラットフォーム620に関連するソフトウェア及び/又はクラウドコンピューティング環境622を介して提供可能な他の任意のソフトウェアを含んでよい。幾つかの実装において、1つのアプリケーション624-1は、仮想マシン624-2を介して、1つ以上の他のアプリケーション624-1との間で情報を送信/受信してよい。
【0083】
仮想マシン624-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピューター)のソフトウェア実装を含む。仮想マシン624-2は、用途、及び仮想マシン624-2による任意の実マシンへの対応度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする、完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一プログラムを実行してよく、単一プロセスをサポートしてよい。幾つかの実装において、仮想マシン624-2は、ユーザー(例えば、ユーザーデバイス110)の代わりに実行してよく、データ管理、同期、又は長時間のデータ転送等の、クラウドコンピューティング環境622のインフラストラクチャを管理してよい。
【0084】
仮想化ストレージ624-3は、コンピューティングリソース624のストレージシステム又はデバイス内で仮想化技術を使用する1つ以上のストレージシステム及び/又は1つ以上のデバイスを含む。幾つかの実装において、ストレージシステムの文脈では、仮想化の種類には、ブロック仮想化及びファイル仮想化が含まれてよい。ブロック仮想化とは、物理ストレージ又は異種構造とは関係なく、ストレージシステムがアクセスされてよいように、物理ストレージから論理ストレージを抽象化(又は分離)することを称してよい。この分離により、ストレージシステムの管理者は、エンドユーザー用にストレージを管理する方法について、柔軟性を得ることができる。ファイル仮想化は、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶されている場所との依存関係をなくしてよい。これにより、ストレージの使用、サーバーの統合及び/又は無停止ファイル移行の性能の最適化を可能にしてよい。
【0085】
ハイパーバイザー624-4は、コンピューティングリソース624等のホストコンピューター上で複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)を同時に実行可能にするハードウェア仮想化技術を提供してよい。ハイパーバイザー624-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提供してよく、ゲストオペレーティングシステムの実行を管理してよい。種々のオペレーティングシステムの複数のインスタンスは、仮想化されたハードウェアリソースを共有してよい。
【0086】
ネットワーク630は、1つ以上の有線ネットワーク及び/又は無線ネットワークを含む。例えば、ネットワーク630は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワーク等)、公衆陸上移動ネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワーク等、及び/又はこれらの種類又は他の種類のネットワークの組み合わせを含んでよい。
【0087】
図6に示すデバイスとネットワークの数及び配置は、一例として提供されるものである。実際には、図6に示したデバイス及び/又はネットワークよりも多いデバイス及び/又はネットワーク、少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は、異なって配置されたデバイス及び/又はネットワークが存在してもよい。さらに、図6に示した2つ以上のデバイスが1つのデバイス内に実装され、又は、図6に示した単一デバイスが複数の分散したデバイスとして実装されてもよい。付加的又は代替的に、環境600のデバイスのセット(例えば、1つ以上のデバイス)は、環境600のデバイスの別のセットによって実行されるものとして記述された、1つ以上の機能を実行してもよい。
【0088】
図7は、図1図5の1つ以上のデバイス、動作、ニューラルネットワーク、及び/又はフレームワークを実装する、図6の1つ以上のデバイスの例示のコンポーネントの図である。
【0089】
図7は、ユーザーデバイス110の例示的コンポーネントの図である。ユーザーデバイス110は、認可されたユーザー、セルの事業者又はRFエンジニアに関連するデバイスに対応してよい。ユーザーデバイス110が使用されて、ネットワーク要素115を介してクラウドプラットフォーム620と通信してよい。図7に示されるように、ユーザーデバイス110は、バス710、プロセッサ720、メモリ730、ストレージコンポーネント740、入力コンポーネント750、出力コンポーネント760、及び通信インターフェイス770を含んでよい。
【0090】
バス710は、ユーザーデバイス110のコンポーネント間の通信を可能とするコンポーネントを含んでよい。プロセッサ720は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装されてよい。プロセッサ720は、CPU(central processing unit)、GPU(graphics processing unit)、APU(accelerated processing unit)、マイクロプロセッサ、マイクロコントローラー、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は、別の種類の処理コンポーネントでよい。幾つかの実装において、プロセッサ720は、機能を実行するようにプログラムされ得る1つ以上のプロセッサを含む。メモリ730は、プロセッサ720が使用するための情報及び/又は命令を記憶する、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、及び/又は別の種類の動的又は静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ及び/又は光メモリ)を含む。
【0091】
ストレージコンポーネント740は、ユーザーデバイス110の動作と使用に関連する情報及び/又はソフトウェアを記憶する。例えば、ストレージコンポーネント740は、対応するドライブと合わせて、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は、別の種類の非一時的コンピューター可読媒体を含んでよい。入力コンポーネント750は、ユーザー入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイク)を介して等、ユーザーデバイス110が情報を受け取ることを可能にするコンポーネントを含む。付加的又は代替的に、入力コンポーネント750は、情報を検知するセンサー(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含み得る。出力コンポーネント760は、ユーザーデバイス110(例えば、ディスプレイ、スピーカー、及び/又は1つ以上の発光ダイオード(LED))から出力情報を提供するコンポーネントを含む。
【0092】
通信インターフェイス770は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して等、ユーザーデバイス110が他のデバイスと通信可能にするトランシーバの様なコンポーネント(例えば、トランシーバ及び/又は別個の受信器と送信器)を含む。通信インターフェイス770は、ユーザーデバイス110が他のデバイスから情報を受信すること及び/又は他のデバイスに情報を提供することを可能にしてよい。例えば、通信インターフェイス770は、イーサネットインターフェイス、光インターフェイス、同軸インターフェイス、赤外線インターフェイス、無線周波数(RF)インターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、Wi-Fiインターフェイス、セルラーネットワークインターフェイス等を含むことができる。
【0093】
ユーザーデバイス110は、本明細書に記載の1つ以上の処理を実行してよい。ユーザーデバイス110は、プロセッサ720が、メモリ730及び/又はストレージコンポーネント740等の非一時的コンピューター可読媒体によって記憶されたソフトウェア命令を実行することに反応して、これらの処理を実行してよい。本明細書において、コンピューター可読媒体を、非一時的メモリデバイスとして定義してよい。メモリデバイスは、単一物理的ストレージデバイス内のメモリ空間、又は複数の物理的ストレージデバイスにまたがるメモリ空間を含む。
【0094】
ソフトウェア命令は、通信インターフェイス770を介して別のデバイスから又は別のコンピューター可読媒体から、メモリ730及び/又はストレージコンポーネント740に読み込まれてよい。メモリ730及び/又はストレージコンポーネント740に記憶されたソフトウェア命令は、実行されると、プロセッサ720に対して、本明細書に記載された1つ以上の処理を実行させてよい。
【0095】
本明細書に記載のシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装されてもよいことが明らかとなるであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、本明細書では、特定のソフトウェアコードを参照せずに、システム及び/又は方法の動作及び挙動について説明した。理解すべき点として、本明細書の記載に基づくシステム及び/又は方法を実装するために、ソフトウェア及びハードウェアは設計されてよい。
【0096】
当該分野の慣例として、実施形態は、説明した単数又は複数の機能を実行するブロックの観点から説明及び図示され得る。本明細書においてユニット又はモジュール等と称され得るこれらのブロックは、論理ゲート、集積回路、マイクロプロセッサ、マイクロコントローラー、メモリ回路、受動電子部品、能動電子部品、光学部品、ハードワイヤード回路等のアナログ又はデジタル回路によって物理的に実装されてよく、さらに、ファームウェア及びソフトウェアによって駆動されてよい。回路は、例えば、1つ以上の半導体チップ、又はプリント回路基板等の基板支持体上に具現化されてよい。ブロックに含まれる回路は、専用ハードウェアによって、又はプロセッサ(例えば、1つ以上のプログラムされたマイクロプロセッサ及び関連回路)によって、又は、ブロックの一部の機能を実行する専用ハードウェアとブロックの他の機能を実行するプロセッサとの組み合わせによって実装されてもよい。実施形態の各ブロックは、2つ以上の相互作用する離散ブロックへと物理的に分離してもよい。同様に、本実施形態のブロックは物理的に組み合わせて、より複雑なブロックにしてもよい。
【0097】
特徴の特定の組み合わせが、特許請求の範囲に記載されている、及び/又は本明細書に開示されているが、これらの組合せは、想定される実装の開示を限定することを意図したものではない。実際、特許請求の範囲に具体的に記載されていない方法及び/又は本明細書に開示されていない方法で、これらの特徴の多くが組み合わせてもよい。以下で列挙する各従属請求項は、1つの請求項のみにしか直接従属できないが、想定される実装の開示は、請求項の集合における他の全ての請求項と組み合わせた各従属請求項を含むものである。
【0098】
本明細書で使用される要素、行為、又は命令は、いずれも重要又は不可欠であると明示的に記載されていない限り、そのように解釈されるべきではない。また、本明細書において使用する場合、冠詞「a」及び「an」は、1つ以上の品目を含むことを意図しており、「1つ以上」と同じ意味で使用されてもよい。1つの品目のみを意図している場合は、「1つ」又はそれに類する言葉を使用する。さらに、本明細書において使用する場合、「有する(has,have,having)」、「含む(include,including)」等の用語は、非限定的な用語であることを意図している。また、「基づく」という語句は、特に明示的に述べられていない限り、「少なくとも部分的に基づく」という意味であることを意図している。

図1
図2
図3
図4
図5
図6
図7
【外国語明細書】