Random-Generation

具有行和列長度約束的隨機矩陣

  • October 27, 2011

我需要生成隨機非方陣 $ R $ 行和 $ C $ 列,元素以零均值隨機分佈,並受到約束,使得長度 ( $ L_2 $ 規範)的每一行是 $ 1 $ 每列的長度是 $ \sqrt{\frac{R}{C}} $ . 等效地,平方值之和為 $ 1 $ 對於每一行和 $ \frac{R}{C} $ 對於每一列。

到目前為止,我找到了一種方法來實現這一點:簡單地隨機初始化矩陣元素(例如,從均值為零和任意方差的均勻、正態或拉普拉斯分佈),然後交替地將行和列標準化為長度 $ 1 $ ,以行規範化結束。這似乎很快收斂到預期的結果(例如 $ R=40 $ 和 $ C=80 $ , 列長的方差通常為 ~ $ ~0.00001 $ 後 $ 2 $ 迭代),但我不確定我是否可以依賴這種快速收斂速度(對於各種矩陣維度和初始元素分佈)。

我的問題是:有沒有辦法達到預期的結果(行長 $ 1 $ , 列長 $ \sqrt{\frac{R}{C}} $ ) 直接在行/列標準化之間不進行迭代?例如,用於規範化隨機向量的算法(隨機初始化元素,測量平方和,然後通過公共標量縮放每個元素)。如果沒有,是否有收斂速度的簡單表徵(例如,迭代次數直到錯誤 $ < \epsilon $ ) 上面描述的迭代方法?

正如@cardinal 在評論中所說:

實際上,經過一番思考,我認為您的算法正是Sinkhorn-Knopp 算法,只是做了很小的修改。讓成為你的原始矩陣,讓是一個相同大小的矩陣,使得. 然後,您的算法相當於將 Sinkhorn-Knopp 應用於,在最後一步,您可以通過以下方式恢復所需的形式. Sinkhorn-Knopp 保證收斂,除非在非常病態的情況下。閱讀它應該非常有幫助。

…似乎我在原始問題中建議的迭代算法與 Sinkhorn-Knopp 算法非常相似。有趣的是,它似乎也與迭代比例擬合(IPF) 非常相似,正如 IPF 維基百科頁面上所述,它與牛頓方法和期望最大化(都具有相同的限制)有關。

這些迭代方法通常應用於缺乏封閉形式解決方案的問題,因此我將暫時假設該問題的答案是否定的:沒有行/列迭代就無法獲得所需的解決方案。

引用自:https://stats.stackexchange.com/questions/17633

comments powered by Disqus