声明
以下内容均来自B站吴恩达教授的视频以及西瓜书和众多前辈的学习成果总结,仅记录本人的大模型学习过程,如有侵权立马删除。言论仅代表自身理解,如有错误还请指正。
正文
在多层神经网络得到重视和大规模发展后,越来越多的神经网络模型被提出,有各种各样千奇百怪的模型算法,有的非常经典有的已经过时,但都是深度学习中不可或缺的一部分。其实总的来说,所有的深度学习算法都是基于梯度下降算法和反向传播算法进行改进的。因为这两种算法是神经网络的基础算法,大多数模型改进的都是评估和优化时间方面。
在介绍深度学习发展史中比较有名的几个模型算法之前,我们先来了解一下神经元的种类。
1、神经元
在人工智能(6)——————机器学习之神经网络_人工智能 大脑神经元-CSDN博客中我们提到的神经元就是最基础最经典的神经元,也叫前馈神经元,完全模拟生物学上的神经元构造,这层的每一个神经元都与上一层的所有神经元以某种权重进行连接。
卷积神经元
这个卷积神经元就是应用在基础卷积神经网络上的神经元,与前馈神经元非常相似,为了满足卷积神经网络对于某一特定区块特征的敏感度,卷积神经元仅与特定范围内的神经元进行连接,确保该特定范围内的局部信息不被破坏
解卷积神经元
也叫反卷积神经元。从上一篇讲到的卷积神经网络步骤我们可以知道,图像等有固定特征的数据在经过卷积操作,提取出固定特征后,还要进行反卷积操作将堆叠的图层展开。而解卷积神经元就作用在这里,用于对卷积神经元的相反作用,与下一神经细胞层连接来进行展开
池化神经元和插值神经元
显而易见,池化神经元用于池化层,而插值神经元其实严格来说不算是神经元的一种,而是给解卷积神经元打辅助用的,类似于浏览器插件,用于让特征提取图像恢复成原来的大小
池化操作通过滑动一个窗口(通常是正方形)在特征图上进行操作,窗口内的像素值会被聚合为一个值。最常用的池化操作是最大池化和平均池化。最大池化选择窗口中的最大值作为聚合结果,而平均池化则将窗口中的像素值求平均。
插值操作通过在特征图上进行插值计算,将原始图像的尺寸线性插补到解卷积层输出特征图的尺寸。最常见的插值算法是双线性插值,它使用四个相邻像素的值来计算新位置的像素值。其他插值算法还包括最近邻插值和双三次插值等。
综上所述,池化神经元用于特征图的尺寸减小和特征提取,插值神经元用于对特征图的尺寸调整和还原。这两个也是跟卷积神经元、解卷积神经元一样的性质,两者相反作用。
均值神经元和标准方差神经元
在神经网络中,均值神经元(Mean Neuron)和标准方差神经元(Standard Deviation Neuron)通常用于对输入数据进行归一化和标准化处理。
均值神经元用于计算输入数据的均值,它通过对输入数据的所有元素求和再除以元素的个数来得到均值。均值神经元可以使输入数据的均值接近于0,从而减少数据的偏移和不平衡,提高神经网络的稳定性和收敛速度。
标准方差神经元用于计算输入数据的标准方差,它通过对输入数据的所有元素减去均值、平方后求和再除以元素的个数再开方来得到标准方差。标准方差神经元可以使输入数据的标准方差接近于1,从而使得输入数据的分布更加平稳和稳定,有利于神经网络的训练和优化。
循环神经元
循环神经元(Recurrent Neuron)是一种用于循环神经网络、引入了时间轴向量的神经元,学习了强化学习的成果,它能够接收来自上一时间步的输入,并将其与当前时间步的输入进行结合,产生一个输出和一个隐藏状态。隐藏状态会被传递到下一个时间步,作为下一个循环神经元的输入。
循环神经元具有两个主要的特点:时间上的反馈连接和共享权重。时间上的反馈连接意味着循环神经元具有记忆,它能够在时间序列中保留信息,并将之传递到后续的时间步。共享权重意味着在不同时间步的循环神经元之间共享相同的权重参数,这样可以减少模型的参数数量,提高模型的效率和泛化能力。但是要注意这个共享时效性很强,与RAM寄存器类似,只要不保持更新参数就会流失。
循环神经元的一个常见的形式是长短期记忆神经元,用于长短期记忆网络(Long Short-Term Memory,LSTM)。LSTM通过引入门控机制(如遗忘门、输入门和输出门)来控制隐藏状态的更新和记忆的保持,从而有效地解决了传统循环神经网络(如简单循环神经网络)中的梯度消失和梯度爆炸的问题。
还有一种常见形式是门控循环神经元,与LSTM类似,但是用了更新门将遗忘门和输出门整合到了一起。也就是长短期记忆神经元的简化版
2、神经网络
前馈神经网络(FFNN)
说完神经元的种类,就到了神经网络的种类了。首先要说到的就是基础的前馈神经网络,与前馈神经元相对应。即通过神经元全连接来进行神经网络搭建,通常用反向传播算法训练前馈神经网络。
在有监督学习中,前馈神经网络往往由两个输入层和一个输出层组成,用于按照给定的规律来训练模型。而在无监督学习中,因为计算机需要自己找出规律,所以我们只给输入层,然后通过多层隐藏层来计算出隐藏的规律。
径向基神经网络(RBF)
径向基函数是一种将输入数据从原始空间映射到高维特征空间的函数。在RBFNN中,常用的径向基函数有高斯函数、多项式函数、线性函数等。其中,高斯函数是最常用的径向基函数,其具有平滑且非线性的特性。
RBFNN的大致训练流程如下:在隐藏层中用径向基函数对数据进行特征提取,聚类出中心和半径,并用梯度下降来优化半径的选取和调整隐藏层权重比例。
RBFNN只用调整半径和权重,这使其训练效率大大提高,但是过多的数据进行聚类可能会导致过拟合的问题。
霍普菲尔网络
霍普菲尔网络由一组神经元组成,每个神经元都可以是激活状态(值为1)或非激活状态(值为-1)。这些神经元相互连接,形成一个全连接的网络。其中,神经元的状态通过sigmoid函数来表示,即一个神经元的输出取决于所有连接到该神经元的其他神经元的输入。
霍普菲尔网络的主要特点是它具有自反馈的能力,即网络的输出可以再次作为输入。它采用了一种称为“能量函数”的方法,通过最小化该能量函数来达到稳定状态。在网络中,每个神经元的状态会根据它与其他神经元的连接权重和阈值进行更新。每次更新后,网络的能量函数会减少,直到达到稳定状态为止。
霍普菲尔网络主要用于解决模式识别问题,可以通过输入一组模式,然后通过网络的自反馈来恢复这些模式。它也可以用于优化问题,通过定义一个能量函数来表示问题的目标函数,然后通过网络的迭代更新来求解最小化能量函数的问题。
玻尔兹曼机(BM)
与霍普菲尔网络非常相似,不同之处在于霍普菲尔网络的神经元是全连接的,而玻尔兹曼机的神经元存在输入神经元和隐神经元的区别。
玻尔兹曼机使用了一种称为“Gibbs采样”的方法来模拟系统的状态。在每个节点上,根据当前节点的状态和连接权重,计算节点的激活概率。然后,根据激活概率,节点将以一定的概率转换为激活状态或非激活状态。这个过程会在整个网络中进行迭代,直到网络达到平衡状态。
玻尔兹曼机具有自适应学习能力,它可以通过最大化数据的似然函数来调整网络中节点之间的连接权重。通常使用反向传播算法的方法来实现这种学习过程。使用梯度下降的方法来更新权重,使得网络产生的模拟数据与真实数据之间的差异最小化。
卷积神经网络(CNN)
CNN主要由以下几个核心组件组成:
-
卷积层(Convolutional Layer):对于一张像素点为2000*2000的图像,我们当然不可能直接将所有的2000*2000个像素点全部读取进入训练,所以我们要每次按顺序读取20*20个像素点的小方块,这就是卷积层的作用。卷积层是CNN的核心部分,它通过使用一组可学习的卷积核在输入数据上进行滑动窗口的卷积操作,提取出输入数据中的局部特征。卷积操作能够保留特征的空间结构,通过多个卷积核的组合,可以提取出不同尺寸和不同方向的特征。
-
激活函数(Activation Function):在卷积层输出后,通常会引入激活函数对输出进行非线性映射。常用的激活函数包括ReLU、Sigmoid和Tanh等,它们能够引入非线性因素,增强网络的表达能力。对于多分类任务,一般采用ReLU,对于双分类任务则采用Sigmoid激活函数
-
池化层(Pooling Layer):池化层用于对卷积层输出的特征进行下采样,减小特征图的尺寸。常见的池化操作包括最大池化和平均池化,它可以降低特征图的维度,提高特征的鲁棒性和计算效率。
-
全连接层(Fully Connected Layer):全连接层用于将卷积层和池化层得到的特征进行扁平化,并将其与输出层进行连接。全连接层中的神经元与前一层的所有神经元都有连接,通过学习权重来进行特征融合和分类。一般来说,全连接层要求所有神经元都与前一层的所有神经元分别连接,这需要的算力太多了,所以我们一般会退而求其次,采用前馈神经网络进行连接,在降低计算量的同时保证数据的非线性抽象表现形式。
循环神经网络(RNN)
循环神经网络(Recurrent Neural Network,RNN)是一类用于处理序列数据的神经网络模型。与前馈神经网络不同,RNN具有循环连接,使得信息可以在网络内部进行传递和传播。
RNN的基本思想是引入一个记忆单元(或称为隐藏状态),该单元通过时间步长的循环连接,将当前步骤的输入与前一个步骤的隐藏状态结合起来,产生当前步骤的输出和新的隐藏状态。这使得RNN能够对序列数据进行建模,捕捉数据中的时序依赖关系。
如果在文本分类任务中,假如我输入的是“我喜欢她,所以她和我在一起了”,跟“她和我在一起了,所以我喜欢她”。这两句话仅仅是语序发生了变化,只有在循环神经网络中,才会对特征进行循环连接,从而两句话产生完全不同的结果。
RNN一般采用反向传播算法进行进行权重优化,但是要注意当数据量很大的时候,RNN会出现梯度爆炸(或梯度消失)的问题。为了解决这个问题,出现了许多改进型的RNN模型,如长短期记忆网络(LSTM)和门控循环单元(GRU)等。
总结
本文基本讲述了在深度学习发展史上经典的神经元和神经网络,其实还是万变不离其宗,还是不断地套娃,套用强化学习或者有/无监督学习中的思想对原本的神经网络增添架构和层次。
明天再详细写写transformer模型架构和基于transformer模型衍生出来的bert模型(因为主要是做这个的)
标签:函数,人工智能,学习,卷积,神经网络,深度,连接,输入,神经元 From: https://blog.csdn.net/2301_79704829/article/details/143487887