浅谈协方差矩阵(马斯特的斯马特生活)

统计学的基本概念

学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合X=\{​{X_{1},\ldots,X_{n}}\},依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

均值:\bar{X}=\frac{\sum_{i=1}^n  X_{i}}{n}
标准差:s=\sqrt{\frac{\sum_{i=1}^n (X_{i}-\bar{X})^2}{n-1}}
方差:s^2=\frac{\sum_{i=1}^n (X_{i}-\bar{X})^2}{n-1}

很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

为什么需要协方差?

上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

var(X)=\frac{\sum_{i=1}^n (X_{i}-\bar{X})(X_{i}-\bar{X})}{n-1}

来度量各个维度偏离其均值的程度,标准差可以这么来定义:

cov(X,Y)=\frac{\sum_{i=1}^n (X_{i}-\bar{X})(Y_{i}-\bar{Y})}{n-1}

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

从协方差的定义上我们也可以看出一些显而易见的性质,如:

1. cov(X,X)=var(X)
2. cov(X,Y)=cov(Y,X)

协方差多了就是协方差矩阵

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算\frac{n!}{(n-2)!*2}个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

C_{n\times n}=(c_{i,j},c_{i,j}=cov(Dim_{i},Dim_{j}))

这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有\{x,y,z\}三个维度,则协方差矩阵为

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

Matlab协方差实战

上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

1
MySample = fix(rand(10,3)*50)

根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

1
2
3
dim1 = MySample(:,1);
dim2 = MySample(:,2);
dim3 = MySample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

1
2
3
sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(MySample,1)-1 ) % 得到  74.5333
sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -10.0889
sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -106.4000

搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

1
2
3
std(dim1)^2 % 得到   108.3222
std(dim2)^2 % 得到   260.6222
std(dim3)^2 % 得到   94.1778

这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

1
cov(MySample)

把我们计算的数据对号入座,是不是一摸一样?

Update:今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式通道而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

