深度神经网络(DNN)是一种机器学习模型,属于神经网络的一种。它是一种由多层神经元组成的模型,每一层神经元都可以接收和处理输入数据,并将处理后的数据传递给下一层神经元。DNN 在图像识别、语音识别、自然语言处理等领域取得了显著的成就。
DNN 通过反向传播算法进行训练。在训练过程中,输入数据通过网络的各个层进行传递和处理,最终产生输出结果。然后,通过比较输出结果与期望输出之间的差异,计算出误差信号。误差信号会反向传播到网络的每一层,用于调整神经元之间的连接权重,从而使网络的输出结果更加接近期望输出。这个过程会重复多次,直到网络的输出结果达到满意的精度为止。
DNN 具有很强的学习能力和泛化能力。它可以自动提取输入数据中的特征和模式,并将其表示为高层的抽象特征。这些抽象特征可以用于各种任务,如分类、回归、聚类等。此外,DNN 还具有很强的泛化能力,可以处理各种类型的数据,如图像、语音、文本等。
虽然 DNN 在许多领域都取得了显著的成就,但它也存在一些局限性,如需要大量的计算资源和数据、容易出现过拟合等。此外,DNN 的模型结构和参数需要经过精心设计和调整,以确保其在不同任务和数据集上的有效性和泛化能力。
深度学习不仅与学习深度非线性层次特征有关,还与学习检测序列数据中非常长的非线性时间依赖性有关。虽然大多数其他处理顺序数据的算法只有最后10个时间步的内存,[长短时记忆](https://developer.nvidia.com/blog/parallelforall/deep-learning-nutshell-sequence-learning#LSTM)[循环神经网络](https://developer.nvidia.com/blog/parallelforall/deep-learning-nutshell-sequence-learning#recurrent-neural-networks)(由Sepp Hochreiter和J ü rgen-Schmidhuber在1997年发明)允许网络收集过去几百个时间步的活动,从而做出准确的预测。虽然LSTM网络在过去10年中大多被忽视,但自2013年以来,LSTM网络的使用量迅速增长,与卷积网络一起构成了深度学习的两大成功案例之一。
训练深度学习架构的过程类似于幼儿开始理解周围世界的过程。当幼儿遇到一个新的动物,比如一只猴子,他或她不会知道这是什么。但是一个成年人会用手指指向猴子并说:“那是一只猴子!”幼儿就能将他或她看到的图像与标签“猴子”联系起来。然而,在下一次遇到同样的动物时。单个图像可能不足以正确地标记该动物。例如,幼儿可能会把树懒误认为猴子,或者把猴子误认为树懒,或者干脆忘记某种动物的名称。为了可靠地记忆和标记,幼儿需要看到许多不同的猴子和类似的动物,并且每次都需要知道它是否真的是猴子——反馈对于学习至关重要。经过一段时间,如果幼儿遇到足够多的动物并配对它们的名称,幼儿将学会区分不同的动物。深度学习过程类似。我们向神经网络提供图像或其他数据,例如一只猴子的图像。深度神经网络预测某种结果,例如图像中物体的标签(“猴子”)。然后我们向网络提供反馈。如果网络预测图像显示有30%的概率是猴子,70%的概率是树懒,那么所有有利于树懒类的输出都会出错!通过误差反向传播算法,我们使用该误差来调整神经网络的参数。
人工神经网络(1)获取一些输入数据,(2)通过计算输入的加权和来转换这些输入数据,(3)将一个非线性函数应用于此转换以计算中间状态。上面的三个步骤构成了所谓的[层](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#%E5%B1%82),而转换函数通常被称为[单元](https://developer.nvidia.com/zh-cn/blog/deep-learning-nutshell-core-concepts/#%E5%8D%95%E5%85%83)。通常称为特征的中间状态被用作另一层的输入。通过重复这些步骤,人工神经网络学习多层非线性特征,然后将这些非线性特征组合到最后一层来创建预测。神经网络通过产生一个误差信号来学习,该信号测量网络的预测值与期望值之间的差异,然后使用该误差信号来改变权重(或参数),从而使预测更加准确。