HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    深度神经网络的定义(深度神经网络的定义是什么)

    发布时间:2023-04-08 09:23:25     稿源: 创意岭    阅读: 144        

    大家好!今天让创意岭的小编来大家介绍下关于深度神经网络的定义的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    深度神经网络的定义(深度神经网络的定义是什么)

    一、神经网络相关名词解释

    很多人认为深度学习很枯燥,大部分情况是因为对深度学习的学术词语,特别是专有名词很困惑,即便对相关从业者,亦很难深入浅出地解释这些词语的含义。 

    相信读过此文的圈友,会对深度学习有个全新的认识,机器人圈希望可以为圈友的深度学习之路起到一些辅助作用。

    人工智能,深度学习,机器学习—无论你在做什么,如果你对它不是很了解的话—去学习它。否则的话不用三年你就跟不上时代的潮流了。——马克.库班

    马克.库班的这个观点可能听起来很极端——但是它所传达的信息是完全正确的! 我们正处于一场革命的旋涡之中——一场由大数据和计算能力引起的革命。

    只需要一分钟,我们来想象一下,在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。函数图如下图所示: 

    使用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) ——作为一个概念,批量归一化可以被认为是我们在河流中设定为特定检查点的水坝。这样做是为了确保数据的分发与希望获得的下一层相同。当我们训练神经网络时,权重在梯度下降的每个步骤之后都会改变,这会改变数据的形状如何发送到下一层。

    但是下一层预期分布类似于之前所看到的分布。 所以我们在将数据发送到下一层之前明确规范化数据。

    17)滤波器(Filters) ——CNN中的滤波器与加权矩阵一样,它与输入图像的一部分相乘以产生一个回旋输出。我们假设有一个大小为28 * 28的图像,我们随机分配一个大小为3 * 3的滤波器,然后与图像不同的3 * 3部分相乘,形成所谓的卷积输出。滤波器尺寸通常小于原始图像尺寸。在成本最小化的反向传播期间,滤波器值被更新为重量值。

    参考一下下图,这里filter是一个3 * 3矩阵:

    与图像的每个3 * 3部分相乘以形成卷积特征。

    18)卷积神经网络(CNN) ——卷积神经网络基本上应用于图像数据。假设我们有一个输入的大小(28 * 28 * 3),如果我们使用正常的神经网络,将有2352(28 * 28 * 3)参数。并且随着图像的大小增加参数的数量变得非常大。我们“卷积”图像以减少参数数量(如上面滤波器定义所示)。当我们将滤波器滑动到输入体积的宽度和高度时,将产生一个二维激活图,给出该滤波器在每个位置的输出。我们将沿深度尺寸堆叠这些激活图,并产生输出量。

    你可以看到下面的图,以获得更清晰的印象。

    19)池化(Pooling) ——通常在卷积层之间定期引入池层。这基本上是为了减少一些参数,并防止过度拟合。最常见的池化类型是使用MAX操作的滤波器尺寸(2,2)的池层。它会做的是,它将占用原始图像的每个4 * 4矩阵的最大值。

    你还可以使用其他操作(如平均池)进行池化,但是最大池数量在实践中表现更好。

    20)填充(Padding) ——填充是指在图像之间添加额外的零层,以使输出图像的大小与输入相同。这被称为相同的填充。

    在应用滤波器之后,在相同填充的情况下,卷积层具有等于实际图像的大小。

    有效填充是指将图像保持为具有实际或“有效”的图像的所有像素。在这种情况下,在应用滤波器之后,输出的长度和宽度的大小在每个卷积层处不断减小。

    21)数据增强(Data Augmentation) ——数据增强是指从给定数据导出的新数据的添加,这可能被证明对预测有益。例如,如果你使光线变亮,可能更容易在较暗的图像中看到猫,或者例如,数字识别中的9可能会稍微倾斜或旋转。在这种情况下,旋转将解决问题并提高我们的模型的准确性。通过旋转或增亮,我们正在提高数据的质量。这被称为数据增强。

    循环神经网络

    22)循环神经元(Recurrent Neuron) ——循环神经元是在T时间内将神经元的输出发送回给它。如果你看图,输出将返回输入t次。展开的神经元看起来像连接在一起的t个不同的神经元。这个神经元的基本优点是它给出了更广义的输出。

    23)循环神经网络(RNN) ——循环神经网络特别用于顺序数据,其中先前的输出用于预测下一个输出。在这种情况下,网络中有循环。隐藏神经元内的循环使他们能够存储有关前一个单词的信息一段时间,以便能够预测输出。隐藏层的输出在t时间戳内再次发送到隐藏层。展开的神经元看起来像上图。只有在完成所有的时间戳后,循环神经元的输出才能进入下一层。发送的输出更广泛,以前的信息保留的时间也较长。

    然后根据展开的网络将错误反向传播以更新权重。这被称为通过时间的反向传播(BPTT)。

    24)消失梯度问题(Vanishing Gradient Problem) ——激活函数的梯度非常小的情况下会出现消失梯度问题。在权重乘以这些低梯度时的反向传播过程中,它们往往变得非常小,并且随着网络进一步深入而“消失”。这使得神经网络忘记了长距离依赖。这对循环神经网络来说是一个问题,长期依赖对于网络来说是非常重要的。

    这可以通过使用不具有小梯度的激活函数ReLu来解决。

    25)激增梯度问题(Exploding Gradient Problem) ——这与消失的梯度问题完全相反,激活函数的梯度过大。在反向传播期间,它使特定节点的权重相对于其他节点的权重非常高,这使得它们不重要。这可以通过剪切梯度来轻松解决,使其不超过一定值。

    二、什么是深度学习?深度学习能用来做什么?

    深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。

    在深度学习中,计算机模型学习直接从图像、文本或声音中执行分类任务。深度学习模式可以达到新的精确度,有时甚至超过人类的表现。大多数深度学习方法使用神经网络的架构,这也是深度学习模型通常被称为深度神经网络的原因。

    三、用于推荐的深度神经网络模型指的是?

    蓝海大脑深度学习液冷工作站人员表示:

    只将信息从一层向前馈送至下一层的人工神经网络称为前馈神经网络。多层感知器 (MLP) 是一种前馈 ANN,由至少三层节点组成:输入层、隐藏层和输出层。MLP 是可应用于各种场景的灵活网络。

    卷积神经网络是识别物体的图像处理器。

    时间递归神经网络是解析语言模式和序列数据的数学工具。

    深度学习 (DL) 推荐模型基于现有技术(例如,分解)而构建,以便对变量和嵌入之间的交互进行建模,从而处理类别变量。嵌入是表示实体特征的已学习的数字向量,因此相似的实体(用户或物品)在向量空间中具有相似的距离。例如,协作过滤深度学习方法基于用户和物品与神经网络的交互来学习用户和物品嵌入(潜在特征向量)。

    DL 技术还利用庞大且快速发展的新颖网络架构和优化算法,对大量数据进行训练,利用深度学习的强大功能进行特征提取,并构建更具表现力的模型。

    当前基于 DL 的推荐系统模型:DLRM、Wide and Deep (W&D)、神经协作过滤 (NCF)、b变分自动编码器 (VAE) 和 BERT(适用于 NLP)构成了 NVIDIA GPU 加速 DL 模型产品组合的一部分,并涵盖推荐系统以外的许多不同领域的各种网络架构和应用程序,包括图像、文本和语音分析。这些模型专为使用 TensorFlow 和 PyTorch 进行训练而设计和优化。

    四、神经网络浅谈

    人工智能技术是当前炙手可热的话题,而基于神经网络的深度学习技术更是热点中的热点。去年谷歌的Alpha Go 以4:1大比分的优势战胜韩国的李世石九段,展现了深度学习的强大威力,后续强化版的Alpha Master和无师自通的Alpha Zero更是在表现上完全碾压前者。不论你怎么看,以深度学习为代表的人工智能技术正在塑造未来。

    下图为英伟达(NVIDIA)公司近年来的股价情况, 该公司的主要产品是“图形处理器”(GPU),而GPU被证明能大大加快神经网络的训练速度,是深度学习必不可少的计算组件。英伟达公司近年来股价的飞涨足以证明当前深度学习的井喷之势。

    好,话不多说,下面简要介绍神经网络的基本原理、发展脉络和优势。

    神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系,是机器学习算法大类中的一种。首先让我们来看人脑神经元细胞:

    一个神经元通常具有多个树突 ,主要用来接受传入信息,而轴突只有一条,轴突尾端有许多轴突末梢,可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。

    下图是一个经典的神经网络(Artificial Neural Network,ANN):

    乍一看跟传统互联网的拓扑图有点类似,这也是称其为网络的原因,不同的是节点之间通过有向线段连接,并且节点被分成三层。我们称图中的圆圈为神经元,左边三个神经元组成的一列为输入层,中间神经元列为隐藏层,右边神经元列为输出层,神经元之间的箭头为权重。

    神经元是计算单元,相当于神经元细胞的细胞核,利用输入的数据进行计算,然后输出,一般由一个线性计算部分和一个非线性计算部分组成;输入层和输出层实现数据的输入输出,相当于细胞的树突和轴突末梢;隐藏层指既不是输入也不是输出的神经元层,一个神经网络可以有很多个隐藏层。

    神经网络的关键不是圆圈代表的神经元,而是每条连接线对应的权重。每条连接线对应一个权重,也就是一个参数。权重具体的值需要通过神经网络的训练才能获得。我们实际生活中的学习体现在大脑中就是一系列神经网络回路的建立与强化,多次重复的学习能让回路变得更加粗壮,使得信号的传递速度加快,最后对外表现为“深刻”的记忆。人工神经网络的训练也借鉴于此,如果某种映射关系出现很多次,那么在训练过程中就相应调高其权重。

    1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP:

    符号化后的模型如下:

    Sum函数计算各权重与输入乘积的线性组合,是神经元中的线性计算部分,而sgn是取符号函数,当输入大于0时,输出1,反之输出0,是神经元中的非线性部分。向量化后的公式为z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。

    但是,MP模型中,权重的值都是预先设置的,因此不能学习。该模型虽然简单,并且作用有限,但已经建立了神经网络大厦的地基

    1958年,计算科学家Rosenblatt提出了由两层神经元组成(一个输入层,一个输出层)的神经网络。他给它起了一个名字–“感知器”(Perceptron)

    感知器是当时首个可以学习的人工神经网络。Rosenblatt现场演示了其学习识别简单图像的过程,在当时引起了轰动,掀起了第一波神经网络的研究热潮。

    但感知器只能做简单的线性分类任务。1969年,人工智能领域的巨擘Minsky指出这点,并同时指出感知器对XOR(异或,即两个输入相同时输出0,不同时输出1)这样的简单逻辑都无法解决。所以,明斯基认为神经网络是没有价值的。

    随后,神经网络的研究进入低谷,又称 AI Winter 。

    Minsky说过单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。

    下图为两层神经网络(输入层一般不算在内):

    上图中,输出层的输入是上一层的输出。

    向量化后的公式为:

    注意:

    每个神经元节点默认都有偏置变量b,加上偏置变量后的计算公式为:

    同时,两层神经网络不再使用sgn函数作为激励函数,而采用平滑的sigmoid函数:

    σ(z)=1/(1+e^(-z) )

    其图像如下:

    理论证明: 两层及以上的神经网络可以无限逼近真实的对应函数,从而模拟数据之间的真实关系 ,这是神经网络强大预测能力的根本。但两层神经网络的计算量太大,当时的计算机的计算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带动了业界使用两层神经网络研究的热潮。

    但好景不长,算法的改进仅使得神经网络风光了几年,然而计算能力不够,局部最优解,调参等一系列问题一直困扰研究人员。90年代中期,由Vapnik等人发明的SVM(Support Vector Machines,支持向量机)算法诞生,很快就在若干个方面体现出了对比神经网络的优势:无需调参;高效;全局最优解。

    由于以上原因,SVM迅速打败了神经网络算法成为主流。神经网络的研究再一次进入低谷, AI Winter again 。

    多层神经网络一般指两层或两层以上的神经网络(不包括输入层),更多情况下指两层以上的神经网络。

    2006年,Hinton提出使用 预训练 ”(pre-training)和“微调”(fine-tuning)技术能优化神经网络训练,大幅度减少训练多层神经网络的时间

    并且,他给多层神经网络相关的学习方法赋予了一个新名词–“ 深度学习 ”,以此为起点,“深度学习”纪元开始了:)

    “深度学习”一方面指神经网络的比较“深”,也就是层数较多;另一方面也可以指神经网络能学到很多深层次的东西。研究发现,在权重参数不变的情况下,增加神经网络的层数,能增强神经网络的表达能力。

    但深度学习究竟有多强大呢?没人知道。2012年,Hinton与他的学生在ImageNet竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性。

    同时,科研人员发现GPU的大规模并行矩阵运算模式完美地契合神经网络训练的需要,在同等情况下,GPU的速度要比CPU快50-200倍,这使得神经网络的训练时间大大减少,最终再一次掀起了神经网络研究的热潮,并且一直持续到现在。

    2016年基于深度学习的Alpha Go在围棋比赛中以4:1的大比分优势战胜了李世石,深度学习的威力再一次震惊了世界。

    神经网络的发展历史曲折荡漾,既有被捧上神坛的高潮,也有无人问津的低谷,中间经历了数次大起大落,我们姑且称之为“三起三落”吧,其背后则是算法的改进和计算能力的持续发展。

    下图展示了神经网络自发明以来的发展情况及一些重大时间节点。

    当然,对于神经网络我们也要保持清醒的头脑。由上图,每次神经网络研究的兴盛期持续10年左右,从最近2012年算起,或许10年后的2022年,神经网络的发展将再次遇到瓶颈。

    神经网络作为机器学习的一种,其模型训练的目的,就是使得参数尽可能的与真实的模型逼近。理论证明,两层及以上的神经网络可以无限逼近真实的映射函数。因此,给定足够的训练数据和训练时间,总能通过神经网络找到无限逼近真实关系的模型。

    具体做法:首先给所有权重参数赋上随机值,然后使用这些随机生成的参数值,来预测训练数据中的样本。假设样本的预测目标为yp ,真实目标为y,定义值loss,计算公式如下:

    loss = (yp -y) ^2

    这个值称之为 损失 (loss),我们的目标就是使对所有训练数据的损失和尽可能的小,这就转化为求loss函数极值的问题。

    一个常用方法是高等数学中的求导,但由于参数不止一个,求导后计算导数等于0的运算量很大,所以常用梯度下降算法来解决这样的优化问题。梯度是一个向量,由函数的各自变量的偏导数组成。

    比如对二元函数 f =(x,y),则梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函数值上升最快的方向。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。下图为梯度下降的大致运行过程:

    在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用 反向传播 (Back Propagation)算法。反向传播算法利用了神经网络的结构进行计算,不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。当然,梯度下降只是其中一个优化算法,其他的还有牛顿法、RMSprop等。

    确定loss函数的最小值后,我们就确定了整个神经网络的权重,完成神经网络的训练。

    在神经网络中一样的参数数量,可以用更深的层次去表达。

    由上图,不算上偏置参数的话,共有三层神经元,33个权重参数。

    由下图,保持权重参数不变,但增加了两层神经元。

    在多层神经网络中,每一层的输入是前一层的输出,相当于在前一层的基础上学习,更深层次的神经网络意味着更深入的表示特征,以及更强的函数模拟能力。更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。

    如上图,第一个隐藏层学习到“边缘”的特征,第二个隐藏层学习到“边缘”组成的“形状”的特征,第三个隐藏层学习到由“形状”组成的“图案”的特征,最后的隐藏层学习到由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

    前面提到, 明斯基认为Rosenblatt提出的感知器模型不能处理最简单的“异或”(XOR)非线性问题,所以神经网络的研究没有前途,但当增加一层神经元后,异或问题得到了很好地解决,原因何在?原来从输入层到隐藏层,数据发生了空间变换,坐标系发生了改变,因为矩阵运算本质上就是一种空间变换。

    如下图,红色和蓝色的分界线是最终的分类结果,可以看到,该分界线是一条非常平滑的曲线。

    但是,改变坐标系后,分界线却表现为直线,如下图:

    同时,非线性激励函数的引入使得神经网络对非线性问题的表达能力大大加强。

    对于传统的朴素贝叶斯、决策树、支持向量机SVM等分类器,提取特征是一个非常重要的前置工作。在正式训练之前,需要花费大量的时间在数据的清洗上,这样分类器才能清楚地知道数据的维度,要不然基于概率和空间距离的线性分类器是没办法进行工作的。然而在神经网络中,由于巨量的线性分类器的堆叠(并行和串行)以及卷积神经网络的使用,它对噪声的忍耐能力、对多通道数据上投射出来的不同特征偏向的敏感程度会自动重视或忽略,这样我们在处理的时候,就不需要使用太多的技巧用于数据的清洗了。有趣的是,业内大佬常感叹,“你可能知道SVM等机器学习的所有细节,但是效果并不好,而神经网络更像是一个黑盒,很难知道它究竟在做什么,但工作效果却很好”。

    人类对机器学习的环节干预越少,就意味着距离人工智能的方向越近。神经网络的这个特性非常有吸引力。

    1) 谷歌的TensorFlow开发了一个非常有意思的神经网络 入门教程 ,用户可以非常方便地在网页上更改神经网络的参数,并且能看到实时的学习效率和结果,非常适合初学者掌握神经网络的基本概念及神经网络的原理。网页截图如下:

    2) 深度学习领域大佬吴恩达不久前发布的《 神经网络和深度学习 》MOOC,现在可以在网易云课堂上免费观看了,并且还有中文字幕。

    3) 《神经网络于深度学习》(Michael Nielsen著)、《白话深度学习与TensorFlow》也是不错的入门书籍。

    以上就是关于深度神经网络的定义相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    湖泊景观设计案例琵琶湖(琵琶湖深度)

    公园景观设计方案深化深度(公园景观设计方案深化深度研究)

    景观设计初步(景观设计初步设计深度要求标准)_1

    韩国女明星身高排行榜(韩国女明星身高排行榜最新)

    杭州梦玩科技有限公司(杭州梦玩科技有限公司招聘)