1
2
X = MySample - repmat(mean(MySample),10,1);    % 中心化样本矩阵,使各维度均值为0
C = (X'*X)./(size(X,1)-1);

总结

理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~

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

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

相关文章

Thrustmaster(图马思特) HOTAS Warthog 疣猪杆 读取按钮数据

我所使用的摇杆是THRUSTMASTER(右下图所示),用于在目标追踪页面进行框选物体(实际应用场景不涉及鼠标键盘,只能使用操作杆进行操作) 1、首先,安装摇杆所需环境,winR输入cmd后&#x…

速魔与图马思特优缺点对比

速魔和图马思特优缺点对比速魔图马思特传动系统直驱双皮带最大力反馈10Nm10Nm工作电压110-240V220-240V功率360W240W快拆50mm/70mm 盘面通用特制优点1.直驱,没有传动装置 2.力反馈更加直接 3.回盘速度更快,输出力度更大,操控好 4.秒换方向盘 …

微软获GPT-3独家授权,OpenAI创始人马斯克:与初衷相悖

萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软获OpenAI GPT-3独家授权,马斯克不高兴了。 就在微软官宣GPT-3后一天,马斯克在社交媒体上吐槽此事:“这看起来像是与‘开放’相悖。OpenAI本质上已经被微软‘控制’了。” 这件事情的起因&…

张俊林:GPT-4 模型会开创哪些新的研究方向?

作者|张俊林知乎 整理|蘑菇先生学习记 分享一篇张俊林老师关于GPT-4模型会开创哪些新的研究方向的回答。 引言 在这个历史性的时刻,回答个问题,留下自己作为历史见证人的足迹。先遵循这个问题的主旨,写两句GPT-4开创了…

OpenAI 发布 GPT-4,有哪些技术上的优化或突破?

作者:张俊林 在这个历史性的时刻,回答个问题,留下自己作为历史见证人的足迹。GPT4的技术报告里很明确地指出了三个新的方向: 第一,LLM最前沿研究的封闭化或小圈子化。 技术报告里说了,出于竞争以及安全等方…

海康威视人证对比设备SDK-C#

SDk下载地址:https://www.hikvision.com/cn/download_more_570.html 本文应用场景:第一次进行人脸身份证的验证方式,之后刷脸即可得到这个用户的信息 调用的SDK为布防门禁事件,以下为流程图和说明 报警回调事件 实际使用&#x…

java调用海康威视人脸识别抓拍

**1.**首先下载官网的sdk开发包,引入HCNetSDK.java,里面定义了很多调用的能力集。 **2.**通过报警回调函数中的黑名单报警这个接口去实现人脸抓拍的。 3.简单来说就是写个类去实现HCNetSDK.FMSGCallBack 然后根据条件函数 case HCNetSDK.COMM_SNAP_MATCH…

对接海康威视平台拿取视频流

创建工具类 public class ArtemisUtil {private static final Logger logger LoggerFactory.getLogger(ArtemisUtil.class);static {ArtemisConfig artemisConfig new ArtemisConfig();artemisConfig.setAppKey("123");artemisConfig.setAppSecret("123"…

读取海康威视摄像头实时显示视频流

提示:文章用于学习记录 文章目录 前言一、设置同一网段二、密码重置三、VLC 读取视频流四、opencv 读取视频流总结 前言 摄像头一般有网线和电源线两个接口,如下图所示, 用网线将摄像头与电脑连接在一起,电源接口连接适配器。 …

海康威视摄像头web端开发

主要方法 1.海康威视Web开发包 这个是海康威视自己开发的web开发包,里面含有一些demo,整体版,分屏版等等。你可以在他的demo基础上进行二次开发,即使是离线只要你的摄像头和电脑都是在同一路由下,都是可以调用的。麻…

海康威视的工业相机的使用经历

单位(和海康是属于一个集团的)某一部门 选择用 NVIDIA JETSON™ TX2 海康威视工业相机 的组合来完成 某检测识别任务,在相机选型前用邮件咨询 海康威视工业相机对 TX2 是否支持,得到海康相关人员的肯定答复。 于是采购了海康威…

海康威视SDK使用总结

海康威视SDK使用总结 公司的项目里使用到海康威视的摄像监控设备,然后项目要求在我们的B/S系统中集成摄像头的播放画面。因此通过和海康威视工作人员的沟通,和网上一些人的文章,实现了在自己的网页里进行预览和回放。 一、海康威视的SDK 海…

海康威视监控摄像头连接电脑教程

文章目录 一.海康威视监控摄像头连接电脑教程 一.海康威视监控摄像头连接电脑教程 官网下载SADP软件:https://www.wolai.com/wM6rWeBrRtrfmMH2BTVUXZ 双击下载的软件进行安装 打开软件,将设备连接到摄像头,便可在软件中搜索到摄像头 选择摄…

公网Web系统集成局域网内海康威视IPC网络摄像机

当摄像头与Web应用系统不在一个网络内时,需要将摄像头接入web系统,这时的接入就是一个比较费钱的事情了,除了需要购买流量费之外还需要购买链路服务费,如果足够有钱,并且对安全要求很高的,可以接入一些现成的第三方平台,价格比如这样: 如果没钱并且有一定的开发能…

远程实时读取海康威视4G网络摄像头视频

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 远程实时读取海康威视4G网络摄像头视频 有用的废话背景 重点步骤总结 有用的废话 购买海康威视4G网络摄像头时,目的是基于RTSP 协议来实时读取视频,并…

海康威视摄像头的多通道rtsp地址格式

海康摄像头的rtsp地址通常格式为: “rtsp://username:password192.168.1.64:554//Streaming/Channels/1” ### 1 代表主流,2代表子流 但在多通道的摄像机,例如红外摄像机,既有rgb图也有红外图,分别在两个通道里&#x…

CVE-2017-7921 海康威视(Hikvision) 摄像头漏洞复现

注:此教程仅供学习参考,不涉及任何以破坏为目的的违法犯罪,个人行为与作者无关。 一、漏洞描述 1.这是一个海康威视摄像头后台管理未授权漏洞,通过构造URL可绕过登录查看监控,检索所有用户和配置文件下载,…

海康威视网络摄像头SDK中Demo的二次开发(运行)

如有问题请邮件联系:2018yinjinjing.cn 我们买回来的网络摄像头可以在官网下载到SDK开发包: 下载下来SDK后我们解压,就可以看到里面包含一些开发文档以及一些Demo示例: 我们点开Demo示例,可以看到里面有各种语言的示例…

关于海康威视sdk与海康威视web的史上最精细的教程 (一)

小伙伴们都在下方留言要开发包 web: https://download.csdn.net/download/qq_35583089/10537585 sdk: https://download.csdn.net/download/qq_35583089/10537610 大家自己下载一下吧。 最近在公司需要在项目里集成海康威视的摄像头,刚开始的时…

OpenCV+海康威视摄像头的实时读取

#OpenCV海康威视摄像头的实时读取 本文由 lonelyrains出品,转载请注明出处。 文章链接: http://blog.csdn.net/lonelyrains/article/details/50350052 之前没想过会有这么多朋友遇到问题,所以建了 qq群1:536898072 qq群2&#…