误差分析

学习曲线

陌路散爱 提交于 2019-12-02 22:56:44
来源:https://www.cnblogs.com/volcao/p/9291551.html 一、基础理解 学习曲线作用 : 查看模型的学习效果; 通过学习曲线可以清晰的看出模型对数据的过拟合和欠拟合; 学习曲线 :随着训练样本的逐渐增多,算法训练出的模型的表现能力; 表现能力 :也就是模型的预测准确率,使用均方误差表示;学习率上体现了模型相对于训练集和测试集两类数据的均方误差。 具体的操作: len(X_train) 个训练样本,训练出 len(X_train) 个模型,第一次使用一个样本训练出第一个模型,第二次使用两个样本训练出第二个模型,... ,第 len(X_train) 次使用 len(X_train) 个样本训练出最后一个模型; 每个模型对于训练这个模型所使用的部分训练数据集的预测值:y_train_predict = 模型.predict(X_train[ : i ]); 每个模型对于训练这个模型所使用的部分训练数据集的均方误差:mean_squared_error(y_train[ : i ], y_train_predict); 每个模型对于整个测试数据集的预测值:y_test_predict = 模型.predict(X_test) 每个模型对于整个测试数据集的预测的均方误差:mean_squared_error(y_test, y_test

读周志华《机器学习》个人读书笔记

匿名 (未验证) 提交于 2019-12-02 22:56:40
机器学习所研究的内容:是关于在计算机上通过数据产生“模型”的算法,即为“学习算法”(learning algorithm)。 “模型”指的就是学习所得的结果。 从数据中学得模型的过程称为“学习”或“训练”。 预测的若为离散值,此类学习任务称为“分类”(classification)若为连续值,此类学习任务称之为“回归”(regression)。涉及到两个类别的“二分类”(binary classification)任务,其中一个为“正类”(posive class),另一个为“反类”(negative class)。 根据训练数据是否拥有标记信息,学习任务分为:“监督学习”(supervise learning)和“无监督学习”(unsupervised learning)。分类回归是前者的代表,聚类(clustering)是后者的代表。 学得的模型适用于新样本的能力,称为“泛化”(generalization)能力。 归纳(induction)和演绎(deduction)。 归纳是从特殊到一般的泛化过程,即为从具体的事实中总结出一般的规律。演绎是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。 归纳学习有广义和狭义之分,广义的归纳学习相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念,又称为“概念学习”或“概念形成”。

yolov1详细讲解

戏子无情 提交于 2019-12-02 03:38:06
前言 当我们谈起计算机视觉时,首先想到的就是图像分类,没错,图像分类是计算机视觉最基本的任务之一,但是在图像分类的基础上,还有更复杂和有意思的任务,如目标检测,物体定位,图像分割等,见图1所示。其中目标检测是一件比较实际的且具有挑战性的计算机视觉任务,其可以看成图像分类与定位的结合,给定一张图片,目标检测系统要能够识别出图片的目标并给出其位置,由于图片中目标数是不定的,且要给出目标的精确位置,目标检测相比分类任务更复杂。目标检测的一个实际应用场景就是无人驾驶,如果能够在无人车上装载一个有效的目标检测系统,那么无人车将和人一样有了眼睛,可以快速地检测出前面的行人与车辆,从而作出实时决策。 近几年来,目标检测算法取得了很大的突破。比较流行的算法可以分为两类,一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。(这里还是蛮重要的)而另一类是Yolo,SSD这类one-stage算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类方法(RCNN系列)是准确度高一些,但是速度慢,但是第二类算法是速度快

10、应用机器学习的建议(Advice for Applying Machine Learning)

故事扮演 提交于 2019-12-02 03:34:17
10.1 决定下一步做什么   到目前为止,我们已经介绍了许多不同的学习算法,如果你一直跟着这些视频的进度学习,你会发现自己已经不知不觉地成为一个了解许多先进机器学习技术的专家了。   然而,在懂机器学习的人当中依然存在着很大的差距,一部分人确实掌握了怎样高效有力地运用这些学习算法。而另一些人他们可能对我马上要讲的东西,就不是那么熟悉了。他们可能没有完全理解怎样运用这些算法。因此总是把时间浪费在毫无意义的尝试上。我想做的是确保你在设计机器学习的系统时,你能够明白怎样选择一条最合适、最正确的道路。因此,在这节视频和之后的几段视频中,我将向你介绍一些实用的建议和指导,帮助你明白怎样进行选择。具体来讲,我将重点关注的问题是假如你在开发一个机器学习系统,或者想试着改进一个机器学习系统的性能,你应如何决定接下来应该选择哪条道路?   为了解释这一问题,我想仍然使用预测房价的学习例子,假如你已经完成了正则化线性回归,也就是最小化代价函数𝐽的值,假如,在你得到你的学习参数以后,如果你要将你的假设函数放到一组新的房屋样本上进行测试,假如说你发现在预测房价时产生了巨大的误差,现在你的问题是要想改进这个算法,接下来应该怎么办?   实际上你可以想出很多种方法来改进这个算法的性能,其中一种办法是使用更多的训练样本。具体来讲,也许你能想到通过电话调查或上门调查来获取更多的不同的房屋出售数据。遗憾的是

