均值-方差模型

卷积神经网络(三):权值初始化方法之Xavier与MSRA

為{幸葍}努か 提交于 2020-03-05 20:25:03
基础知识 首先介绍一下Xavier等初始化方法比直接用高斯分布进行初始化W的优势所在: 一般的神经网络在前向传播时神经元输出值的方差会不断增大,而使用Xavier等方法理论上可以保证每层神经元输入输出方差一致。 这里先介绍一个方差相乘的公式,以便理解Xavier: Xavier 现在我们先来分析一层卷积: 其中ni表示输入个数。 根据概率统计知识我们有下面的方差公式: 特别的,当我们假设输入和权重都是0均值时(目前有了BN之后,这一点也较容易满足),上式可以简化为: 进一步假设输入x和权重w独立同分布,则有: 于是,为了保证 输入与输出方差一致 ,则应该有: 为什么要保证输入和输出的方差一致:如果不一致,则会造成方差越来越大(vary(y)>var(x)),或是越来越小(var(y) 为了保证前向传播和反向传播时每一层的方差一致,应 但是,实际当中输入与输出的个数往往不相等,于是为了均衡考量, 最终我们的权重方差应满足 : ——————————————————————————————————————— ——————————————————————————————————————— 学过概率统计的都知道 [a,b] 间的均匀分布的方差为: 因此, Xavier 初始化的实现就是下面的均匀分布 ——————————————————————————————————————————

DL_Notebook 6_BN/ResNet/DenseNet

梦想的初衷 提交于 2020-03-01 04:54:33
批量归一化和残差网络 批量归一化 Batch Normalization 1. 对全连接层做批量归一化 2.对卷积层做批量归⼀化 3.预测时的批量归⼀化 从零实现 基于LeNet的应用 简洁实现 残差网络 ResNet 残差块(Residual Block) ResNet模型 DenseNet 稠密连接网络 稠密块(Dense Block) 过渡层(Transition layer) DenseNet模型 批量归一化 Batch Normalization BN是针对深层CNN的方法之一,有助于有效模型的训练。是对数据的标准化处理。 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。 标准化处理输入数据使各个特征的分布相近(更加容易训练出有效的模型)。但对于深层模型,仅做输入的标准化是不够的,网络太深,靠近输出层还是可能发生数据的剧烈变化。 批量归一化(深度模型) 利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。 1. 对全连接层做批量归一化 位置:全连接层中的仿射变换和激活函数之间。 关于BN位置的问题: Batch-normalized 应该放在非线性激活层的前面还是后面? 全连接: 输入 u \boldsymbol{u} u ,大小为 batch_size * 输入神经元个数

Batch Normalization 批量标准化

喜欢而已 提交于 2020-01-26 10:12:10
本篇博文转自:https://www.cnblogs.com/guoyaohua/p/8724433.html  Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个 经验领先于理论分析 的偏经验的一门学问。本文是对论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》的导读。   机器学习领域有个很重要的假设: IID独立同分布假设 ,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢? BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。   接下来一步一步的理解什么是BN。   为什么深度神经网络 随着网络深度加深,训练起来越困难,收敛越来越慢? 这是个在DL领域很接近本质的好问题。很多论文都是解决这个问题的,比如ReLU激活函数,再比如Residual Network,BN本质上也是解释并从某个不同的角度来解决这个问题的。 一、

均值方差模型

家住魔仙堡 提交于 2019-12-21 01:35:35
今天,我们来讲一讲“均值方差模型”。 介绍模型之前,先讲一下模型诞生背后的故事。 背后的故事 从前,有一个年轻人,叫 哈里·马科维兹(Harry Markowitz) ,彼时他正在芝加哥大学攻读经济学博士学位,一次偶然的机会他在办公室门外等待见导师、准备讨论博士论文时遇到了一个股票经纪人,和股票经纪人的一番交谈使他的研究方向转向了证券市场。导师鼓励他对这个领域进行研究,并给他推荐了当时著名的经济学家约翰·威廉姆斯(John Williams)最出名的一本书:《投资价值理论》(The Theory of Investment Value) 。 威廉姆斯认为,证券的价格反映了其“内在价值”,而 证券的价值就是其未来股息的折现价格 。但马科维兹很快就发现这个理论缺少了对“风险”的分析:投资者固然要最大化预期折现收益,同时也应该考虑到收益的方差(variance)是一个不好的东西,投资者在决策过程中应该同时考虑这两个方面,并且应该这样构建一个投资组合: 在“预期收益”和“收益的方差”之间做权衡取舍(trade-off) 。 (有点复杂,但这句话很重要...) 于是在1952年,25岁的马科维兹在The Journal of Finance这本顶级金融学期刊上发表了一篇论文,叫 《证券投资组合选择》(Portfolio Selection) 。 这篇论文当时并没有引起很大的轰动

吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架

微笑、不失礼 提交于 2019-12-05 00:39:33
3.1调试处理 (1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β、隐藏层单元数、mini-batch size(黄色圈出)、再之后是Layer、learning rate decay(紫色圈出)、最后是Adam算法中的β 1 、β 2 、ε。 (2)用随机取值代替网格点取值。下图左边是网格点取值,如果二维参数中,一个参数调试的影响特别小,那么虽然取了25个点,其实只相当于取了5个不同的点;而右图中随机取值取了多少个点就代表有多少不同值的点。 (3)由粗糙到精细的取值,先粗糙取值,然后发现最好的点,再在这个点附近进行精细的取值。如下图所示 3.2为超参数选择合适的范围 (1)随机取值并不是在取值范围内随机均匀取值,而是要选择合适的标尺来随机取值。 (2)案例1:在选择网络层数时,其范围是[2,4],那么直接均匀取值2,3,4都是合理的。 (3)案例2:如果在给学习率取值时,其范围是[0.0001,1],如果均匀取值,将会有90%的点落在0.1到1之间,这时不合理的;此时应该用对数坐标0.0001=10 -4 ,1=10 0 ,所以应该是在[-4,0]上随机均匀取值作为r,然后10 r 作为学习率α。如下图所示 (4)指数加权平均的超参数β取值范围是[0.9,0.999],其方法是:1-β=[0.1,0

”Unstanding the Bias-Variance Tradeoff“主题内容翻译

和自甴很熟 提交于 2019-12-02 13:13:50
对预测模型讨论,预测误差(error)分两类:偏差(bias)造成的误差与方差(variance)造成的误差。最小化偏差与方差的一个权衡。理解这两类误差有利于诊断模型结果和避免过拟合和欠拟合。 偏差与方差 三种方式定义偏差与方差:概念、图形、数学 概念定义: 偏差造成的误差:预期/平均预测值 和 尝试正确预测的值之差。预期/平均预测值作何理解?多次建模,新数据新分析建立模型,由于数据随机,预测会产生一系列预测。偏见度量模型预测(models' predictions) 远离 正确值(the correct value)的程度. 方差造成的误差:对于给定数据点,模型预测的可变性。重复多次,方差就是对于给定点预测,在模型的不同实现之中变化的多少。 图形定义: 由靶心图可视化偏差与方差。靶心完全预测正确,偏离靶心预测差。训练中数据偶然变化。好的时候,集中在靶心;坏,outlier、非标准值(non-standard values)。散点图 图: 高/低 偏差/方差 数学定义: The Elements of Statistical Learning中的定义: Variable:预测Y,协变量(covariate)X,存在一种关系,Y=f(X)+e,误差项e为零均值正态分布。 文章来源: http://scott.fortmann-roe.com/docs/BiasVariance

sklearn.metrics计算回归模型的四大评价指标

大憨熊 提交于 2019-12-02 06:13:29
'' ' 模型效果指标评估 y_true:真实的数据值 y_pred:回归模型预测的数据值 explained_variance_score:解释回归模型的方差得分,其值取值范围是 [ 0 , 1 ] ,越接近于 1 说明自变量越能解释因变量 的方差变化,值越小则说明效果越差。 mean_absolute_error:平均绝对误差(Mean Absolute Error,MAE),用于评估预测结果和真实数据集的接近程度的程度 ,其其值越小说明拟合效果越好。 mean_squared_error:均方差(Mean squared error,MSE),该指标计算的是拟合数据和原始数据对应样本点的误差的 平方和的均值,其值越小说明拟合效果越好。 r2_score:判定系数,其含义是也是解释回归模型的方差得分,其值取值范围是 [ 0 , 1 ] ,越接近于 1 说明自变量越能解释因 变量的方差变化,值越小则说明效果越差。 explained_variance_score 解释方差的得分 Parameters : y_true : array - like of shape = ( n_samples ) or ( n_samples , n_outputs ) Ground truth ( correct ) target values . y_pred : array - like

10 协方差矩阵与主成成分分析

梦想与她 提交于 2019-11-29 08:20:27
协方差矩阵 由上,我们已经知道:协方差是衡量两个随机变量的相关程度。且随机变量 之间的协方差可以表示为: 故根据已知的样本值可以得到协方差的估计值如下: 可以进一步地简化为: 如此,便引出了所谓的协方差矩阵: 主成成分分析 尽管从上面看来,协方差矩阵貌似很简单,可它却是很多领域里的非常有力的工具。它能导出一个变换矩阵,这个矩阵能使数据完全去相关(decorrelation)。从不同的角度看,也就是说能够找出一组最佳的基以紧凑的方式来表达数据。这个方法在统计学中被称为主成分分析(principal components analysis,简称PCA),在图像处理中称为Karhunen-Loève 变换(KL-变换)。 根据wikipedia上的介绍,主成分分析PCA由卡尔·皮尔逊于1901年发明,用于分析数据及建立数理模型。其方法主要是 通过对协方差矩阵进行特征分解,以得出数据的主成分(即特征矢量)与它们的权值(即特征值) 。PCA是最简单的以特征量分析多元统计分布的方法。其结果可以理解为对原数据中的方差做出解释:哪一个方向上的数据值对方差的影响最大。 然为何要使得变换后的数据有着最大的方差呢?我们知道,方差的大小描述的是一个变量的信息量,我们在讲一个东西的稳定性的时候,往往说要减小方差,如果一个模型的方差很大,那就说明模型不稳定了。但是对于我们 用于机器学习的数据(主要是训练数据)

【深度学习】深入理解Batch Normalization批标准化

霸气de小男生 提交于 2019-11-28 15:38:33
这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出。   Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个 经验领先于理论分析 的偏经验的一门学问。本文是对论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》的导读。   机器学习领域有个很重要的假设: IID独立同分布假设 ,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢? BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。   接下来一步一步的理解什么是BN。   为什么深度神经网络 随着网络深度加深,训练起来越困难,收敛越来越慢? 这是个在DL领域很接近本质的好问题。很多论文都是解决这个问题的,比如ReLU激活函数,再比如Residual Network

机器学习:数据归一化(Scaler)

北战南征 提交于 2019-11-27 18:02:34
数据归一化(Feature Scaling) 一、为什么要进行数据归一化 原则:样本的所有特征,在特征空间中,对样本的距离产生的影响是同级的; 问题:特征数字化后,由于取值大小不同,造成特征空间中样本点的距离会被个别特征值所主导,而受其它特征的影响比较小; 例:特征1 = [1, 3, 2, 6, 5, 7, 9],特征2 = [1000, 3000, 5000, 2000, 4000, 8000, 3000],计算两个样本在特征空间的距离时,主要被特征2所决定; 定义:将所有的数据(具体操作时,对每一组特征数据进行分别处理)映射到同一个尺度中; 归一化的过程,是算法的一部分; 二、数据归一化的方法  1)最值归一化(normalization)   1、思路:把所有数据映射到0~1之间;   2、公式:        # x为数据集中每一种特征的值;    # 将数据集中的每一种特征都做映射;   3、特点:多适用于 分布有明显边界 的情况;如考试成绩、人的身高、颜色的分布等,都有范围;而不是些没有范围约定,或者范围非常大的数据;    # 明显边界:同一特征的数据大小相差不大;不会出现大部分数据在0~200之间,有个别数据在100000左右;   4、缺点:受outlier影响较大;  2)Z-score(standardization)   1、思路:把所有数据归一到均值为