矩阵乘以其矩阵转置「建议收藏」

矩阵乘以其矩阵转置「建议收藏」在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

大家好,又见面了,我是你们的朋友全栈君。

在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。

1.假设矩阵A是一个 m ∗ n m*n mn 矩阵,那么
A ∗ A T A*A^T AAT 得到一个 m ∗ m m*m mm 矩阵, A T ∗ A A^T*A ATA 得到一个 n ∗ n n*n nn 的矩阵,这样我们就能得到一个方矩阵。
看一个例子:

X θ = H X \theta =H Xθ=H 求解 θ \theta θ.
X T X θ = X T H X^TX\theta =X^TH XTXθ=XTH 这个矩阵X我们不能确定是否是方矩阵,所以我们在其左侧同时乘以X矩阵的转置,这样 就在 θ \theta θ 的左侧得到一个方矩阵。
( X T X ) − 1 X T X θ = ( X T X ) − 1 X T H (X^TX)^{-1}X^TX\theta =(X^TX)^{-1}X^TH (XTX)1XTXθ=(XTX)1XTH 再在等式的两边乘以 X T X X^TX XTX的逆,就变成了单位矩阵 I I I θ \theta θ相乘,这样我们就得到了 θ \theta θ的解:
θ = ( X T X ) − 1 X T H \theta=(X^TX)^{-1}X^TH θ=(XTX)1XTH

2.对称矩阵
如果方阵A满足 A T = A A^T=A AT=A,就称A为对称矩阵。
假设 A = X T X A=X^TX A=XTX,A的转置 A T = ( X T X ) T = X T X = A A^T=(X^TX)^T=X^TX=A AT=(XTX)T=XTX=A,所以我们可以说 ( X T X ) (X^TX) (XTX)是一个对称矩阵。对称矩阵的特征向量两两正交。 1

3.奇异值分解(SVD)
我们可以用与A相关的特征分解来解释A的奇异值分解。A的左奇异向量是 A A T AA^T AAT的特征向量,A的右奇异向量是 A T A A^TA ATA的特征向量,A的非零奇异值是 A T A A^TA ATA特征值的平方根,同时也是 A A T AA^T AAT特征值的平方根。 2

Reference:


  1. https://blog.csdn.net/BingeCuiLab/article/details/47209037 ↩︎

  2. Goodfellow I, Bengio Y, Courville A, et al. Deep learning[M]. Cambridge: MIT press, 2016. ↩︎

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147360.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++解决大整数乘法

    c++解决大整数乘法c++解决大整数乘法问题描述:求两个不超过200位的非负整数的积输入数据:输入有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求:输出只一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么不能输出0342。输入样例:1234567890098765432100输出样例:1219326311126352690000解题思路:采用列乘法竖式的求解思路,采用数组…

    2022年6月2日
    43
  • 135首经典欧美歌曲 —附下载地址

    135首经典欧美歌曲 —附下载地址135首经典欧美歌曲—附下载地址(2011-03-1212:52:14)转载▼标签:杂谈分类:转载精选源自张海峡新浪博客:http://blog.sina.com.cn/zhanghaixiaf

    2022年7月2日
    40
  • java 当前时间格式化(java格式化数字)

    实现日期的格式化,需要用到类:java.text.DateFormatDateFormat没有可以直接使用的构造函数,一般使用DateFormate的子类—java.text.SimpleDateFormat完成构造.publicSimpleDateFormat(Stringpattern)测试代码importjava.text.DateFormat;importjava.text….

    2022年4月10日
    143
  • PHPer面试指南-php 篇(二)「建议收藏」

    PHPer面试指南-php 篇(二)

    2022年2月11日
    52
  • spring boot 系列之一:spring boot 入门

    最近在学习springboot,感觉确实很好用,开发环境搭建和部署确实省去了很多不必须要的重复劳动。接下来就让我们一起来复习下。一、什么是springboot?springboot是干嘛

    2022年2月16日
    37
  • 1. C语言—输出格式大全[通俗易懂]

    1. C语言—输出格式大全[通俗易懂]1.C语言—输出格式大全#include<stdio.h>intmain(){ //1.整形输出 inta=298;//输出十进制用%d printf(“1.十进制: a=%d\n”,a);//只能采用英文双引号格式,不能用单引号 //2.输出八进制用%o printf(“2.八进制:a=%o\n”,a); //3.使用%#o,可以输出八进制数的前导符(在八进制数前面加一个0,用来标识八进制数), printf(“3.前导

    2022年7月24日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号