Rules for det are not general and likely unstable
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず det、inv、frule、rrule、svd の既存のルールを確認し、次に issue で説明されている LU アプローチと SVD アプローチを比較します。実装前に、det で SVD を使用すべきか、そのルールが疎行列を対象にすべきか、またどのような数値安定性の保証が必要かを解決します。合意された一般的な設計が実装され、その動作が検証されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
A = [1.0 1.0; 1.0 1.0]
det(A) * inv(A)
# ERROR: SingularException(2)
to be fair, the LU approach is remarkably resiliant...
A = [1.0 1.0; 1.0 1.0-1e-16]
det(A) * inv(A)
# 2×2 Matrix{Float64}:
# 1.0 -1.0
# -1.0 1.0
But I am nervous that this is too simple a special case to draw any conclusions.
Either way - it seems to me that an implementation that always works and is guaranteed numerically stable is preferrable. If the maintainers agree, then I would be happy to make a PR and implement frule and rrule via SVD instead of LU.
Questions:
- should the det evaluation then also use SVD, or should it use whichever the standard implementation is?
- should the SVD implementation be only for a specific class of matrices, or general? E.g. I'm unsure about sparse.
- I noticed that there are rules for
svd- I'm guessing this means one will be able to differentate thefruleorrrulebased on SVD?
- 主要言語
- Julia
- スター
- 479
- フォーク
- 100
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 10
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/ChainRules.jl のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
JuliaDiff/ChainRules.jl#863 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
JuliaDiff/ChainRules.jl#818 ·
メンテナーはふだん 1 日以内に返信
-
refactoring
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/ChainRules.jl#815 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
JuliaDiff/ChainRules.jl#810 ·
メンテナーはふだん 1 日以内に返信
-
stack overflow issueオープン
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
JuliaDiff/ChainRules.jl#809 ·
メンテナーはふだん 1 日以内に返信
JuliaDiff/ChainRules.jl の issue をすべて見る
似ている issue
-
backport 1.14 GC
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JuliaDiff/TaylorSeries.jl#445 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
SciML/Optimization.jl#1448 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
SciML/PETScDiffEq.jl#362 ·
メンテナーはふだん 1 日以内に返信
-
dependencies
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
Open-MBEE/OpenSysML#1951 · コメント 3 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信