这节课是美丽又善良的丹姐上,开心(*^▽^*)
机器学习、神经网络、深度学习的联系
机器学习:让计算机从数据中自动学习。
神经网络:机器学习的一种模型,深度学习算法的基础。
深度学习:使用深层神经网络解决复杂问题。
ANN与NN
Artificial Neural Network(ANN)是比NN更准确的概念。
但在大多数机器学习和深度学习的背景下,ANN(Artificial Neural Network)和NN(Neural Network)一般是同一概念的两种不同叫法,都指代“人工神经网络”。在某些文献或讨论中,NN有时候也可以表示自然的神经网络,即生物体中的神经网络。
历史发展:三起二落
-
Perceptron:一起
感知机是神经网络和机器学习的基础模型。它基于一个或多个输入,通过权重的加权和,然后通过某种激活函数(如阶跃函数)产生一个输出。感知机是线性分类器,只能处理线性可分的数据。 -
应用有限:一落
-
BP (Backpropagation):二起
反向传播算法是神经网络训练中最常用的方法,用于调整网络中的权重。该方法的基本思想是:根据预测输出与实际输出之间的差异来计算损失,然后反向传播这个误差,以更新网络的权重。 -
SVM (Support Vector Machine):二落
支持向量机是一种监督学习算法,用于分类或回归。SVM尝试找到最佳的超平面,将数据分为两个类别。对于非线性数据,SVM使用核技巧将数据映射到更高维的空间,从而找到超平面。SVM提供了一个清晰的数学框架,使得它在某些任务上比当时的神经网络方法更受欢迎。此外,SVM的核技巧允许它有效地处理非线性问题,而不需要复杂的网络结构。 -
DBN (Deep Belief Network):三起
深度信念网络是一种概率生成模型,通常包含多个叠加的受限玻尔兹曼机(RBM)。DBN在某些任务上可以通过无监督的逐层预训练来进行初始化,然后使用反向传播进行微调。 -
CNN (Convolutional Neural Network):起起
卷积神经网络是一种特别适用于图像处理任务的深度学习模型。与普通的神经网络相比,CNN具有局部连接和权重共享的特性,使其能够有效地识别图像中的空间层次结构。 -
大模型:起起起
指的是大型的神经网络模型或深度学习模型。随着计算能力的增强,模型的大小(例如参数数量)和深度(例如层数)也随之增加。大模型有更强的表示能力,但也容易过拟合,需要更多的数据和适当的正则化策略进行训练。
神经元
通过已知属性(称作特征)预测未知属性(称作目标)。
MP模型就是单个神经元。
战术喝水:吸~ 吸~ 咔(关上盖子)
单层神经网络(感知机)
感知机可以看作是MP模型的一个扩展,带有一个学习算法,允许它自动调整权重以适应训练数据。
机器感知数据,从而作出判断。
感知机是首个可以学习的人工神经网络。已经可以学习简单的图像了。
不过其本质也只是一个神经元。
战术喝水:吸~ 吸~ 咔(关上盖子)
超平面是什么?
超平面是线性代数和几何中的一个概念,主要用于高维空间。在直观的解释中,超平面可以被视为一个维度减少了一的子空间。以下是几个具体的例子来帮助理解:
-
在一维空间中(也就是一条线),一个“超平面”实际上是一个点。
-
在二维空间中(也就是一个平面),一个超平面是一条直线。
-
在三维空间中,一个超平面是一个平面。
-
在四维空间中,超平面就是一个三维的“空间”,而这已经超出了我们的日常直观经验。
在机器学习和特别是在支持向量机(SVM)中,超平面的概念尤为重要。在这种上下文中,超平面用于将数据分隔成两个类别。例如,在一个二维空间的分类问题中,我们可能会使用一条直线(超平面)来区分两类数据点。在更高的维度中,我们使用超平面来执行同样的任务。
两层神经网络(多层感知机)
引入了BP算法。能解决非线性问题。
每一层都是线性的,但是两层就能无限逼近一个连续的非线性函数了。
梯度下降与反向传播
梯度下要求所有参数的梯度,计算量太大了,BP可以大大减少计算量降。
梯度下降是一种优化算法,用于最小化损失函数。它通过计算每个参数对于损失函数的梯度,并朝着梯度的反方向更新参数,以逐步减小损失函数的值。然而,当模型参数非常多时,计算所有参数的梯度可能会变得非常昂贵,尤其是在深度神经网络中。
反向传播算法(BP)是一种高效计算梯度的方法。它利用了链式法则,通过将损失函数的梯度从输出层向输入层进行反向传播,逐层计算参数的梯度。这种方法使得计算梯度的复杂度与网络的深度无关,而只与网络的宽度相关,因此可以大大减少计算量。
BP算法通过将梯度从输出层向输入层传播,利用了参数共享和局部感知的特性。每个参数只需计算一次梯度,并在整个网络中共享使用。这使得计算每个参数的梯度的计算量大大减少,而不需要计算所有参数的梯度
神经网络中的b1,b2是什么
在神经网络中,b1和b2通常表示模型的偏置(bias)参数。
b1是输入层到隐藏层的偏置参数,它是一个向量,其中每个元素对应隐藏层中的一个神经元。偏置参数用于模型的线性变换中,通过向每个隐藏层神经元的输入加上对应的偏置值,可以引入偏移量,从而改变激活函数的位置和形状。
b2是隐藏层到输出层的偏置参数,它也是一个向量,其中每个元素对应输出层中的一个神经元。类似地,偏置参数在模型的线性变换中用于调整输出层的偏移量。
偏置参数与权重参数一起决定了神经网络的决策边界和输出结果。通过调整偏置参数,神经网络可以更好地拟合训练数据,并在测试阶段产生准确的预测结果。
战术喝水:吸~ 吸~ 咔(关上盖子)
多层感知机存在的问题
训练耗时仍然太久——也限制了感知机规模,节点数需要“精打细算”
容易陷入局部最优解——使得优化困难
隐藏层的节点数需要调参
深度网络中不同的层的学习速度差异很大。BP每传递一层梯度衰减为原来的0.25,单纯的反向传播不能解决更深层的神经网络的训练问题。
SVM此时横空出世,当时研究界基本上看到带神经网络的研究直接拒稿
深度学习
深度信念网络有一个预训练的过程,先找到一个接近最优解的再微调。
为了减少运算量,连接是可以被“随机丢弃”的。
"随机丢弃"涉及到一种正则化技术,被称为Dropout(丢弃法)。
Dropout是一种用于减少过拟合的技术,它在神经网络的训练过程中随机丢弃一部分神经元的连接。具体来说,每个神经元的连接(输入和输出)都有一定的概率被丢弃,也就是将其权重设置为零。这样做的效果是,每次前向传播时,随机的神经元和它们的连接会被丢弃,从而减少了神经网络的复杂性和计算量。
通过随机丢弃连接,Dropout技术能够迫使神经网络在训练过程中变得更加鲁棒和健壮。它有以下几个作用:
-
减少过拟合:Dropout可以防止神经网络过度依赖某些特定的输入神经元,从而减少过拟合的风险,提高模型的泛化能力。
-
提高模型的多样性:通过随机丢弃连接,Dropout引入了一定的噪声,使得每次训练时都得到不同的子网络,从而增加了模型的多样性。
-
减少计算量:丢弃部分连接意味着在前向传播和反向传播过程中,相关的计算可以被跳过,从而减少了计算量。这对于大型神经网络和深度网络来说尤为重要。
需要注意的是,Dropout技术在训练过程中使用,而在模型的评估和推理阶段,通常会关闭Dropout,以保持一致性和稳定性。
中间层超过两层都叫深度网络,此时BP已经不能用于训练。
卷积神经网络CNN
循环神经网络RNN
自主注意力神经网络Transformer
卷积神经网络 (Convolutional Neural Network, CNN):
卷积神经网络是一种在计算机视觉和图像处理任务中广泛应用的深度学习模型。它通过卷积层、池化层和全连接层等组件来提取和学习图像中的特征。CNN的核心思想是通过局部感知、参数共享和层次结构来捕捉输入数据的空间结构。卷积层使用卷积操作对输入数据进行特征提取,池化层则用于降低特征图的空间维度。CNN在图像分类、目标检测、图像生成等任务中表现出色。
循环神经网络 (Recurrent Neural Network, RNN):
循环神经网络是一种专门用于处理序列数据的神经网络模型。与传统的前馈神经网络不同,RNN引入了循环连接,使得网络可以在处理序列数据时具有记忆能力。RNN通过在网络中引入隐状态(hidden state)来传递信息,使得网络可以对任意长度的序列进行建模。RNN在自然语言处理、语音识别、时间序列分析等任务中表现出色。然而,传统的RNN存在梯度消失和梯度爆炸等问题,为此,一些改进模型如长短时记忆网络 (LSTM) 和门控循环单元 (GRU) 被提出来解决这些问题。
自主注意力神经网络 (Transformer):
自主注意力神经网络是一种用于处理序列数据的神经网络模型,最初被应用于机器翻译任务。Transformer模型采用了自注意力机制 (Self-Attention) 来建模输入序列中的依赖关系,而不需要使用循环结构。自注意力机制能够学习到输入序列中不同位置之间的相互关系,从而更好地捕捉序列中的长距离依赖。Transformer模型在机器翻译、语言建模、文本生成等任务中取得了显著的成果,并且具有并行计算的优势,使得训练速度更快。
总结:
卷积神经网络 (CNN) 适用于图像处理任务,通过卷积和池化操作来提取图像特征;
循环神经网络 (RNN) 适用于处理序列数据,通过循环连接来建模序列的依赖关系;
自主注意力神经网络 (Transformer) 适用于处理序列数据,通过自注意力机制来建模输入序列中的相互关系。