精华内容
下载资源
问答
  • 今天不讲原理了,我感觉写一大堆,让大家也理解不透 简要说一下: 不仅仅极大提升了训练速度,收敛过程大大加快;...可以用 normalization 归一化 ,或者 standardization 标准化, 用来将数据的不同 feature 转.

    今天不讲原理了,我感觉写一大堆,让大家也理解不透

    简要说一下:

    • 不仅仅极大提升了训练速度,收敛过程大大加快;
    • 还能增加分类效果,一种解释是这是类似于Dropout的一种防止过拟合的正则化表达方式,所以不用Dropout也能达到相当的效果;
    • 另外调参过程也简单多了,对于初始化要求没那么高,而且可以使用大的学习率等。

     在网上还找到一些比较不错的图,可以启发

    数据做预处理
    可以用 normalization 归一化 ,或者 standardization 标准化,
    用来将数据的不同 feature 转换到同一范围内,
    normalization 归一化 :将数据转换到 [0, 1] 之间,
    standardization 标准化:转换后的数据符合标准正态分布



    为什么要做归一化和标准化?

     不同的特征具有不同数量级的数据,它们对线性组合后的结果的影响所占比重就很不相同,数量级大的特征显然影响更大。

    展开全文
  • 为什么要做音频(音量)标准化( Audio normalization)? 当我们在网上寻找音频时,由于制作标准等其他方面影响,会发现下载到的音频声音有的...Audio normalization 是什么? 目前音频标准化主要分为两种做法Peak (lev

    为什么要做音频(音量)标准化( Audio normalization)

    当我们在网上寻找音频时,由于制作标准等其他方面影响,会发现下载到的音频声音有的大有的小,比如音乐,这就会导致我们在听的时候需要根据不同的文件调整不同的音量大小,要不然可能在切换到下一首时音量能直接把你震晕
    或者查找我们在网上寻找音频素材,在使用时素材声音忽大忽小会严重影响成品质量。
    因此需要对视频中的音频进行标准化,避免声音忽大忽小。

    Audio normalization 是什么?

    目前音频标准化主要分为两种做法Peak (level) normalization(峰值标准化)Loudness normalization(响度标准化),我们一一了解。

    Peak (level) normalization(峰值标准化)

    峰值标准化,顾名思义,就是将音频最大(Peak)的地方,调整到特定大小,然后其他音频做相对应的增/减调整。
    在这里插入图片描述

    就比如上图中的左侧,将各个音频做相对调整,将所有音频文件的最大音量拉到0 db。这种方法的优点是简单,只需要找到最大音量并根据最大音量进行处理就决定了整体的音量调整,当然最终处理出的的结果好坏会根据最大音量而受到影响。比如下图,下图是一段经过Peak (level) normalization(峰值标准化)调整过的音频频谱图,左边为原始音频,右侧为处理后的结果。
    在这里插入图片描述
    由于原始音频(左侧)在接近结尾处会出现一声及其响亮的枪声,所以由于这突如其来的枪响,导致经过Peak (level) normalization后(右侧),调整幅度不大,音频前部分的声音听起来声音仍旧很小。

    Loudness normalization(响度标准化)

    响度标准化需要先计算出整体声音的平均音量,再将根据平均音量得到期望的音量差值作为调整依据。
    在这里插入图片描述
    上图右边的范例,就是将各个音频的音量统一调整到平均音量(绿色区域上界)-24db上。
    这种方式计算比较复杂,并且音量较大的地方有在调整后,可能由于音量爆表而被裁剪。所以最终处理后的音频各个音量间的对比会产生变化。
    就拿之前说的那个音频来做比较,下图是之前枪声那个音频经过Loudness normalization(响度标准化)调整过的音频频谱图,可以看到音频前部分的的声音明显变大了,同时原来对话跟枪声的强烈对比也被削弱了。
    在这里插入图片描述
    由于Loudness normalization更符合调整出预期的结果,因此,在有线电视/广播领域里主要用的也是Loudness normalization。目前在欧美所涉的产业标准有:

    如何进行音频(音量)标准化?

    这里介绍通过 ffmpeg 来进行音频标准化处理。

    Peak (level) normalization

    使用 ffmpeg 对音频进行Peak (level) normalization时需要进行两次处理,第一次获取当前音频的具体数值,第二次使用获取到的具体数值作为参数用 ffmpeg 对音频进行修正。

    1. 获取音频数值

    $ ffmpeg -i video.avi -af "volumedetect" -vn -sn -dn -f null /dev/null
    ...
    [Parsed_volumedetect_0 @ 0000021d600c6e40] mean_volume: -16.0 dB
    [Parsed_volumedetect_0 @ 0000021d600c6e40] max_volume: -5.0 dB
    [Parsed_volumedetect_0 @ 0000021d600c6e40] histogram_8db: 5
    [Parsed_volumedetect_0 @ 0000021d600c6e40] histogram_9db: 38
    [Parsed_volumedetect_0 @ 0000021d600c6e40] histogram_10db: 137
    [Parsed_volumedetect_0 @ 0000021d600c6e40] histogram_11db: 684
    
    ...
    
    • 在Windows上需要将/dev/null替换为NUL
    • 参数 -vn-sn,-dn 用来指定 ffmpeg 在执行过程中忽略非音频流。这样可以加快执行速度。

    我们需要的就是上面打印的最大音量:

    [Parsed_volumedetect_0 @ 0000021d600c6e40] max_volume: -5.0 dB
    

    可以看到,video.avi 文件的最大音量为-5.0 dB,如果我们想要将音量调整到0 dB,就可以对文件应用5 dB的增益。

    2. 对音频进行修正

    纯音频文件

    $ ffmpeg -i input.wav -af "volume=5dB" output.wav 
    

    AVI格式

    $ ffmpeg -i video.avi -af "volume=5dB" -c:v copy -c:a libmp3lame -q:a 2 output.avi
    

    Loudness normalization

    使用 ffmpeg 对音频进行 Loudness normalization使用的时EBU R.128标准,同时也需要进行两次处理,分别获取当前音频的具体数值,以及使用获取到的具体数值作为参数用 ffmpeg 对音频进行修正。

    1. 获取音频数值

    $ ffmpeg -i input.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -
    ...
    {
            "input_i" : "-23.54",
            "input_tp" : "-7.96",
            "input_lra" : "0.00",
            "input_thresh" : "-34.17",
            "output_i" : "-23.09",
            "output_tp" : "-7.51",
            "output_lra" : "0.00",
            "output_thresh" : "-33.72",
            "normalization_type" : "linear",
            "target_offset" : "7.09"
    }
    

    2. 对音频进行修正

    $ ffmpeg -y -i input.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-23.54:measured_TP=-7.96:measured_LRA=0.00:measured_thresh=-34.17:offset=7.09:print_format=summary -ar 16k out.wav
    

    需要注意的是loudnorm过滤器使用(重叠的)3秒音频窗口来计算源中的短期响度,从而调整目标位置以符合目标参数。所以当文件时常不足3秒时,可能输出结果会出现较大偏差,这时候可以将文件多重复几次直到足够3秒,执行标准化之后在裁剪为原来的长度。

    参数说明

    响度范围(Loudness Range,LRA)

    响度范围,用来描述音频的响度反差,即音频短时响度电平的离散度,或者说最常出现的那85%的响度的分布范围,它决定着是否根据目标受众对音频的动态范围进行压缩.

    响度范围的大小与节目类型有关.流行音乐、广告等节目通常都进行了良好的压缩、激励甚至削波处理,响度范围小(一般为2~5 LU),能量集中,听起来很破甚至非常吵闹,压迫感强烈;新闻、访谈节目的响度范围比较适中,听感较为舒适(6~10 LU);而电影、电视剧、戏曲、交响乐等节目出于艺术表现,响度范围较大(10 LU以上),声音比较闷,经压限处理之后才能在电视上良好地重放.

    响度范围的测量方法分为如下4步:

    (1)将节目音频切割成相互重叠(至少2秒相互重叠)的短时响度块;

    (2)以响度为横轴,出现的概率密度为纵轴,绘制出节目的响度-概率分布图;

    (3)去掉低于-70 LUFS(静音)及绝对选通总体响度下方20LU(底声)的横轴部分;

    (4)剩余响度累积分布函数的10%至95%两点之间所对应的横轴宽度,即为响度范围.

    响度范围需要与听音环境相匹配.听音环境的动态范围受限于居室的本底噪声、听觉的痛阈及最大还音功率.典型居室的本底噪声在45~55dBA,而电视的典型收听音量为60~75dBA,因此电视所能重现的动态范围,或者说响度范围容限(DRT)很窄,只有20dB左右.轻薄便携的液晶电视甚至更差,因为留给扬声器的空间很小,功率做不大,并且为了降低功耗,常常使用底噪较大的D类功放.

    响度范围过大的负面效应多见于电影和电视剧,观众常常会感觉到节目沉闷,因为它们是为大荧幕制作的,影剧院通常都具有良好的装修和一流的音响,而电视不能还原那么大的动态范围,此时就需要进行响度范围转换,对较弱的片断进行提升,对少数过响的音效进行限制.这可利用一个低门限值(小于-40dBFS)低压缩比(1:1.2~1:1.5)且带有补偿增益(make-up gain)的压缩器实现,提升听觉体验.而对于广告这类能量集中的节目来说,可直接平移节目的响度电平,有时甚至应当以短时响度的最大值作为广告响度的依据,进行响度惩罚,超得越多,降得越多.笔者认为,对于标清语言类电视节目,在不造成明显失真的前提下,LRA控制在6~12会比较舒适,既不会太闷,也不会太吵.

    响度范围过大的另一个原因是节目制作不规范,节目内嵌多段整体响度不同的素材,类似于台阶.这种节目的LRA和整体响度并不真正反映节目的类型和响度的重心,并且起伏很大,难以校正.多代引用这类节目素材时会引起响度参差的累积,造成高阶响度问题,必须在制作阶段就予以解决.

    一个节目的LRA如果和流派不相符,那么这个节目的制作就可能存在问题,例如上文提到的响度参差(会使响度范围变大),以及电平不匹配引起的削波(会使响度范围变小).

    真实峰值(True Peak)

    在说真峰值之前,先用通俗的话来说说峰值是什么,峰值就是波形振幅的波峰值(波形有波谷和波峰之分),说白了就是波形瞬态的最大电平值。那为什么要在峰值之前加个“真”字呢?原因是这样的,以前有一种峰值测量方法,只有当峰值的持续时间超过一定的时间时(通常是几毫秒),才会计算出比较准确的峰值,这种测量算法被称为模拟准峰值(QPPM)。模拟准峰值(QPPM)的瞬态响应受上升时间的限制 ,无法显示短于上升时间的峰值。
    EBU给出了一种新的算法,无论它的持续时间有多短,都能正确的测量出其波形的真实峰值水平,故此,称其为真峰值。它是用来检测信号有没有过载的,一旦信号过载就会被削波造成信号失真,正因如此,EBU给出建议为真峰值不要超过-1dBTP,目的就是防止信号产生过载削波,其单位为dBTP(dB True Peak真实峰值),对应的值是dBFS值。

    需要补充的是EBU R.128是针对电视台和广播建立的标准,由于电视台和广播传播的特殊性,受传输、发射设备的限制,所以需要设定最大允许真实峰值电平,EBU R.128推荐的制作域的最大允许真实峰值电平为-1dBTP。但具体设定播出的最大峰值电平标准时,应当全面了解传输设备特别是模拟传输设备的峰值储备及增益情况。

    展开全文
  • 在统计分析、数据挖掘过程中,经常性的接触到数据的标准化处理、数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢? 标准化 大型数据分析项目中,数据来源不同,量纲及量纲...

    在统计分析、数据挖掘过程中,经常性的接触到数据的标准化处理、数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢?

    标准化

    大型数据分析项目中,数据来源不同,量纲及量纲单位不同,为了让它们具备可比性,需要采用标准化方法消除由此带来的偏差。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。这就是数据标准化。

    基本原理:数值减去平均值,再除以其标准差,得到均值为0,标准差为1的服从标准正态分布的数据。

    SPSS中,使用最多的就是Z-score标准化(0-1标准化)方法,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

    SPSS具体操作是在【描述统计】菜单中完成,此时必须要勾选下方的【将标准化值另存为变量】,标准化后的新变量将保存在数据视图下原始数据最后一列,变量名称以大写字母Z开头。

    中心化

    数据的中心化是指原数据减去改组数据的平均值,经过中心化处理后,原数据的坐标平移至中心点(0,0),该组数据的均值变为0,以此也被称为零均值化。

    简单举例:譬如某小公司老板员工共5人,5人的工资,分别为12000、5000、8000、3000、4000元,这5个数据作为一个独立的数据集,平均值为6400元,每个人的工资依次减去平均水平6400,得到5600、-1400、1600、-3400、-2400,新的5个数据其平均值等于0,这个过程就是数据的中心化。

    在SPSS中,使用【计算变量】菜单,可衍生出一个新变量,输入表达式即可完成,新变量可以在数据视图下看到。

     

    归一化

    归一化,也算是数据标准化方法之一。常见的计算公式如下,得到新数据范围在[0,1]之间,归一化由此得名。

    归一化处理,在SPSS中可以通过【计算变量】菜单来实现,在表达式中输入相应的计算公式即可。

    本文地址:http://www.datasoldier.net/archives/505

    《SPSS统计分析从入门到实践提高》正在更新时间序列章节视频课时,欢迎读者观看点评。

    展开全文
  • 我觉得安装只能是标准的安装,特别IOS,都要通过APPstore安装,怎么可能为不同用户定制不同的安装呢? APP个性安装,就是要做到用户安装后APP的状态,要和安装前你给该用户的个性安装请求(比如说一个分享的H5...

    我觉得安装只能是标准的安装,特别是IOS,都要通过APPstore安装,怎么可能为不同用户定制不同的安装呢?

    APP个性化安装,就是要做到用户安装后APP的状态,要和安装前你给该用户的个性化安装请求(比如说一个分享的H5页面)保持一致,适配了安装前的请求信息,——这就达到了你个性化邀请的目的。

    所以说APP个性化安装的技术核心就是安装前后匹配的问题,匹配成功,就可以把安装前的个性化信息准确传递给安装后的APP。

    下面我以Shareinstall为例说一下我的理解:Shareinstall是如何检测已经安装的app

    在app推广过程中,安装环节是必不可少的。而在安装app前,必须现要检测推广的app是否已经被安装。这里以shareinstall的app已安装检测技术为例,帮大家了解主流的app已安装检测技术原理。

    (1)由于安全隐私的原因,目前在网页端是无法通过js脚本直接判断某个APP是否已经安装,只能首先通过js尝试性的启动app,然后再进入安装流程。web网页上启动app的方式有两种:1)URL Scheme;2)Universal Link

    (2)URL Scheme:

    android与ios均支持自定义scheme,通过访问自定义schema的url即可启动对应的app,如weixin://dl/scan这个url,这里的weixin就是自定义的schema。js启动app的具体方法主要有iframe.src,window.location等,如下:

    1.    
    var  iframe  =  document.createElement("iframe");    
    iframe.style.display  =  "none";    
    iframe.src  =  schemaUrl;    
    document.body.appendChild(iframe);    
    2.      
    window.location=schemaUrl;  

    (3)部分浏览器由于人为限制无法直接使用scheme启动app,例如微信与QQ的内置浏览器,但在微信与QQ中,可以通过集成应用宝的微下载来启动app,下面就来介绍下应用宝的具体情况:

    目前主要通过监听各种dom事件(如:pagehide,visibilitychange,unload等)或通过setTimeout根据时间差来(早期ios系统中,通过schema可立即启动app,同时导致浏览器js脚本暂停运行,脚本恢复运行时通过时间差就能大致的判断app是否启动成功)。但现实情况下,由于各种浏览器与系统的差异性,无法通过js百分百的准确判断app是否启动成功;比如从ios9.2开始,通过schema启动app时,ios系统会弹出一个非模态的系统提示框,询问用户是否同意启动,在用户没有做出选择前,js脚本将继续运行,这将导致js完全无法判断app是否启动成功。

    (4)Universal Link(通用链接):

    ios9开始提供通用链接的特性,app开发时可配置一个与app对应的关联域名,在ios9以上系统的所有浏览器中,访问任何一个url链接前,系统将检查本地是否已安装与url域名相对应的app,如果已安装对应的app,将进一步检查链接url的路径,是否应当启动该app,而不在浏览器中访问此url链接。但是通用链接存在一个容易让人迷惑的地方,在经过通用链接启动app后,用户可以选择使用safari访问此url,系统会默默的记住用户的选择,在下次访问通用链接的url时,系统将不再启动app,而是直接在浏览器中访问此url,并且没有明显的提示;(在safari中,用户只有手动往下拽了该页面时,才会出现一个询问用户打开app的banner,其它浏览器则未必有此功能,而是完完全全的忽略掉通用链接)

    (5)应用宝微下载:

    正常情况下,微信内置浏览器中,无法通过scheme启动app,无法下载apk,也无法跳转到app?store,但微信与QQ均集成了对应用宝的支持。通过使用应用宝的微下载功能,android下的微信与QQ帮助判断某个app是否已安装,已安装的情况下,提示用户直接启动app(在应用宝中需配置启动用的scheme),未安装的情况下,可直接下载已上架到应用宝的apk文件;ios下,由于无法判断某个应用是否已安装(特别是ios>=9.2出现的提示窗口),应用宝只提供了跳转app?store的功能,而没有启动app的功能。的忽略掉通用链接

    Shareinstall在安卓和IOS上采取的技术方案是不同的,安卓上他们采用了给不同用户独立打包的方式,以实现给不同用户有针对性的个性化安装。由于是直接给用户专用的APK包,所以他们匹配的准确度可以达到100%

    个性化安装的意义是能够免除安装后的参数设置步骤(直接传参到APP中了),简化了用户操作,改善了用户体验,比如APP邀请注册有奖活动,用了Shareinstall就能把邀请码作为参数安装到APP中,免除了被邀请用户填写邀请码的麻烦。另外,因为每次安装是个性化的,所以每次安装都是能够统计的,用来做推广渠道效果统计会非常好。

    展开全文
  • AJAX工作原理及其优缺点 1.什么是AJAX?...它使用:使用XHTML+CSS来标准化呈现;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest对象与Web服务器进行异步数据通信; 使用Javascri...
  • PCA实验中很常用的工具,一般用来做降维,它的实现有很多很多种,其中牵涉相当多的细节,笔者在实现PCA时常常有困惑,为什么查到的各种代码总有一些不同的trick,有时候对样本提前归一?有时候又要减均值?这些...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 标准化对于开发“学习、教育和培训”(LET)中使用的“信息通信技术”(ICT)有重要意义,但ICT的利益相关者(stakeholders)却往往质疑标准化活动.本文提出,利用这种质疑形式来分析和改进当前的ICT标准化活动.讨论了由...
  • 数据采集指在 Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在 ...
  • 标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。 3.文件传输:文件传输通过发送格式文件实现应用程序间数据共享。 4.信息交付:指松耦合或紧耦合应用程序间的小型...
  • 我们在翻阅各种资料时,在数据预处理步骤,经常会看到对数据进行标准化或者归一化,那么这么做的好处是什么? 1、这样处理后加快了梯度下降求最优解的速度; 2、有可能提高精度; 但是,理解这句话后,你会发现,这...
  • java序列化反序列化原理

    千次阅读 2017-01-12 17:08:18
    Java序列算法透析  Serialization(序列...在这里你能学到如何序列一个对象,什么时候需要序列以及Java序列的算法,我们用一个实例来示范序列以后的字节如何描述一个对象的信息的。 序列的必要性 J
  • Java序列化原理解析

    2020-10-30 11:50:25
    Serialization (序列一种将对象以一连串的字节描述的过程...在这里你能学到如何序列一个对象,什么时候需要序列以及 Java 序列的算法,我们用一个实例来示范序列以后的字节如何描述一个对象的信息的。
  • 目录 归一化、正则化、BN、IN、LN、GN原理 feature scaling 特征缩放、归一化、标准化、中心化 批量归一化 BN、IN、Ln、GN ...什么是特征缩放 特征缩放的目标就是数据规范化,使得特征的...
  • java序列化原理及算法

    2017-12-21 11:38:00
    有关Java对象的序列和反序列也算是Java基础的一部分,下面对Java序列的机制和原理进行一些介绍。Java序列算法透析Serialization(序列一种将对象以一连串的字节描述的过程;反序列deserialization...
  • 在统计分析、数据挖掘过程中,经常性的接触到数据的标准化处理、数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢? 标准化 大型数据分析项目中,数据来源不同,量纲及量纲...
  • Java序列机制和原理

    2017-12-12 12:49:51
    Java序列算法透析  Serialization(序列...在这里你能学到如何序列一个对象,什么时候需要序列以及Java序列的算法,我们用一个实例来示范序列以后的字节如何描述一个对象的信息的。 序列的必要性 J
  • 原理是什么,怎么计算?怎么用? 有什么用? 批归一化(Batch Normalization,BatchNorm)是由Ioffe和Szegedy于2015年提出的,目前已被广泛应用在深度学习中,其目的是对神经网络中间层的输出进行标准化处理,使得...
  • 标准化;正规化;常态化 Feature scaling 特征归一化;特征缩放 摘自书籍《机器学习算法原理与编程实践》 归一化方法有两种形式,一种把数变为(0,1)之间的小数,一种把有量纲表达式变为无量纲表达式。 ...
  • 4. 3GPP各个版本的主要特点是什么 2 5. 3GPP R99和R4版本的主要区别 3 6. 3GPP R4版本为什么使用BICC协议而不是SIP-T? 4 7. 在R4中使用的扩展的H.248与H.248有什么不同? 5 8. 3GPP R99和R4核心网电路域差异 5 9. ...
  • 有关Java对象的序列和反序列也算是Java基础的一部分,下面对Java序列的机制和原理进行一些介绍。 Java序列算法透析 Serialization(序列一种将对象以一连串的字节描述的过程;反序列...
  • 1. 什么是容器 日趋复杂的运维开发环境, 对虚拟服务器及应用服务的要求更加多元, 我们需要更加容易扩展, 性能优越, 方便监控的管理服务, 容器应用, 容器运维应运而生。 容器化是将应用程序或服务, 其依赖...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,202
精华内容 480
关键字:

标准化原理是什么