高斯

序贯高斯模拟

主宰稳场 提交于 2019-12-02 11:10:43
很好懂的一张图。也可见高斯序贯模拟的局限性:要求原始数据场服从高斯分布,或者是经过正态变换(N-S normal-score)后服从高斯分布。 来源: https://www.cnblogs.com/mhzt/p/11742534.html

高斯消元

痞子三分冷 提交于 2019-12-02 09:20:52
简介 高斯消元,一般用于求解 n n n 元一次方程组. 求解方法也很简单. 解法 其实就是暴力的求解. n n n 元一次方程组的系数可以写成一个矩阵的形式,而我们的目标就是将矩阵的每一行都消的只剩下一个数. 其实剩下的看代码里面的注释就好了. 因为实在是太简单了 #include <cstdio> #include <cmath> #include <algorithm> using namespace std; const int N = 1e2 + 5; int n,flag; int v[N]; double a[N][N],ans[N]; int main() { scanf("%d",&n); for (int i = 1 ; i <= n ; i++) for (int j = 1 ; j <= n + 1 ; j++) scanf("%lf",&a[i][j]); for (int i = 1 ; i <= n ; i++) { double x = 0; int p = 0; for (int j = 1 ; j <= n ; j++) if (fabs(a[i][j]) > x) x = fabs(a[i][j]),p = j; //找主元 if (!p) { printf("No Solution\n"); return 0; } //若不足n个元则无解 v

P3389 【模板】高斯消元法

亡梦爱人 提交于 2019-12-02 06:35:57
题目地址 注意点: 模拟. #include<cstdio> #include<iostream> #include<cmath> using namespace std; const double eps=1e-7; const int MAXN=2e2; double map[MAXN][MAXN]; double ans[MAXN]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n+1;j++) scanf("%lf",&map[i][j]);//读入方程组 for(int i=1;i<=n;i++){//枚举每一个元 int r=i;//选择哪一个方程 for(int j=i+1;j<=n;j++)//i之前的都已经排好了 if(fabs(map[r][i])<fabs(map[j][i])) r=j; //找系数绝对值最大的方程 if(fabs(map[r][i])<eps){//存在自由元 printf("No Solution");//无解 return 0; } if(i!=r)swap(map[i],map[r]);//优先利用系数绝对值更大的方程 double div=map[i][i];//系数除数 for(int j=i;j<=n+1;j++)//枚举下面的每个方程 map

高斯混合模型GMM和EM算法

一世执手 提交于 2019-12-02 06:02:46
高斯混合模型的基本思想是任何一个曲线,无论多么复杂,都可以用若干个高斯曲线来逼近它。 高斯混合模型也被视为一种聚类方法,是机器学习中对“无标签数据”进行训练得到的分类结果。其分类结果由概率表示,概率大者,则认为属于这一类。 matlab中关于高斯混合模型的内容集中在gmdistribution类中,使用gmdistribution创建GMM,使用fitgmdist根据给定样本生成GMM,使用cluster对GMM样本点进行聚类分析,pdf表示GMM的概率密度函数,random由GMM生成随机变量,posterior计算GMM每个高斯分布分量的后验概率。 来源: https://www.cnblogs.com/larry-xia/p/11733539.html

视觉SLAM十四讲(1)

蹲街弑〆低调 提交于 2019-12-02 05:57:04
视觉SLAM十四讲(1)——初识SLAM 初识SLAM 经典视觉SLAM框架 初识SLAM SLAM(simultaneous localization and mapping),中文译作“ 同时定位与地图构建 ”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下(不需要在环境中安装传感器),于 运动过程中 建立环境的模型,同时估计自己的运动。 如果这里的传感器主要为相机,以一定的速率拍摄周围的环境,形成一个连续的视频流,那么就称为“ 视觉SLAM ”。 SLAM的目的是解决“ 定位 ”与“ 地图构建 ”这两个问题。也就是说,一边要估计传感器自身的位置,一边要建立周围环境的模型。 在什么地方?——定位(自身的状态) 周围环境是什么样?——建图(外在的环境) 单目相机——照片(三维空间的二维投影):无法通过单张照片来计算场景中物体与我们之间的距离,因此必须移动相机改变其视角才能估计它的运动。当相机移动时,相片中的物体在图像上的运动就形成了视差。通过视差就能知道物体的远近,但这只是一个相对值,无法确定真实尺度,称为“尺度不确定性”。 双目相机——通过两个相机之间的距离(基线)来估计每个像素的空间位置。通过左右眼的差异,判断场景中物体与相机的距离。缺点是计算量大,消耗计算资源,与基线关系大(基线距离越大,能够测量到的就越远)。优点是既可以用在室内,亦可应用与室外。 深度相机—

