方差

模式识别系列之特征降维(1)主成分分析

半城伤御伤魂 提交于 2020-01-19 11:54:20
目录 1-PCA概述 2-理论推导 2.1-向量的内积与投影: 2.2-基的表示与变换: 2.3-协方差矩阵: 2.4-PCA推导 3-几何理解 4-计算过程 4.1-样本数小于特征数时的计算 4.2-matlab代码 5-实例 参考 1-PCA概述 主成分分析是一种常用的降维方法,它不使用标签信息,通过将原始坐标空间的数据( d × 1 d\times 1 d × 1 )投影到新的正交空间( k × 1 k\times 1 k × 1 )中实现数据降维,所谓的主成分就是指数据在新空间的基的方向。PCA以方差作为信息损失衡量的标准,使得数据降维过程中信息损失最小,即降维后数据的方差要尽量大。PCA首先找到所有数据方差最大的方向,并将其作为新的坐标空间的第一个轴的方向,然后在这个方向的垂直超平面上寻找第二个方差最大的方向,并作为新坐标空间第二个轴的方向,以此类推,直到找到需要的k个方向,也就是K个主成分,显然这k个新的基方向是两两垂直的。PCA的主要过程可以用“扭动坐标轴,保留K个轴”来形容。 为什么要以方差最大为依据呢?降维是为了数据更好地表示与计算,显然我们不希望降维后的数据成了一坨,使得原本分界明显的数据掺和在一起。例如,将数据投影到一维坐标系中,显然绿色的投影更好一些,因为其分散程度大,也就是方差更大。 对n个d维数据构成的数据集 X X X ( d × n d\times

二元变量(伯努利分布、二项式分布以及Beta分布)

跟風遠走 提交于 2020-01-17 22:48:28
概率分布(一) 参数分布 取这个名字是因为少量的参数可以控制整个概率分布。如高斯分布,我们只需要控制其期望和方差就可以得到一个特定的概率分布。 频率学家的观点:通过最优化某些准则(如似然函数)来确定参数的具体值。 贝叶斯观点:给定观察数据,先引入参数的先验分布,然后用贝叶斯定理计算对应的后验概率分布。共轭先验(conjugate prior)使后验概率的分布函数形式与先验概率相同,极大的简化了贝叶斯分析。 参数方法与非参数方法 参数方法是假定分布为某一个具体的函数形式,然后估计其参数。非参数方法则依赖数据集的规模。非参数方法中的模型也有参数,但不是用来控制模型的参数,而是用于控制模型的复杂度。 二元变量 伯努利分布(Bernoulli distribution) 考虑一个不均匀硬币,抛掷硬币时其正面朝上的概率由参数 \(\mu \in [0,1]\) 决定,则 \(p(x=1|\mu)=\mu\) 。 伯努利分布可以表示为: \[ Bern(x|\mu)=\mu^x(1-\mu)^{1-x} \] 其期望和方差为: \[ E(x)=\mu \\ Var(x)=\mu(1-\mu) \] 对数似然函数为( \(D\) 为数据集): \[ \ln p(D|\mu)=\sum_{n=1}^N(x_n\ln\mu+(1-x_n)\ln(1-\mu))\\ \mu_{MLE}=\frac{m

用scikit-learn学习主成分分析(PCA)

本秂侑毒 提交于 2020-01-15 07:44:00
    在 主成分分析(PCA)原理总结 中,我们对主成分分析(以下简称PCA)的原理做了总结,下面我们就总结下如何使用scikit-learn工具来进行PCA降维。 1. scikit-learn PCA类介绍     在scikit-learn中,与PCA相关的类都在sklearn.decomposition包中。最常用的PCA类就是sklearn.decomposition.PCA,我们下面主要也会讲解基于这个类的使用的方法。     除了PCA类以外,最常用的PCA相关类还有KernelPCA类,在原理篇我们也讲到了,它主要用于非线性数据的降维,需要用到核技巧。因此在使用的时候需要选择合适的核函数并对核函数的参数进行调参。     另外一个常用的PCA相关类是IncrementalPCA类,它主要是为了解决单机内存限制的。有时候我们的样本量可能是上百万+,维度可能也是上千,直接去拟合数据可能会让内存爆掉, 此时我们可以用IncrementalPCA类来解决这个问题。IncrementalPCA先将数据分成多个batch,然后对每个batch依次递增调用partial_fit函数,这样一步步的得到最终的样本最优降维。     此外还有SparsePCA和MiniBatchSparsePCA。他们和上面讲到的PCA类的区别主要是使用了L1的正则化

论文阅读笔记四十八:Bounding Box Regression with Uncertainty for Accurate Object Detection(CVPR2019)

北城以北 提交于 2020-01-15 03:32:28
论文原址: https://arxiv.org/pdf/1809.08545.pdf github: https://github.com/yihui-he/KL-Loss 摘要 大规模的目标检测数据集在进行ground truth 框标记时仍存在这歧义,本文提出新的边界框的回归损失针对边界框的移动及位置方差进行学习,此方法在不增加计算量的基础上提高不同结构定位的准确性。而学习到的位置变化用于在进行NMS处理时合并两个相邻的边界框。 介绍 在大规模目标检测数据集中,一些场景下框的标记是存在歧义的,十分不利于边界框的标记及边界框回归函数的学习。 图下图(a,c),一些框的标记并不是很准确。当物体被遮挡时,边界框更不清晰,如下图(d)所示。 目标检测包含分类及定位是一个多任务的学习问题。Faster R-CNN,Cascade R-CNN及Mask R-CNN依靠边界框回归来进行目标定位。传统的基于Smooth L1损失的边界框回归损失并未考虑ground truth 模糊的情形。一般来说分类的分数越高,其边界框的回归应更为准确,然而,这种情况很少,如下图所示。 本文提出了KL损失用于解决上述问题,本文新提出的边界框损失-KL损失,可以同时学习边界框的回归以及定位的不确定性。为了捕捉边界框预测的不确定性,首先将边界框的预测及ground truth 框分别看作时高斯分布及Dirac

吴恩达深度学习课程疑难点笔记系列-改善深层神经网络-第1周

时光怂恿深爱的人放手 提交于 2020-01-14 00:26:34
本笔记系列参照吴恩达深度学习课程的视频和课件,并在学习和做练习过程中从CSDN博主 何宽 分享的文章中得到了帮助,再此表示感谢。 本周主要学习的内容有: 训练/开发/测试机、偏差/方差、机器学习基础、正则化、为什么正则化可以减少过拟合?、Dropout正则化、理解Dropout、其它正则化方法、正则化输入、梯度消失与梯度爆炸、神经网络的权重初始化、梯度的数值逼近、梯度检验、关于梯度检验实现的注记。 本周学习的主要疑难点: 1.偏差和方差 偏差和方差是针对泛化(Generalization)而言的,模型训练的过程是一个不断减小误差函数(Loss Function)的过程。而模型在训练数据集上取得的最小误差函数值与一般数据集(或者测试数据集)上取得的最小误差函数值的差异叫泛化误差(generalization error)。 泛化误差可以分解为偏差、方差和噪声之和。具体数学公式的推导可以查看西瓜书2.5节的推导过程。 偏差(Bias):度量了学习算法的期望预测与真实结果的偏离程度,即 刻画了学习算法本身的拟合能力 。 方差(Variance):度量了同样大小的训练集的变动所导致的学习性能的变化,即 刻画了数据扰动所造成的影响 。 噪声(Noise):表达了当前任务上学习任何算法所能达到的期望泛化误差的下届,即 刻画了学习问题本身的难度 我们可以从图1来理解偏差和方差的区别 图 1 图1

深度学习之BN(批量标准化)

纵然是瞬间 提交于 2020-01-13 12:18:51
BN作为最近一年来深度学习的重要成果,已经广泛被证明其有效性和重要性。虽然还解释不清其理论原因,但是实践证明好用才是真的好。 一、什么是BN 机器学习领域有个很重要的假设: 独立同分布假设 ,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。BN就是深度神经网络训练过程中使得每层网络的输入保持相同分布。 二、为什么要使用BN 根据论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》所讲内容,BN主要是解决Internal Convariate Shift问题。那么什么是Internal Convariate Shift呢? 可以这样解释:如果ML系统实例集合<X,Y>中的输入值X的分布老是变,这不符合IID假设,网络模型很难学习到有效的规律。对于深度学习这种包含很多隐层的网络结构,在训练过程中,因为各层参数不停在变化,所以每个隐层都会面临covariate shift的问题,也就是在训练过程中,隐层的输入分布老是变来变去,这就是所谓的“Internal Covariate Shift”,Internal指的是深层网络的隐层,是发生在网络内部的事情,而不是covariate

Batch Normalization、Layer Normalization、Instance Normalization、Group Normalization、Switchable Normalization比较

£可爱£侵袭症+ 提交于 2020-01-12 19:25:07
深度神经网络难训练一个重要的原因就是深度神经网络涉及很多层的叠加,每一层的参数变化都会导致下一层输入数据分布的变化,随着层数的增加,高层输入数据分布变化会非常剧烈,这就使得高层需要不断适应低层的参数更新。为了训练好模型,我们需要谨慎初始化网络权重,调整学习率等。 本篇博客总结几种归一化办法,并给出相应计算公式和代码。 归一化层,目前主要有这几个方法, Batch Normalization (2015年)、 Layer Normalization (2016年)、 Instance Normalization (2017年)、 Group Normalization (2018年)、 Switchable Normalization (2018年); 将输入的图像shape记为[ N , C hannel, H eight, W idth],这几个方法主要的区别就是在, batch Norm :在batch上,对NHW做归一化,对小batchsize效果不好; layer Norm :在通道方向上,对CHW归一化,主要对RNN作用明显; instance Norm :在图像像素上,对HW做归一化,用在风格化迁移; Group Norm :将channel分组,然后再做归一化; Switchable Norm :将BN、LN、IN结合,赋予权重

Batch Normalization

家住魔仙堡 提交于 2020-01-12 19:24:42
前言: Batch Normalization是深度学习领域在2015年非常热门的一个算法,许多网络应用该方法进行训练,并且取得了非常好的效果。 众所周知,深度学习是应用随机梯度下降法对网络进行训练,尽管随机梯度下降训练神经网络非常有效,但是它有一个缺点,就是需要人为的设定很多参数,比如学习率,权重衰减系数,Dropout比例等。这些参数的选择对训练结果至关重要,以至于训练的大多数精力都耗费在了调参上面。BN算法就可以完美的解决这些问题。当我们使用了BN算法,我们可以去选择比较大的初始学习率,这样就会加快学习的速度;我们还可以不必去理会过拟合中的dropout、正则项约束问题等,因为BN算法可以提高网络的泛化能力;我们再也不需要使用局部响应归一化层,因为BN本身就是归一化的网络;还可以打乱训练数据,防止每批训练的时候,某一个样本经常被选到。通常在训练神经网络之前,我们都会对数据进行归一化处理,为什么呢?因为神经网络训练实际是为了学习数据的分布情况,一旦训练数据与测试数据分布不同,那么网络的泛化能力也会大大降低。另外,如果每一批的训练数据都不同,那么神经网络就会去适应不同训练数据的分布,这样就会大大降低网络训练的速度。深度学习的训练是一个复杂的过程,如果前几层的数据分布发生了变化,那么后面就会积累下去,不断放大,这样就会导致神经网络在训练过程中不断适应新的数据分布,影响网络训练的速度

特征工程

ⅰ亾dé卋堺 提交于 2020-01-12 06:44:10
本文中使用sklearn中的IRIS(鸢尾花)数据集来对特征处理功能进行说明。IRIS数据集由Fisher在1936年整理,包含4个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)),特征值都为正浮点数,单位为厘米。目标值为鸢尾花的分类(Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),Iris Virginica(维吉尼亚鸢尾))。导入IRIS数据集的代码如下: from sklearn.datasets import load_iris # 导入IRIS数据集 iris = load_iris() # 特征矩阵 iris.data # 目标向量 iris.target 1、特征选择 当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征: 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用; 特征与目标的相关性:这点比较显见,与目标相关性高的特征应当优先选择。 根据特征选择的形式又可以将特征选择方法分为3种: Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者选择阈值的个数,选择特征;

