学习笔记DL007:Moore-Penrose伪逆,迹运算,行列式,主成分分析PCA

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Moore-Penrose伪逆(pseudoinverse)。

非方矩阵,逆矩阵没有定义。矩阵A的左逆B求解线性方程Ax=y。两边左乘左逆B,x=By。可能无法设计唯一映射将A映射到B。矩阵A行数大于列数,方程无解。矩阵A行数小于列数,矩阵有多个解。

矩阵A的伪逆A + =lim a->0 (A T A+aI) -1 A T。计算伪逆公式,A + =VD + U T。矩阵U、D、V是矩阵A奇异值分解得到矩阵。对角矩阵D伪逆D + 是非零元素取倒数后再转置。矩阵A列数多于行数,伪逆求解线性方程是可能解法。x=A + y是方程所有可行解中欧几里得范数||x|| 2 最小。矩阵A行数多于列数,没有解。伪逆得到x使得Ax和y的欧几里得距离||Ax-y|| 2 最小。

迹运算。

返回矩阵对角元素和,Tr(A)=Sum i A i,i 。通过矩阵乘法和迹运算符号清楚表示矩阵运算。描述矩阵Frobenius范数,||A|| F =SQRT(Tr(AA T ))。迹运算在转置运算下不变,Tr(A)=Tr(A T )。多个矩阵相乘方阵迹,矩阵最后一个挪到最前面相乘迹相同。需考虑挪动后矩阵乘积定义良好,Tr(ABC)=Tr(CAB)=Tr(BCA),Tr(PRODUCT(n,i=1,F (i) ))=Tr(F (n) PRODUCT(n-1,i=1,F (i) ))。循环置换后矩阵乘积矩阵形状变了,迹运算结果依然不变。矩阵A ELEMENT(R mn ),矩阵B ELEMENT(R nm ),得到 Tr(AB)=Tr(BA)。AB ELEMENT(R mm ),BA ELEMENT(R nn )。标量在迹运算后仍是自己,a=Tr(a)。

行列式。

det(A),方阵A映射到实数函数。行列式等于矩阵特征值的乘积。行列式绝对值衡量矩阵参与矩阵乘法后空间扩大或缩小多少。行列式是0,空间沿着某一维完全收缩,失去所有体积。行列式是1,转换保持空间体积不变。

主成分分析(principal components analysis,PCA)。

简单机器学习算法,基础线性代数知识推导。R n 空间有m个点{x (1) ,…,x (m) },有损压缩,用更少内存,损失精度存储。希望损失精度尽可能少。低维表示,每个点x (i) ELEMENT(R n ),一个对应编码向量c (i) ,按比例放大D :,i ,保持结果不变。为问题有唯一解,限制D所有列向量有单位范数。计算解码器最优编码困难。PCA限制D列向量彼此正交(除非l=n,严格意义D不是正交矩阵)。

想法变算法。明确每一个输入x得到一个最优编码c * 。

最小化原始输入向量x和重构向量g(c * )间距离。范数衡量距离。PCA算法,用L 2 范数,c * =argmin c ||x-g(c)|| 2 。用平方L 2 范数替代L 2 范数。相同值c上取得最小值。L 2 范数非负。平方运算在非负值上单调递增。c * =argmin c ||x-g(c)|| 2 2 。最小化函数简化,(x-g(c)) T (x-g(c))。L 2 范数定义,=x T x-x T g(c)-g(c) T x +g(c) T g(c)。分配律,=x T x-2x T g(c)+g(c) T g(c)。标量g(c) T x转置等于自己。第一项x T x 不依赖c,忽略,优化目标,c * =argmin c -2x T g(c)+g(c) T g(c)。代入g(c),c * =argmin c -2x T Dc+c T D T Dc=argmin c -2x T Dc+c T I l c。矩阵D正交性和单位范数约束,=argmin c -2x T Dc+c T c。

