深度学习25个重要概念

深度学习25个重要概念
机器⼈圈」导览:很多⼈认为深度学习很枯燥,⼤部分情况是因为对深度学习的学术词语,特别是专有名词很困惑,即便对相关从业者,亦很难深⼊浅出地解释这些词语的含义。本⽂编译⾃Analytics Vidhya,相信读过此⽂的圈友,会对深度学习有个全新的认识,机器⼈圈希望可以为圈友的深度学习之路起到⼀些辅助作⽤。⽂章略长,时长⼤约20分钟,请仔细阅读收藏。
⼈⼯智能,深度学习,机器学习—⽆论你在做什么,如果你对它不是很了解的话—去学习它。否则的话不⽤三年你就跟不上时代的潮流了。
——马克.库班
马克.库班的这个观点可能听起来很极端——但是它所传达的信息是完全正确的! 我们正处于⼀场⾰命的旋涡之中——⼀场由⼤数据和计算能⼒引起的⾰命。
只需要⼀分钟,我们来想象⼀下,在20世纪初,如果⼀个⼈不了解电⼒,他/她会觉得如何?你会习惯于以某种特定的⽅式来做事情,⽇复⼀⽇,年复⼀年,⽽你周围的⼀切事情都在发⽣变化,⼀件需要很多⼈才能完成的事情仅依靠⼀个⼈和电⼒就可以轻松搞定,⽽我们今天正以机器学习和深度学习的⽅式在经历⼀场相似的旅程。
所以,如果你还没有探索或理解深度学习的神奇⼒量——那你应该从今天就开始进⼊这⼀领域。
谁应该读这篇⽂章?
如果你是⼀个想学习或理解深度学习的⼈,这篇⽂章是为你量⾝定做的。在本⽂中,我将介绍深度学习中常⽤的各种术语。
如果你想知道我为什么要写这篇⽂章——我之所以在写,是因为我希望你开始你的深度学习之旅,⽽不会遇到⿇烦或是被吓倒。当我第⼀次开始阅读关于深度学习资料的时候,有⼏个我听说过的术语,但是当我试图理解它的时候,它却是令⼈感到很迷惑的。⽽当我们开始阅读任何有关深度学习的应⽤程序时,总会有很多个单词重复出现。
在本⽂中,我为你创建了⼀个类似于深度学习的字典,你可以在需要使⽤最常⽤术语的基本定义时进⾏参考。我希望在你阅读这篇⽂章之后,你就不会再受到这些术语的困扰了。
与主题相关的术语
为了帮助你了解各种术语,我已经将它们分成3组。如果你正在寻特定术语,你可以跳到该部分。如果你是这个领域的新⼿,那我建议你按照我写的顺序来通读它们。
1.神经⽹络基础(Basics of Neural Networks)
内德滋
——常⽤激活函数(Common Activation Functions)电厂脱硫塔防腐
2.卷积神经⽹络(Convolutional Neural Networks)
3.循环神经⽹络(Recurrent Neural Networks)
神经⽹络基础
1)神经元(Neuron)——就像形成我们⼤脑基本元素的神经元⼀样,神经元形成神经⽹络的基本结构。想象⼀下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们⼀般会处理它,然后⽣成⼀个输出。类似地,在神经⽹络的情况下,神经元接收输⼊,处理它并产⽣输出,⽽这个输出被发送到其他神经元⽤于进⼀步处理,或者作为最终输出进⾏输出。
2)权重(Weights)——当输⼊进⼊神经元时,它会乘以⼀个权重。例如,如果⼀个神经元有两个输⼊,则每个输⼊将具有分配给它的⼀个关联权重。我们随机初始化权重,并在模型训练过程中更新这
些权重。训练后的神经⽹络对其输⼊赋予较⾼的权重,这是它认为与不那么重要的输⼊相⽐更为重要的输⼊。为零的权重则表⽰特定的特征是微不⾜道的。
让我们假设输⼊为a,并且与其相关联的权重为W1,那么在通过节点之后,输⼊变为a * W1
3)偏差(Bias)——除了权重之外,另⼀个被应⽤于输⼊的线性分量被称为偏差。它被加到权重与输⼊相乘的结果中。基本上添加偏差的⽬的是来改变权重与输⼊相乘所得结果的范围的。添加偏差后,结果将看起来像a* W1 +偏差。这是输⼊变换的最终线性分量。
4)激活函数(Activation Function)——⼀旦将线性分量应⽤于输⼊,将会需要应⽤⼀个⾮线性函数。这通过将激活函数应⽤于线性组合来完成。激活函数将输⼊信号转换为输出信号。应⽤激活函数后的输出看起来像f(a * W1 + b),其中f()就是激活函数。
在下图中,我们将“n”个输⼊给定为X1到Xn⽽与其相应的权重为Wk1到Wkn。我们有⼀个给定值为bk的偏差。权重⾸先乘以与其对应的输⼊,然后与偏差加在⼀起。⽽这个值叫做u。
U =ΣW* X+ b
激活函数被应⽤于u,即 f(u),并且我们会从神经元接收最终输出,如yk = f(u)。
常⽤的激活函数
最常⽤的激活函数就是Sigmoid,ReLU和softmax
a)Sigmoid——最常⽤的激活函数之⼀是Sigmoid,它被定义为:
来源:
Sigmoid变换产⽣⼀个值为0到1之间更平滑的范围。我们可能需要观察在输⼊值略有变化时输出值中发⽣的变化。光滑的曲线使我们能够做到这⼀点,因此优于阶跃函数。
b)ReLU(整流线性单位)——与Sigmoid函数不同的是,最近的⽹络更喜欢使⽤ReLu激活函数来处理隐藏层。该函数定义为:
当X>0时,函数的输出值为X;当X<=0时,输出值为0。函数图如下图所⽰:
来源:cs231n
使⽤ReLU函数的最主要的好处是对于⼤于0的所有输⼊来说,它都有⼀个不变的导数值。常数导数值有助于⽹络训练进⾏得更快。
c)Softmax——Softmax激活函数通常⽤于输出层,⽤于分类问题。它与sigmoid函数是很类似的,唯⼀的区别就是输出被归⼀化为总和为1。Sigmoid函数将发挥作⽤以防我们有⼀个⼆进制输出,但是如
果我们有⼀个多类分类问题,softmax函数使为每个类分配值这种操作变得相当简单,⽽这可以将其解释为概率。
以这种⽅式来操作的话,我们很容易看到——假设你正在尝试识别⼀个可能看起来像8的6。该函数将为每个数字分配值如下。我们可以很容易地看出,最⾼概率被分配给6,⽽下⼀个最⾼概率分配给8,依此类推……
5)神经⽹络(Neural Network)——神经⽹络构成了深度学习的⽀柱。神经⽹络的⽬标是到⼀个未知函数的近似值。它由相互联系的神经元形成。这些神经元具有权重和在⽹络训练期间根据错误来进⾏更新的偏差。激活函数将⾮线性变换置于线性组合,⽽这个线性组合稍后会⽣成输出。激活的神经元的组合会给出输出值。
⼀个很好的神经⽹络定义——
“神经⽹络由许多相互关联的概念化的⼈造神经元组成,它们之间传递相互数据,并且具有根据⽹络”经验“调整的相关权重。神经元具有激活阈值,如果通过其相关权重的组合和传递给他们的数据满
⾜这个阈值的话,其将被解雇;发射神经元的组合导致“学习”。
6)输⼊/输出/隐藏层(Input / Output / Hidden Layer)——正如它们名字所代表的那样,输⼊层是接收输⼊那⼀层,本质上是⽹络的第⼀层。⽽输出层是⽣成输出的那⼀层,也可以说是⽹络的最终层。处理层是⽹络中的隐藏层。这些隐藏层是对传⼊数据执⾏特定任务并将其⽣成的输出传递到下⼀层的那些层。输⼊和输出层是我们可见的,⽽中间层则是隐藏的。
7)MLP(多层感知器)——单个神经元将⽆法执⾏⾼度复杂的任务。因此,我们使⽤堆栈的神经元来⽣成我们所需要的输出。在最简单的⽹络中,我们将有⼀个输⼊层、⼀个隐藏层和⼀个输出层。每个层都有多个神经元,并且每个层中的所有神经元都连接到下⼀层的所有神经元。这些⽹络也可以被称为完全连接的⽹络。
8)正向传播(Forward Propagation)——正向传播是指输⼊通过隐藏层到输出层的运动。在正向传播中,信息沿着⼀个单⼀⽅向前进。输⼊层将输⼊提供给隐藏层,然后⽣成输出。这过程中是没有反向运动的。
换热器清洗9)成本函数(Cost Function)——当我们建⽴⼀个⽹络时,⽹络试图将输出预测得尽可能靠近实际值。我们使⽤成本/损失函数来衡量⽹络的准确性。⽽成本或损失函数会在发⽣错误时尝试惩罚⽹络。
我们在运⾏⽹络时的⽬标是提⾼我们的预测精度并减少误差,从⽽最⼤限度地降低成本。最优化的输出是那些成本或损失函数值最⼩的输出。
如果我将成本函数定义为均⽅误差,则可以写为:
野外焊接钢轨C= 1/m ∑(y–a)^2,
其中m是训练输⼊的数量,a是预测值,y是该特定⽰例的实际值。
学习过程围绕最⼩化成本来进⾏。
10)梯度下降(Gradient Descent)——梯度下降是⼀种最⼩化成本的优化算法。要直观地想⼀想,在爬⼭的时候,你应该会采取⼩步骤,⼀步⼀步⾛下来,⽽不是⼀下⼦跳下来。因此,我们所做的就
是,如果我们从⼀个点x开始,我们向下移动⼀点,即Δh,并将我们的位置更新为x-Δh,并且我们继续保持⼀致,直到达到底部。考虑最低成本点。
在数学上,为了到函数的局部最⼩值,我们通常采取与函数梯度的负数成⽐例的步长。
你可以通过这篇⽂章来详细了解梯度下降。
11)学习率(Learning Rate)——学习率被定义为每次迭代中成本函数中最⼩化的量。简单来说,我们下降到成本函数的最⼩值的速率是学习率。我们应该⾮常仔细地选择学习率,因为它不应该是⾮常⼤的,以⾄于最佳解决⽅案被错过,也不应该⾮常低,以⾄于⽹络需要融合。
12)反向传播(Backpropagation)——当我们定义神经⽹络时,我们为我们的节点分配随机权重和偏差值。⼀旦我们收到单次迭代的输出,我们就可以计算出⽹络的错误。然后将该错误与成本函数的梯度⼀起反馈给⽹络以更新⽹络的权重。 最后更新这些权重,以便减少后续迭代中的错误。使⽤成本函数的梯度的权重的更新被称为反向传播。
在反向传播中,⽹络的运动是向后的,错误随着梯度从外层通过隐藏层流回,权重被更新。
环境风洞13)批次(Batches)——在训练神经⽹络的同时,不⽤⼀次发送整个输⼊,我们将输⼊分成⼏个随机⼤⼩相等的块。与整个数据集⼀次性馈送到⽹络时建⽴的模型相⽐,批量训练数据使得模型更加⼴
义化。
14)周期(Epochs)——周期被定义为向前和向后传播中所有批次的单次训练迭代。这意味着1个周期是整个输⼊数据的单次向前和向后传递。
你可以选择你⽤来训练⽹络的周期数量,更多的周期将显⽰出更⾼的⽹络准确性,然⽽,⽹络融合也需要更长的时间。另外,你必须注意,如果周期数太⾼,⽹络可能会过度拟合。
15)丢弃(Dropout)——Dropout是⼀种正则化技术,可防⽌⽹络过度拟合套。顾名思义,在训练期间,隐藏层中的⼀定数量的神经元被随机地丢弃。这意味着训练发⽣在神经⽹络的不同组合的神经⽹络的⼏个架构上。你可以将Dropout视为⼀种综合技术,然后将多个⽹络的输出⽤于产⽣最终输出。
16)批量归⼀化(Batch Normalization)——作为⼀个概念,批量归⼀化可以被认为是我们在河流中设定为特定检查点的⽔坝。这样做是为了确保数据的分发与希望获得的下⼀层相同。当我们训练神经
⽹络时,权重在梯度下降的每个步骤之后都会改变,这会改变数据的形状如何发送到下⼀层。
但是下⼀层预期分布类似于之前所看到的分布。 所以我们在将数据发送到下⼀层之前明确规范化数据。
卷积神经⽹络
泰尹网wiy5
17)滤波器(Filters)——CNN中的滤波器与加权矩阵⼀样,它与输⼊图像的⼀部分相乘以产⽣⼀个回旋输出。我们假设有⼀个⼤⼩为28 * 28的图像,我们随机分配⼀个⼤⼩为3 * 3的滤波器,然后与图
像不同的3 * 3部分相乘,形成所谓的卷积输出。滤波器尺⼨通常⼩于原始图像尺⼨。在成本最⼩化的反向传播期间,滤波器值被更新为重量值。
参考⼀下下图,这⾥filter是⼀个3 * 3矩阵:

本文发布于:2024-09-21 20:52:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/117925.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习   函数   输出
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议