GAN 的Mode collapse(模式坍塌)

爷,独闯天下 提交于 2019-12-02 05:06:13
mode collapse是指Gan产生的样本单一,其认为满足某一分布的结果为true,其他为False,导致以上结果。 Example 先给一个直观的例子,这个是在我们训练GAN的时候经常出现的 这就是所谓的Mode Collapse 但是实际中ModeCollapse不能像这个一样这么容易被发现(sample中出现完全一模一样的图片) 例如训练集有很多种类别(如猫狗牛羊),但是我们只能生成狗(或猫或牛或羊),虽然生成的狗的图片质量特别好,但是!整个G就只能生成狗,根本没法生成猫牛羊,陷入一种训练结果不好的状态。这和我们对GAN的预期是相悖的。 Analysis 如上图, 是八个高斯分布的点,也就是8个mode。 我们希望给定一个随机高斯分布(中间列中的最左图),我们希望这一个随机高斯分布经过G最后可以映射到这8个高斯分布的mode上面去 但是最下面一列的图表明,我们不能映射到这8个高斯分布的mode上面,整个G只能生成同一个mode,由于G和D的对抗关系,G不断切换mode 李宏毅原话: 在step10k的时候,G的位置在某一个 Gaussian所在位置,然后D发现G只是在这个Gaussian这里了,所以就把这个地方的所有data(无论real还是fake)都给判定为fake G发现在这个Gaussian待不下去了,只会被D永远判定为fake,所以就想着换到另一个地方

2019.10.16题解

烈酒焚心 提交于 2019-12-01 12:30:59
写在前面: 这套题无论是从题型还是解题思路上都挺不错的,但自己还是太菜了,T1都不会正解。 A. 导弹袭击 标签: 单调栈维护凸包 题解: 从$ O(n^2) $的暴力可以看出,我们关注的只是A与B的比值, 所以对于每一个导弹来说t=x/a[i]+b[i], 是一个一次函数,要求求每个位置最小的函数值, 考虑先将导弹按1/a[i]降序排序,之后用单调栈维护一个上凸包。 需要特别注意交点一样和交点<0的情况 B. 炼金术士的疑惑 标签: 高斯消元 题解: 我打的不是正解,所以在这里就口胡一下正解啦: 首先题目保证方程有解,考虑把每个方程设为未知量, 高斯消元出来一定是这样的: 对于每个在高斯消元的方程中非0的物质来说,都可以让一个式子对最终式子产生贡献, 魔改一下高斯消元即可 C. 老司机的狂欢 标签: 构造,LIS,倍增 题解: 显然时间满足单调性,然而check比较难想: 先把所以车按pos排序,之后O(n)处理所以车的最终位置 对于第一问,就是以最终位置为序列的LIS 对于第二问,把LIS的决策森林(深度为Dp值,i的父亲是i的决策点,树点的val为原车的id)建出来, 考虑两个Dp值相同的决策点i,j: 设i,j的lca为x,那我们一定选i->x和j->x的路径的最小权值较小的一个,倍增lca维护即可 来源: https://www.cnblogs.com/AthosD/p

点集配准技术(ICP、RPM、KC、CPD)

