购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.17 一个与机器学习相关的应用:寻找超椭圆的轴

在机器学习领域,高维空间中椭圆(又称超椭圆)的概念会频繁出现。这里,我们会回顾并重新探讨这些概念。

回想一下高中数学中椭圆的方程:

这是一个简单的二维椭圆,中心位于原点,它的长轴和短轴与坐标轴对齐。如果将位置向量表示为 ,则该方程可以重写为

x T Λx = 1

其中 是一个对角矩阵,这种表达方式可以推广到 n 维,表示一个以原点为中心、长轴和短轴与坐标轴对齐的 n 维椭圆。现在让我们对坐标轴应用一个旋转变换 R 。则每个向量 x 会变换为 Rx 。在旋转后的坐标系中,新的椭圆方程为

Rx T Λ R x )= 1

x T R T ΛR x = 1

其中 A =( R T ΛR )。

综上,椭圆的广义方程可以表示为

x T Ax = 1

请注意以下几点:

·椭圆不再与坐标轴对齐。

·矩阵 A 不再是对角矩阵。

· A 是对称的。我们可以很容易地验证 A T =( R T ΛR T = R T Λ T R = R T ΛR (请记住,对角矩阵的转置是它本身)。

此外,如果还想摆脱“以原点为中心”的假设,我们将得到

现在让我们反过来思考这个问题。假设我们有一个一般的 n 维椭圆。我们该如何计算它的轴的方向?

显然,如果我们可以旋转坐标系,使得中间的矩阵变为对角矩阵,那么问题便迎刃而解了。因此,对角化方法(见2.15节)就是我们所需要的解决方案。具体来说,我们需要构建一个旋转矩阵 S ,其列由 A 的特征向量组成,又因为 A 是对称的,所以 S 是正交的。我们通过应用这个矩阵来变换(旋转)坐标系。在这个新的坐标系中,椭圆的轴与坐标轴是对齐的。换句话说,新的坐标轴既是 A 的特征向量,也是椭圆的轴。

超椭圆的PyTorch代码实现

让我们尝试找到方程5 x 2 +6 xy +5 y 2 =20所描述的超椭圆的轴。注意,虽然为了便于可视化,示例中实际使用的椭圆是二维的,但我们开发的代码具有通用性,可以扩展到多维空间。

通过使用矩阵和向量,该椭圆方程可以表示为 x T Ax =1,其中,

为了找到超椭圆的轴,我们需要转换坐标系,以使中间的矩阵变为对角矩阵。以下为具体的实现方法:如果将矩阵 A 对角化为 SΣS -1 ,那么椭圆方程就变成了 x T SΣS -1 x =1,其中 Σ 是一个对角矩阵。由于 A 是对称的,其特征向量是正交的。因此,将这些特征向量作为列的矩阵也是正交的,即 S -1 = S T 。换句话说, S 是一个旋转矩阵。所以,椭圆方程变为 x T SΣS T x =1或( x T S Σ S T x )=1或 y T Σy =1,其中 y = S T x 。这是我们期望的形式,因为 Σ 是一个对角矩阵。记住, S 是一个旋转矩阵。因此,通过 S 旋转坐标系,可以使坐标轴与椭圆的轴对齐。具体实现代码如代码清单2.21所示。

代码清单2.21 超椭圆的轴

图2.16 注意椭圆的长轴与 X 轴成45°夹角。通过将坐标系旋转45°,可以使椭圆的轴与坐标轴对齐。相应地,第一个主向量也将沿着该方向 IAcTrbcKEgSSyl9svsBtBpdNB95CVqQPqCC073vLYh11j2ZW5ZY9stCEe0Ty2xDm

点击中间区域
呼出菜单
上一章
目录
下一章
×