人工智能有三大主义(①符号主义-用规则教,②联结主义-用数据学,③行为主义-用问题引导-如强化学习),其中深度学习是联结主义的经典,直接从海量数据中学习,依赖于数据、可解释性不强。
深度学习模型来源于神经系统层次化结构特性,主要机制是层层递进,逐层抽象,主要应用于计算机视觉(computer vision,CV)和自然语言处理(Natural language processing,NLP)。
1.前馈神经网络(Feedforward Neural Networks,FNN):
前馈神经网络是最基本的神经网络,一般包括输入层、隐藏层和输出层。数据从输入层单向传递到输出层,每层神经元只和相邻层神经元相连,没有循环连接。
多层感知器(Multilayer Perceptron,MLP)是最常见的前馈神经网络结构,相邻层所包含的神经元之间使用全连接方式进行连接(全连接是指两个相邻层之间的神经元相互成对连接)。
2.卷积神经网络(Convolutional Neural Networks,CNN):
CNN是专门设计用于处理网格结构数据(如图像)的神经网络,LeCun等人设计了LeNet模型用于手写体识别,这一实验基本是入门深度学习必做,地位相当于初学代码必敲Hello Word。
LeNet、AlexNet、VGG、ResNet、Inception等是经典的CNN架构,虽然针对不同应用场景的卷积神经网络结构越来越复杂,但本质仍然是以卷积、池化为核心构建而成。
3.循环神经网络(Recurrent Neural Networks,RNN):
RNN是一种具有循环连接的神经网络,适用于处理序列数据(如文本句子、视频帧等),先前介绍的FNN或CNN所需要处理的输入数据一次性给定,难以处理存在前后依赖关系的数据。
RNN的本质是希望模拟人所具有的记忆能力,在学习过程中记住部分已经出现的信息,并利用所记住的信息影响后续结点输出。循环神经网络在自然语言处理,如语音识别、情感分析、机器翻译等领域有重要应用。
长短时记忆网络(LSTM)、门控循环单元(GRU)等是常见的RNN架构。
4.自注意力网络(Self-Attention Networks):
自注意力网络,采用自注意力机制,允许每个输入位置对其他位置进行加权。它具有可学习的感受野,让机器学会去感知数据中的重要和不重要的部分。上述提到的CNN中希望模型不仅仅考虑某一个像素点,而是让模型考虑一个感受野(Receptive field),对于自注意力机制来说,相当于模型自己决定感受野是怎样的形状和类型。可以说CNN是特殊情况下的一种self-attention,self-attention就是复杂版的CNN。
BERT、GPT、Transformer等都是基于自注意力的模型。下图是经典transformer结构图,模型包含两个部分:编码器和解码器。编码器主要负责将输入序列转化为一个定长的向量表示,解码器则将这个向量解码为输出序列。
5.生成对抗网络(Generative Adversarial Networks,GAN):
生成对抗网络由一个生成器(generator,简称G)和一个判别器(discriminator,简称D)组成。GAN的核心是通过生成器和判别器两个神经网络之间的竞争对抗,不断提升彼此水平以使得生成器所生成数据(人工伪造数据)与真实数据相似,使判别器无法区分真实数据和生成数据。DCGAN、CycleGAN、WGAN等是GAN的不同变体。
6.图神经网络(Graph Neural Networks,GNN):
GNN用于处理图数据,能够对节点和边进行学习和表示。图神经网络专门处理不规则的图结构数据,如社交网络、知识图谱等。图结构数据是一种由节点和边组成的复杂关系网络,其中节点代表实体,边代表实体之间的关系。
Graph Convolutional Networks(GCN)、Graph Attention Networks(GAT)、GraphSAGE等都是GNN架构。GNN已经在多个领域取得了广泛的成功,包括社交网络分析、推荐系统、生物信息学、化学、计算机视觉等,被用于节点分类、社区检测、图生成、知识图谱嵌入等各种任务。
7.自编码器(Auto Encoders):
自编码器(Auto Encoder,简称AE)是一种无监督学习的神经网络模型,用于数据压缩、特征学习、降维和图片降噪、修复等,包含两部分:Encoder(编码器)和Decoder(解码器)。有卷积自动编码器(CAE:Convolutional Autoencoder)、变分自动编码器(VAE:Variational Autoencoder)等多种类型。