高斯

高斯日记

孤人 提交于 2020-02-08 05:11:09
高斯日记思路 :天数减去四年(三个平年+一个闰年)的时间,年数加四年,直到天数小于四年的时间,再分情况讨论。注意1800年是平年。 代码部分 : # include <stdio.h> int main ( ) { int year = 1777 , month = 4 , day = 30 ; int n ; int i = 0 ; int m1 [ 12 ] = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ; int m2 [ 12 ] = { 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ; scanf ( "%d" , & n ) ; n -- ; while ( n >= 1461 ) { n - = 1461 ; year + = 4 ; } if ( n >= 1341 ) { year + = 4 ; while ( n > m1 [ i ] ) { n - = m1 [ i ] ; i ++ ; } month = i ; day = n ; } else if ( n <= 245 ) { i = 5 ; while ( n > m1 [ i ] ) { n - = m1 [ i ] ; i ++ ; }

游走[HNOI2013][期望Dp+高斯消元]

我与影子孤独终老i 提交于 2020-02-08 03:40:03
文章目录 题目 思路 代码 题目 Vjudge 一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。 无向图 思路 考虑 a n s = ∑ i = 1 m E i ∗ v a l i ans=\sum_{i=1}^m{E_i*val_i} a n s = ∑ i = 1 m ​ E i ​ ∗ v a l i ​ 其中 E i E_i E i ​ 为第 i i i 条边经过期望次数 显然 E i E_i E i ​ 大的配 v a l i val_i v a l i ​ 小的 如果我们的边拆点的话点太多了,因为这种有依赖性的 d p dp d p 一般要用高斯消元 考虑 E i E_i E i ​ 的期望可以利用期望的线性性使得 E i = f u d e u + f v d e v E_i=\frac{f_u}{de_u}+\frac{f_v}{de_v} E i ​ = d e u ​ f u ​ ​ + d e v ​ f v ​ ​ ,其中 f u , f v f_u,f_v f u ​ , f v ​

第五课 生成学习算法

