精华内容
下载资源
问答
  • 特征提取器
    2020-02-25 10:59:46

    特 征 提 取 器 特征提取器

    一 Transformer

    二 CNN

    三 RNN

    更多相关内容
  • 该应用程序可以从任何预先训练的网络中提取特征特征: 1.加载图像数据存储2. 提取特征2.规范化功能3. 将特征保存在工作区和PC中4.从工作区和PC加载自定义模型5. 从自定义模型中提取特征6. 打开机器学习应用
  • 工具箱的目标是简化常用计算机视觉特征(如 HOG、SIFT、GIST 和颜色)的特征提取过程,用于与图像分类相关的任务。 FEATURES.md 中提供了包含功能的详细信息。 除了提供一些流行的功能外,该工具箱还设计用于与...
  • 核心变量特征提取特征提取器 目录 简单说明 COVFEFE是用于特征提取的工具。 给定一个包含数据的文件夹,它将为输入文件夹中的每个文件计算功能。 它目前支持音频数据的声学功能以及文本数据(英语和中文)的词汇,...
  • char_featurizer 是一个汉字字符特征提取工具,他可以提取汉字的字音(包括声母、韵母、声调)、字形(偏旁、部首)、四角符号等信息。 同时可以将这些特征信息转换为tensor,作为模型的输入特征。这个项目是在...
  • 音频特征提取

    2021-02-19 00:47:42
    音频特征提取
  • 歌声合成、音乐基础教程
  • CudaHoG Dalal & Triggs Histogram of Oriented Gradients [1] 特征提取器在 CUDA 中的高效实现。 该库是可扩展的,使用 CImg 并用 C++11 编写。 该库还通过 MEX 函数(仅限 Linux 版本)提供 MATLAB 绑定。编译使用...
  • matlab羽化代码GIST-特征提取器 这个存储库是用 Python 重新实现本文中实现的 Matlab 代码。 本库中可以使用的图像仍然只是灰度图像。 (宽 × 高 × 1) 先决条件 需要安装以下库 Python 3.6 麻木 枕头 用法 一、安装...
  • 三大特征提取器(RNN/CNN/Transformer)

    千次阅读 2021-06-11 10:13:14
    三大特征提取器 - RNN、CNN和Transformer 简介 近年来,深度学习在各个NLP任务中都取得了SOTA结果。这一节,我们先了解一下现阶段在自然语言处理领域最常用的特征抽取结构。 本文部分参考张俊林老师的文章《放弃幻想...

    三大特征提取器 - RNN、CNN和Transformer

    简介

    近年来,深度学习在各个NLP任务中都取得了SOTA结果。这一节,我们先了解一下现阶段在自然语言处理领域最常用的特征抽取结构。

    本文部分参考张俊林老师的文章《放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较》(写的非常好,学NLP必看博文),这里一方面对博文进行一定程度上的总结,并加上一些个人理解。

    在深度学习流行起来之后,随着我们的网络越做越深,我们的神经网络模型越来越像一个黑箱,我们只要喂给它数据,我们的模型就能够根据我们的给予的目标,自动学习抽取对于该任务最有利的特征(这点在CV中更为明显,比如在卷积神经网络的不同层能够输出图像中不同层面上的细节特征),从而实现了著名的“端到端”模型。在这里,我们可以把我们的CNN、RNN以及Transformer看作抽取数据特征的特征抽取器。下面,本文将为大家简单介绍RNN、CNN及NLP新宠Transformer的基本结构及其优缺点。

    循环神经网络RNN

    传统RNN

    在2018年以前,在NLP各个子领域的State of Art的结果都是RNN(此处包含LSTM、GRU等变种)得到的。为什么RNN在NLP领域能够有如此广泛的应用?我们知道如果将全连接网络运用到NLP任务上,其会面临三个主要问题:

    • 对于不同的输入样本,输入和输出可能有不同的长度,因此输入层和输出层的神经元数量无法固定。
    • 从输入文本的不同位置学到的同一特征无法共享。
    • 模型中的参数太多,计算量太大。

    为了解决上述问题,我们就有了熟悉的RNN网络结构。其通过扫描数据输入的方式,使得每一个时间步的所有网络参数是共享的,且每个时间步不仅会接收当前时刻的输入,同时会接收上一个时刻的输出,从而使得其能够成功利用过去输入的信息来辅助当前时刻的判断。

    在这里插入图片描述

    但是,原始的RNN也存在问题,它采取线性序列结构不断从前往后收集输入信息,但这种线性序列结构不擅长捕获文本中的长期依赖关系,如下图所示。这主要是因为反向传播路径太长,从而容易导致严重的梯度消失或梯度爆炸问题。

    在这里插入图片描述

    长短期记忆网络(LSTM)

    传统RNN的做法是将的所有知识全部提取出来,不作任何处理的输入到下一个时间步进行迭代。就像参加考试一样,如果希望事先把书本上的所有知识都记住,到了考试的时候,早期的知识恐怕已经被近期的知识完全覆盖了,提取不到长远时间步的信息是很正常的。而人类是这样做的吗?显然不是的,我们通常的做法是对知识有一个理性性判断,重要的知识给予更高的权重,重点记忆,不那么重要的可能没多久就忘了,这样,才能在面对考试的时候有较好的发挥。

    在我看来,LSTM的结构更类似于人类对于知识的记忆方式。理解LSTM的关键就在于理解两个状态ct和at和内部的三个门机制:

    在这里插入图片描述

    图中我们可以看见,LSTM Cell在每个时间步接收上个时间步的输入有两个,传给下一个时间步的输出也有两个。通常,我们将c(t)看作全局信息,at看作全局信息对下一个Cell影响的隐藏状态。

    遗忘门、输入门(图中的update gate)和输出门分别都是一个激活函数为sigmoid的小型单层神经网络。由于sigmoid在(0,1)范围内的取值,有效的用于判断是保留还是“遗忘”信息(乘以接近1的值表示保留,乘以接近0的值表示遗忘),为我们提供了信息选择性传输的能力。这样,我们就很好理解门在LSTM是怎样工作的了:

    • 遗忘门有两个输入:当前时间步的输入xt以及上一层输出的隐藏状态at−1,遗忘门通过这两个输入训练出一个门函数,注意这个门函数的输出是在(0,1)之间的,将其与上一层输出的全局信息ct−1相乘,表示全局信息被选择部分遗忘。
    • 对于输入门,我们那同样训练出一个门函数,与此同时,将接收到的at−1和xt一起通过一个激活函数为tanh的小型神经网络,这一部分与传统RNN无异了,就是将上一时刻得到的信息与该时刻得到的信息进行整合。将整合信息与门函数的输出相乘,相当于同样选择有保留的提取新信息,并将其直接加在全局信息中去。
    • 对于输出门,同样的训练出一个门函数,与此同时,将新的隐藏状态ct通过一个简单的tanh函数(仅仅是激活函数)后与门函数的输出相乘,则可以得到该时刻全局信息对下一个Cell影响的隐藏状态at
      这样看下来,是不是觉得LSTM已经十分"智能"了呢?但实际上,LSTM还是有其局限性:时序性的结构一方面使其很难具备高效的并行计算能力(当前状态的计算不仅要依赖当前的输入,还要依赖上一个状态的输出),另一方面使得整个LSTM模型(包括其他的RNN模型,如GRU)总体上更类似于一个马尔可夫决策过程,较难以提取全局信息。

    关于GRU的结构我这里就不细讲了,在参考文献中有很多相关资料,大家想了解的可以去看看,简单来说,GRU可以看作一个LSTM的简化版本,其将at与ct两个变量整合在一起,且讲遗忘门和输入门整合为更新门,输出门变更为重制门,大体思路没有太大变化。两者之间的性能往往差别不大,但GRU相对来说参数量更少。收敛速度更快。对于较少的数据集我建议使用GRU就已经足够了,对于较大的数据集,可以试试有较多参数量的LSTM有没有令人意外的效果。

    卷积神经网络CNN

    CNN是计算机视觉领域的重大突破,也是目前用于处理CV任务模型的核心。CNN同样适用于NLP任务中的特征提取,但其使用场景与RNN略有不同,这部分我会多写一点,因为关于CNN在NLP任务中的应用大家相对来说应该都没那么了解。
    关于二维卷积核的运算如下图所示,我就不赘述了。
    在这里插入图片描述

    从数据结构上来看,CV任务中的输入数据为图像像素矩阵,其各个方向上的像素点之间的相关性基本上是等同的。而NLP任务中的输入数据通常为序列文本,假设句子长度为n,我们词向量的维度为d,我们的输入就成了一个n×d的矩阵,显然,该矩阵的行列“像素”之间的相关性是不一样的,矩阵的同一行为一个词的向量表征,而不同行表示不同词。要让卷积网络能够正常的”读“我们的文本,我们在NLP中就需要使用一维卷积。Kim在2014年首次将CNN用于NLP中的文本分类任务,其提出的网络结构如下图所示:
    在这里插入图片描述

    可以看见,一维卷积与二维卷积不同的是,每一个卷积核的宽度与词向量的维度d是相同的,以保证卷积核每次处理n个词的完整词向量,从上往下依次滑动卷积,这个过程中的输出就成了我们需要的特征向量。这就是CNN抽取特征的过程。在卷积层之后通常接上Max Pooling层(用于抽取最显著的特征),用于对输出的特征向量进行降维提取操作,最后再接一层全连接层实现文本分类。

    虽然传统CNN经过简单的改变之后可以成功的应用于NLP任务,且效果还不错,但效果也仅仅是“不错“而已,很多任务还是处于完全被压制的情况。这表明传统的CNN在NLP领域中还是存在一些问题。

    NLP界CNN模型的进化史

    谈到CNN在NLP界的进化,我们首先来看看Kim版CNN存在哪些问题。

    • Kim版CNN实际上类似于一个k-gram模型(k即卷积核的window,表示每次卷积的时候覆盖多少单词),对于一个单层的k-gram模型是难以捕捉到距离d≥k的特征的;
    • 卷积层输出的特征向量是包含了位置信息的(与卷积核的卷积顺序有关),在卷积层之后接Max Pooling层(仅仅保留提取特征中最大值)将导致特征信息中及其重要的位置编码信息丢失。
      在这里插入图片描述

    为了解决上述问题,研究者们采取了一系列方法对Kim版的CNN进行改进。

    • 解决长远距离的信息提取的一个主要方法就是可以把网络做的更深一些,越深的卷积核将会有更大的感受野,从而捕获更远距离的特征。

    • 另外,我们也可以采用膨胀卷积(Dilated Convolution)的方式,也就是说我们的卷积窗口不再覆盖连续区域,而是跳着覆盖,这样,同样尺寸的卷积核我们就能提取到更远距离的特征了。当然这里的空洞卷积与CV中的还是不一样的,其仅仅在词间存在空洞,在词向量内部是不存在空洞的。在苏神的博客里对比了同样window=3的卷积核,膨胀卷积和普通卷积在三层网络时每个神经元的感受野大小,如下图所示,可以看见膨胀卷积的神经元感受野的范围是大大增加的。
      在这里插入图片描述

    • 为了防止文本中的位置信息丢失,NLP领域里的CNN的发展趋势是抛弃Pooling层,靠全卷积层来叠加网络深度,并且在输入部分加入位置编码,人工将单词的位置特征加入到对应的词向量中。位置编码的方式可以采用《Attention is All You Need》中的方案,在下面介绍Transformer的时候再详细介绍
      在这里插入图片描述

    • 我们知道在CV领域中,网络做深之后将存在一系列问题,因此有了残差网络。在NLP中同样可以使用残差网络,解决梯度消失问题,解决梯度消失问题的本质是能够加速信息流动,使简单的信息传输可以有更简单的路径,从而使得网络做深的同时,能够保证良好的性能。

    • 激活函数开始采用GLU(Gated Linear Unit),如下图所示,左右两个卷积核的尺寸完全一样,但是权值参数不共享,然后其中一个通过一个sigmoid函数,另一个不通过,将两者相乘。是不是感觉有点熟悉,这其实与LSTM中的门机制是相同的效果,该激活函数可以自行控制输出的特征的强弱大小。
      在这里插入图片描述

    • 在苏神的博客中还学到另一个应用,就是可以用window=1的一维卷积对人工合成的词嵌入表征进行特征压缩,从而得到一个更有效的词向量表征方法。
      在这里插入图片描述

    在很多地方都看见CNN比较适用于文本分类的任务,事实上,从《Convolutional Sequence to Sequence Learning》、《Fast Reading Comprehension with ConvNets》等论文与实践报告来看,CNN已经发展成为一种成熟的特征提取器,并且,相比于RNN来说,CNN的窗口滑动完全没有先后关系,不同卷积核之前也没有相互影响,因此其具有非常高的并行自由度,这是其非常好的一个优点。

    想要进一步了解 CNN 在 NLP 当中的应用,可以移步到我写的 Convolutional Sequence to Sequence Learning 阅读笔记,这是 CNN 在 Seq2Seq 模型中的一个经典应用,也是 NLP 界的一个重要里程碑,为之后的研究打开了一个更广阔的方向。

    Transformer

    Transformer是在论文《Attentnion is all you need》里首次被提出的。

    Transformer详解推荐这篇文章:https://zhuanlan.zhihu.com/p/54356280

    在介绍Transformer之前,我们先来看看Encoder-Decoder框架。现阶段的深度学习模型,我们通常都将其看作黑箱,而Encoder-Decoder框架则是将这个黑箱分为两个部分,一部分做编码,另一部分做解码。

    在这里插入图片描述

    在不同的NLP任务中,Encoder框架及Decoder框架均是由多个单独的特征提取器堆叠而成,比如说我们之前提到的LSTM结构或CNN结构。由最初的one-hot向量通过Encoder框架,我们将得到一个矩阵(或是一个向量),这就可以看作其对输入序列的一个编码。而对于Decoder结构就比较灵活饿了,我们可以根据任务的不同,对我们得到的“特征”矩阵或“特征”向量进行解码,输出为我们任务需要的输出结果。因此,对于不同的任务,如果我们堆叠的特征抽取器能够提取到更好的特征,那么理论上来说,在所有的NLP任务中我们都能够得到更好的表现。

    在2018年谷歌推出BERT,刷新各项记录,引爆了整个NLP界,其取得成功的一个关键因素是新的特征提取结构:Transformer的强大作用。
    在这里插入图片描述

    Transformer结构是在论文《Attention is All You Need》中提出的的模型,如上图所示。图中红框内为Encoder框架,黄框内为Decoder框架,其均是由多个Transformer Block堆叠而成的。这里的Transformer Block就代替了我们之前提到的LSTM和CNN结构作为了我们的特征提取器,也是其最关键的部分。更详细的示意图如下图所示。我们可以发现,编码器中的Transformer与解码器中的Transformer是有略微区别的,但我们通常使用的特征提取结构(包括Bert)主要是Encoder中的Transformer,那么我们这里主要理解一下Transformer在Encoder中是怎么工作的。

    在这里插入图片描述

    由上图可知,单个的Transformer Block主要由两部分组成:多头注意力机制(Multi-Head Attention)和前馈神经网络(Feed Forward)。

    3.1 多头注意力机制(Multi-Head Attention)

    Multi-Head Attention模块结构如下图所示:
    在这里插入图片描述

    这里,我们就可以明白为什么这一部分被称为Multi-Head了,因为其本身就是由h个子模块Scaled Dot-Product Attention堆叠而成的,该模块也被称为Self-Attention模块。关于整个Multi-Head Attention,主要有一下几个关键点需要理解:

    • Linear可以看作一个没有激活函数的全连接层,其各自维护了一个线性映射矩阵(神经网络的本质就是矩阵相乘)
    • 对于每一个Self-Attention,均有独立维护的三个线性映射矩阵WVi、WKi及WQi(不同Self-Attention模块之间的权值不共享),通过将输入的矩阵X与三个映射矩阵相乘,得到Self-Attetnion的三个输入Queries、Keys和Values。这V, Q, K三个矩阵的输入X是完全一样的(均为输入句子的Input Embedding + Positional Encoding或是上一层Transformer的输出),这一点从整个的Encoder模型中也可以看出来。
    • 在论文中,作者对于8个Self-Attention的输出,进行简单的拼接,并通过与一个映射矩阵WO与其相乘(目的是对输出矩阵进行压缩),从而得到整个Multi-Head Attention的输出
      在Multi-Head Attention中,最关键的部分就是Self-Attention部分了,这也是整个模型的核心配方,我们将其展开,如下图所示。

    在这里插入图片描述

    我们之前已经提到过,Self-Attention的输入仅仅是矩阵X的三个线性映射。那么Self-Attention内部的运算具有什么样的含义呢?我们从单个词编码的过程慢慢理解:

    • 首先,我们对于输入单词向量X生成三个对应的向量: Query, Key 和 Value。注意这三个向量相比于向量X要小的多(论文中X的长度是512,三个向量的长度为64,这只是一种基于架构上的选择,因为论文中的Multi-Head Attention有8个Self-Attention模块,8个Self-Attention的输出要拼接,将其恢复成长度为512的向量),这一个部分是对每个单词独立操作的
    • 用Queries和Keys的点积计算所有单词相对于当前词(图中为Thinking)的得分Score,该分数决定在编码单词“Thinking”时其他单词给予了多少贡献
    • 将Score除以向量维度(64)的平方根(保证Score在一个较小的范围,否则softmax的结果非零即1了),再对其进行Softmax(将所有单词的分数进行归一化,使得所有单词为正值且和为1)。这样对于每个单词都会获得所有单词对该单词编码的贡献分数,当然当前单词将获得最大分数,但也将会关注其他单词的贡献大小
    • 对于得到的Softmax分数,我们将其乘以每一个对应的Value向量
    • 对所得的所有加权向量求和,即得到Self-Attention对于当前词”Thinking“的输出

    在这里插入图片描述
    在这里插入图片描述

    显然,上述过程可以用以下的矩阵形式进行并行计算:

    在这里插入图片描述

    其中,Q, V, K分别表示输入句子的Queries, Keys, Values矩阵,矩阵的每一行为每一个词对应的向量Query, Key, Value向量,dk表示向量长度。因此,Transformer同样也具有十分高效的并行计算能力。

    我们再回到Multi-Head Attention,我们将独立维护的8个Self-Attention的输出进行简单的拼接,通过一个线性映射层,就得到了单个多头注意力的输出。其整个过程可以总结为下面这个示意图:

    在这里插入图片描述

    位置编码(Positional Encoding)

    我们之前提到过,由于RNN的时序性结构,所以天然就具备位置编码信息。CNN本身其实也能提取一定位置信息,但多层叠加之后,位置信息将减弱,位置编码可以看作是一种辅助手段。Transformer的每一个词的编码过程使得其基本不具备任何的位置信息(将词序打乱之后并不会改变Self-Attention的计算结果),因此位置向量在这里是必须的,使其能够更好的表达词与词之间的距离。构造位置编码的公式如下所示:

    在这里插入图片描述

    如果词嵌入的长度dpos,则我们需要构造一个长度同样为dpos的位置编码向量PE。其中p表示词的位置,PEi§表示第p个词位置向量中的第i个元素的值,然后将词向量与位置向量直接相加。该位置编码不仅仅包含了绝对位置信息,由sin(α+β)=sinαcosβ+cosαsinβ以及cos(α+β)=cosαcosβ−sinαsinβ,这意味着我们可以p+k的位置向量可表示为位置p位置向量的线性变换,使得相对位置信息也得到了表达。Transformer论文中提到过他们用该方式得到的位置编码向量与训练得到的位置编码向量效果是十分接近的。

    残差模块(Residual Block)

    我们之前说到Self-Attention与CNN的相似性。这里的残差运算同样是借鉴了CNN中的思想,其原理基本是一样的,我就不赘述了。在残差连接之后,还需要进行层归一化操作,其具体过程与Layer Normalization一致。

    Transformer小结

    到这里,整个Transformer的结构基本讲述完毕了。关于其相与RNN和CNN的性能比较,张俊林老师的文章里有详细的数据说明,我仅附上简单的总结:

    1. 从语义特征提取能力:Transformer显著超过RNN和CNN,RNN和CNN两者能力差不太多。

    2. 长距离特征捕获能力:CNN极为显著地弱于RNN和Transformer,Transformer微弱优于RNN模型,但在比较远的距离上(主语谓语距离大于13),RNN微弱优于Transformer,所以综合看,可以认为Transformer和RNN在这方面能力差不太多,而CNN则显著弱于前两者。这部分我们之前也提到过,CNN提取长距离特征的能力收到其卷积核感受野的限制,实验证明,增大卷积核的尺寸,增加网络深度,可以增加CNN的长距离特征捕获能力。而对于Transformer来说,其长距离特征捕获能力主要受到Multi-Head数量的影响,Multi-Head的数量越多,Transformer的长距离特征捕获能力越强

    3. 任务综合特征抽取能力:通常,机器翻译任务是对NLP各项处理能力综合要求最高的任务之一,要想获得高质量的翻译结果,对于两种语言的词法,句法,语义,上下文处理能力,长距离特征捕获等方面的性能要求都是很高的。从综合特征抽取能力角度衡量,Transformer显著强于RNN和CNN,而RNN和CNN的表现差不太多。

    4. 并行计算能力:对于并行计算能力,上文很多地方都提到过,并行计算是RNN的严重缺陷,而Transformer和CNN差不多。

    参考链接
    https://zhuanlan.zhihu.com/p/54743941
    http://www.ai-start.com/dl2017/html/lesson5-week1.html#header-n194
    https://zhuanlan.zhihu.com/p/46327831
    https://zhuanlan.zhihu.com/p/55386469
    https://kexue.fm/archives/5409
    https://zhuanlan.zhihu.com/p/54356280
    http://jalammar.github.io/illustrated-transformer/
    https://kexue.fm/archives/4765

    展开全文
  • hog特征提取matlab代码用于图像分类的计算机视觉特征提取工具箱 该工具箱的目的是简化用于图像分类相关任务的常用计算机视觉功能(例如HOG,SIFT,GIST和Color)的特征提取过程。 包含的功能的详细信息在中提供。 ...
  • 特征提取器 概述 这使您可以从经过预训练的数百万图像集合中提取深层视觉特征。 图像使用多个 CPU 线程并行加载和预处理,然后以小批量发送到 GPU,以通过网络进行前向传递。 模型权重为您下载并使用 Torch 的 ...
  • 用MATLAB实现卷积神经网络,并对图像进行特征提取 文件列表: CNN CNN\cnnapplygrads.m CNN\cnnbp.m CNN\cnnff.m CNN\cnnnumgradcheck.m CNN\cnnsetup.m CNN\cnntest.m CNN\cnntrain.m CNN\expand.m CNN\...
  • 汉字字符特征提取器(featurizer)在深度学习中,很多场合需要提取汉字的特征(发音特征、字形特征)。本项目提供了一个通用的字符特征提取框架,并内建了 拼音、字形(四角编码) 和 部首拆解 的特征。特征提取器...
  • SpeechVGG:用于语音处理的深度特征提取器 是一种深度语音特征提取器,专为语音处理问题中的表示和迁移学习应用量身定制。 提取器采用经典的架构,并通过单词识别任务进行训练。 我们展示了提取器可以以分层方式...
  • python实现图像HOG特征提取器
  • Jx-EMGT:肌电图(EMG)特征提取工具箱 -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------...
  • shape_predictor_5_face_landmarks.dat.bz2 /5个标记点的dlib官方人脸识别模型,用于构建dlib的特征提取器(predictor)
  • hashcat项目office加密特征提取工具。 可以提取office类的加密特征,用于破解。
  • 六种常用的网络流量特征提取工具在互联网用户行为分析和异常行为检测的相关研究中,协议识别和特征提取是网络流量特征分析的重要技术手段。下面,本文为大家介绍几款常用的网络流量特征提取的工具。一、...

    六种常用的网络流量特征提取工具

    在互联网用户行为分析和异常行为检测的相关研究中,协议识别和特征提取是网络流量特征分析的重要技术手段。下面,本文为大家介绍几款常用的网络流量特征提取的工具。

    一、WireShark

    WireShark是一款常见的网络数据包分析工具。该软件可以在线截取各种网络封包,显示网络封包的详细信息,也可分析已有的报文数据,如由

    tcpdump/Win Dump、WireShark 等采集的报文数据。WireShark

    提供多种过滤规则,进行报文过滤。使用者可借助该工具的分析功能,获取多种网络数据特征。

    二、Tcptrace

    Tcptrace是一款分析TCP流量数据文件的工具,它的输入包括多种的基于报文采集程序输出的文件,如tcpdump,snoop,etherpeek,HPNet

    Metrix和WinDump。使用Tcptrace可以获得每个通信连接的各种信息,包括:持续时间,字节数,发送和接收的片段,重传,往返时间等,也可以生成许多图形,用于使用者的后续分析。

    三、QPA

    QPA是一款开源的基于进程抓包的实时流量分析软件。其基于进程抓包的优势,能够实时准确判定每个包所属进程,基于正则表达式书写规则,能提取IP、端口、报文长度与内容等维度特征;QPA按流量类型自动归类,分析简便,优于基于一条条会话的分析模式。

    四、Tstat

    Tstat是在第三款软件Tcptrace的基础上进一步开发而来,可以在普通 PC

    硬件或者数据采集卡进行在线的报文数据采集。除此之外,Tstat 还可分析已有的数据报文,支持各种dump格式,如 libpcap

    库支持的格式等。双向的 TCP

    流分析可得到新的统计特征,如阻塞窗口大小、乱序片段等,这些信息在服务器和客户端有所区分,还可区分内网主机和外网主机。

    Tstat分析网络流量并生成三种不同类型的测量集合:直方图,轮循调度数据库和日志文件。

    Tstat支持在Linux系统(目前为Ubuntu,Debian,RedHat和CentOS)和Mac OS X(从10.6 Snow Leopard到目前的10.11 El Capitan)上测试。

    五、 CapAnalysis

    CapAnalysis是一款有效的网络流量分析工具,适用于信息安全专家,系统管理员和其他需要分析大量已捕获网络流量的人员。CapAnalysis通过索引PCAP文件的数据集,执行并将其内容以多种形式转化,从包含TCP,UDP或ESP流的列表,到将其连接以地理图形的方式表示出来。可安装部署到debian32/64位,Ubuntu32/64位系统。

    六、Xplico

    Xplico的目标是提取互联网流量并捕获应用数据中包含的信息。解码控制器,IP/网络×××,程序集和可视化系统构成了一个完整的Xplico系统。该系统支持对HTTP,SIP,IMAP,POP,SMTP,TCP,UDP,IPv6等协议的分析。

    如下是这七种工具在功能和使用方面的比较,大家可根据工具的特点,将这些工具应用于实际分析中。功能对比WireSharkTcptraceQPATstatCapAnalysisXplico可分析离线报文√√√√√√

    支持实时数据处理√×√√×√

    流量可视分析√√×√√√

    可查看内容特征√√√√√√

    可标识目标IP的地理位置××××√√

    监控特定媒体流量××√√×√

    过滤报文功能√√√√√√

    界面风格窗口应用命令行界面窗口应用WebWebWeb

    实时数据采集源PC硬件或者数据采集卡×基于进程PC硬件或者数据采集卡×PC硬件或者数据采集卡

    运行环境Windows/LinuxLinuxWindowsLinux/Mac OS/AndroidLinuxLinux

    参考文献

    展开全文
  • Jx-EEGT:脑电图(EEG)特征提取工具箱 -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------...
  • openSMILE语音特征提取工具的使用

    千次阅读 2019-12-21 20:51:47
    索引openSMILE语音特征提取工具的使用一、openSMILE简介二、openSMILE工作机制三、openSMILE Windows安装四、 特征提取实现五、 使用python编程批量提取语音特征 openSMILE语音特征提取工具的使用 一、openSMILE简介...

    openSMILE语音特征提取工具的使用

    参考文献
    https://zhuanlan.zhihu.com/p/69170521

    一、openSMILE简介

    openSMILE是一个语音特征提取的工具,在语音识别(特征提取前端、关键字识别等.),情感计算(情感识别、敏感虚拟代理等),音乐信息检索(和弦标注、节拍跟踪、起跳检测等)等领域有着较为广泛的应用。
    官网 https://www.audeering.com/
    该工具官网称该工具可以计算多达6000个音频特征,并可以识别情感的细微差别,以匹配他们与具体的情感。
    openSMILE可以处理的视频文件格式包括:

    •RIFF-WAVE (PCM) (MP3, MP4, OGG等需要使用转换器)
    •逗号分隔值(CSV)
    •HTK参数les
    •WEKA的ARFF格式
    •通过openCV的视频流

    openSMILE可以提取一下音频特征

    • Frame Energy
    • Frame Intensity / Loudness (approximation)
    • Critical Band spectra (Mel/Bark/Octave, triangular masking lters)
    • Mel-/Bark-Frequency-Cepstral Coecients (MFCC)
    • Auditory Spectra
    • Loudness approximated from auditory spectra.
    • Perceptual Linear Predictive (PLP) Coecients
    • Perceptual Linear Predictive Cepstral Coecients (PLP-CC)
    • Linear Predictive Coecients (LPC)
    • Line Spectral Pairs (LSP, aka. LSF)
    • Fundamental Frequency (via ACF/Cepstrum method and via Subharmonic-Summation (SHS))
    • Probability of Voicing from ACF and SHS spectrum peak
    • Voice-Quality: Jitter and Shimmer
    • Formant frequencies and bandwidths
    • Zero- and Mean-Crossing rate
    • Spectral features (arbitrary band energies, roll-o points, centroid, entropy, maxpos, minpos, variance (=spread), skewness, kurtosis, slope)
    • Psychoacoustic sharpness, spectral harmonicity
    • CHROMA (octave warped semitone spectra) and CENS features (energy normalised and smoothed CHROMA)
    • CHROMA-derived Features for Chord and Key recognition
    • F0 Harmonics ratios

    基于openCV的库,openSMILE可以提取以下视频特征

    • HSV colour histograms
    • Local binary patterns (LBP)
    • LBP histograms
    • Optical fow and optical fow histograms
    • Face detection: all these features can be extracted from an automatically detected facial region, or from the full image.

    二、openSMILE工作机制

    openSMILE工具自带多种语音特征提取的配置文件,通过调用配置文件,可以按配置文件的预设提取响应的语音特征。openSMILE中包含以下的配置文件供使用者选择。

    • Chroma features for key and chord recognition
    • MFCC for speech recognition
    • PLP for speech recognition
    • Prosody (Pitch and loudness)
    • The INTERSPEECH 2009 Emotion Challenge feature set
    • The INTERSPEECH 2010 Paralinguistic Challenge feature set
    • The INTERSPEECH 2011 Speaker State Challenge feature set
    • The INTERSPEECH 2012 Speaker Trait Challenge feature set
    • The INTERSPEECH 2013 ComParE feature set
    • The MediaEval 2012 TUM feature set for violent scenes detection.
    • Three reference sets of features for emotion recognition (older sets, obsoleted by the new INTERSPEECH challenge sets)
    • Audio-visual features based on INTERSPEECH 2010 Paralinguistic Challenge audio features.

    三、openSMILE Windows安装

    可以从 https://www.audeering.com/opensmile/ 下载到openSMILE的压缩包文件,Linux的安装文件也可以在该网址下get到,不过笔者没有实践过如何安装。Windows下解压压缩包即可使用,比较不人性化的一点是,该工具需要调用命令行来完成相应的功能。没有配置人机交互界面。

    四、 特征提取实现

    openSMILE语音特征提取的命令如下

    SMILExtract_Release -C 配置文件路径 -I “要处理的音频路径” -O “要保存特征向量的路径及文件名”

    首先需要调出cmd命令行界面,接着再切换到处理文件SMILExtract.exe所在的目录下 ,执行特征提取命令即可在指定位置生成提取的特征文件,这里以2009年情感挑战赛特征集的配置文件为例举例实现。
    在这里插入图片描述
    生成的处理文件如下所示
    特征文件前半部分
    生成的特征文件包括两部分,第一部分是关于各个维度特征的说明,如上图缩水。
    特征文件特征部分
    第二部分是生成的特征向量,如上图所示。
    使用命令行提取特征文件比较不方便的一点是,每次只能处理一段音频,生成一个处理文件。

    五、 使用python编程批量提取语音特征

    参考文献
    https://blog.csdn.net/cg896406166/article/details/81066791

    1. 读取指定文件中所有的语音文件,依次处理,将生成的特征文件保存到另一个指定文件中,代码如下
    import os
    audio_path = 'C:/Users/Administrator/Desktop/download/wav'  # 音频文件所在目录
    output_path='C:/Users/Administrator/Desktop/download/rebuild'   # 特征文件输出目录
    audio_list=os.listdir(audio_path)   # 生成所有音频文件文件名的列表
    features_list=[]
    for audio in audio_list:    # 遍历指定文件夹下的所有文件
        if audio[-4:]=='.wav':
            this_path_input=os.path.join(audio_path, audio)  # 打开一个具体的文件,audio_path+audio
            this_path_output=os.path.join(output_path,audio[:-4]+'.txt')
            # &&连续执行;C: 进入C盘内;进入opensmile中要执行的文件的目录下;执行文件 -C 配置文件 -I 语音文件 -O 输出到指定文件
            cmd = 'C: && cd C:/Program/opensmile-2.3.0/bin/Win32 && SMILExtract_Release -C C:/Program/opensmile-2.3.0/config/IS09_emotion.conf -I ' + this_path_input + ' -O ' + this_path_output
        os.system(cmd)
    print('over~')
    
    1. 批量处理生成特征的文本文件,提取组合出可以用来学习处理的矩阵文件。代码如下
    import os
    import pandas as pd
    
    txt_path = 'C:/Users/Administrator/Desktop/download/rebuild'    # 特征文本文件所在目录
    txt_list = os.listdir(txt_path)
    features_list = []
    for file in txt_list:    # 遍历指定文件夹下的所有文件
        if file[-4:] == '.txt':
            file_path = os.path.join(txt_path, file)
            # 打开输出文件
            f = open(file_path)
            # 最后一行是特征向量,取最后一行
            last_line = f.readlines()[-1]
            f.close()
            features = last_line.split(',')
            # 最后一行特征行的第一个元素为‘unknown’,最后一个为‘?’,都不是对应的特征,要去掉
            features = features[1:-1]
            features_list.append(features)
    data_m = pd.DataFrame(features_list)
    data_m.to_csv(os.path.join('C:/Users/Administrator/Desktop/download', 'test_data.csv'), sep = ',', header=False, index=False)
    print('over')
    

    这样特征文件就生成完成了,生成的特征文件如下图所示
    在这里插入图片描述

    展开全文
  • resnet提取图片特征

    2020-12-28 15:22:08
    用预训练好的神经网络提取图片特征
  • 基于C++的使用Felzenszwalb HOG特征提取器实现目标检测
  • Transformer作为特征提取器

    千次阅读 2019-05-02 13:35:35
    Transformer之前 ...一般而言,编码输出编码向量C作为解码输入,但是由于编码向量C中所有的编码输入值贡献相同,导致序列数据越长信息丢失越多。 CNN网络相比RNN网络,它虽然可以并行执行,但是无...
  • 基于自适应信息损失的InfoGAN模型的无监督图像特征提取器设计,杨照宇,郝建军,无监督地训练特征向量提取器是图像特征提取的一大重要研究领域,将有效的图像特征描述向量应用在后序的图像分类,检索等任务中可
  • 安全冲浪:隐私保护,加速的鲁棒特征提取器
  • 自然语言处理(NLP)-特征提取器:CNN、RNN/LSTM、Transformer
  • 人脸图像特征提取matlab代码用于图像分类的计算机视觉特征提取工具箱 该工具箱的目的是简化与图像分类相关的任务的常用计算机视觉功能(如HOG,SIFT,GIST和Color)的特征提取过程。 包含的功能的详细信息在中提供。...
  • PhD-Feature_extraction-分类-Verilog--CORDIC- CORDIC Verilo特征提取器和最小距离分类 时域特征提取和最小距离分类将与聚类(软件)算法结合使用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 208,238
精华内容 83,295
关键字:

特征提取器

友情链接: pid.rar