孤街醉人 提交于 2019-12-01 12:21:20
  在计算机视觉和模式识别中,点集配准技术是查找将两个点集对齐的空间变换过程。寻找这种变换的目的主要包括:1、将多个数据集合并为一个全局统一的模型;2、将未知的数据集映射到已知的数据集上以识别其特征或估计其姿态。点集的获取可以是来自于3D扫描仪或测距仪的原始数据,在图像处理和图像配准中,点集也可以是通过从图像中提取获得的一组特征(例如角点检测)。    点集配准研究的问题可以概括如下:假设{ M , S }是空间 R d 中的两个点集,我们要寻找一种变换 T ,或者说是一种从 R d 空间到 R d 空间的映射,将其作用于点集 M 后,可以使得变换后的点集 M 和点集 S 之间的差异最小。将变换后的点集 M 记为 T ( M ),那么转换后的点集 T ( M )与点集 S 的差异可以由某种距离函数来定义,一种最简单的方法是对配对点集取欧式距离的平方:   点集配准方法一般分为刚性配准和非刚性配准。   刚性 配准: 给定两个点集,刚性配准产生一个刚性变换,该变换将一个点集映射到另一个点集。刚性变换定义为不改变任何两点之间距离的变换,一般这种转换只包括平移和旋转。   非刚性 配准: 给定两个点集,非刚性配准产生一个非刚性变换,该变换将一个点集映射到另一个点集。非刚性变换包括仿射变换,例如缩放和剪切等,也可以涉及其他非线性变换。   下面我们来具体介绍几种点集配准技术。 一.

拉格朗日插值

馋奶兔 提交于 2019-12-01 10:10:27
本文部分转载自: 知乎 中文维基 有何用 板子:给出平面上n+1个点,求一条穿过这n+1个点的n次多项式,或这个多项式在另一个点处的值。 显然可以高斯消元求出每一项系数,然后输出/直接爆算。 其实拉格朗日插值有两种:朴素的,和重心拉个朗日插值。一般情况下,朴素的和高斯消元在求解第1问时复杂度没有区别,但是后者无论第几问都可以用 \(O(n^2)\) 的复杂度爆艹高斯消元 \(O(n^3)\) 。 以下全都介绍求多项式的方法。 直观理解 这里的是朴素插值。 比如说,已知下面这几个点,我想找到一根穿过它们的曲线: 首先显然可以用一个n次多项式经过,不保证第n项系数是否为0。 然后高斯消元告诉我们,这应该是一个二次曲线。 \(y=a_0+a_1x+a_2x^2\) 然后,显然可以解方程。 \[ \begin{cases} y_1=a_0+a_1x_1^1+a_2x_1^2 \\ y_2=a_0+a_1x_2^1+a_2x_2^2 \\ y_3=a_0+a_1x_3^1+a_2x_3^2 \end{cases} \] 然而,如果不解方程呢? 拉格朗日发现,我们可以用三根二次函数相加得到我们要的函数。 第一个函数 \(f_1(x)\) ,在 \(x=x_1\) 处值为1,在 \(x=x_2,x_3\) 处都为0。 第二个函数 \(f_2(x)\) ,在 \(x=x_2\) 处值为1

[HNOI2013] 游走 - 概率期望,高斯消元,贪心

扶醉桌前 提交于 2019-12-01 09:54:33
假如我们知道了每条边经过的期望次数,则变成了一个显然的贪心。现在考虑如何求期望次数。 由于走到每个点后各向等概率,很显然一条边的期望次数可以与它的两个端点的期望次数,转化为求点的期望次数 考虑每个点对另个点的贡献,得到方程组,暴力高斯消元 注意走到最后一个点就结束了,所以相当于它不能有出边 #include <bits/stdc++.h> #define eps 1e-6 using namespace std; const int N = 1005; double a[N][N]; int n,m,d[N],g[N][N],t1,t2; bool gauss_jordan() { for(int i=1; i<=n; i++) { int r=i; for(int j=i+1; j<=n; j++) if(fabs(a[j][i])>fabs(a[r][i])) r=j; if(r-i) for(int j=1; j<=n+1; j++) swap(a[i][j],a[r][j]); if(fabs(a[i][i])<eps) return 0; for(int j=1; j<=n; j++) if(j-i) { double tmp=a[j][i]/a[i][i]; for(int k=i+1; k<=n+1; k++) a[j][k]-=a[i][k]*tmp; } }