详细内容或原文请订阅后点击阅览
五种最小二乘法(使用 torch)
了解 torch 的 linalg 模块,同时学习从头开始进行最小二乘回归的不同方法。这篇文章是即将由 CRC Press 出版的《深度学习和科学计算与 R torch》一书中相应章节的精简版。
来源:RStudio AI博客注意:这篇文章是即将出版的书《使用 R torch 进行深度学习和科学计算》第三部分一章的精简版。第三部分致力于深度学习以外的科学计算。在整本书中,我专注于底层概念,努力以尽可能“口头”的方式解释它们。这并不意味着跳过方程式;而是意味着小心解释为什么它们是这样的。
注意:这篇文章是即将出版的书《使用 R torch 进行深度学习和科学计算》第三部分一章的精简版。第三部分致力于深度学习以外的科学计算。在整本书中,我专注于底层概念,努力以尽可能“口头”的方式解释它们。这并不意味着跳过方程式;而是意味着小心解释为什么它们是这样的。如何计算线性最小二乘回归?在 R 中,使用 lm();在 torch 中,有 linalg_lstsq()。
lm()
torch
linalg_lstsq()
R 有时会向用户隐藏复杂性,而像 torch 这样的高性能计算框架往往要求用户在前期付出更多努力,无论是仔细阅读文档,还是尝试一些方法,或者两者兼而有之。例如,这是 linalg_lstsq() 的核心文档,详细说明了该函数的驱动程序参数:
torch
linalg_lstsq()
driver
`driver` 选择将使用的 LAPACK/MAGMA 函数。对于 CPU 输入,有效值为 'gels'、'gelsy'、'gelsd、'gelss'。对于 CUDA 输入,唯一有效的驱动程序是 'gels',它假设 A 是满秩的。要在 CPU 上选择最佳驱动程序,请考虑: - 如果 A 是条件良好的(其条件数不是太大),或者您不介意一些精度损失: - 对于一般矩阵:“gelsy”(带枢轴的 QR)(默认) - 如果 A 是满秩的:“gels”(QR) - 如果 A 不是条件良好的: - 'gelsd'(三对角线归约和 SVD) - 但如果您遇到内存问题:'gelss'(完整 SVD)。
计划
A