一些名词解释

1、

感知机(Perceptron):最简单的神经网络,只有输入层和输出层,是二分类的线性分类器,可以解决与(AND)、或(OR)问题,但无法解决复杂的异或(XOR)问题。最早是由Rosenblatt于1957年提出的,是支持向量机和神经网络的基础。

多层感知机(Multilayer Perceptron, MLP):最简单的深度神经网络(DNN),有输入层、隐藏层、输出层,是非线性分类器,可以实现异或(XOR)问题。与SVM优化的目标一致,损失函数不同(前者分母限制为1,后者分子限制为1)。

支持向量机(Support Vector Machines,SVM):一种二分类的广义线性分类器,在原空间寻找两类样本最优分类超平面,适合中小型数据样本、非线性、高维的分类问题最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出,深度学习(2012)出现之前,SVM 被认为机器学习中近十几年来最成功,表现最好的算法。MLP与SVM:MLP的目的是尽可能使得所有样本分类正确,而SVM的目标是分类间隔最大化,追求大致正确分类的同时,一定程度上避免过拟合。MLP使用的学习策略是梯度下降,而SVM采用的是由约束条件构造拉格朗日函数,然后求偏导为0求得极值点。缺点:算法效果与核函数的选择关系很大,对多分类问题效果并不理想,对大规模训练样本难以实施。

2、

2.1反向传播神经网络(Back Propagation Neural Network,BP神经网络BPNN):由输入层(input) , 隐藏层 (hidden),输出层(output)和权重(weight)组成 。区别于传统数据处理(传统:线性拟合、多项式拟合等)的一种方法,其特点在于寻找数据之间的相关性,并非严格地数学关系,对于实际问题的处理非常有用,但不能作为严谨数学计算的方法。Bp网络的出现,为后来的 AI 技术提供了理论基础,

2.2卷积神经网络(Convolutional Neural Networks,CNN):由卷积层(Convolution)(对输入图像进行降维和提取特征)、下采样池化层(Pooling)(进行降维)、全连接层(Fully connected)(用于分类)组成。

(1)

损失函数(Loss function):是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,用L表示。

代价函数(Cost function):是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。

1)

均方差损失函数(Mean Squared Error,MSE):预测数据和原始数据对应点误差的平方和的均值。

交叉熵损失函数(Cross Entropy Error Function):常见于分类问题。,一般最后一层神经网络的计算方式如下:1)网络的最后一层得到每个类别的scores。2)score与sigmoid函数或者softmax函数进行计算得到概率输出。3)第二步得到的类别概率与真实类别的one-hot形式进行交叉熵计算。

:信息量函数关于概率分布P的期望 。

KL散度(相对熵,Kullback-Leibler Divergence):衡量两个分布的差异。

交叉熵(Cross Entropy Error):与KL散度关系密切,但相比减少一些计算量。

(2)

激活函数:如果不用激活函数,无论神经网络有多少层,输出都是输入的线性组合,网络的逼近能力有限。激活函数的作用是引入非线性因素,使得深层神经网络表达能力更强大。(不再是输入的线性组合,而是几乎可以逼近任意函数)。

1)Sigmoid函数

   output_3_0output_5_0

 2)tanh函数

output_7_0output_9_0

 3)ReLU 

output_11_0output_13_0

 4)softmax函数

在二分类任务时,经常使用sigmoid激活函数。而在处理多分类问题的时候,需要使用softmax函数。它的输出有两条规则:每一项的区间范围为(0,1);所有项相加和为1。

(3)

随机梯度下降法(stochastic gradient descent,SGD):既可以用于分类计算,也可以用于回归计算。从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量极其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型了(重点:每次迭代使用一组样本)。随机是指每次迭代过程中,样本都要被随机打乱,有效减小样本之间造成的参数更新抵消问题。

(4)

梯度消失:在反向传播过程中需要对激活函数进行链式求导,如果导数小于1,那么随着网络层数的增加梯度更新会朝着指数衰减的方式减少最终趋于0,后面的网络层的参数不发生变化。

