当前位置: 首页 > 科技观察

深度学习入门必须搞懂这25个概念

时间:2023-03-18 12:22:23 科技观察

1。神经元(Neuron)——就像构成我们大脑基本元素的神经元一样,神经元构成了神经网络的基本结构。想象一下当我们获得新信息时我们会做什么。当我们获得信息时,我们通常会对其进行处理,然后生成输出。类似地,在神经网络的情况下,一个神经元接收一个输入,对其进行处理并产生一个输出,这个输出被发送到其他神经元进行进一步处理,或者作为最终输出。2.权重——当输入进入神经元时,它会乘以一个权重。例如,如果一个神经元有两个输入,每个输入都会分配一个相关的权重。我们随机初始化权重并在模型训练期间更新这些权重。经过训练的神经网络为其输入分配更高的权重,这些输入被认为比不太重要的输入更重要。权重为零表示特定特征是微不足道的。我们假设输入是a,与之关联的权值是W1,那么经过节点后,输入就变成了a*W13。偏差-除了权重之外,应用于输入的另一个线性分量称为偏差。它被添加到权重与输入相乘的结果中。基本上添加偏差的目的是改变权重与输入相乘结果的范围。添加偏差后,结果将类似于a*W1+偏差。这是输入转换的最终线性分量。4.激活函数——一旦将线性分量应用于输入,就需要应用非线性函数。这是通过将激活函数应用于线性组合来完成的。激活函数将输入信号转换为输出信号。应用激活函数后的输出类似于f(a*W1+b),其中f()是激活函数。在下图中,我们将“n”个输入作为X1到Xn,并将它们对应的权重作为Wk1到Wkn。我们有一个给定值bk的偏差。权重首先乘以相应的输入,然后与偏差相加。这个值称为u。U=ΣW*X+b激活函数应用于u,即f(u),我们从神经元接收最终输出yk=f(u)。常用激活函数最常用的激活函数有Sigmoid,ReLU和softmaxa)Sigmoid——最常用的激活函数之一是Sigmoid,其定义为:sigmoid(x)=1/(1+e-x)Sigmoidtransformation产生更平滑的0到1之间的值范围。我们可能需要在输入值发生轻微变化时观察输出值的变化。平滑曲线使我们能够做到这一点,因此优于阶跃函数。b)ReLU(RectifiedLinearUnit)-与Sigmoid函数不同,最近的网络更喜欢对隐藏层使用ReLU激活函数。函数定义为:f(x)=max(x,0)当X>0时,函数的输出值为X;当X<=0时,输出值为0。函数图如下图所示:使用ReLU函数的主要好处是它对所有大于0的输入都有一个常数导数值。一个常数导数值有助于网络训练得更快。c)Softmax-Softmax激活函数通常用于分类问题的输出层。它与sigmoid函数非常相似,唯一的区别是输出被标准化为总和为1。如果我们有二进制输出,sigmoid函数将发挥作用,但如果我们有多类分类问题,softmax函数使得为每个类赋值变得相当简单,这可以解释为概率。这样做,很容易看出——假设您正在尝试识别可能看起来像8的6。该函数将为每个数字分配一个值,如下所示。我们可以很容易地看到,最好的概率分配给6,次好的概率分配给8,依此类推……5.神经网络——神经网络构成了深度学习支柱的支柱。神经网络的目标是找到未知函数的近似值。它由相互连接的神经元组成。这些神经元具有根据网络训练期间的错误更新的权重和偏差。激活函数将非线性变换转化为线性组合,然后产生输出。激活神经元的组合给出输出值。神经网络的一个很好的定义:“神经网络由许多相互连接的概念人工神经元组成,这些人工神经元相互传递数据,并根据网络的‘经验’调整相关权重。神经元具有激活阈值,如果满足其相关权重和传递给它们的数据的组合,就会触发这些激活阈值;发射神经元的组合导致“学习”。6.输入/输出/隐藏层(Input/Output/HiddenLayer)——顾名思义,输入层就是接收输入的层,本质上是网络的第一层。输出层是生成输出的层,或网络的最后一层。处理层是网络中的隐藏层。这些隐藏层是那些对传入数据执行特定任务并将它们生成的输出传递给下一层的层。输入层和输出层对我们来说是可见的,而中间层是隐藏的。7.MLP(多层感知器)——单个神经元将无法执行高度复杂的任务。因此,我们使用一堆神经元来生成我们需要的输出。在最简单的网络中,我们将有一个输入层、一个隐藏层和一个输出层。每一层都有多个神经元,每一层的所有神经元都连接到下一层的所有神经元。这些网络也可以称为全连接网络。8.正向传播——正向传播是输入通过隐藏层到输出层的运动。在前向传播中,信息沿单一方向传播。输入层向隐藏层提供输入,然后隐藏层生成输出。这个过程没有反向运动。9.成本函数——当我们构建网络时,网络会尝试预测尽可能接近实际值的输出。我们使用成本/损失函数来衡量网络的准确性。而成本或损失函数试图在发生错误时惩罚网络。我们运行网络的目标是提高预测的准确性并减少错误,从而最大限度地降低成本。优化输出是成本或损失函数值最小的输出。如果我把代价函数定义为均方误差,可以写成:C=1/m∑(y–a)^2,其中m是训练输入的个数,a是预测值,y是实际值。学习过程围绕最小化成本展开。10.梯度下降——梯度下降是一种最小化成本的优化算法。直觉上想一下,爬山要一步一步一小步下来,而不是一下子跳下去。所以我们要做的是,如果我们从点x开始,我们向下移动一点,即Δh,并将我们的位置更新为x-Δh,并且我们继续保持一致,直到触底。考虑***成本点。在数学上,为了找到函数的局部最小值,我们通常采用与函数梯度的负值成比例的步长。11.学习率——学习率被定义为在每次迭代中成本函数中最小化的量。简单来说,我们下降到成本函数最小值的速率就是学习率。我们应该非常小心地选择学习率,因为它不应该太大以至于错过最佳解决方案,也不应该太低以至于网络需要收敛。12.反向传播——当我们定义一个神经网络时,我们为我们的节点分配随机权重和偏置值。一旦我们收到单次迭代的输出,我们就可以计算网络的误差。然后将此错误与成本函数的梯度一起反馈到网络以更新网络的权重。***更新这些权重,以便减少后续迭代中的错误。使用成本函数的梯度更新权重称为反向传播。在反向传播中,网络的运动是向后的,随着误差从外层通过隐藏层作为梯度回流,权重被更新。13.批次——在训练神经网络时,我们不是一次发送整个输入,而是将输入分成几个大小相等的随机块。与将整个数据集一次性输入网络时构建的模型相比,批量训练数据可以让模型泛化更多。14.Epochs——Epochs被定义为前向和后向传播中所有批次的单个训练迭代。这意味着1个周期是整个输入数据的单个前向和后向传递。您可以选择用于训练网络的epoch数,更多的epoch将显示更高的网络精度,但是,网络收敛所需的时间也会更长。另外,你必须意识到,如果epoch的数量太多,网络可能会过拟合。15.Dropout——Dropout是一种防止网络过度拟合的正则化技术。顾名思义,在训练过程中,隐藏层中一定数量的神经元被随机丢弃。这意味着训练发生在具有不同神经网络组合的几种神经网络架构上。您可以将dropout视为一种综合技术,然后使用多个网络的输出来产生最终输出。16.BatchNormalization——作为一个概念,BatchNormalization可以被认为是我们在河流中设置为特定检查点的水坝。这样做是为了确保数据的分布与下一层的预期相同。当我们训练神经网络时,权重在梯度下降的每一步后都会发生变化,这会改变数据的形状如何发送到下一层。但下一层的预期分布与之前看到的类似。所以我们在将数据发送到下一层之前明确地规范化数据。卷积神经网络17.过滤器(Filters)——CNN中的过滤器就像一个加权矩阵,它与输入图像的一部分相乘产生一个卷积输出。我们假设有一张尺寸为28*28的图像,我们随机分配一个尺寸为3*3的滤波器,然后将其与图像的不同3*3部分相乘,形成所谓的卷积输出。过滤器尺寸通常小于原始图像尺寸。在成本最小化的反向传播过程中,过滤器值被更新为权重值。参考下图,其中filter是一个3*3的矩阵:与图像的每个3*3部分相乘,形成一个卷积特征。18.卷积神经网络(CNN)——卷积神经网络基本上应用于图像数据。假设我们有一个大小为(28*28*3)的输入,如果我们使用普通的神经网络,就会有2352(28*28*3)个参数。并且参数的数量随着图像尺寸的增加而变得非常大。我们“卷积”图像以减少参数数量(如上面的过滤器定义所示)。当我们将过滤器滑动到输入体积的宽度和高度时,会生成一个2D激活图,给出该过滤器在每个位置的输出。我们将沿着深度维度堆叠这些激活图并产生输出量。您可以查看下图以获得更清晰的印象。19.Pooling——池化层通常在卷积层之间周期性引入。这基本上是为了减少一些参数,防止过拟合。最常见的池化类型是使用MAX操作的过滤器大小为(2,2)的池化层。它会做的是,它将取原始图像的每个4*4矩阵的***值。您还可以使用其他操作(如平均池化)进行池化,但最大池化在实践中效果更好。20.填充——填充是指在图像之间添加额外的零层,使输出图像与输入图像大小相同。这称为相同填充。应用过滤器后,卷积层的大小等于具有相同填充的实际图像。有效填充是指保持图像具有实际或“有效”图像的所有像素。在这种情况下,在应用过滤器后,输出的长度和宽度的大小在每个卷积层不断减小。21.数据扩充——数据扩充是指添加从给定数据派生的新数据,这可能被证明对预测有益。例如,如果您调亮灯光,则可能更容易在较暗的图像中看到一只猫,或者例如,识别9的数字可能会略微倾斜或旋转。在这种情况下,旋转将解决问题并提高我们模型的准确性。通过旋转或增亮,我们正在提高数据质量。这称为数据扩充。递归神经网络。22.循环神经元-循环神经元在T时间内将神经元的输出发送回它。如果您查看图表,输出将返回到输入t次。一个扩展的神经元看起来像t个不同的神经元连接在一起。这个神经元的基本优点是它提供了更通用的输出。23.循环神经网络(RNN)——RNN对于使用先前输出预测下一个输出的顺序数据特别有用。在这种情况下,网络中存在环路。隐藏在神经元内的循环允许它们在一段时间内存储关于前一个词的信息,以便能够预测输出。隐藏层的输出在t时间戳内再次发送到隐藏层。扩展的神经元看起来像上图。只有所有的时间戳都完成后,循环神经元的输出才能进入下一层。发送的输出更广泛,以前的信息保留更长时间。然后根据展开的网络反向传播错误以更新权重。这称为时间反向传播(BPTT)。24.VanishingGradientProblem——梯度消失问题发生在激活函数的梯度很小的时候。在反向传播期间,当权重乘以这些低梯度时,它们往往会变得非常小并随着网络变深而“消失”。这使得神经网络忘记了长距离依赖。这是递归神经网络的一个问题,长期依赖性对其非常重要。这可以通过使用不具有小梯度的激活函数ReLu来解决。25.梯度爆炸问题——这与梯度消失问题完全相反,激活函数的梯度太大。在反向传播过程中,它使特定节点的权重相对于其他节点非常高,这使得它们不重要。这可以通过裁剪梯度使其不超过特定值来轻松解决。