跳至主要內容
全卷积网络(FCN)

全卷积网络(FCN)

  • 在CNN中,通过卷积的引入能够很好的对图片进行分类,但是如何识别图片中的物体依然是一个难题。CNN会在卷积层之后接入若干全连接层,将卷积层产生的特征图映射为固定长度的特征向量进行输出,每个值代表样本属于某个类别的概率。

    CNN分类

    全卷积网络(Fully Convolutional Nerworks,FCN)则是抛弃最终的全连接层,直接对图像进行像素级的分类,在FCN中将引入反卷积层将对卷积层的输出进行采样恢复为输入图像的大小,从而对每个像素产生一个预测值,最后逐个像素计算softmax分类损失获取最终分类预测。

    FCN分类

Xenny原创大约 4 分钟深度学习深度学习神经网络FCN
循环神经网络(RNN)

循环神经网络(RNN)

  • 在之前的网络中我们都是在关心层与层之间的协作,同层节点之间是无连接状态,信息按顺序从上一层到下一层,这种网络如果要处理一些上下文强关联的问题便显得无能为力。例如在NLP中要预测下一个单词则需要处理前文包含的各种特征,此时提出了一种新的神经网络,循环神经网络(Recurrent Neural Network,RNN),它对于序列化数据有很强的拟合能力。

延迟器

  • 在RNN隐藏层之中的节点不再是相互独立的,每个节点将包含三部分输入数据

    上一层的输出、自身上一时刻输出、上一节点输出。

    RNN网络结构

    可以看到隐藏层中的节点不仅有来自输入层的连接,还有节点之间的自连和互连。

  • 其中节点的自连接代表节点的输出会再次作为节点的输入,但这并不是马上完成的,数据会经过延迟器在下一时刻再进入该节点。

    也就是说在RNN中包含了对时序特征的处理,对于同一数据根据其前文不同也将得到不同的输出。这也便是RNN中最重要的特征,通过引入延迟器来让网络模型包含“记忆”。

  • 延迟器只是一个虚拟单元,也称为RNN的记忆单元,它的作用便是保存上一次的节点状态信息,每次节点计算时将使用上一次的状态信息参与进行并更新状态,可以理解为一个动态偏置,状态信息的计算与神经元计算类似,它也包含权重参数

    st=f(wxt+vst1) s_t = f(\boldsymbol{w}x_t + \boldsymbol{v}s_{t-1})

    其中tt代表时刻信息,ff是一个非线性激活函数,w,v\boldsymbol{w},\boldsymbol{v}分别为输入的权重参数和状态的权重参数。


Xenny原创大约 4 分钟深度学习深度学习神经网络RNN
卷积神经网络(CNN)

卷积神经网络(CNN)

  • 卷积神经网络(Convolutional Neural Networks, CNN)是深度学习中一种重要的神经网络结构,特别适用于处理图像相关的机器学习问题。CNN通过模拟人脑视觉皮层对图像的处理机制,自动提取图像中的特征,从而实现对图像的识别和理解。

    在传统的MLP中,网络被简单的分为了表现层(特征提取)和决策层(输出),而在CNN中网络被进一步细分,以便能够更好的提取图像中的局部特征,具体分层结构为

    1. 输入层:输入信息;
    2. 卷积层:提取图像底层特征;
    3. 池化层:减少数据维度,防止过拟合;
    4. 全连接层:汇总图像底层特征和信息;
    5. 输出层:根据输入进行决策输出预测值。

Xenny原创大约 10 分钟深度学习深度学习神经网络CNN
神经网络——多层感知机(MLP)

神经网络——多层感知机(MLP)

  • 神经网络基本概念 中已经介绍了感知机的概念,它是使用神经元进行二分类线性分类模型,本质也就是计算输入特征的线性组合wx+b\boldsymbol{wx} + b来对样本进行分类。在训练过程中通过不断的修正参数来找到一个能够正确对样本进行分类的超平面(决策边界)wx+b=0\boldsymbol{wx} + b=0。我们已经了解了感知机的基本结果以及工作流程,同时我们也知道感知机只能对线性可分的数据进行分类,而对线性不可分的数据无法处理。而多层感知机正是为了处理这一问题而提出的。

Xenny原创大约 3 分钟深度学习深度学习神经网络MLP
神经网络——激活函数

神经网络——激活函数

  • 激活函数的主要作用是加入非线性变换防止多层网络退化为单层网络。

    激活函数的选择遵循如下标准:

    1. 最大限度增强、放大输入的有效特征,去除、降低噪音特征;
    2. 缩短训练周期,加快模型收敛,选择可导且求导快的激活函数;
    3. 避免梯度消失梯度爆炸神经元死亡等问题。

Sigmoid函数

  • 这个函数我们已经很熟悉了,它又称为S形函数,能够将输入压缩到(0,1)(0,1)中并且处处连续可导,输出非常平滑。

    函数表达式为

    Λ(z)=11+ez \Lambda(z) = \frac{1}{1+e^{-z}}

    其中(0,0.5)(0, 0.5)是函数中心点。虽然该函数在ML中应用广泛,但在神经网络模型中有些情况下并不是一个最好的选择,由于数据的不同,该函数可能会引起如下问题。


Xenny原创大约 6 分钟深度学习深度学习神经网络
神经网络——损失函数&反向传播

神经网络——损失函数&反向传播

  • 神经网络基本概念 中已经介绍了神经网络的基本模型,而在构造好这个模型之后,对于一个完整的训练过程,我们还需要如下工作:

    1. 进行正向计算,得到原始数据通过神经网络得到的输出结果;
    2. 根据损失函数计算结果与实际结果之间的差异,并将差异给到优化函数;
    3. 优化函数通过反向传播层层更正权重参数,完成一轮训练;
    4. 重复上述过程直到损失值降到一个可接受范围得到最终模型。

    本文将关注神经网络中的损失函数和反向传播过程,来了解神经网络是如何进行学习的。


Xenny原创大约 4 分钟深度学习深度学习神经网络
神经网络基本概念

神经网络基本概念

  • 对于人工智能,一部分学者主张模仿人类的逻辑方式来获取知识,由此衍生出各类机器学习算法,另一部分学者主张模仿人类的神经连接来获得知识,神经网络便是由此而来。

神经元

  • 神经网络特指人工神经网络(Artificial Neural Networks),其通过模拟人类大脑的工作方式而来。大脑以大量神经元(神经细胞)为基本单位,通过神经元与神经元之间的接触产生一个神经网络。

    神经元之间的连接
    神经元之间的连接

    当大脑思考时,各个树突会收到其他神经元发出的电化学信号,当信号强度达到某个临界值时便产生新的电化学进行沿着轴突继续传递给新的神经元。也就是每个神经元都类似一个门结构,当收到足够多的信号时便继续向后传递信号。

  • 而我们的ANN便是模拟这个过程,使用ANN模拟大脑神经网络时候,只需对每个“神经元”设置它收到的输入权重,自身的阈值和激活后的输出即可。


Xenny原创大约 8 分钟深度学习深度学习神经网络