向量微积分求解最优化,NABLA(c, (-2x T Dc+c T c))=0,-2D T x+2c=0,c=D T x。算法高效。最优编码x只需要一个矩阵-向量乘法操作。编码向量,编码函数,f(x)=D T x。矩阵乘法,定义PCA重构操作,r(x)=g(f(x))=DD T x。挑选编码矩阵D。相同矩阵D对所有点解码,不能孤立看待每个点。最小化所有维数和所有点上的误差矩阵Frobenius范数。D * =argmin D SQRT(SUM(i,j,(x (i) j -r(x (i)) j )) 2 )subject to D T D=Il。推导寻求D * 算法,l=1,D是单一向量d。简化D为d,问题简化。d * =argmin d SUM(i,||x (i) -dd T x (i) || 2 2 )subject to ||d|| 2 =1。最美观方式。标量d T x (i) 放在向量d右边。标量放在左边写法更传统。d * =argmin d SUM(i,||x (i) -d T x (i) d|| 2 2 )subject to ||d|| 2 =1。标量转置和自身相等。d * =argmin d SUM(i,||x (i) -x (i) T dd|| 2 2 )subject to ||d|| 2 =1。重排写法。

单一矩阵重述问题。更紧凑符号。表示各点向量堆叠成矩阵。记X ELEMENT(R m*n )。X i,: =x (i) T 。重新表述,d * =argmin d ||X-Xdd T || 2 F subject to d T d=1。不考虑约束,Frobenius范数简化。argmin d ||X-Xdd T || 2 F 。=argmin d Tr((X-Xdd T ) T (X-Xdd T ))。=argmin d Tr(X T X-X T Xdd T -dd T X T X+dd T X T Xdd T )。=argmin d Tr(X T X)-Tr(X T Xdd T )-Tr(dd T X T X)+Tr(dd T X T Xdd T )。=argmin d -Tr(X T Xdd T )-Tr(dd T X T X)+Tr(dd T X T Xdd T )。与d无关项不影响argmin,=argmin d -2Tr(X T Xdd T )+Tr(dd T X T Xdd T )。循环改变迹运算相乘矩阵顺序不影响结果,=argmin d -2Tr(X T Xdd T )+Tr(X T X T Xdd T dd T )。考虑约束条件。argmin d -2Tr(X T Xdd T )+Tr(X T X T Xdd T dd T )subject to d T d=1。=argmin d -2Tr(X T Xdd T )+Tr(X T X T Xdd T )subject to d T d=1。=argmin d -Tr(X T X T Xdd T )subject to d T d=1。=argmax d Tr(X T X T Xdd T )subject to d T d=1。=argmax d Tr(d T X T X T Xd)subject to d T d=1。优化问题,特征分解求解。最优d是X T X最大特征值对应特征向量。

以上推导特定于l=1情况,仅得到第一个主成分。得到主成分的基时,矩阵D由前l个最大特征值对应特征向量组成。归纳法证明。

参考资料:

《深度学习》

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

我有一个微信群,欢迎一起学深度学习。

转载于:https://my.oschina.net/u/3482787/blog/1577672

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql40题_mysql40题

一、表关系请创建如下表,并创建相关约束导入现有数据库数据:/*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version :50624Source Host : localhostSource Database : sqlexamTarget Server Type :…

ubuntu取消主目录加密_如何在Ubuntu上恢复加密的主目录

ubuntu取消主目录加密Access an encrypted home directory when you’re not logged in – say, from a live CD – and all you’ll see is a README file. You’ll need a terminal command to recover your encrypted files. 当您未登录时(例如,从实时CD)访问加密…

select 和epoll模型区别

1.select 和epoll模型区别 1.1.网络IO模型概述 通常来说,网络IO可以抽象成用户态和内核态之间的数据交换。一次网络数据读取操作(read),可以拆分成两个步骤:1)网卡驱动等待数据准备好(内核态&…

python数据结构与算法第六讲_Python 学习 -- 数据结构与算法 (六)

栈 是一种 “操作受限”的线性表,只允许在一端插入和删除数据。从功能是上来说,数组和链表确实可以替代栈,但是特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口,操作上的确灵活自由…

spring-springmvc code-based

idea设置maven在下载依赖的同时把对应的源码下载过来。图0:1主要实现零配置来完成springMVC环境搭建,当然现在有了springBoot也是零配置,但是很多同仁都是从spring3.x中的springMVC直接过渡到springBoot的,spring3.x的MVC大部分都…

powershell 入门_使用PowerShell入门的5个Cmdlet

powershell 入门PowerShell is quickly becoming the preferred scripting language and CLI of Power Users as well as IT Pros. It’s well worth learning a few commands to get you started, so we’ve got 5 useful cmdlets for you to learn today. PowerShellSwift成为…

Part 3: Services

介绍 在第3部分中,我们将扩展应用程序并启用负载平衡。为此,我们必须在分布式应用程序的层次结构中提升一个级别:服务。 StackServices (你在这里)Container (涵盖在第2部分中)关于服务 在分布式应用程序中,应用程序的不同部分被称为“服务”…

mysql ldf文件太大_Linux_数据库清除日志文件(LDF文件过大),清除日志: 复制代码 代码如 - phpStudy...

数据库清除日志文件(LDF文件过大)清除日志:复制代码 代码如下:DECLARE LogicalFileName sysname,MaxMinutes INT,NewSize INTUSE szwzcheck -- 要操作的数据库名SELECT LogicalFileName szwzcheck_Log, -- 日志文件名MaxMinutes 10, -- Limit on time allowed to …

emwin之错误使用控件函数导致死机现象

2018-10-15 导致死机的代码示例如下 1 /**2 * brief widget ID define3 * {4 */5 6 #define ID_WINDOW_0 (GUI_ID_USER 0x00)7 #define ID_TEXT_0 (GUI_ID_USER 0x01)8 #define ID_TEXT_1 (GUI_ID_USER …