梯度爆炸:如果导数大于1,那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加最终趋于无穷。梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。如何防止:1)设置梯度剪切阈值,如果超过了该阈值,直接将梯度置为该值。2)使用ReLU替代sigmoid

(5)

批归一化(Batch Normalization,BN):训练深度神经网络的一种trick,对每一批数据进行归一化,每层输入都会被处理成均值为0,标准差为1的数据(标准正态分布),通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大,加快了模型的收敛速度,一定程度缓解了深层网络中“梯度弥散(特征分布较散)”、梯度的消失和爆炸等问题,提升网络泛化能力,控制过拟合(可以少用或不用Dropout和正则),从而使得训练深层网络模型更加容易和稳定。BN可以应用于网络中任意的activation set,在CNN中,BN应作用在非线性映射前。PS. Batch Norm会忽略图像像素(或者特征)之间的绝对差异(因为均值归零,方差归一),而只考虑相对差异,所以在不需要绝对差异的任务中(比如分类),有锦上添花的效果。而对于图像超分辨率这种需要利用绝对差异的任务,Batch Norm只会添乱。

(6)

Dropout:训练深度神经网络的一种trick,在每个训练批次中,通过忽略一半数量的特征检测器(让一半的隐层节点值为0),增加稀疏性,使模型泛化性更强,因为它不会太依赖某些局部的特征,可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。

2.3循环神经网络(Recurrent Neural Networks,RNN):长短期记忆 (LSTM)和门控循环单元(GRU)是最常见的 RNN 单元。在自然语言处理或理解方面几乎所有最先进的性能都归功于RNN的变体。

2.4生成对抗网络(Generative Adversarial Network,GAN):生成网络可以生成数据,而鉴别网络很难将其与实际图像区分开。在GAN中,两个网络相互竞争,最终达到一种平衡。

(1)

上采样:在GAN,图像分割等等的网络中上采样是必不可少的。例:三种上采样方式,反卷积(转置卷积),双线性插值+卷积,反池化。

2.5递归神经网络 (Recursive Neural Network, RNN):可以处理树、图这样的递归结构(递归:“大事化小,小事化了”,大问题分解成多个具有相同性质的子问题,子问题再分解成多个子子问题...最终递归触底,取得结果,然后回溯,最终得出大问题结果)。神经网络的输入层单元个数是固定的,因此必须用循环或递归的方式来处理长度可变的输入。循环神经网络实现通过长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。eg:处理一句话,可以把一句话看作是词组成的序列,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出,就能处理任意长度的句子了。然而有时候把句子看作是词的序列是不够的。我们的模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量更近,也就是(尽管内容不同)它的意思是相似的,那么把他们分别编码后的两个向量的距离也相近;反之如果两句话的意思截然不同,那么编码后向量的距离则很远。缺点:尽管递归神经网络具有更为强大的表示能力,但是在实际应用中并不太流行。其中一个主要原因是,递归神经网络的输入是树/图结构,而这种结构需要花费很多人工去标注。想象一下,如果我们用循环神经网络处理句子,那么我们可以直接把句子作为输入。然而,如果我们用递归神经网络处理句子,我们就必须把每个句子标注为语法解析树的形式,这无疑要花费非常大的精力。

3、

Sota(State of the arts):在某一个领域做的Performance最好的mode。

4、

迁移学习:由于直接对目标域从头开始学习成本太高,我们故而转向运用已有的相关知识来辅助尽快地学习新知识。核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。

泛化(Generalization):模型在测试集(其中的数据以前没有见过)中的表现。

5、

自然语言处理( Natural Language Processing, NLP):研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。类别:文本挖掘、信息检索、句法语义分析、机器翻译、问答系统、对话系统2大核心任务:自然语言理解(NLU)和自然语言生成(NLG)。

(1)

token:包含:class token、patch token。在NLP中每一个单词为token,句子语义的标注是class token,在CV中把图像切割成不重叠的patch序列是patch token。

(2)

Seq2Seq(sequenceto sequence):NLP中的一个经典模型,基于RNN网络模型构建,基于序列到序列模型的对话系统,可以将输入的自然语言序列转换为输出的自然语言序列,从而实现对话的功能。该模型通常使用编码器-解码器结构,其中编码器将输入序列编码为一个固定长度的向量,解码器则将该向量解码为输出序列。该模型在自然语言处理领域有广泛的应用,如机器翻译,文本摘要,对话系统等。