图像处理与分析

天大地大妈咪最大 提交于 2020-01-10 03:25:57
基本概念 图像的采样和量化 光照本身是连续的、但是转换成数字形式必然是不连续的 在坐标值(空间)上的数字化即为采样,对幅值的数字化即为量化 量化——每一像素值只能用有限位比特表示,故只能表现有限的精度 可以看作是笛卡儿积 Z 2 Z^2 Z 2 中的一对元素,映射到灰度值集合上的一个映射。 空间分辨率:如dpi每英寸点数;灰度分辨率直接用比特表示 图像插值 最简单的是最近邻方法,其次是双线性,最后是双三次 双线性:可以看作是在一个方格内拟合 f ( x , y ) = a + b x + c y + d x y f(x,y)=a+bx+cy+dxy f ( x , y ) = a + b x + c y + d x y ,比较好的特点是无论固定x还是固定y,关于另一个变量都是线性的。 像素间关系 4领域、8领域、m邻接(m邻接可以消除8邻接的二义性 连通性、区域、边界 距离的度量:非负、自反、交换、三角 常用计算 矩阵与阵列计算 灰度算术 集合和逻辑操作 空间操作(几何空间变换与图像配准 一般来说反向映射比前向映射要好,可以配合插值算法决定每个像素的输出值 把图像当作一个向量,然后乘以矩阵 图像变到某个变换域去(通常通过某个正交变换核 彩色图像 光的三原色为RGB 颜料的三原色为CMYK(青、品红、黄、黑 HSI 色调、饱和度、强度 图像增强 灰度变换 略 直方图处理 直方图