高斯

KL散度

我的梦境 提交于 2019-11-29 04:59:54
参考https://zhuanlan.zhihu.com/p/22464760 1.KL散度为一维高斯分布时: 画图表示式子证明两者的升降关系: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0.5, 2, 100) y = -np.log(x) + x*x/2 - 0.5 plt.plot(x, y) plt.show() 图为: 2. 1.KL散度为多维高斯分布时:(设为n维) 所以最终结果为: 来源: https://www.cnblogs.com/wanghui-garcia/p/11453900.html

opencv-python 图像处理(五)

自闭症网瘾萝莉.ら 提交于 2019-11-29 04:58:43
Canny边缘检测 1) 使用高斯滤波器,以平滑图像,滤除噪声。 2) 计算图像中每个像素点的梯度强度和方向。 3) 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。 4) 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。 5) 通过抑制孤立的弱边缘最终完成边缘检测。 计算方法 1.高斯滤波 2.梯度和方向计算 、 3.非极大值抑制 4.双阈值确定 import cv2 import numpy as np img=cv2.imread("d:/lena.jpg",cv2.IMREAD_GRAYSCALE) v1=cv2.Canny(img,80,150) v2=cv2.Canny(img,50,100) res = np.hstack((v1,v2)) cv2.imshow("canny",res) cv2.waitKey(0) cv2.destroyAllWindows() 图像金字塔 高斯金字塔 拉普拉斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大) import cv2 import numpy as np img=cv2.imread("d:/lena.jpg") up=cv2.pyrUp(img) #放大 down=cv2.pyrDown(img)#缩小 cv2

高斯消元学习笔记

