空间向量

unity Shader 内置函数

家住魔仙堡 提交于 2019-12-03 16:06:51
一、数学内置函数 1、Step(a,x):如果x<a返回0;如果x>或=a返回1 2、Clamp(x,a,b):如果x<a返回a;如果x>b返回b;如果在a和b之间就返回x 3、smoothstep(min,max,x):返回的值为–2*(( x – min )/( max – min ))3 +3*(( x – min )/( max – min ))2 4、lerp(a,b,f):线性插值函数,返回值为(1-f)*a+b*f 5、三角函数sin、cos 6、saturate(x): clamp x to range [0,1]。将x裁剪到0和1之间,大于1取1,小于0取0。在half-lambert中会经常用到 7、normalize(x): return a normalized vector。返回一个归一化的向量。通常在fragment shader中使用 8、dot(x, y): 两个向量的点乘结果。|a||b|cos(a)。光照计算中经常用到 9、mul(x, y): 矩阵乘法,结果依然为一个矩阵。[m, n] [n, q]=>[m,q],前行乘后列。坐标空间转换中经常使用 10、reflect(i, n): 得到反射光线的方向 11、refract(i, n, R): 得到折射光线的方向。需要注意的是入射光线和法线都需要归一化,R为折射率

[转] 理解矩阵

孤人 提交于 2019-12-03 00:08:41
from: https://www.cnblogs.com/marsggbo/p/10144060.html 线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子

【机器学习笔记】自组织映射网络(SOM)

旧街凉风 提交于 2019-12-02 18:44:51
什么是自组织映射? 一个特别有趣的无监督系统是基于 竞争性学习 ,其中输出神经元之间竞争激活,结果是在任意时间只有一个神经元被激活。这个激活的神经元被称为 胜者神经元(winner-takes-all neuron) 。这种竞争可以通过在神经元之间具有 横向抑制连接 (负反馈路径)来实现。其结果是神经元被迫对自身进行重新组合,这样的网络我们称之为 自组织映射(Self Organizing Map,SOM) 。 拓扑映射 神经生物学研究表明,不同的感觉输入(运动,视觉,听觉等)以 有序的方式 映射到大脑皮层的相应区域。 这种映射我们称之为 拓扑映射 ,它具有两个重要特性: 在表示或处理的每个阶段,每一条传入的信息都保存在适当的上下文(相邻节点)中 处理密切相关的信息的神经元之间保持密切,以便它们可以通过短突触连接进行交互 我们的兴趣是建立人工的拓扑映射,以神经生物学激励的方式通过自组织进行学习。 我们将遵循 拓扑映射形成的原则 :“拓扑映射中输出层神经元的空间位置对应于输入空间的特定域或特征”。 建立自组织映射 SOM的主要目标是将任意维度的输入信号模式 转换 为一维或二维离散映射,并以拓扑有序的方式自适应地执行这种变换。 因此,我们通过将神经元放置在一维或二维的网格节点上来建立我们的SOM。更高的尺寸图也是可能的,但不是那么常见。 在竞争性学习过程中,神经元 有选择性地微调

OpenGL学习笔记《七》摄像机

♀尐吖头ヾ 提交于 2019-12-01 10:09:40
  在上一篇写opengl坐标系统的文章中,有提到视图空间(View Space),也可以称之为摄像机空间,即从摄像机角度去观察对象。MVP转换矩阵中,上篇文章给了一个简单的视图矩阵(View Matrix)将世界空间坐标转换到视图空间坐标,即相对于摄像机的坐标。   opengl中实际上并没有直接提供摄像机对象,我们是根据一系列的向量运算在游戏空间中创建了一个摄像机对象,并生成对应的视图矩阵(View Matrix)。   创建一个摄像机对象,我们需要构建对应的坐标体系。首先,我们需要知道我们是从哪里观察/用摄像机拍摄,所以需要确定一个摄像机的坐标。在opengl的右手坐标系下,我们先假定摄像机坐标是cameraPos=(0,0,3),即z轴正方向3个单位的位置;确定了摄像机的位置之后,利用 向量减法 ,我们可以从原点出发得到摄像机的方向,cameraDir = vp - vo,不过我们在这里得到的方向其实是摄像机拍摄方向的反反向;   得到了摄像机方向,再利用一个世界空间内相对于原点的单位向量up=(0,1,0),使用 向量叉乘 ,我们可以得到右轴向量,cameraRight = up x cameraDir;   最后,根据摄像机方向,右轴,再使用 向量叉乘 ,我们可以得到上轴向量,cameraUp = cameraDir x cameraRight;   利用上述得到的方向

