【问题标题】:Creating random linearly independent vectors创建随机线性独立向量
【发布时间】:2021-06-17 20:08:47
【问题描述】:

我可以生成一个随机向量

a = torch.rand(10)
>>> tensor([0.6432, 0.7512, 0.8835, 0.4268, 0.7681, 0.4709, 0.2722, 0.0510, 0.8463,
        0.9003])

但是,我怎样才能生成更多 N 个向量(例如 N=5:b,c,d,e,f),它们将线性独立于其他向量(即 a 独立于 b,c,d,e,f 中的任何一个,b 是独立的a,c,d,e,f 等中的任何一个)?

【问题讨论】:

  • 由于你在 10 维空间中工作,你最多可以有 10 个线性独立的向量。几乎任何 10 个随机向量都应该起作用 - 给定 9 个随机向量,其跨度是 10 维空间中的 9 维超平面,第 10 个向量不太可能完全落在该超平面内。
  • 有道理!我只是必须保证它们是线性独立的(这就是为什么我不只生成 10 个随机数)

标签: python pytorch linear-algebra


【解决方案1】:

我可以想到两种方法来实现这一点。但是,它们中的每一个都有一些限制。
对于 n 维 空间,第一种方法是创建 n 个随机向量并使用行列式检查线性独立性。查看here 了解有关该过程的更多信息。

第二种方式是一个一个地生成向量。创建一个随机向量,然后使用this solution,创建一个新的独立向量,然后创建第三个,以此类推。

【讨论】:

  • 完美,谢谢!我使用了第一种方法和行列式,因为 Pytorch 有一个简单的函数来计算它(所以我只需要检查它不是 0)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 2019-05-24
  • 1970-01-01
相关资源
最近更新 更多