1,人工神经网络(Artificial Neural Networks,ANNs,连接模型,Connection Model)
- 模仿动物神经网络行为特征(突触联接的结构),进行分布式并行信息处理的算法数学模型。
- 依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
2,前馈神经网络(Feed-Forward Neural Network)
是一种最简单的神经网络。网络结构有以下三种:
- 前馈网络
各神经元按接收信息的先后分为不同的层,每一层的神经元接收前一层的输出,并输出到下一层神经元。整个网络的信息朝着一个方向传播,没有反向的信息传播。
前馈网络包含全连接前馈网络和卷积神经网络等。 - 记忆网络(反馈网络)
网络中的神经元不但可以接收其他神经元的信息,也可以接收直接的历史信息。记忆网络具有记忆功能,在不同的时刻具有不同的状态。记忆神经网络的信息可以是单向或双向传递。
主要包含循环神经网络、Hopfield 网络、玻尔兹曼机、受限玻尔兹曼机等。 - 图网络
图网络是定义在图结构数据上的神经网络。图中每个节点都由一个或一组神经元构成。每个节点可以接收来自相邻节点或自身的信息。
图网络包含很多实现方式,如图卷积网络(Graph Convolutional Networks,GCN)、图注意力网络、消息传递神经网络等。
1)原理
- 各神经元分层排列。
- 每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.
- 各层间没有反馈。
2)场景
用于进一步对特征进行非线性变换,规范化和残差连接,有助于提升模型的训练稳定性和效果。
3)基本结构
如下图,以l-1
层的变量输入,进行以w为基础的线性变换,得到下一层l
层的输出。
信息从前一层神经元单向传递到后一层神经元,不存在反向的连接,即不会出现从输出层反馈到输入层或者隐藏层之间相互反馈的情况,所以被称为 “前馈”。
基础表达式:
y = Σwx + b
,是神经网络等领域常见的表达式。其中:
Σ
:求和运算。x
:多个输入特征。w
:权重(weights),调整输入特征在计算过程中的贡献程度,其值是通过训练算法(如基于梯度下降的方法等)不断学习和优化得到的。b
:偏置(bias),是一个可学习的常数项,相当于线性函数中的截距,作用是对最终的计算结果进行平移调整,使得模型有更大的灵活性来拟合不同的数据分布情况。y
:最终的结果。经过激活函数(比如 ReLU、Sigmoid 等)的处理,作为下一层的输入(后续的分类、回归等任务判断),或者最终结果。
1>激活函数
- sigmoid函数将一个由负无穷到正无穷区间的输入转化到0和1之间,在做分类问题时可以把0.5作为分类的标准。
- 为什么要引入激活函数?
引入激活函数,为了让中间输出多样化,能够处理更复杂的问题。
如果不使用该函数的话,每一层最后输出的都是上一层输入的线性函数,不管加多少层神经网络,我们最后的输出也只是最开始输入数据的线性组合而已。激活函数给神经元引入了非线性因素,当加入多层神经网络时,就可以让神经网络拟合任何线性函数及非线性函数,从而使得神经网络可以适用于更多的非线性问题,而不仅仅是线性问题。
2,循环神经网络(Recurrent Neural Network,RNN)
是一类专门用于处理序列数据的神经网络,在自然语言处理、语音识别、时间序列预测等领域有着广泛的应用。
1)原理
- 按顺序逐个处理序列中的元素,每一个时间步的隐藏状态
ht
都会记录到目前为止的序列信息。 - 在处理一个句子时,RNN 会依次读取每个单词,并更新隐藏状态。最终的隐藏状态可以用于各种任务,如文本分类、情感分析等。
2)场景
- 处理序列数据
如NLP、语音识别和时间序列预测(股票价格、天气预报)。
RNN可以捕捉到序列中的顺序信息和长期依赖关系,即利用历史数据的记忆能力来预测未来趋势。
3)基本结构
RNN 的核心在于其神经元之间存在循环连接,允许信息在网络中随时间步传递。
其中:
t
:每一个时间步;ht
:当前时间步隐藏状态;xt
:当前输入;h (t−1)
:上一个时间步的隐藏状态;Whh
:隐藏状态到隐藏状态的权重矩阵;Wxh
:输入到隐藏状态的权重矩阵;b
:偏置向量;σ
:激活函数,如 tanh 或 ReLU。
4)缺陷
- 梯度消失和梯度爆炸
在处理长序列时,RNN 会遇到梯度消失或梯度爆炸的问题。因为在反向传播过程中,梯度会随着时间步的增加而不断累积或衰减,导致模型难以学习到长期依赖关系。 - 无法并行计算
是按顺序处理序列。
3,卷积神经网络(Convolutional Neural Network,CNN)
CNN是一类专门为处理具有网格结构数据(如图像、音频)而设计的深度学习模型,在计算机视觉、自然语言处理等领域取得了巨大成功。
卷积(Convolution):
在数学、信号处理以及深度学习等多个领域都是一个重要的概念;
从数学角度来看,卷积是一种积分变换的数学方法,用于描述两个函数之间的一种特殊的运算关系。
对于一些复杂的信号,卷积能自动提取数据中的局部特征。
1)原理
- 卷积层(核心):
卷积核(滤波器(filter)):用一个滑动窗口(其实是一组固定的权重),在输入数据上逐点移动,与图像元素逐个相乘然后相加,提取输入数据的局部特征,如边缘、纹理等。
不同的卷积核可以学习到不同类型的特征。例如,在图像识别中,有的卷积核可能会学习到识别水平边缘,有的则可能学习到识别垂直边缘。 - 激活函数:
经过一个非线性激活函数,如 ReLU(Rectified Linear Unit),引入非线性因素,使网络能够学习复杂特征。 - 池化层:
通过减小特征图的大小来减少计算复杂性。常见的池化操作有:
1)最大池化(Max Pooling):取池化窗口内的最大值作为输出,能保留重要的特征信息。
2)平均池化(Average Pooling) - 全连接层
将提取的特征进行整合,用于最终的分类或回归任务。
2)场景
- 图像分类:
判断图像所属的类别,如识别猫、狗、汽车等。 - 目标检测:
在图像中定位并识别出目标物体的位置和类别,如人脸识别、车辆检测等。常见的目标检测算法有 Faster R - CNN、YOLO(You Only Look Once)等。 - 语义分割:
将图像中的每个像素分配到不同的类别中,实现对图像的语义理解,如医学图像分割、自动驾驶中的场景分割等。 - 自然语言处理:
虽然 CNN 最初主要用于图像领域,但也逐渐应用于自然语言处理任务,如文本分类、情感分析等。通过将文本表示为二维矩阵,CNN 可以提取文本中的局部特征。
3)优势
- 局部连接和参数共享:
通过参数共享(即同一个卷积核在整个输入数据上使用相同的权重),大大减少了模型的参数数量,降低了计算复杂度。 - 自动特征提取:
从原始数据中学习到有效的特征表示,在处理大规模数据时表现出色。 - 平移不变性:
由于卷积核在整个输入数据上滑动,CNN 对输入数据的平移具有一定的不变性,即无论目标物体在图像中的位置如何变化,模型都能识别出来。
4)举例
1>LeNet - 5(1998 年)
最早的 CNN 架构之一,主要用于手写数字识别任务。
2>AlexNet(2012年)
在 年的 ImageNet 图像分类竞赛中取得了巨大成功,开启了深度学习在计算机视觉领域的热潮。它引入了 ReLU 激活函数、Dropout 正则化等技术,显著提高了模型的性能。
3>VGGNet
采用了非常深的网络结构,通过堆叠多个 3x3 的卷积核来增加网络的深度,从而学习到更复杂的特征表示。VGGNet 的结构简单且易于理解,在图像分类任务中表现出色。
4>残差网络(Residual Network,ResNet)
引入了残差块(Residual Block),解决了深度神经网络训练中的梯度消失和梯度爆炸问题,使得训练极深的网络成为可能。
在图像分类、目标检测等任务中取得了很好的效果。
5>InceptionNet(GoogLeNet)
采用了多尺度的卷积核并行计算,能够同时捕捉不同尺度的特征信息,提高了模型的表达能力。
4,全连接神经网络(Fully Connected Neural Network,多层感知机(Multilayer Perceptron,MLP))
在全连接神经网络里,每一层的每个神经元都和下一层的所有神经元相互连接,这种连接方式使得网络中的参数数量众多。例如,若某一层有m
个神经元,下一层有n
个神经元,那么这两层之间就存在m×n
个连接。
1)原理
- 前向传播
- 反向传播与训练
2)场景
- 分类任务
比如手写数字识别,将手写数字的图像像素信息作为输入,经过全连接神经网络的处理,输出对应的数字类别;在医疗领域,根据患者的各项身体指标数据来判断是否患有某种疾病等。 - 回归任务
在经济领域,预测股票价格、GDP 增长趋势等;在气象领域,根据气象观测数据来预测未来的气温、降水量等数值变化情况,通过训练网络学习历史数据中的规律,从而对未来的数据进行预测。
5,深度神经网络(DNN)
是一种具有多个隐藏层的神经网络模型,通过模拟人脑神经网络的结构和工作原理,实现对复杂数据的处理和决策。
1)结构
- 输入层:负责接收原始数据。
如图像像素值、文本编码、传感器数据等,不包含可学习参数,只是数据的入口。 - 隐藏层:(核心)
可以有一个或多个隐藏层,每个隐藏层由多个神经元组成。神经元接收前一层的输出作为输入,通过加权求和和激活函数变换后产生自己的输出,再作为下一层神经元的输入。隐藏层的数量和每层神经元的数量是超参数,需根据任务和数据集选择调整。 - 输出层:负责生成网络的最终输出。
其结构和激活函数取决于具体任务,分类任务通常包含与类别数相等的神经元,使用 Softmax 激活函数输出概率分布;回归任务可能只包含一个神经元,使用线性或 ReLU 等非线性激活函数。
2)原理:包括前向传播和反向传播。
- 前向传播:
输入数据通过每一层的神经元进行加权求和和激活函数变换,最终生成输出。 - 反向传播:
是训练过程中的算法,用于计算损失函数关于权重和偏置项的梯度,这些梯度随后用于更新权重和偏置项,以最小化损失函数。
训练开始时,网络中的权重和偏置随机初始化,然后通过前向传播计算预测输出,与真实标签比较计算损失函数,再通过反向传播更新参数,不断迭代这个过程,使模型的预测性能不断提高。