多项式回归

柔情痞子 提交于 2019-12-02 02:34:46
在上一篇的一般线性回归中,使用的假设函数是一元一次方程,也就是二维平面上的一条直线。但是很多时候可能会遇到直线方程无法很好的拟合数据的情况,这个时候可以尝试使用多项式回归。多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加,可以进一步降低训练误差,但导致过拟合的风险也随之增加。 图A,模型复杂度与训练误差及测试误差之间的关系 在这里有个问题在刚开始学习线性回归的时候困扰了自己很久:如果假设中出现了高阶项,那么这个模型还是线性模型吗?此时看待问题的角度不同,得到的结果也不同。如果把上面的假设看成是特征 x x的方程,那么该方程就是非线性方程;如果看成是参数 θ θ的方程,那么 x x的高阶项都可以看做是对应 θ θ的参数,那么该方程就是线性方程。很明显,在线性回归中采用了后一种解释方式。因此多项式回归仍然是参数的线性模型。 1. 多项式回归的实现 下面主要使用了numpy、scipy、matplotlib和scikit-learn,所有使用到的函数的导入如下: 1 import numpy as np 2 from scipy import stats 3 import matplotlib.pyplot as plt 4

深度解析卡尔曼滤波在IMU中的使用

泪湿孤枕 提交于 2019-12-01 21:52:13
卡尔曼滤波主要分两个步骤,预测加校正。预测是基于上一时刻的状态对当前状态进行估计,校正是根据当前状态的观测与上一时刻的估计进行综合分析,估计出系统的最优状态值,然后下一时刻接着重复这个过程;卡尔曼不断的进行迭代,它不需要大量的粒子状态输入,只需要过程量,因此它的速度很快,非常适合线性系统的状态估计。 众所周知卡尔曼滤波在处理 IMU 传感器数据融合中作用巨大,但在实际实现起来并非那么容易;本文从 MPU6050 入手,分析卡尔曼滤波的使用。 本篇文章需要你在夜深人静的时候、先去冲一杯咖啡、准备一张纸、一支笔…… 卡尔曼滤波 从来没有坐下来认真的计算卡尔曼滤波的公式由来以及它背后更深层次的原理,为什么在处理加速度以及陀螺仪的数据融合中卡尔曼滤波就那么的有效。但是对于大多数人来说,可能更感兴趣的是如何正确的去使用它,卡尔曼滤波的那五个公式到底怎么使用。 开始之前需要你具备一定的矩阵乘法、矩阵变换等知识,大家都知道矩阵乘法的重要性,不夸张的说,不懂矩阵乘法根本做不了复杂的模型。当然本篇涉及到的矩阵乘法没那么复杂,如果忘记了请翻大学时的课本脑补,或参考以下网站: http://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29 http://www.mathwarehouse.com

快速三角函数算法的误差控制(sin cos)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 05:01:43
  工程应用常涉及三角函数的快速计算。设计者往往需要降低运算精度以提高程序的运行速度。常用的快速三角函数算法主要包括CORDIC、泰勒展开式逼近、查表等等。然而,网上的文章大多只介绍如何实现相应的算法,而忽视了定量分析算法精度并以此指导设计的过程。此外,算法不同,误差分析的数学方法也不尽相同。在多种算法之间比较时,需要耗费一些时间来建立模型。如果建立一个通用的误差分析框架,框架不局限于现存的几类算法,并且实现自动化的筛选,则有可能提高工作效率。   本文试图从开发者的角度,介绍一种通用的数值型误差分析框架,并以泰勒展开算法为例分析了其展开式项数与精度之间的定量关系,最终试图通过这些工作为快速三角函数算法的设计提供一定参考。 一、快速三角函数算法的原理分析 1. 预处理    对三角函数求值应充分考虑函数本身的性质。首先是周期性:正余弦函数的周期为2π,自变量的所有取值均可变换到单个周期[0, 2π]内,而使因变量保持不变;其次是对称性:例如正弦函数[0, π]上的图像与[π, 2π]上的图像关于X轴对称。取其中一支[0, π],还可以发现[0, π/2]与[π/2, π]上的图像关于平行Y轴的直线x = π/2对称。同理余弦函数也满足类似的性质。   综合上述性质可知,对于某个三角函数,若已知其在[0, π/2]的函数关系及必要的对称关系

