(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025003411
(43)【公開日】2025-01-09
(54)【発明の名称】TORCHDEQ:深層平衡モデル用ライブラリ
(51)【国際特許分類】
G06N 3/08 20230101AFI20241226BHJP
G06N 20/00 20190101ALI20241226BHJP
【FI】
G06N3/08
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024100234
(22)【出願日】2024-06-21
(31)【優先権主張番号】18/340,574
(32)【優先日】2023-06-23
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.PYTHON
(71)【出願人】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(71)【出願人】
【識別番号】591236068
【氏名又は名称】カーネギー-メロン ユニバーシティ
【氏名又は名称原語表記】CARNEGIE-MELLON UNIVERSITY
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】アイヴァン バタロヴ
(72)【発明者】
【氏名】ジェレミー ジーグ コルター
(72)【発明者】
【氏名】ジョアン セメド
(72)【発明者】
【氏名】ジェンヤン ゲン
(57)【要約】
【課題】ユーザに深層平衡モデルを定義し、トレーニングし、展開することを可能にさせる方法及びシステムが開示される。
【解決手段】分離され構造化されたインタフェースにより、ユーザは、深層平衡モデルを容易にカスタマイズすることができる。開示されたシステムは、多くの異なる順方向ソルバ及び逆方向ソルバ、正規化及び正則化アプローチをサポートする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
深層平衡モデルを識別しかつトレーニングデータセットを識別するユーザ入力を受信するステップと、
前記トレーニングデータセット上で前記深層平衡モデルをトレーニングするステップと、
を含む方法であって、
前記トレーニングするステップは、以下の式:
【数1】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数2】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、方法。
【請求項2】
前記ユーザ入力は、注入モジュールを識別する、請求項1に記載の方法。
【請求項3】
前記ユーザ入力は、デコーダモジュールを識別する、請求項1に記載の方法。
【請求項4】
前記トレーニングするステップは、前記深層平衡モデルを順方向及び逆方向に通過させるための順方向ソルバ及び逆方向ソルバを実行するステップを含む、請求項1に記載の方法。
【請求項5】
前記順方向ソルバ及び前記逆方向ソルバのうちの1つ又は複数は、前記ユーザ入力に含まれるパラメータによって修正される、請求項4に記載の方法。
【請求項6】
前記トレーニングするステップは、以下の:
重みテンソルの自動正規化、
ヤコビアン正則化、及び、
固定少数点補正
のうちの1つ又は複数を実行するステップを含む、請求項1に記載の方法。
【請求項7】
前記トレーニングするステップは、以下の:
重みテンソルの自動正規化、
ヤコビアン正則化、及び、
固定少数点補正
のうちの1つ又は複数を実行するステップを含む、請求項4に記載の方法。
【請求項8】
深層平衡モデルを識別しかつトレーニングデータセットを識別するユーザ入力を受信するステップと、
前記トレーニングデータセット上で前記深層平衡モデルをトレーニングするステップと、
を含む方法であって、
前記トレーニングするステップは、前記深層平衡モデルを順方向及び逆方向に通過させるための順方向ソルバ及び逆方向ソルバを実行するステップであって、前記順方向ソルバ及び前記逆方向ソルバは、前記ユーザ入力において識別される、ステップを含む、方法。
【請求項9】
前記順方向ソルバ及び前記逆方向ソルバのうちの1つ又は複数は、前記ユーザ入力に含まれるパラメータによって修正される、請求項8に記載の方法。
【請求項10】
前記トレーニングするステップは、以下の:
重みテンソルの自動正規化、
ヤコビアン正則化、及び、
固定少数点補正、
のうちの1つ又は複数を実行するステップを含む、請求項8に記載の方法。
【請求項11】
前記ユーザ入力は、注入モジュールを識別する、請求項8に記載の方法。
【請求項12】
前記ユーザ入力は、デコーダモジュールを識別する、請求項8に記載の方法。
【請求項13】
前記トレーニングするステップは、以下の式:
【数3】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数4】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、請求項8に記載の方法。
【請求項14】
前記トレーニングするステップは、以下の式:
【数5】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数6】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、請求項10に記載の方法。
【請求項15】
1つ又は複数のプロセッサと、
プロセッサ実行可能命令を含む非一時的メモリと、
を備えるシステムであって、
前記プロセッサ実行可能命令は、前記1つ又は複数のプロセッサによって実行されるときに、前記システムに以下の動作:
深層平衡モデルを識別しかつトレーニングデータセットを識別するユーザ入力を受信するステップと、
前記トレーニングデータセット上で前記深層平衡モデルをトレーニングするステップと、
を含む動作を実行させるためのものであり、
前記トレーニングするステップは、
前記深層平衡モデルを順方向及び逆方向に通過させるための順方向ソルバ及び逆方向ソルバを実行するステップであって、前記順方向ソルバ及び前記逆方向ソルバは、前記ユーザ入力において識別される、ステップと、
以下の:
重みテンソルの自動正規化、
ヤコビアン正則化、及び、
固定少数点補正
のうちの1つ又は複数を実行するステップと、
を含む、システム。
【請求項16】
前記ユーザ入力は、注入モジュールを識別する、請求項15に記載のシステム。
【請求項17】
前記ユーザ入力は、デコーダモジュールを識別する、請求項15に記載のシステム。
【請求項18】
前記順方向ソルバ及び前記逆方向ソルバのうちの1つ又は複数は、前記ユーザ入力に含まれるパラメータによって修正される、請求項15に記載のシステム。
【請求項19】
前記トレーニングするステップは、以下の式:
【数7】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数8】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、請求項15に記載のシステム。
【請求項20】
前記トレーニングするステップは、以下の式:
【数9】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数10】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、人工知能の分野に関する。より具体的には、開示された実施形態は、ニューラルネットワークを含む機械学習モデルの設計、トレーニング及び使用に関する。
【背景技術】
【0002】
背景技術
深層平衡モデル(DEQ)は、最近開発された暗黙的ニューラルネットワークのクラスである。DEQは、新興のコミュニティを有している。DEQは、理論的に注目されつつある。安定性及び高速化は、DEQコミュニティにおける活発な研究テーマである。DEQは、セマンティックセグメンテーション、オプティカルフロー、検出、逆問題、メタ学習、オブジェクト中心学習、セット予測、制御、スパイキングニューラルネットワーク、機械翻訳、正規化フロー、及び、グラフ学習などと比較しても魅力的な汎化性能、解釈可能性、堅牢性を示している。
【0003】
科学的ソフトウェアは、深層学習のさらなる複雑化、モジュール化及び大規模化をサポートしている。PyTorch、Tensorflow、及び、JAXなどの基本的な深層学習ライブラリから、huggingfaceなどの包括的なモデルズー、言語モデル用のfairseq、ビジョンバックボーン用のtimmなどのドメイン固有のライブラリまで、オープンソースソフトウェアの貢献が見込まれている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
概要
近年、微分最適化や微分方程式などのニューラルダイナミクス用の深層学習ライブラリが数多く開発されており、例えば、theseus、torchopt、torchdiffeq、torchdyn、betty、pyposeなどがある。しかしながら、これらのいずれも特にDEQ用に設計されたものではなく、良好な安定性が伴う最新のDEQにスケールアップすることは検証されていない。その上さらに、これらのいずれも特にDEQ用に設計されたものではなく、暗黙的モデル用のモデルズーをホストすることについても検証されていない。開示された実施形態は、これに向けた一歩であり、最先端の深層平衡モデルを幅広くサポートする。
【課題を解決するための手段】
【0005】
開示されたいくつかの実施形態には、深層平衡モデル及びトレーニングデータセットを識別するユーザ入力を受信するステップと、トレーニングデータセット上で深層平衡モデルをトレーニングするステップと、を含む方法であって、トレーニングするステップは、以下の式:
【数1】
に従って正規化方法を実行するステップを含み、ここで、fは、深層平衡モデル、Wは、重み行列、gは、学習可能なスケーリング係数、
【数2】
は、行ごとの乗算、tは、スケーリング係数gをクリッピングするための閾値、Nは、重み行列Wのためのノルムの計算である、方法が含まれる。開示されたいくつかの実施形態には、深層平衡モデルを識別しかつトレーニングデータセットを識別するユーザ入力を受信するステップと、トレーニングデータセット上で深層平衡モデルをトレーニングするステップとを含む方法であって、トレーニングするステップは、深層平衡モデルを順方向及び逆方向に通過させるための順方向ソルバ及び逆方向ソルバを実行するステップであって、順方向ソルバ及び逆方向ソルバは、ユーザ入力において識別される、ステップを含む、方法が含まれる。開示されたいくつかの実施形態には、1つ又は複数のプロセッサと、プロセッサ実行可能命令を含む非一過性メモリとを備えるシステムであって、当該プロセッサ実行可能命令は、1つ又は複数のプロセッサによって実行されるときに、当該システムに、以下の動作:深層平衡モデルを識別しかつトレーニングデータセットを識別するユーザ入力を受信するステップと、トレーニングデータセット上で深層平衡モデルをトレーニングするステップと、を含む動作を実行させるためのものであり、トレーニングするステップは、深層平衡モデルを順方向及び逆方向に通過させるための順方向ソルバ及び逆方向ソルバを実行するステップであって、順方向ソルバ及び逆方向ソルバは、ユーザ入力において識別される、ステップと、以下の:重みテンソルの自動正規化、ヤコビアン正則化、及び、固定少数点補正のうちの1つ又は複数を実行するステップと、を含む、システムが含まれる。
【図面の簡単な説明】
【0006】
【
図1】開示された実施形態による例示的なコードを示す図である。
【
図2】開示された実施形態によるDEQをトレーニングするための例示的な方法を示すフローチャートである。
【
図3】開示された実施形態によるシステムを示すブロック図である。
【
図4】本開示による一般的コンピュータシステムの例示的な実施形態を示す図である。
【発明を実施するための形態】
【0007】
詳細な説明
本開示の実施形態が本明細書において説明される。しかしながら、開示された実施形態は、単なる例にすぎず、他の実施形態が様々な代替形態を取り得ることを理解されたい。図面は、必ずしも縮尺通りではなく、いくつかの特徴は、特定の構成要素の詳細を示すために、誇張されている場合又は最小化されている場合がある。したがって、本明細書に開示された特定の構造的及び機能的詳細は、限定的に解釈されるべきものではなく、むしろ、本発明を様々に利用するように当業者に教示するための代表的な基礎として解釈されるべきものである。当業者には理解されるように、図面の任意の1つに関連して図示及び説明した様々な特徴は、明示的に図示又は説明していない実施形態を生成するために、1つ又は複数の他の図面に図示した特徴と組み合わせることができる。図示した特徴の組合せにより、典型的な用途のための代表的実施形態が提供される。しかしながら、本開示の教示と一致する特徴の様々な組合せ及び修正は、特定の用途又は実装のために望ましい場合がある。
【0008】
DEQのトレーニング及び適用は、現在、文献全般に広がる様々な技術とともにアドホック方式により行われている。本開示は、DEQを体系的に再検討し、例示的な実施形態には、本明細書においてTorchDEQと称されるPyTorchに基づくライブラリが含まれ、これによって、ユーザは、最小限のコード及びベストプラクティスによって、複数のドメインにわたってDEQを使用して定義、トレーニング及び推論をすることができる。本明細書において「DEQ Zoo」と称される場合がある開示された実施形態は、異なるドメインにわたる6つの公開された暗黙的モデルをサポートしている。開示された実施形態は、すべてのモデルにわたってベストプラクティスを組み込んだ共同フレームワークを含み、DEQ Zooの6つのモデルすべてにわたる10個のデータセット上でのDEQの性能、トレーニング安定性及び効率性を大幅に改善するために使用されたものである。
【0009】
1.0はじめに
固定サイズの計算グラフを使用してその出力を計算する従来のフィードフォワードモデルとは異なり、DEQは、その出力を非線形システムの固定少数点として定義する、すなわち、
z*=fθ(z*,x)
であり、ここで、xは、ネットワークへの入力、z*は、その出力を表す。この定式化には、いくつかの顕著な利点がある:DEQは、固定少数点反復の「無限深度」制限、zl+1=fθ(zl,x)として解釈できるため、比較的少ないパラメータを使用して豊かな表現を提供することができ、アーキテクチャ設計において「単一の」層を指定するだけでよく、逆伝播用に格納する必要があるのは、最終的な固定小数点z*のみなので、大幅に少ないメモリでトレーニングすることができ、(多くの場合)最終的な出力z*がその初期化に依存しない経路に依存しない解を回復し、最後に、ネットワークの「定義」と、固定小数点を計算する「ソルバ」との間の分離を直感的に可能にさせ、この分離は、例えば微分方程式ソルバ又はオプティマイザーなどの多くの設定を反映している。
【0010】
残念ながら、DEQは、実際には、トレーニングが困難であり、展開も困難であることが多い。DEQのトレーニングは、多くの場合、結果として不安定なシステムを生じさせる可能性があり、これらの安定性の課題に対処する方法は、文献の様々な論文に分散し、同様に、これらのネットワークにおける逆伝播法は、多くの異なる手法、すなわち、アンローリング、暗黙的微分、又は、不正確な「ファントム」勾配などにより行うことができ、最後に、アーキテクチャソルバ及び平衡ソルバの選択は、多くの場合、異なる用途ごとに新たに行う必要がある。これらの課題は、深層学習の内部におけるDEQの影響力を大幅に制限していると考えられている。
【0011】
この目的のために、本明細書においてはTorchDEQと称される場合もあるモジュールライブラリを開発した。TorchDEQは、DEQを構築して展開するための入念に設計され、完全に機能するPyTorchに基づくライブラリである。これは、ユーザが任意のタスクのために最小量のコードによって自身の汎用目的のDEQをカスタマイズすることを可能にする分離されて構造化されたインタフェースを提供する。ライブラリは、複数の異なる順方向ソルバ、逆方向経路法、正規化、及び、正則化アプローチをサポートしており、全フィールドのベストプラクティスを実装している。
【0012】
モジュールライブラリ(すなわち、TorchDEQ)の開示された実施形態は、DEQのためのモデルズーを含み得るものであり、これは、本明細書においては「DEQ Zoo」と称する場合がある。開示された実施形態は、TorchDEQを介して、DEQ変成器、マルチスケール深層平衡モデル(「MDEQ」)、暗黙的グラフニューラルネットワーク(「IGNN」)、深層平衡オプティカルフロー推定器(「DEQFlow」)、暗黙的表現のための暗黙層(「DEQ-INR」)、及び、拡散モデルに対する深層平衡アプローチ(「DEQ-DDIM」)を含む6つの公開された暗黙的モデルを実装している。これらのすべてのモデルについて、性能、安定性、効率性の点において、元の論文や公開コードで報告されたものよりも一様に良好な結果が得られた。
【0013】
2.0TorchDEQ
以下においては、TorchDEQ及びTorchDEQにおける例示的にサポートされた特徴の実施形態をさらに詳細に開示する。以下に開示する例示的な実施形態は、DEQの説明、例示的なコードを含むTorchDEQの例示的なインタフェース、及び、逆方向経路を近似するための異なるアプローチ、並びに、他のDEQストラテジを強調することができるTorchDEQの計算グラフ設計を含み得る。
【0014】
2.1 DEQ
入力データ対(x,y)及び損失関数Lが与えられた場合、DEQは、入力注入u(x)からニューラルネットワークfθの固定小数点z
*への暗黙的写像である。トレーニングの目的は以下の式、
【数3】
z
*=f
θ(z
*,u(x))
の通りである。ここで、u(x)は、注入関数であり、y(z
*)は、モデル予測を生成するためのデコーダである。順方向経路においては、「無限深度」の平衡表現z
*は、ブラックボックスソルバ、例えば、固定小数点反復、アンダーソン加速、又は、ブロイデン法などによって解くことができる。これらの「無限層」にもかかわらず、この固定小数点系による微分は、洗練された解を有する。
【0015】
定理2.1.陰関数定理(「IFT」)により、穏和な条件下において、DEQの勾配は、以下のように、
【数4】
として表すことができ、ここで、
【数5】
は、勾配g
Tである。この解は、以下のように、
【数6】
勾配g
Tを得るために、逆方向経路において、他の「ミラー」線形固定小数点系を解くことを必要とする。この逆方向平衡系自体は、(線形の)固定小数点演算であり、したがって、順方向経路と同様の(又はさらにより簡素な)技術を使用することができる。したがって、関数f
θ活性化又はブラックボックスソルバの計算グラフを格納することなく、Ο(1)メモリ複雑性(すなわち、ソルバステップの数に依存しない)を使用するDEQによって微分することができる。
【0016】
2.2サンプルコード及びインタフェース
上記に挙げたこれらの態様には共通性があり、すべての事例において、DEQの主要な属性は、関数fθの特定の選択に対して寛容である。すなわち、異なる機能設計の単一変量、多変量、さらには多分解能平衡系に対して、DEQを実装するための統一されたモジュールインタフェースを構築することができる。しかしながら、上記において示すすべての構成要素及びさらなる拡張は、熟練した設計及び検証を必要とするため、DEQの実装は、依然として困難である。実装における差異は、以下において説明するように、下流側の性能、安定性、及び、効率性に顕著な影響力を及ぼし得る。
【0017】
図1は、TorchDEQライブラリ及びDEQの構築及びトレーニングのための方法を使用することを含む、本開示の実施形態を作成して使用するためのサンプルコードを示している。
【0018】
get_deqの演算は、DEQソルバをPytorchモジュールとして返すことができる。ユーザは、入力注入x及び固定小数点ソルバ用の初期化z0を用いてfθに対する関数呼び出しを定義する関数fを渡す必要がある。固定小数点の再使用は、ユーザが選択した先行の固定小数点によって行われるものとしてよい。z*=[h*,c*]のような異なるテンソル形状の多変量平衡系については、以下のように、
f=lambda h,c:→self.deq_func((h,c),x)
関数記号を些細な調整により書き換えるだけでよく、TorchDEQは、勾配及びソルバについての残余の調整を成し遂げることができる。
【0019】
apply_norm及びreset_normの演算は、平衡モジュールfθにおける重みテンソルに正規化を自動的に適用することができ、次のトレーニングステップの前に各重みテンソルについての値を再計算することができる。より詳細は、セクション2.5で開示する。
【0020】
add_deq_argsの演算は、一般に使用されるPython引数パーサ用のデコレータを提供することができる。開示された実施形態のユーザは、単にadd_deq_args(parser)を呼び出して、コマンドラインによりDEQの挙動をカスタマイズすることができる。この設計は、fairseqやtimmなどのコミュニティに信頼されるライブラリによって採用されている。
python train.py--ift--f_solver anderson--b_solver brolyden
例えば、上記のコマンドは、逆方向としての陰微分、順方向ソルバとしてのアンダーソン加速、及び、逆方向ソルバとしてのブロイデン法を使用してトレーニングを開始する。
【0021】
TorchDEQのコンパクトなモジュールインタフェースは、ユーザに、自身の要求を平衡モデルfθとしていかに抽象化し、定式化し、定義し、注入及びデコーダのような他の明示的な層との相互作用を考察することに集中させることができる。TorchDEQのモジュール設計は、DEQの「抽象化」を作成し、DEQの学習、実装及び調整のコストを最小限に抑制する。以下のセクションにおいては、TorchDEQの特徴及びその制御コマンドを紹介する。
【0022】
2.3逆方向経路
TorchDEQは、ソルバ及び勾配のための計算グラフを内部的に作成することができる。ユーザは、勾配で登録されたテンソルのグループを受信することができる。ユーザは、明示的な層及びテンソルの場合と同様に、暗黙的モデルの出力を扱うことができる。ただし、勾配を計算する場合、TorchDEQは、特殊な方法を使用して逆方向経路を透過的に計算する場合がある。TorchDEQは、2つのタイプの逆方向経路、詳細には暗黙的微分(「IFT」)とファントム勾配(「PG」)とをサポートすることができる。実際には、両タイプ及び/又はそれらの組合せは、妥当な時間枠内で経験的に魅力的な結果を提供するために十分な場合がある。
【0023】
暗黙的微分(すなわち、IFT)。暗黙的微分は、固定小数点によって微分するための標準的アプローチである。式(3)に示されているように、暗黙的勾配は、逆方向経路において、他の線形固定小数点系から解くことができる。ユーザは、--iftによりIFTを宣言し、--b_solver broydenを使用して逆方向ソルバを設定し、例えば最大ソルバステップ--b_thres 30及び停止基準--b_eps 0.001などのソルバ構成をセットアップすることができる。
【0024】
ファントム勾配(すなわち、PG)。ファントム勾配は、以下のように、
【数7】
下降方向を維持するIFTの構造化された近似であり、ここで、
【数8】
は、有効な勾配更新を保存し、Aは、以下において定義される近似的なヤコビアンである。
【0025】
ファントム勾配は、様々なソルバの計算グラフに適用される場合があり、これは、固定小数点を微分するためのIFTと同様である。これまでの見解においては、IFTは厳密な勾配とみなされ、PGは厳密でない勾配とみなされている。しかしながら、それらは順方向でIFTを解く際の数値誤差となる場合がある。したがって、厳密な勾配か厳密でない勾配かを区別する必要がない場合もあり、それらはともに代替的に逆方向経路と称することができる。
【0026】
異なる暗黙的モデルで使用されるPGのインスタンス化には、減衰係数τを用いて解かれた(近似の)固定小数点z
pにわたり平衡モジュールf
θを展開することが含まれ、
z
p+1=τf
θ(z
p)+(1-τ)z
p (5)
これは、以下のA行列、
【数9】
を定義する。ユーザは、例えば順方向ソルバとして--grad 5--tau 0.6とブロイデン法とを組み合わせてPGを呼び出すことができる。
【0027】
開示された実施形態においては、時間による逆伝播(「BPTT」)及びその切り捨てられたバージョンについての別個のサポートは、定義されていない。なぜなら、これらは、τ=1.0が与えられ、順方向ソルバが削除された、すなわち、ソルバ及び勾配が、fθの展開されたプロセスによってのみ定義されるPGの特殊な事例として表現できるからである。--f_thres0--grad12--tau1.0のコマンドを使用することにより、BPTT-12の計算グラフが定義される。
【0028】
開示された実施形態は、任意に展開された計算グラフのメモリ使用量を低減するためのインタフェースメモリmem_gcを含み得る。ユーザは、1.5倍のトレーニング時間と引き換えに、勾配チェックポインティングを介して大幅に低い一定のメモリオーバーヘッドを得ることができる。
【0029】
2.4ソルバ
従来技術のDEQプロジェクトは通常、独自の固定小数点ソルバを作成していた。これらのタスク依存ソルバは、異なるドメインに適用される場合、非効率であったり、時には信頼性に欠けたりすることもあり得る。この問題に対処するために、開示された実施形態においては、TorchDEQのためのソルバ実装を実施、検証し、仕上げを施す。多変量系のバッチ処理及びメモリアクセスは、最適化されるものとしてよい。開示された実施形態においては、ソルバは、様々なタスクにおいて信頼性が高く、異なる設定にわたって堅牢性があり、固定小数点方程式のスケール及びそれらのテンソル形状に不可知である場合がある。したがって、開示された実施形態は、多変量系及びマルチスケールの平衡系を越えて顕著な改善効率をもたらすことができる。
【0030】
TorchDEQにおいては、後続のソルバがサポートされている場合がある。これらのソルバを呼び出すために、ユーザは、コマンドラインにおいてソルバ名、最大反復数--f_thres20、及び、停止基準--f_eps1e-2を指定して--f_solver又は--b_solverと入力することができる。付加的に、キーワード引数は、ソルバを調整するためにDEQクラスに渡すものとしてもよい。例えば、アンダーソン加速をカスタマイズする例は、以下のように、
z_out,info=self.deq_solver(f,z,solver_kwargs={’tau’:0.8,’m’:6})
遂行され得る。
【0031】
ナイーブソルバ。固定小数点反復は、以下の数値体系で説明される、固定小数点z*を解くための古典的なソルバである。
zk+1=fθ(zk) (7)
その収束は、fθの制限されたヤコビアンスペクトル半径によって保証することができる。ユーザは、固定小数点反復を呼び出すために、
-f_solver naive_solverと入力することができる。
【0032】
アンダーソンソルバ。アンダーソン加速又はアンダーソン混合(すなわち、Type-I Anderson Acceleration)は、過去のm+1個の固定小数点推定値の線形結合を使用した固定小数点反復のための加速技術である。その更新においては、この数値体系、
【数10】
が使用される。ここで、τは、減衰係数であり、デフォルト値は、1.0である。次式、
【数11】
が与えられた場合、次式、
【数12】
1
Tα=1
から解かれる。ユーザは、--f_solver andersonを介してアンダーソン加速を呼び出し、上記のサンプルを参照して調整することができる。
【0033】
ブロイデンソルバ。ブロイデン法は、固定小数点方程式の準ニュートンソルバである。バッファを維持することにより、ブロイデン法は、以下のように、
z
k+1=z
k-α・B
kg
θ(z
k) (10)
低ランクの更新によってニュートン法におけるヤコビアン逆行列を近似し、ここで、B
kは、以下のように、
【数13】
Δz
k=z
k-z
k-1及びΔg
k=g
θ(z
k)-g
θ(z
k-1)を使用する、ヤコビアン逆行列
【数14】
の近似であり、式(10)は、以下のように、
【数15】
行列ベクトル積に書き直すことができ、これにより、さらにB
kをメモリに格納することが省略され、ここで、U
k及びV
kは、Sherman-Morrison式を介して低ランク近似についてのm個の過去の推定値を表している。ユーザは、例えば、solver_kwargs={’1_thres’:m}の設定による--f_solver broyden又は制限されたメモリバージョンを通してブロイデン法を呼び出すことができる。
【0034】
2.5正規化
正規化技術は、現代の深層平衡モデルにとって不可欠である。表現に適用される一般的な正規化法とは異なり、DEQは付加的に、重みテンソルに対する正規化、例えば、重み正規化、スペクトル正規化にも依存している。開示された実施形態においては、正規化技術のDEQバージョンが、TorchDEQにおいてサポートされている。
【0035】
正規化は、入力データxが与えられたzの固定小数点ランドスケープを大幅に平滑化し、この固定小数点表示を実際に解き易くする。この効果は、先行文献では過小評価されていると思われる。
【0036】
重み行列W∈Rm×nについては、重み正規化(「WN」)は、重みを以下のように
Wi:=Wi:(gi/||Wi:||) (13)
パラメータ化する。ここで、||・||は、ベクトルL2ノルムを表し、gは、学習可能なスケール係数であり、一方、スペクトル正規化(「SN」)は、以下のように示され、
W=W/||W||2=W(1/||W||2) (14)
ここで、||・||2は、スペクトルノルムであり、これは、べき乗反復によって計算されるものとしてよい。
【0037】
開示された実施形態においては、TorchDEQは、以下のように、
【数16】
形式論を介して上記の正規化方法の両方をサポートし、ここで、
【数17】
は、行ごとの乗算、Nは、重み行列のための関連する「ノルム」を計算することを表す。WNに続いて、学習可能なスケーリングgがDEQ SNに追加されるものとしてよく、これは、SNをDEQ-Flow上でWNの性能及び汎化に一致させ得る。
【0038】
勾配クリッピングによる着想を得て、開示された実施形態においては、ノード分類上の暗黙的グラフニューラルネットワークのトレーニングを大幅に安定化する演算が導入され、すなわち、再スケーリング係数を閾値tにクリッピングすることにより導入され、
【数18】
これは、--norm_clip_value tを用いた--norm_clipによりTorchDEQにおいてイネーブル化されるものとしてよい。
【0039】
WN及びSNについての古典的な実装においては、重みは、順方向呼び出しごとにリセットされる。しかしながら、これは、DEQにとって明らかに無駄である。なぜなら、平衡モジュールfθは、収束するまで何度も呼び出されるからである。次いで、同等の重みパラメータ化がfθ関数の呼び出し回数によって適用される。さらに、装飾正規化は、従来のPyTorch実装を使用して、各モジュールについて手動で符号化されなければならない。
【0040】
その代わりに、TorchDEQの開示された実施形態においては、(いくつかのモジュールをスキップするためのキーワード引数filter_outを用いた)apply_normと、計算を無駄にすることなくリセットするためのreset_normとを介して平衡モジュールfθ全体を自動的に装飾するための統合インタフェースが提供される。トレーニング後、正規化装飾は、モデルを変更せずにトレーニングを容易にするため、remove_normによって削除されるものとしてよい。
【0041】
TorchDEQのユーザは、WNについては--norm_type weight_norm、SNについては--norm_type spectral_norm、さらに学習可能なスケーリングgを削除することについては--norm_no_scaleを指定することができる。
【0042】
2.6正則化
DEQ学習の最新の解釈の大半においては概念的な変化が続いている。ここでは、DEQモデルを、単に性能の高い(暗黙的な)固定小数点写像x→z*を学習するものとして考える代わりに、ユニークで性能の高い固定小数点z*を含む平滑でかつ平坦な平衡ランドスケープx→B(z)を学習するものとして考えている。
【0043】
平衡モジュールfθの規則性は、簡素なソルバを使用するにもかかわらず、固定小数点z*への迅速な収束を保証する。平衡ランドスケープB(z)と損失ランドスケープとの間の対応関係は、固定小数点誤差||fθ(z)-z||と損失L(y(z))との間の強い相関を示している。経路の独立性、すなわち、初期化にかかわらず定常状態に収束することにより、テスト時間の計算をより良好に利用することができる。したがって、従来のアプローチにおいては、DEQを、早期の平衡解決プロセスにおいて強力な結果を得ることができ、固定小数点z*に近づくにつれてその予測を徐々に改善することができる動的な暗黙的ニューラルネットワークと考えている。TorchDEQの開示された実施形態は、これらのDEQ特性及び平衡ランドスケープの規則性を促進する技術をサポートする。
【0044】
ヤコビアン正則化(「JR」)。ヤコビアン正則化は、以下の式、
【数19】
に従って、ヤコビアンスペクトル半径
【数20】
の上限にペナルティを課す。計算上、これは、確率的ハッチンソントレース推定器を使用して損失項を追加すること、例えば、以下のように、
【数21】
標準ガウスからεをサンプリングすることによって達成される。TorchDEQの開示された実施形態は、JR損失を計算するためにf
θ(z)及びzを取るインタフェースjac_regを提供することができる。
【0045】
固定小数点補正(「FC」)。固定小数点補正は、固定小数点解決プロセスから中間状態を正則化することにより、平滑な平衡ランドスケープを学習するために役立つ。z
*に収束するシーケンス
【数22】
が与えられた場合、補正は、以下のように、
【数23】
状態を復号して予測を監視することができ、又は、以下のように、
【数24】
当該シーケンスにヤコビアン正則化を適用することができる。
【0046】
図2には、開示された実施形態による、DEQをトレーニング及び使用するための例示的な方法200が示されている。いくつかの開示された実施形態においては、本方法200はTorchDEQによって実行される。演算ステップ202において、本方法は、ユーザから入力データを受信する。この入力データは、トレーニングデータセットを識別し、深層平衡モデルを識別することができる。第1の例においては、トレーニングデータセットは、ユーザにより、表示されたメニューから項目を選択することによって識別されるものとしてよい。トレーニングデータセットは、既にTorchDEQ内に予めロードされるものとしてもよいし、ユーザ入力に応じてTorchDEQ内にロードされるものとしてもよい。任意選択的に、ユーザ入力は、注入モジュール及び/又はデコーダモジュールを識別することもできる。開示された実施形態においては、TorchDEQは、ユーザにTorchDEQライブラリから順方向ソルバ及び/又は逆方向ソルバをカスタマイズさせ得る。例えば、ユーザからの入力データは、1つ又は複数の順方向ソルバ及び/又は逆方向ソルバを修正するためのパラメータを含み得る。
【0047】
演算ステップ204において、TorchDEQは、深層平衡モデルをトレーニングする。非DEQモジュールを順方向及び逆方向に通過させるために、TorchDEQは、デフォルトのPyTorch機能性を使用することができる。DEQモジュールを順方向及び逆方向に通過させるために、TorchDEQは、TorchDEQライブラリからの順方向DEQソルバ及び/又は逆方向DEQソルバを使用することができる。TorchDEQによって使用される順方向ソルバ及び/又は逆方向ソルバにおいては、順方向ソルバ及び/又は逆方向ソルバが、ユーザからの入力データにおいてユーザにより提供されたパラメータによるパラメータの修正によってカスタマイズされるものとしてよい。深層平衡モデルのトレーニング中に、TorchDEQは、重みテンソルの自動正規化、ヤコビアン正則化、及び、固定小数点補正のうちの1つ又は複数を実行することができる。
【0048】
演算ステップ206において、TorchDEQは、予測を生成するためにDEQソルバを用いてトレーニングされた深層平衡モデルを順方向に通過させることができる。例えば、トレーニングされた深層平衡モデルは、テストデータ上で予測を実行することができる。
【0049】
図3には、開示された実施形態によるシステム300のブロック図が示されている。例えば、システム300は、TorchDEQの実装であるものとしてよい。入力データ310は、モデル320に入力されるものとしてよい。入力データ310は、例えば、
図2に関して上述した入力データであるものとしてよい。モデル320は、任意選択的な注入モジュール322、DEQ324、及び、任意選択的なデコーダ326を含む。モデル320は、予測330を出力する。
【0050】
図4は、汎用コンピュータシステム400の例示的な実施形態のブロック図を示している。このコンピュータシステム400は、当該コンピュータシステム400に、本明細書に開示された方法又はコンピュータに基づく機能のうちの任意の1つ又は複数を実行させ得るための命令のセットを含み得る。例えば、コンピュータシステム400は、TorchDEQの機能を実行するための実行可能命令を含み得る。コンピュータシステム400は、ネットワークを介して他のコンピュータシステム又は周辺装置に接続されるものとしてよい。付加的に、コンピュータシステム400は、他の計算デバイスを含むものとしてもよいし、又は、他の計算デバイス内に含まれるものとしてもよい。
【0051】
図4に示されているように、コンピュータシステム400は、1つ又は複数のプロセッサ402を含み得る。1つ又は複数のプロセッサ402は、例えば、1つ又は複数の中央処理ユニット(CPU)、1つ又は複数のグラフィックス処理ユニット(GPU)、又は、その両方を含み得る。コンピュータシステム400は、バス408を介して相互に通信することができるメインメモリ404及びスタティックメモリ406を含み得る。図示されているように、コンピュータシステム400は、液晶ディスプレイ(LCD)、プロジェクションテレビディスプレイ、フラットパネルディスプレイ、プラズマディスプレイ、又は、固体ディスプレイなどのビデオディスプレイユニット410をさらに含み得る。付加的に、コンピュータシステム400は、ワイヤレスキーパッド、キーボード、音声認識エンジンに結合されたマイクロフォン、ビデオカメラ若しくはスチルカメラなどのカメラを有する遠隔制御デバイスなどの入力デバイス412、又は、マウスデバイスなどのカーソル制御デバイス414を含み得る。コンピュータシステム400は、ディスクドライブユニット416、スピーカなどの信号生成デバイス418、及び、ネットワークインタフェースデバイス420を含むこともあり得る。ネットワークインタフェース420は、コンピュータシステム400にネットワーク428を介して他のシステムとの通信を可能にさせることができる。例えば、ネットワークインタフェース420は、機械学習システム120にデータベースサーバ(図示せず)又は製造システム内のコントローラ(図示せず)との通信を可能にさせることができる。
【0052】
いくつかの実施形態においては、
図4に示されているように、ディスクドライブユニット416は、1つ又は複数の命令のセット424、例えばソフトウェアが埋め込まれ得る1つ又は複数のコンピュータ可読媒体422を含み得る。例えば、命令424は、本明細書に開示された方法又は機能性などの1つ又は複数の方法又は機能性を実施することができる。特定の実施形態においては、命令424は、コンピュータシステム400による実行中に、メインメモリ404、静的メモリ406、及び/又は、プロセッサ402内に完全に若しくは少なくとも部分的に存在することができる。メインメモリ404及びプロセッサ402は、コンピュータ可読媒体を含むこともあり得る。
【0053】
いくつかの実施形態においては、本明細書に記載される方法又は機能性のうちの1つ又は複数を実装するために、例えば、特定用途向け集積回路、プログラマブルロジックアレイ、及び、他のハードウェアデバイスなどの専用のハードウェア実装を構築することができる。様々な実施形態の装置及びシステムを含み得る用途は、広義には、多様な電子及びコンピュータシステムを含み得る。本明細書に記載の1つ又は複数の実施形態は、モジュール間でこれらのモジュールを介して又は特定用途向け集積回路の一部として通信することができる関連する制御及びデータ信号を有する2つ以上の特定の相互接続されたハードウェアモジュール又は装置を使用する機能を実装することができる。したがって、本システムは、ソフトウェア、ファームウェア及びハードウェアの実施形態又はそれらの組合せを包含する。
【0054】
コンピュータ可読媒体は、単一の媒体であるように示されているが、「コンピュータ可読媒体」という用語には、集中型又は分散型のデータベースなどの単一の媒体又は複数の媒体、及び/又は、1つ又は複数の命令のセットを格納する関連するキャッシュ及びサーバが含まれる。また、「コンピュータ可読媒体」という用語には、プロセッサによって実行するための命令のセットを格納若しくは符号化し得る任意の媒体、又は、コンピュータシステムに、本明細書に開示された方法又は機能性の任意の1つ又は複数を実施させるための任意の媒体も含まれる。
【0055】
いくつかの実施形態においては、コンピュータ可読媒体のいくつか又は全部が非一時的媒体となる。特定の非限定的な例示的な実施形態においては、コンピュータ可読媒体は、メモリカードあるいは1つ又は複数の不揮発性読み出し専用メモリを収容する他のパッケージなどのソリッドステートメモリを含み得る。さらに、コンピュータ可読媒体は、ランダムアクセスメモリ又は他の揮発性再書き込み可能メモリであり得る。付加的に、コンピュータ可読媒体は、伝送媒体を介して通信される信号などの搬送波信号を捕捉するために、ディスク又はテープ又は他のストレージデバイスなどの光磁気媒体又は光学媒体を含み得る。
【0056】
例示的な実施形態を上述してきたが、これらの実施形態は、特許請求の範囲によって包含されるすべての可能な形態の説明を意図したものではない。本明細書において使用されている用語は、限定のためよりもむしろ説明のための用語であり、本開示の精神及び範囲から逸脱することなく、様々な変更が可能であることが理解されよう。前述したように、様々な実施形態の特徴は、明示的には説明又は図示されていない場合がある本発明のさらなる実施形態を形成するために組み合わせることができる。様々な実施形態は、1つ又は複数の所望の特性に関して、他の実施形態若しくは従来の実装を凌ぐ利点を提供するものとして又はより好ましいものとして説明することができるものであるが、当業者には、特定の用途及び実装に応じて、所望の総合的システム属性を達成するために、1つ又は複数の特徴又は特性が妥協可能なものであることが認識される。これらの属性は、強度、耐久性、市場性、外観、包装、サイズ、保守性、重量、製造性、組立ての容易さなどを含み得るが、それらに限定されるものではない。したがって、1つ又は複数の特性に関しては他の実施形態又は従来の実装よりも望ましくないものとして説明されている実施形態は、本開示の範囲から外れるものではなく、特定の用途については望ましいものとなる可能性もある。
【手続補正書】
【提出日】2024-09-04
【手続補正1】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【外国語明細書】