nxn正交矩阵的自由度是n(n-1)/2,本文讲的是如何由n(n-1)/2个自变量x..构造出任意nxn正交矩阵U=f(x..)。步骤如下:
- 根据极坐标变换公式,在n维单元超球上任取单位向量v1,该向量有n-1个自变量:
2. 由v1构造n-1个互相正交的单位向量h(其中第一列就是v1):
![954003e53c103011b06343dd72708a96.png](https://i-blog.csdnimg.cn/blog_migrate/3917478a7dc76de42480c1ee7079f190.jpeg)
其中第1列是v1,后面n-1列是由v1完全决定,除去第一列,剩下的组成一个H[n,n-1]矩阵。
3. 通过步骤1,2同样再构造一个A[n-1,n-1]大小的正交矩阵,自变量个数n-2个;
4. H*A形成n-1个h向量的正交线性组合,[v1,H*A]构造出所有nxn正交矩阵;
5. A同样由1,2,3,4步骤递归构造,最终形成一个n(n-1)/2个自变量的矩阵方程U=f(x..)。
上述方法由[v1, H1*[v2, H2*[v3, .....[vn]..]连乘生成,H的构造也是2个矩阵的乘积,复杂度为O(n)。
再利用SVD方法,可以构造任意weights,控制其谱范数,应该比现有的spectral normalization/regulation更好,正在尝试,不知bp吃得消不。
转载请注明出处。