为什么要找特征向量?

放肆的年华 提交于 2019-12-01 09:49:36
1. 前情提要 : 向量是空间中的点 矩阵就是空间的映射,比如 y = Ax (x,y均未向量),是将 x 向量在 A 矩阵的作用下映射成 y 向量 左乘矩阵 A 可理解成改变了默认基地 基底改变--> 理解空间扭曲 (动图出处:公众号--meetmath) 2. 正文 来源: https://www.cnblogs.com/KongHuZi/p/11676531.html

攀登传统机器学习的珠峰-SVM (中)

雨燕双飞 提交于 2019-11-30 12:21:36
关于软间隔SVM和非线性SVM,在学习过程中,估计有很多入门的同学会好奇软间隔和硬间隔的区别有没有更合理的解释?软间隔中引入的松弛变量到底是什么?软间隔的优化函数和硬间隔的优化函数化简之后,为什么长得这么类似?有没有更形象的方式来划分软间隔中的支持向量,噪声点和误分类的点?软间隔SVM的代价函数,硬间隔SVM的代价函数和合页损失函数是一致的吗?以及核函数是个什么玩意?核函数的优点到底怎么解释? 下面我将用EM算法的思想去解释软间隔和硬间隔的区别,并用通俗易懂的语言解释松弛变量的几何含义,以及系数C对支持变量的影响。用一张图解释软间隔是怎样区分支持向量,噪声点和误分类的点。对软间隔SVM的代价函数,硬间隔SVM的代价函数和合页损失函数的一致性进行了推导。 之后对特征空间和核函数的核心idea进行了阐述,并分析了核函数的形式来历和那句让人捉摸不透的优点。最后简要介绍了一下几个重要的核函数。 由于文章当中包含很多自己理解的部分,如有不当之处,请多多指正!!! 线性分类SVM面临的问题 在上次课中,我们对线性可分SVM的算法的原理和流程进行了总结,如下图所示,为线性可分的数据集,我们可以采用线性可分的支持向量机,也称为硬间隔支持向量机。 当数据集中参杂了一些噪声,如下图所示,由于参杂了一个红色的噪声点,导致模型学习到的决策边界由下图中的粗虚线移动到了粗实线。 Q1

SVM学习总结

