矩阵分解

罗德里格斯旋转方程推导

戏子无情 提交于 2020-03-08 01:49:41
罗德里格斯旋转方程是从角度和向量计算出相应的旋转矩阵,这个旋转方程在很多方面有重要的应用,这里简要概述一下方程的推导过程。 主要参考资料是维基百科,其实基本上就是翻译一下,自己走一遍这个推导过程,这里把链接贴出来。 维基百科-罗德里格斯方程 推导过程: 整个推导过程都是围绕上面的图片开展的,进行向量推导。 首先,定义向量k是旋转轴的单位矢量,向量v是绕向量k旋转角度θ的任意向量(旋转方向遵循右手定则,图中逆时针)。 使用点乘和叉乘,向量v可以分解成与轴k平行和垂直的分量, $\mathbf{v}=\mathbf{v}_{\parallel}+\mathbf{v}_{\bot}$            (1-1) 与k平行的分量是 $\mathbf{v}_{\parallel}=\left( \mathbf{v}\cdot \mathbf{k} \right) \mathbf{k}$    (1-2) 向量v在k上的向量投影,垂直于k的分量为 $\mathbf{v}_{\bot}=\mathbf{v}-\mathbf{v}_{\parallel}=\mathbf{v}-\left( \mathbf{k}\cdot \mathbf{v} \right) \mathbf{k}=-\mathbf{k}\times \left( \mathbf{k}\times \mathbf{v}

行列式及其应用

吃可爱长大的小学妹 提交于 2020-03-06 15:50:19
行列式 注意   本文参照 M I T MIT M I T 公开课, 可以看成是笔记。 什么是行列式   一个矩阵通常包括很多信息, 比如是否可逆等等。而对于每一个方阵, 都有一个数能够表示关于矩阵的很多信息, 这个数就叫做行列式。(本文从性质入手讲, 推导并不严谨, 不过这些性质都是经过严格证明了的)行列式也可以看做是从矩阵到实数的一个映射。要注意的是只有方阵才有行列式!!! 行列式的表示法   若 A A A 为方阵, 则其行列式可表示为: d e t ( A ) 或 ∣ A ∣ det(A)或\\ \left| A \right| d e t ( A ) 或 ∣ A ∣ 行列式的基本性质   行列式的基本性质有3条, 并且从这三条基本性质能够推出其他性质以及行列式的表达式。下面给出三条基本性质。    ① 单 位 矩 阵 的 行 列 式 为 1 ①单位矩阵的行列式为1 ① 单 位 矩 阵 的 行 列 式 为 1   对于这条性质没有过多的解释, 有点类似于定义, 将单位矩阵映射成为实数中的1, 也符合简便性。    ② 交 换 矩 阵 中 的 任 意 两 行 , 所 得 的 矩 阵 的 行 列 式 符 号 变 号 ②交换矩阵中的任意两行, 所得的矩阵的行列式符号变号 ② 交 换 矩 阵 中 的 任 意 两 行 , 所 得 的 矩 阵 的 行 列 式 符 号 变 号  

推荐系统算法框架

心不动则不痛 提交于 2020-03-05 12:08:24
在介绍矩阵分解之前,先让我们明确下推荐系统的场景以及矩阵分解的原理。对于 推荐系统来说存在两大场景即评分预测(rating prediction)与Top-N推荐 (item recommendation,item ranking)。 评分预测场景主要用于评价网站,比如用户给自己看过的电影评多少分(MovieLens),或者用户给自己看过的书籍评价多少分。其中矩阵分解技术主要应用于该场景。 Top-N推荐场景主要用于购物网站或者一般拿不到显式评分信息的网站,即通过用户的隐式反馈信息来给用户推荐一个可能感兴趣的列表以供其参考。其中该场景为排序任务,因此需要排序模型来对其建模。因此,我们接下来更关心评分预测任务。 Ref: https://zhuanlan.zhihu.com/p/35262187 Ref: https://zhuanlan.zhihu.com/p/27502172 来源: CSDN 作者: 人鱼线 链接: https://blog.csdn.net/qfikh/article/details/104655674

Numpy详解

吃可爱长大的小学妹 提交于 2020-03-02 03:48:59
NumPy 简介 Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量比较大时,使用列表的速度会很慢。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被称作 ndarray 。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。 数据类型 numpy的数据类型有下面的几个 数据类型 描述 bool_ 以字节存储的布尔值(True 或 False) int_ 默认的整数类型(和 C 的 long 一样,是 int64 或者 int32) intc 和 C 的 int 相同(一般为 int64 或 int32) intp 用于下标的整数(和 C 的

海森矩阵介绍及其在机器学习、深度学习中的理解

瘦欲@ 提交于 2020-03-01 19:13:21
海森矩阵(Hessian Matrix) Hessian Matrix:二阶导和函数曲率 海森 & 机器学习 特征值、凸性和鞍点 Key Words: Hessian Matrix, second order derivatives, convexity, and saddle points 原文链接: Hessian, second order derivatives, convexity, and saddle points 翻译: Hessian Matrix:二阶导和函数曲率 回忆一下 f f f 的梯度 f : R n → R f:\mathbb{R}^n \rightarrow \mathbb{R} f : R n → R : f ′ ( x ) = [ δ f δ x 1 , δ f δ x 2 , ⋯   , δ f δ x n ] (1) f'(x) = [\frac{\delta f}{\delta x_1}, \frac{\delta f}{\delta x_2}, \cdots, \frac{\delta f}{\delta x_n} ]\tag{1} f ′ ( x ) = [ δ x 1 ​ δ f ​ , δ x 2 ​ δ f ​ , ⋯ , δ x n ​ δ f ​ ] ( 1 ) 求 f f f 的二阶导意味着,我们可以看到第 i i i

波束形成算法综述

白昼怎懂夜的黑 提交于 2020-03-01 16:32:34
作者:凌逆战 地址: https://www.cnblogs.com/LXP-Never/p/12051532.html 波束成型 (Beamforming)又叫 波束赋形 、 空域滤波 作用 :对多路麦克风信号进行合并处理, 抑制非目标方向 的干扰信号, 增强目标方向 的声音信号。 原理 :调整相位阵列的基本单元参数,使得某些角度的信号获得相长干涉,而另一些角度的信号获得相消干涉。对各个阵元输出信号加权求和、滤波,最终输出期望方向的语音信号,相当于形成一个“波束”。 远场 :由于信号源到阵列的距离远大于阵元间距, 不同阵元接收信号的 幅度差异较小 ,因此把不同阵元采集的语音信号的幅值认为都是一样的,只需对各阵元接收信号的 相位差异 进行处理即可。 近场 :不同阵元 接收到的信号幅度 受信号源到各 阵元距离差异 的影响非常明显,需考虑信号源到达不同阵元的 波程差 。 问题: 通常的阵列处理多为窄带,使得传统的窄带信号处理方法的缺点逐渐显现出来。语音信号的频率范围为300~3400Hz,没有经过调制过程,且高低频相差比较大,不同阵元的相位延时与声源的频率关系密切,使得现有的窄带波束形成方法不再适用 信噪比比较低和混响影响比较高的环境下难以准确估计波达方向 传统的后置滤波只考虑散射噪声或只从波束形成后的单通道输出中估计噪声不足 根据 获取加权矢量时采用的方法 不同

矩阵的范数

淺唱寂寞╮ 提交于 2020-03-01 08:48:16
向量的范数在 这里 某百科已经说得清楚,矩阵A的1范数就是列和范数,2范数就是A^H*A的最大特征值的开方,无穷大范数就是行和范数 在我用python验证时遇到了一些基础问题:特征值分解后想验证下是否正确,结果验证错误。 详见这里 python里面有非常简单的实现,不再赘述 np.linalg.norm() 另外有相关问题可以加入QQ群讨论,不设微信群 QQ群:868373192 语音图像视频深度-学习群 来源: CSDN 作者: SpeechImageKing 链接: https://blog.csdn.net/SPESEG/article/details/104565933

SVD 奇异值分解与word embedding

血红的双手。 提交于 2020-02-29 22:21:35
在研究NLP的过程中,遇到了word embedding, 经过一系列学习,发现它最初的原理之一来自奇异值分解。于是对奇异值分解做一个简单的记录。 资料中比较好的资料: https://www.cnblogs.com/endlesscoding/p/10033527.html 原理讲解简单,demo做的十分好! https://www.cnblogs.com/litaotao-doctor/p/5320521.html 这篇把特征值和奇异值放在一起讲,十分到位。 看完上面的资料后,我觉得自己没必要记录公式原理了,自惭形秽。好,下面开始: SVD: Sigular Value Decomposition 个人认为奇异值和特征值应该可以有相同的理解,这里我们先谈特征值: 特征值的定义为对矩阵A存在特征值 λ,特征向量x,使下式成立: 而对A的所有特征值,我们称为A的谱,记为λ(A)。 那么我们该如何理解这个式子? 有几个相关的关系可以给我们参考:矩阵A的秩不小于A的非零特征值数;如果矩阵A不满秩,则一定存在0特征值;若矩阵A可对角化,则rankA = A的非零特征值数。 也就是说 矩阵的特征值与矩阵的线性相关性是有关系的。 则我们对特征值的理解可以为: 任意矩阵A对向量x的矩阵乘法,可以理解为对x向量的表换(旋转、平移、缩放),那么Ax可以理解为一次表换,而特征值λ与x的相乘

量化投资学习笔记28——《Python机器学习应用》课程笔记02

时光怂恿深爱的人放手 提交于 2020-02-28 19:48:53
降维 PCA算法及其应用 主成分分析(PCA),通常用于高维数据的探索与可视化。可以拔具有相关性的高维变量转化为线性无关的低维变量。称为主成分,能够尽可能保存原始数据的信息。 几个概念 方差:样本与样本均值的差的平方和的均值,用来度量一组数据的分散程度。 协方差:用于度量两个变量的线性相关程度。 特征向量:描述数据集结构的非零向量。 原理:矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应特征值排序,分为第一主成分,第二主成分,以此类推。 在sklearn中使用decomposition模块中的PCA进行降维。 实例,用PCA将鸢尾花数据进行降维,可视化。 代码见: https://github.com/zwdnet/MyQuant/blob/master/26/PCAtest.py 非负矩阵分解(NMF) 是在矩阵中所有元素均为非负数约束条件下的矩阵分解方法。 基本思想:给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个非负矩阵H,使得二者的乘积近似等于矩阵V中的值。 W矩阵,从原矩阵V中提取的特征。 H矩阵,系数矩阵。 分解目标,最小化W与H乘积与V的差异。 在sklearn中使用decomposition模块中的NMF进行分解。 实例,用NMF进行人脸图像数据集Olivetti特征提取。 代码见: https://github.com/zwdnet/MyQuant

对于SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS的理解

情到浓时终转凉″ 提交于 2020-02-28 13:42:19
SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS的理解笔记总结 文章目录 SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS的理解笔记总结 前言 必备知识: GCN(Graph Convolutional network) 对于卷积核gθ​的定义 关于论文的2 (FAST APPROXIMATE CONVOLUTIONAS ON GRAPHS) 关于论文的2.1(SPECTRAL GRAPH CONVOLUTIONS) 关于论文2.2(lAYER-WISE LINEAR MODEL) 关于论文3.1(EXAMPLE) 部分代码 Reference 前言 在学习semi-supervised classification with graph convolutional networks之前,我认真的查阅了关于GCN(Graph Convolutional Networks)的知识,并且认为很有必要(对于像我这种小白, 去先了解清楚关于GCN的知识 ),这篇论文是基于前人的研究结果提出的新的方法。 因为是从零开始学,对于理解有误的地方欢迎大家指正! 必备知识: GCN(Graph Convolutional network)