6、

 消融实验(ablation study):核心是控制变量。

        比如说你为了提升baseline的性能,给它加了两个模块A,B,加完之后效果果然提高了很多。于是你急急忙忙开始写论文,写到你的贡献,你给了两条:1.模块A,2.模块B。

        但是这样写有个问题:尽管AB同时加上去对模型有提升效果,但是你并没有证明A、B两个模块分别都是有意义的。

        所以为了验证A、B两个模块是不是真的都有用,你需要做ablation study。方法也很简单:

  1. 在baseline的基础上加上模块A,看效果。
  2. 在baseline的基础上加上模块B,看效果。
  3. 在baseline的基础上同时加上模块AB,看效果。

        然后结果可能是,实验1和实验2的结果都不如实验3,那么说明AB都是有用的;然而也有可能你会发现实验1的结果和实验3一样,甚至更好。这就说明你的想法是有问题的,模块B其实并没有起到作用,提升只来自于模块A。

        综上所述,ablation study就是你在同时提出多个思路提升某个模型的时候,为了验证这几个思路分别都是有效的,做的控制变量的实验工作。

7、

7.1多尺度:可以提取更全面的信息,既有全局的整体信息,又有局部的详细信息。比如有一幅图像,里面有房子有车有人,在这整张7.1图上提取特征,提取的是全局的特征;现在,截取图像的一部分,比如截取汽车的部分,并将其放大至与原图相同的尺寸,在此时截取后放大的图上提取特征,提取的是整幅图像中某一部分的详细特征。

7.2

(1)

模态(Modality):每一种信息的来源或者形式,例如,人有触觉,听觉,视觉,嗅觉;信息的媒介,有语音、视频、文字等;多种多样的传感器,如雷达、红外、加速度计等。以上的每一种都可以称为一种模态。模态也可以有非常广泛的定义,比如我们可以把两种不同的语言当做是两种模态,甚至在两种不同情况下采集到的数据集,亦可认为是两种模态。

多模态机器学习(MultiModal Machine Learning ,MMML):旨在通过机器学习的方法实现处理和理解多源模态信息的能力。目前比较热门的研究方向是图像、视频、音频、语义之间的多模态学习。

(2)多粒度:特征的划分方法。最左边为整张图像,我们学习的是局部特征,因此也是最粗的一级粒度特征。中间为每幅图像水平划分为2份,最右边为每幅图像水平划分为三份。中间和最右边的粒度等级依次为二级和三级。这三级的粒度特征可以作为我们网络学习的三个支路,最终可以整合为一个融合的特征。

在这里插入图片描述

(3)

粗粒度(coarse-grained):区分鸟、狗、车等。

细粒度(fine-grained):在鸟的类别中进行更加细致的划分,如麻雀,燕子等。

实例级:对应于每个单独的个体,相对的任务更加困难,如我们日常经常使用的人脸识别。

类间划分从粗到细为:
粗粒度——细粒度——实例级
对应的例子为
猫咪 —— 胖橘——加菲猫

8、

Transformer

Attention:Transformer中的一个非常重要的模块,“This is a cat”和“This is not a cat”两句话,一个4个词一个5个词,都想输入这个模型怎么办呢?(变长的输入,能不能学到上下文信息)这就是Attention想要解决的问题。这里只讨论第一种输出情况,即N个输入N个输出的情况。

Self Attention:输入几个向量,输出就是几个向量。并且输出的每个向量中,都包含了其余输入向量的信息。

 

Wq,Wk,Wv是需要学习的参数,其余的都是能计算得到的。这时候发现,即使 I 的维度发生变化,也只是会导致Q,K,V发生变化,但参数的值并不会发生改变。

对于Self-Attention的进阶Multi-head-Attention,就是把Self-Attention的query变成多个头,然后自己的头去算自己的值,最后再通过一些方式处理一下(例如再加入个矩阵相乘,或者拼接,这里就是玄学了),得到最终的b。

