行と列の長さに制約があるランダム行列


25

行と列、平均= 0でランダムに分布し、各行の長さ(L2ノルム)がで各列の長さがように制約された要素を持つランダムな非正方行列を生成する必要があります。同様に、平方値の合計は各行で1、各列でです。R1 C1 RRCRC

これまでのところ、これを達成する方法の1つを見つけました。単純に行列要素をランダムに初期化し(たとえば、平均、任意分散がゼロの均一分布、正規分布、またはラプラス分布から)、次に行と列を交互に正規化します、行の正規化で終わる。これは、目的の結果にかなり迅速に収束するようです(たとえば、および場合、列の長さの分散は、回の反復後、通常です)が、この高速収束率に依存できるかどうかはわかりません一般的に(さまざまなマトリックス次元と初期要素分布用)。R = 40 C = 80 0.00001 2length=1R=40C=80 0.000012

私の質問はこれです:目的の結果(、)を直接反復することなく達成する方法はあり行/列の正規化?たとえば、ランダムなベクトルを正規化するアルゴリズムのようなもの(要素をランダムに初期化し、二乗和の値を測定し、共通のスカラーで各要素をスケーリングします)。そうでない場合、上記の反復法の収束率(たとえば、エラーまでのnum回の繰り返し)の簡単な特性評価はありますか?c o l u m n l e n g t h s = row lengths=1 <ϵcolumn lengths=RC<ϵ


1
これはSinkhorn-Knoppアルゴリズムと非常によく似ており、代わりに反復比例近似とも呼ばれます。
枢機

6
また、「ランダム」マトリックスの意味を定義する必要があります。たとえば、説明する手順では、(ほぼ間違いなく)希望する空間で一様にランダム行列を生成しません。
枢機

1
@cardinal良い点。ただし、(行と列の両方をランダムに配置するために)ランダムな置換行列のペアをポスト乗算することにより、少なくともすべてのコンポーネントに対して同一の(限界)分布を実現できることに注意してください。
whuber

1
@whuber:はい。ただし、共同配布は依然として非常に奇妙です。「ポスト乗算」とは、左右に「ポスト収束」を乗算することを意味すると仮定します(たとえば、右に乗算するのではなく)。
枢機

9
実際には、少し考えた後、私はあなたがされるアルゴリズムだと思う正確に非常にマイナーな変更を加えたSinkhorn-Knoppのアルゴリズム。LET元の行列であるとせ同じ大きさ、その結果の行列である。次に、アルゴリズムはSinkhorn-Knoppをに適用することと同等です。最後のステップでは、。Sinkhorn-Knoppは、非常に病的な状況を除いて収束することが保証されています。それを読むことは非常に役立つはずです。Y Y I J = X 2 I J Y X I 、J = S G NX I 、JXYYij=Xij2YX^ij=sgn(Xij)Yij
枢機

回答:


6

@cardinalがコメントで述べたように:

実際には、少し考えた後、私はあなたがされるアルゴリズムだと思う正確に非常にマイナーな変更を加えたSinkhorn-Knoppのアルゴリズム。ましょ元の行列であるとせ同じ大きさ、その結果の行列である。次に、アルゴリズムはSinkhorn-Knoppをに適用することと同等です。最後のステップでは、を使用して目的のフォームを復元します。Sinkhorn-Knoppは、かなり病的な状況を除いて収束することが保証されています。それを読むことは非常に役立つはずです。Y Y I J = X 2 I J Y X I 、J = S G NX I 、JXYYij=Xij2YX^ij=sgn(Xij)Yij

...元の質問で提案した反復アルゴリズムは、Sinkhorn-Knoppアルゴリズムに非常に似ているようです。興味深いことに、IPFウィキペディアのページで説明されているように、ニュートンの方法と期待値の最大化に関連する反復比例フィッティング(IPF)にも非常に似ています(すべて同じ制限があります)。

これらの反復法は、閉じた形式の解決法に欠ける問題にしばしば適用されるため、質問に対する答えは否定的であると暫定的に仮定します。行/列の反復なしに目的の解決法を達成する方法はありません。


(+1)この質問に対する継続的な関心と、独立したフォローアップのため。:
枢機
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.