牧云@^-^@ 提交于 2020-02-06 12:01:44
本课首先介绍了一类新的学习算法——生成学习算法(Generative learning algorithms),并详细地介绍了该算法的一个例子:高斯判别分析(GDA);之后对生成学习算法与之前的判别学习算法进行了简单的对比;最后介绍了一个适合对文本进行分类的算法——朴素贝叶斯算法,并结合该算法介绍了一种常用的平滑技术——Laplace平滑。 判别学习算法 代表:logistic 回归 生成学习算法 生成学习算法与判别学习算法不同,其主要关注的是 和 这两种东西。其中 的含义为:在给定了样本所属类的条件下,对样本的特征建立概率模型。我们可以通过贝叶斯公式,将 和 联系起来: 高斯判别分析(GDA) 假设(Assume): (1)x为n维向量且为连续值 (2) 满足高斯分布 多维高斯分布 对于多维来说D表示X的维数 , 表示D*D的协方差矩阵,定义为 , 为该协方差的行列式的值。在这里D=n,代表维数。 由于y只有0和1两种取值,服从伯努利分布,所以: 生成学习算法是对每一类的特征分别进行建模,那么在这里就应该对y=0和y=1这两类中的特征分别建模。如上式所示。 生成学习算法与判别学习算法同样采用似然判决,但不同的是生成学习算法采用的是Joint Data Likelihood,而判别学习算法采用的是conditional likelihood。具体区别如下: 下面介绍四个参数(

生成学习算法

让人想犯罪 __ 提交于 2020-02-06 11:45:56
本讲大纲: 1.生成学习算法(Generative learning algorithm) 2.高斯判别分析(GDA,Gaussian Discriminant Analysis) 3.朴素贝叶斯(Naive Bayes) 4.拉普拉斯平滑(Laplace smoothing) 1.生成学习算法 判别学习算法(discriminative learning algorithm): 直接学习 p(y|x) (比如说logistic回归)或者说是从输入直接映射到{0,1}. 生成学习算法(generative learning algorithm): 对 p(x|y)(和p(y)) 进行建模. 简单的来说,判别学习算法的模型是通过一条分隔线把两种类别区分开,而生成学习算法是对两种可能的结果分别进行建模,然后分别和输入进行比对,计算出相应的概率。 比如说良性肿瘤和恶性肿瘤的问题,对良性肿瘤建立model1(y=0),对恶性肿瘤建立model2(y=1),p(x|y=0)表示是良性肿瘤的概率,p(x|y=1)表示是恶性肿瘤的概率. 根据 贝叶斯公式(Bayes rule) 推导出y在给定x的概率为: 2.高斯判别分析 GDA是我们要学习的第一个生成学习算法. GDA的两个假设: 假设输入特征x∈Rn,并且是连续值; p(x|y)是 多维正态分布(multivariate normal

生成学习算法(Generative Learning algorithms)

∥☆過路亽.° 提交于 2020-02-06 11:43:25
一、引言 前面我们谈论到的算法都是在给定\(x\)的情况下直接对\(p(y|x;\theta)\)进行建模。例如,逻辑回归利用\(h_\theta(x)=g(\theta^T x)\)对\(p(y|x;\theta)\)建模,这类算法称作判别学习算法。 考虑这样一个分类问题,我们根据一些特征来区别动物是大象\((y=1)\)还是狗\((y=0)\)。给定了这样一个训练集,逻辑回归或感知算法要做的就是去找到一个决策边界,将大象和狗的样本分开来。可以换个思路,首先根据大象的特征来学习出一个大象的模型,然后根据狗的特征学习出狗的模型,对于一个新的样本,提取它的特征先放到大象的模型中求得是大象的概率,然后放到狗的模型中求得是狗的概率,最后我们比较两个概率哪个大,即确定这个动物是哪种类型。也即求\(p(y|x)=\frac{p(x|y)p(y)}{p(x)}\),\(y\)为输出结果,\(x\)为特征。 现在我们来定义这两种解决问题的方法: 判别学习算法(discriminative learning algorithm): 直接学习\(p(y|x)\)或者是从输入直接映射到输出的方法 生成学习算法(generative learning algorithm): 对\(p(x|y)\)(也包括\(p(y))\)进行建模。 \(y\)为输出变量,值为0或1,如果是大象取1,狗则取0 \(p(x

《视觉SLAM 十四讲》(高翔) --- 第六讲 非线性优化 笔记

五迷三道 提交于 2020-02-06 02:18:41
增量Δx 如何确定? 一阶和二阶梯度法 Gauss-Newton(高斯牛顿法) Levenberg-Marquadt(L-M法) Gauss-Newton(高斯牛顿法) Gauss-Newton 的算法步骤: 公式推导: 对向量和矩阵求导公式: Levenberg-Marquadt(L-M法) 由于高斯牛顿二阶近似,只在展开点附近有较好的的效果,所以给Δx\Delta xΔx增加一个信赖区域,在区域里近似有效。 如果ρ 接近于1,则近似是好的。如果ρ太小,说明实际减小的值远少于似减小的值,则认为近似比较差,需要缩小近似范围。反之,如果ρ比较大,则说明实际下降的比预计的更大,我们可以放大近似范围。 构建一个改良版的非线性优化框架,该框架会比Gauss Newton 有更好的 效果: 来源: CSDN 作者: _YAO阿瑶 链接: https://blog.csdn.net/weixin_44694952/article/details/104188258

CF24D Broken robot(高斯消元)

故事扮演 提交于 2020-02-05 23:03:01
CF24D Broken robot(高斯消元) 高斯消元新玩法 一眼期望 \(dp\) , 考虑逆推因为第 \(n\) 层的期望是确定的(都是 \(0\) ), \(F[x][y]\) 表示从第 \(x\) 行第 \(y\) 列开始到第 \(n\) 层的期望步数 转移方程 : \[ F[x][y] = (F[x][y] + F[x][y+1] + F[x][y-1] + F[x+1][y]) / 4 + 1 ~~(y ~!= 1 \&y~!=m)\\F[x][y] = (F[x][y] + F[x][y+1] + F[x+1][y])~ /~ 3 + 1 ~~(y = 1)\\F[x][y] = (F[x][y] + F[x][y-1] + F[x+1][y]) ~/~ 3 + 1 ~~(y = m)\\ \] 应该很好理解⑧, 从左边/右边/下边转移 因为这个 \(dp\) 有后效性, 考虑用高斯消元解决, 方程如下: \[ 3F[x][i] - F[x][i+1] - F[x][i-1] = 4 + F[x+1][i] ~~(y ~!= 1 \&y~!=m)\\2F[x][i] - F[x][i+1] = F[x+1][i] + 3 ~~(y = 1)\\2F[x][i] - F[x][i-1] = F[x+1][i] + 3 ~~(y = m)\\ \]

支持向量机

一个人想着一个人 提交于 2020-02-05 00:58:49
简介 在机器学习中,支持向量机(英语:support vector machine,常简称为SVM,又名支持向量网络[1])是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。 给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。 SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。 然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。 @维基百科 之下的总结顺序皆来自 Andrew Ng 我的理解 对于我个人的理解,这是一个尝试实现将新输入的数据分类的算法。 即预先准备 标记点 \[ \begin{bmatrix} f_1\\ f_2\\ {\vdots}\\ f_n\\ \end{bmatrix} \] 对于一个新输入的数据 \(x_1\) 。 \(x_1\) 经过 核函数 处理后,得到f矩阵 \[ \begin{bmatrix} f_1^1\\ f_2^1\\ {\vdots}\\ f_n^1\\ \end{bmatrix} \] 后带入 相似度函数 \(h_{\theta}=\theta_0+\theta_1*f_1+\theta_2*f_2+...+\theta_n*f_n\)

GMM 高斯混合模型

南笙酒味 提交于 2020-02-02 20:44:51
正态分布是一种中间高两头低的分布曲线, 其公式由高斯导出, 故又名高斯分布. 而中心极限定理让我们知道, 统计问题大多符合正态分布. 高斯混合模型正是基于这一规律. 模型认为, 一组离散数据的分布是符合高斯分布的, 但它的分布不会老老实实地由一个高斯分布决定, 肯定是多个高斯分布加权, 混合二字就是多个高斯分布混合作用的意思. 数据的生成过程如下: 由K个离散随机变量代表K个不同的高斯分布. 随机出一个高斯分布k. 根据高斯分布k, 生成一个数据. 重复1和2. 以上过程是已知模型, 生成数据. 我们要的是已知数据, 反推模型. 此时需要使用EM算法进行训练, 它是一种根据后验来调整先验的算法, 使用了极大似然估计, 让高斯混合模型在不断的数据训练中矫正到符合数据的分布. 关键知识点: 极大似然估计, EM算法的E过程和M过程, 正态分布(高斯分布)的公式和中心极限定理, 二阶/多阶正态分布的公式. 高斯混合模型是一种简单模型, 其概率图模型也十分简单 将它扩展到时序, 就是HMM隐马尔科夫模型. 来源: CSDN 作者: 羚谷光 链接: https://blog.csdn.net/qq_39006282/article/details/104145299

李宏毅ml--deep generative model

谁都会走 提交于 2020-02-02 02:05:20
一篇很好的关于生成模型的科普文 机器如果可以画出一只猫的时候,那么机器对于猫的概念就会有很大的不同。以下是三个最主要的方法。 pixelRNN 我们现在要求让机器画出一张图出来,假设现在让机器画出一个3x3的图,有9个像素点。即让机器画9个像素点就完成了任务,一个像素点就用三维的vector来表示,即rgb值。现在随机给机器一个红色的像素点,然后learn一个model,其输入是已经存在的像素点,输出是下一个像素点。(RNN是可以处理任意长度的input),pixelRNN是不需要任何标签的。 下面是slide所示的论文机器所画出的图片 waveNet:做语音合成 一些tip关于生成宝可梦: 如果你用上面所说的三维vector代表rgb做为像素点的输入,得到的图会偏灰,因为较为清晰的图片是有某个通道值较大,某个较小形成的,但是我们输入会做normalization,已经经过sigmoid function,最后值都会落在0.5左右,无法形成较大的偏差,所以我们用不同颜色作为one-hot encoding的不同维度,以此作为输入。然后会有很多相似的颜色,先做cluster,即最后有167个颜色。 像这种task是很难被评估的,因为你也不能说机器评估的不对,因为这是一种创作 VAE variation auto encoder 把decoder部分拿出来,然后随机生成一个向量