19 误差分布曲线的建立 - 高斯导出误差正态分布

半城伤御伤魂 提交于 2019-11-29 18:34:47
事实上,棣莫弗早在1730年~1733年间便已从二项分布逼近的途径得到了正态密度函数的形式,到了1780年后,拉普拉斯也推出了中心极限定理的一般形式,但无论是棣莫弗,还是拉普拉斯,此时他们这些研究成果都还只是一个数学表达式而非概率分布,也就是压根就还没往误差概率分布的角度上去思索,而只有到了1809年,高斯提出“正太误差”的理论之后,它正太理论才得以“概率分布“的身份进入科学殿堂,从而引起人们的重视。 追本溯源,正态分布理论这条大河的源头归根结底是测量误差理论。那高斯到底在正态分布的确立做了哪些贡献呢?请看下文。 1801年1月,天文学家Giuseppe Piazzi发现了一颗从未见过的光度8等的星在移动,这颗现在被称作谷神星(Ceres)的小行星在夜空中出现6个星期,扫过八度角后在就在太阳的光芒下没了踪影,无法观测。而留下的观测数据有限,难以计算出他的轨道,天文学家也因此无法确定这颗新星是彗星还是行星,这个问题很快成了学术界关注的焦点。高斯当时已经是很有名望的年轻数学家了,这个问题也引起了他的兴趣。高斯一个小时之内就计算出了行星的轨道,并预言了它在夜空中出现的时间和位置。1801年12月31日夜,德国天文爱好者奥伯斯(Heinrich Olbers)在高斯预言的时间里,用望远镜对准了这片天空。果然不出所料,谷神星出现了! 高斯为此名声大震

SylixOS定时器测试误差分析

元气小坏坏 提交于 2019-11-29 14:38:41
测试模型 1.1 测试流程 图 1.1 运行流程 如图 1.1所示为测试代码运行流程,通过GPIO拉高到拉低的时间来判断定时器的精准度。 1.2 测试方法 1.2.1 测试模型 利用ZYNQ内部私有定时器,设置定时时间250μs并绑定中断。在中断服务程序中拉高GPIO,下一次进入中断服务程序时拉低GPIO并且发送二进制信号量。在应用程序中创建高优先级任务接收二进制信号量并且模拟负载,创建10个中优先级任务模拟负载,连接示波器测量时间。 1.2.2 测试干扰项 其他不同优先级的中断; 其他负载程序; 二进制信号量; 1.3 测试结果 程序运行时会产生如图 1.2所示波形。 图 1.2 正常波形 使用示波器抓波功能,如图 1.3图 1.4所示抓取电平拉低与拉高的时间间隔,经过12小时抓取小于242μs的的波形未出现,经过12小时抓取大于258μs的波形未出现。 图 1.3 抓取小于242μs波形 图 1.4 抓取大于258μs波形 测试结果可以看到误差范围在242μs到258μs之间,所以误差大小为±8μs。 误差分析 从程序运行流程来看,到达定时时间250μs后: ○1中断产生; ○2响应中断服务程序; ○3拉GPIO; (一) 如果到达250μs定时时间时,中断产生之前发生系统关中断,则中断无法响应;SylixOS最大关中断时间7μs;此时则可能产生误差; (二)

机器学习常用的损失函数

纵然是瞬间 提交于 2019-11-29 14:28:40
分类损失函数 一、LogLoss对数损失函数(逻辑回归,交叉熵损失)   有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。 平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到 ,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从 伯努利分布(0-1分布) ,然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为: 最小化负的似然函数(即max F(y, f(x)) —> min -F(y, f(x))) 。从损失函数的视角来看,它就成了log损失函数了。 log损失函数的标准形式 :   刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE(最大似然估计)中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到最大值(换言之, 就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大 )。因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。   逻辑回归的P(Y=y|x)表达式如下(为了将类别标签y统一为1和0