Deadly 提交于 2019-11-29 11:55:45
目录 一、SVM学习回顾 1 线性可分支持向量机与硬间隔最大化 1.1 线性可分支持向量机 1.2 函数间隔和几何间隔 1.3 间隔最大化 (1) 最大间隔分离超平面 (2) 支持向量和间隔边界 1.3 学习的对偶算法 2 线性支持向量机与软间隔最大化 2.1 线性支持向量机 2.2 学习的对偶算法 2.3 支持向量 2.4 合页损失函数 3 非线性支持向量机与核函数 3.1 核技巧 (1) 非线性分类问题 (2) 核函数的定义 (3) 核技巧在支持向量机中的应用 3.2 正定核 3.3 常用核函数 3.4 非线性支持向量机 4 序列最小最优化算法 二、补充 备注 备注1 凸二次规划 备注2 拉格朗日对偶性和KKT条件 备注3 为什么要转化为对偶问题求解 备注4 欧式空间和希尔伯特空间 其他问题 为什么高斯核可以将原始维度映射到无穷维 线性可分SVM、线性SVM和非线性SVM三者的b是否唯一 前言 第一次写博客,有不好的地方请各位多加指教;之前对SVM进行了一些学习,每次学习的时候又感觉很多东西都忘掉了;之前暑假的时候又进行了一次较为详细的学习,想着记录一下,一些笔记也都准备好了,由于若干原因(主要是拖延症晚期)一直拖到现在;本次总结主要是以李航老师的统计学习方法为参考,对书中的思路做一个梳理(因此想要了解或者回顾SVM的话,本文会有一点帮助,如果想仔细学习的话还是要结合

形象理解线性代数(三)——列空间、零空间(核)、值域、特征值(特征向量)、矩阵与空间变换、矩阵的秩

≡放荡痞女 提交于 2019-11-29 10:56:28
这里,我们还是要以 形象理解线性代数(一)——什么是线性变换? 为基础。矩阵对向量的作用,可以理解为线性变换,同时也可以理解为空间的变换,即(m*n)的矩阵会把一个向量从m维空间变换到n维空间。 一、 矩阵的列空间与矩阵的秩以及值域的关系 矩阵的列空间,其实就是矩阵的列所组成的空间 。比如我们考虑一个(3*2)的矩阵 ,他的列空间就是 向量和 向量所能组成的空间。在这里,我们有两个向量,所以矩阵的列秩为2(在两向量线性不想关的情况下,表现在图中即两个向量不共线)。如果共线,那么向量 可以写成 的线性表示,这个时候,这两个向量所张成的空间只能是一条直线,所以秩变成了1。 一个矩阵 中的m和n不能等价于矩阵的秩。矩阵的秩,其实就是矩阵的列空间所张成的空间的维度。 矩阵的秩的意义是列向量所能张成的空间的形状的一种描述,虽然在三维空间中,列向量张成的空间中的任一个向量要用三维坐标来表示,但是并不意味着这个空间是一个三维的体,而是一个面,只不过这个面是带有角度的。 从线性变换的角度理解的值域,其实就是从空间角度理解的矩阵的列空间。 二、矩阵与空间变换 同样我们考虑上面的矩阵 ,言外之意就是把二维空间转化为三维空间。在原二维空间中的一个向量 ,经过矩阵A变换后,可以写成: ,即 向量和 向量的线性组合。两个向量(不共线)只能组成平面,而不能形成一个立方体。也就是说,输入 的定义域是一个二维平面

线性代数(五) :子空间及向量张成的空间

风格不统一 提交于 2019-11-29 10:53:37
理解线性组合及向量张成的空间是理解线性无关,子空间,维数和基等等的基础。能更一步加深对线性空间的认识 1 子空间 (1) 子空间的定义 线性空间 X的一个子集Y称为子空间,如果Y中元素的和与数乘仍属于Y。 (注意子空间中一定包含零向量,很容易用反证法证明) 下面是子空间的例子: (i) 二维空间中过原点的直线,三维空间中过原点的平面和直线都是子空间.: 很容易想出上图中的平面和直线上的向量做数乘和加法运算还是平面或者直线上 ,并且他们都经过原点,因此他们都是R^3下的子空间. (ii) 全体行向量(a1,...,an)(aj∈ ) 所构成的集合, Y是首末分量均是零的全体向量所构成的集合(很容易验证) (2)子空间的性质 (i)线性空间X的两个子集Y和Z的和是全体形如y+z(y∈Y,z∈Z)的向量所构成的集合. 记做Y+Z. 若Y和Z均为X的线性子空间。则Y+Z也是。 (ii) 线性空间X的两个子集Y和Z的交是所有公共向量所构成的集合,记做Y∩Z. 若Y和Z均为X的线性子空间。则Y∩Z也是。 (iii)由线性空间X的零元素所构成的集合{0}是X的子空间 叫做 平凡子空间 (trivial subspace)。 以上三条性质很容易证明,这里不做证明 2 线性组合 线性空间X中的一个向量组x1,x2,...,xj的一个线性组合(linear combination)是

线性代数PDF

随声附和 提交于 2019-11-29 10:52:56
线性代数是数学的一个分支,它的研究对象是 向量 , 向量空间 (或称线性空间), 线性变换 和有限维的 线性方程组 。向量空间是 现代数学 的一个重要课题;因而,线性代数被广泛地应用于 抽象代数 和 泛函分析 中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的 非 线性模型 通常可以被近似为 线性模型 ,使得线性代数被广泛地应用于自然科学和社会科学中。 如下: https://pan.baidu.com/s/1awdGJmkpoFlymseICD_zRA 来源: CSDN 作者: xi邮lj 链接: https://blog.csdn.net/lj121829/article/details/100129069