一.常见的特征提取器类别
卷积神经网络(Convolutional Neural Network,CNN):CNN 是一种常用的特征提取器,它能够对图像、音频等二维或一维数据进行特征提取。
循环神经网络(Recurrent Neural Network,RNN):RNN 是一种能够处理序列数据的特征提取器,它能够对文本、语音等序列数据进行特征提取。
Transfomer:Transformer是一种用于自然语言处理(NLP)和其他序列到序列(Seq2Seq)任务的深度学习模型。与传统的循环神经网络(RNN)模型不同,Transformer模型使用了注意力机制(Attention Mechanism)来处理输入序列。
特征金字塔(Feature Pyramid):特征金字塔是一种用于多尺度特征提取的算法,它能够同时提取不同尺度的特征,并将它们进行融合。
预训练模型(Pre-trained Models):预训练模型是指在大规模数据上预训练的深度学习模型,如ImageNet上训练的ResNet、VGG等。可以将这些预训练模型的特征提取部分作为特征提取器来使用,而无需重新训练整个模型。
主要以最热门的ChatGPT自然领域的RNN、CNN、Transfomer为例。
二、RNN在NLP的崛起与衰败
循环神经网络(Recurrent Neural Network,简称RNN)是一种能够处理序列数据的深度学习模型。在RNN中,数据的每个时间步都被视为一个输入,并与之前的时间步产生联系。
RNN的基本单元是循环单元(Recurrent Unit),也称为RNN单元(RNN Cell)。RNN单元接收当前时间步的输入和上一个时间步的隐藏状态(Hidden State),并产生一个新的隐藏状态和当前时间步的输出。隐藏状态可以看作是模型对过去的记忆,可以通过不断地传递到下一个时间步来保留信息。
RNN的反向传播(Backpropagation Through Time,简称BPTT)算法与传统的神经网络类似,可以通过最小化损失函数来更新模型参数。由于RNN的隐藏状态可以传递到后面的时间步,因此BPTT需要在时间维度上展开计算梯度,会导致梯度消失或爆炸的问题。为了缓解这个问题,一些变体模型如长短时记忆网络(LSTM)和门控循环单元(GRU)被提出,能够更好地处理长序列数据。
为什么RNN能够这么快在NLP流行并且占据了主导地位呢?
基于以上RNN的特点,主要原因是因为RNN的结构天然适配解决NLP的问题,NLP的输入往往是个不定长的线性序列句子,而RNN本身结构就是个可以接纳不定长输入的由前向后进行信息线性传导的网络结构,而在LSTM引入三个门后,对于捕获长距离特征也是非常有效的。所以RNN特别适合NLP这种线形序列应用场景,这是RNN为何在NLP界如此流行的根本原因。
为什么RNN在NLP又快速衰败了呢?
成也其特点,败也其特点。RNN本身的序列依赖结构对于大规模并行计算来说相当之不友好。通俗点说,就是RNN很难具备高效的并行计算能力,这个乍一看好像不是太大的问题,其实问题很严重。如果你仅仅满足于通过改RNN发一篇论文,那么这确实不是大问题,但是如果工业界进行技术选型的时候,在有快得多的模型可用的前提下,是不太可能选择那么慢的模型的。
那么为什么RNN的并行计算能力不行呢?问题就出在这里。因为T时刻的计算依赖T-1时刻的隐层计算结果,而T-1时刻的计算依赖T-2时刻的隐层计算结果……..这样就形成了所谓的序列依赖关系。
精简化总结:序列依赖结构天然适配NLP的问题,但计算依赖T-1时刻的隐层计算结果,而T-1时刻的计算依赖T-2时刻的隐层计算结果形成的序列依赖关系,又天然限制了并行计算能力,而想要在序列依赖结构上提高并行计算能力,由此引出了CNN。
三、CNN的一度辉煌
卷积神经网络(Convolutional Neural Network,简称CNN)是一种常用于处理图像和语音数据的深度学习模型。【在视觉领域获得了巨大的成功】
在NLP领域,RNN的序列依赖结构导致的并行计算缺陷的原因,之后有很多论文发表,在探索RNN的新结构,而这种新结构,却逐渐向CNN的结构靠拢,由此引发CNN在NLP领域的应用。
以下是对CNN原理具体解释:
CNN主要由卷积层(Convolutional Layer)、池化层(Pooling Layer)和全连接