问题1:输入的所有向量,它们好像并没有位置的关系,也就是输入的向量,没有先输入或者后输入的影响。

解决1:在ai前面加上一个专属的位置信息ei

问题2:在做语音处理的时候,由于信息很长,最终会导致A矩阵非常大

解决2:人为的限制输入长短

Seq2Seq任务:其中一个模块就是Encoder编码和Decoder解码模块。

Encoder:对于Transformer的Encoder来说,其架构可以转化成下面的样子

输入一坨子向量,经过一个Block,输出中间向量,再经历n个Block之后,得到最终的输出向量。而每个Block中,应用的便是Self-Attention与FC的结合。而真正的Block在操作过程中,并不是简单的经过了Self-Attention与FC,而是有一个类似于Resnet残差的操作,还有一个针对特征Norm的操作,如下:

在经过Self-Attention之后会加上之前的向量数据,并经过一个norm,同理FC也是类似的操作。对比原论文中的操作,我们可以看一下,整个Encoder网络是长这个样子的,其中输入也有Self-Attention中所介绍的位置信息:

Decoder:Encoder的输出为Decoder的输入,且输入是有先后顺序的,后一个向量的输出会由前面的向量所决定。

Autoregressive(AT):解码一个一个往外输出。

Non-Autoregressive(NAT):一口气输入多个Start,然后一口气输出多个向量,接着再看具体哪个是End,然后找End前面的部分就好,这样做非常的省时。但是,NAT效果往往不如AT。

注意力机制:基本思想就是想让系统学会注意力 ,能够忽略无关信息,关注重点信息。分为硬注意力机制、软注意力机制和自注意力机制。

硬注意力机制(Hard Attention):随机选择某个信息作为需要注意的目标,是一个随机过程,不能用梯度反向传播计算。对每个输入项分配的权重非0即1,和软注意不同,硬注意机制只考虑那部分需要关注,哪部分不关注,也就是直接舍弃掉一些不相关项。优势在于可以减少一定的时间和计算成本,但有可能丢失掉一些本应该注意的信息。

软注意力机制(Soft Attention):分为空间域、通道域以及混合域。在选择信息的时候,计算N个输入信息的加权平均,再输入到神经网络中计算,可以直接利用梯度方向传播进行计算。[0,1]间连续分布问题,每个区域被关注的程度高低,用0~1的score表示.软注意力的关键点在于,这种注意力更关注区域或者通道,而且软注意力是确定性的注意力,学习完成后直接可以通过网络生成,最关键的地方是软注意力是可微的,可以通过神经网络算出梯度并且前向传播和后向反馈来学习得到注意力的权重。这种类型的软注意力在计算上是非常浪费的。

9、

正样本: 与真值对应的目标类别的样本为正样本。
负样本: 与真值不对应的其他所有目标类别的样本为负样本。
简单样本: 预测时与真值标签误差较小的样本。
困难样本: 预测时与真值标签误差较大的样本。

对于目标检测任务而言:

box中有目标对象就是正样本,没有目标对象就是负样本

对于分类任务而言:

假如我们需要识别马、羊、牛三个类别。
给一张马的图片。对于预测马来说这个样本为正样本,对于预测羊和牛来说该样本为负样本。
真值one-hot标签:[1, 0, 0],而在预测出概率分布为[0.3, 0.3, 0.4]时,真值one-hot标签相差较大,则此时该样本是困难样本。而预测出[0.98, 0.01, 0.01]时,与真值one-hot标签相差较小,则此时该样本为简单样本。

10、
FLOPs(Floating-point Operations):“浮点运算次数”,衡量算法/模型复杂度,常用做神经网络模型速度的间接衡量标准,但算法复杂度往往不等同于算法的运算速度(需要降低)

FLOPS(Floating Point Operations Per Second):“每秒浮点运算次数”,衡量处理器性能的指标(需要提高)

推理时间:网络前向传播的时间,即网络预测一张图片所用的时间(需要降低)

FPS:每秒传输帧数,网络每秒可以检测多少帧(多少张图片),FPS=1/Latency(需要提高)

ref:transformer

fc全连接层详见:fc详解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值