本小妞迷上赌 提交于 2019-11-29 04:45:01
高斯消元学习笔记 前言 高斯消元这么基础的东西,我居然整个初中都没学。 趁现在(19.7.9)赶紧学一下 正文 高斯消元简介 高斯消元是一种用来求解线性方程组(多元一次方程组)的算法。 时间复杂度为O( \(n^3\) ) 算法流程 枚举当前需要消去的未知数(如x),选择一个式子,用这个式子消去其他式子中的x,重复这个过程直至最后一个方程只有一个未知数(如z),这样就可以方便地计算出z的值,再往回带入算出y,x的值。 注意事项 枚举消去某个未知数时,要选择这个未知数系数最大的那个式子消去其他式子。这样可以减少误差。 假设我们现在在处理第n个未知数,此时在众多的未知数n中,他们的系数分别是 \(k_1 k_2 k_3 k_ 4……k_m\) ,那么考虑,在选完 \(k_i\) 之后,下面我们要进行的是把 \(k_i\) 消成1。那么此时对于第i行的其他的系数以及结果我们都要除以 \(k_i\) 。 之后呢?之后我们要进行的操作是用这个式子来消掉其他式子里的该未知数啊qwq。如果要这么操作肯定会让其他式子别的未知数的系数,减去当前式子的别的未知数的系数乘上某个值(事实上假设选择含 \(k_i\) 的式子,则对于每个式子j而言,每个系数减去当前系数的倍数,这个倍数应该为$ k_j $) 那么这样看来,对于当次用来消元的式子的每个系数 \(q_{i_1}q_{i_2}q_{i_3}q_{i

机器学习整理

╄→尐↘猪︶ㄣ 提交于 2019-11-29 00:01:21
1 概述交叉验证的使用:模型评价、超参数(阈值)优选,保证数据集同分布留一法交叉验证——MAE平均绝对误差 评价MAE(2 P68)实值函数回归 2 KNN模型 KNN Step1 预处理 x估计=x-μ/σ 并且记录{μ(k),σ(k),k=1,2,3,4} 平均错误率、标准差 Step2 选K值 KNN中的K m-fold(v) 2 p21 错误率最小的,作为最终的K,对样本集进行预测,K不能为偶数 m次,取n-1份作为训练集,1作为验证集合,得到(Acc(k),K)Step3 决策 K近邻回归,2类别分类K为奇数,防止相等无法判断 p44 混淆矩阵 自然状态*预测输出(TP、FN、FP、TN) p46 评价指标要记总体正确率、总体错误率、查准率Precision、查全率Recall/灵敏度Sensiticity、特异度(真阴性率)、漏报率(假阴性率)、虚警率(假阳性率)、Fβ-Score(查准率和查全率的调和平均)F=2Precision·Recal /(Precision+Recall)马修相关系数、Kappa系数西瓜书p32 宏平均、微平均宏平均:先带入xx率公式计算,再求平均值微平均:先求平均值,再带入xx率公式计算3 基于树的模型决策树主要是cartcart tree 不纯性度量: -分类目标:Gini指标 -连续目标:最小平方残差、最小绝对残差分类

自编码器 Autoencoder

﹥>﹥吖頭↗ 提交于 2019-11-28 18:55:51
自监督模型 训练一个ae的encoder,就能把code和object对应起来,获得code。给定一个code,decoder就能输出对应的object。 Autoencoder存在什么问题?   因为作为训练数据的object是有限的,导致decoder实际上只能把训练过程中见过的code给还原成对应的object。如果随机给一些code,它不会生成训练集中没有见过的object。 如何解决?    VAE: 训练decoder的时候给code加点噪声,就能让decoder在生成的时候可以克服一些带噪声的code,即使没有在训练中见过,也能生成比较合理的object(直觉上的理解,训练的时候希望一定范围内的code都能重构输入)。 因此在VAE中,encoder输出的不直接是code,而是一组mean和一组variance,而向量c才是真正的code,其中ci = exp(σ i ) x e i + m i 。训练过程中的优化目标也不仅是重构误差,还有一项 Σ (exp(σ i ) - (e i ) + (m i ) 2 ),要强迫variance不能太小(因为是模型学习的参数,如果不做限制,为了能重构的更好variance会越更新越接近0)。 理论上分析 VAE:   对 p(x) 的建模通过 p(x | z) * p(z) 来实现,很容易就想到GMM。如何从GMM 中采样数据

多元高斯分布

戏子无情 提交于 2019-11-28 08:39:38
让我们回到小球检测的栗子,在一元高斯分布下,我们只使用了色相值这一个性质。然而,颜色其实是用多个维度来定义的。比如,在HSV模型下,除了色相值还有饱和度(Saturation)和亮度(Value)。而我们通常使用的三原色光模式(RGB模型)将颜色表示成红色(R)、绿色(G)和蓝色(B)的叠加。如果我们用RGB值来表示一个颜色,怎样表示我们栗子中的小球呢?我们将图片中所有像素点的RGB值用散点图的形式画出来可以得到下面的图: 那我们怎样对这种图形进行建模呢?如这一节的题目所说,我们将一元高斯分布扩展到多元高斯分布并对RGB值进行建模。 让我们首先来介绍多元高斯分布的数学形式吧: 多元高斯分布和一元高斯分布是十分相似的,我们用加粗的 来表示变量(一个向量), 表示维度(元的数目),加粗的 表示平均向量,大写的 表示协方差矩阵(Covariance Matrix,是一个方阵), 表示 的行列式值, 表示矩阵 的转置。 值得一提的是协方差矩阵,它由两部分组成,方差(Variance)和相关性(Correlation),对角线上的值表示方差,非对角线上的值表示维度之间的相关性。拿一个二维协方差矩阵作栗子: 其中,对角线上的 和 分别表示变量 和 的独立方差,非对角线上的 表示两个变量之间的相关性(注意 和 是相等的)。 回到小球检测的栗子,我们考虑用RGB来对“红色

一元高斯分布

时光总嘲笑我的痴心妄想 提交于 2019-11-28 08:38:45
在这一节我们将介绍如何使用一元高斯分布对机器人误差进行建模。 在进入正题之前,我们需要首先了解为什么学习高斯分布?什么使得高斯分布有效并且重要?为什么使用高斯分布对噪声和不确定性进行建模(而不是其他概率分布模型,比如均匀分布)? 高斯分布使得只需要两个参数就能确定一个连续的概率分布。这两个参数分别是均值和方差,这很简洁。这也使得高斯分布易于计算和推断。 高斯分布有一些较好的数学性质。例如,两个高斯分布的积还是高斯分布。这使得你在对高斯分布做运算的时候不需要考虑其他的概率分布。 理论上来说,根据中心极限定理,大量相互独立的随机变量,其均值的分布以高斯分布为极限。而噪声和不确定性就是包含大量相互独立的随机变量的数据,用高斯分布对它们进行建模是不二选择。 说了这么多,我们来举个栗子吧,怎样使用高斯分布来对一个目标颜色进行建模? 下图是足球机器人通过头顶摄像机拍摄到的照片。 显然,图片中有两种颜色的球,黄球和红球。我们设想这个足球机器人想检测图片中的黄球。对于人类来说,一眼就能分辨出黄球在哪,但对一个机器人来说这并不简单。机器人读入的图片是一个一个像素的数值,它需要建立从像素的数值到“黄色”或者“红色”的映射。不妨让我们来看看“黄球”里面的像素数值是怎样的。我们记录黄球的每个像素的色相值(Hue, HSV模型 中表示色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等)

学机器学习怎么可以不知道最小二乘法

寵の児 提交于 2019-11-28 07:29:23
起源 起源:最小二乘法源于天文学和大地测量学领域。因为这两个领域对精度的高要求而被发明。 1801年,意大利天文学家朱塞普·皮亚齐发现了第一颗小行星谷神星。进行了40天的跟踪观测后,但由于谷神星运行到太阳背后,失去了具体位置信息。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥伯斯根据高斯计算出来的轨道重新发现了谷神星。高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中,这个高斯正是著名数学家 卡尔·弗里德里希·高斯 ,没错就是我们大学数学认识的那个高斯。 机器学习本质其实就是求最优解的过程,最小二乘法是回归算法中求最优解的方法之一,还有一个是梯度下降法,以后会讲~。 思考 我们在正式讲最小二乘法之前,读者大大们可以想下下面这个问题临近中秋,小明想要自己做月饼,现在已知五种规格月饼所需的面粉重量如下: 月饼重量(g) 面粉重量(g) 30 20 100 81 80 110 190 90 220 180 现在小明想做规格为140g的月饼,请问他需要多少克月饼现在读者大大们根据平时经验,可以思考下怎么求。九年义务教育让我看见这种题目就条件反射列方程求未知数,不知道读者大大们是不是也是这样~ 原理

OpenCV学习笔记3

拥有回忆 提交于 2019-11-28 01:08:48
OpenCV学习笔记3 图像平滑(低通滤波) 使用低通滤波器可以达到图像模糊的目的。这对与去除噪音很有帮助。其实就是去除图像中的高频成分(比如:噪音,边界)。所以边界也会被模糊一点。(当然,也有一些模糊技术不会模糊掉边界)。OpenCV 提供了四种模糊技术。 2D 卷积 对 2D 图像实施低通滤波(LPF:low pass filter),高通滤波(HPF:high pass filter)等。LPF 帮助我们 去除噪音,模糊图像 。HPF 帮助我们找到图像的边缘OpenCV 提供的函数 cv.filter2D() 可以让我们对一幅图像进行卷积操作。下面我们将对一幅图像使用平均滤波器。下面是一个 5x5 的平均滤波器核: 操作如下:将核放在图像的一个像素 A 上,求与核对应的图像上 25(5x5)个像素的和,在取平均数,用这个平均数替代像素 A 的值。重复以上操作直到将图像的每一个像素值都更新一边。代码如下,运行一下吧。 import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('../opencv_logo.jpg') kernel = np.ones((5,5),np.float32)/25 dst = cv2.filter2D(img,-1,kernel) plt

高斯消元模板

我与影子孤独终老i 提交于 2019-11-28 00:51:10
//高斯消元 时间复杂度O(n^3) 使用浮点数计算 #include<iostream> #include<string.h> #include<math.h> using namespace std; const double eps=1e-8; const int maxn=101; double a[maxn][maxn]; bool l[maxn]; double ans[maxn]; int n,m; int t; void print(); //也可以避免实数运算 使用辗转相减的方法 多一个log的时间复杂度 //特别适合于行列式求值 取模操作 (除法要求逆元) int solve() { //a为方程组对应的矩阵 //l,ans存储解 l[]表示是否为自由变元 1表示不是 0表示是 //n为未知数的个数 m为方程的个数 //如果无解返回-1 否则返回自由变元数 int res=0,r=0;//r为第几行 res为自由变元数 for(int i=0; i<n; ++i) l[i]=false; //开始都是自由变元 for(int i=0; i<n; ++i) //枚举列 { for(int j=r; j<m; ++j) //枚举行 if(fabs(a[j][i])>eps) { //找到当前列下从第r行开始第一个不为零的元素并交换到第r行 //如果一直为0