diy感应usb摄像头拍照_DIY无线感应充电器

diy感应usb摄像头拍照Courtesy of Instructables user Inducktion shares a very detailed tutorial on how to build a wireless power charger. He explains the impetus behind the project: 由Instructables用户提供Inducktion分享了有关如何构建无线电源充电器的非常详细…

ubuntu7.10安装到3D开启

累了好几天,重装了十几遍终于把ubuntu7.10搞定到了我自认为完美的状态了。现在总结一下安装过程(按操作顺序记录):1.在xp下不管用pqmajac还是其他硬盘分区工具分出10G的空余分区来(实验阶段10G尝试下)&…

初学者对python的认识_Python初学者列表,python,初识

1.认识列表列表可以放入所有我们目前学习过的数据类型,甚至包括列表2.有关列表的方法、内置函数(设列表的名称为list)向列表中添加元素:append():list.append(要添加的元素),注意每次只能添加一个元素,被添加的元素自动…

常用模块之 time,datetime,random,os,sys

time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。1970年之前的日期无法以此表…

使用aSpotCat控制您的Android应用权限

Viewing the permissions of each installed Android app requires digging through the Manage Applications screen and examining each app one by one — or does it? aSpotCat takes an inventory of the apps on your system and the permissions they require. 要查看每…

xtrabackup备份mysql“ib_logfile0 is of different”错误分析

今天用xtrabackup工具完整备份mysql数据库的时候出现“./ib_logfile0 is of different”错误,具体的日志信息如下: 我第一时间查询了百度和谷歌都没有找见相对应的答案。决定从错误日志入手,上面的日志提示说:mysql数据库inondb的日志文件的大…

java socket 报文解析_java socket解析和发送二进制报文工具(附java和C++转化问题)

解析:首先是读取字节:/*** 读取输入流中指定字节的长度* * 输入流**paramlength 指定长度*return指定长度的字节数组*/public static byte[] readBytesFromTo(byte[] buffer, int from, intlength) {byte[] sub new byte[length];int cur 0;for (int i from; i < length …

Ubuntu防火墙:ufw

原始linux的防火墙是iptables&#xff0c;以为过于繁琐&#xff0c;各个发行版几乎都有自己的方案; ubuntu下的防火墙是ufw[ubuntu fireward的缩写]&#xff0c;centos的防火墙是fireward ubuntu下&#xff1a; 启用或者关闭防火墙 sudo ufw enable|disable sudo ufw default d…

如何使自己的不和谐机器人

Discord has an excellent API for writing custom bots, and a very active bot community. Today we’ll take a look at how to get started making your own. Discord具有出色的用于编写自定义机器人的API&#xff0c;以及非常活跃的机器人社区。 今天&#xff0c;我们将探…

​css3属性选择器总结

css3属性选择器总结 &#xff08;1&#xff09;E[attr]只使用属性名&#xff0c;但没有确定任何属性值 <p miaov"a1">111111</p> <p miaov"a2">111111</p> p[miaov]{background: red;} /*所有属性为miaov的元素都会被背景变红&a…

java复合赋值运算符_Java 之复合赋值运算符

1.引入问题切入正题&#xff0c;看下面代码&#xff0c;结果应该是怎么样的public class App{public static void main( String[] args ){byte a1 ;int b 10;a ab;System.out.println(a);ab;System.out.println(a);}}这段代码的执行结果是什么&#xff1f;&#xff1f;2. 执行…