说话人识别中的神经网络和深度神经网络有什么区别。我可以提供 Matlab 中的代码示例吗?谢谢
神经网络和深度神经网络有什么区别。一个例子谢谢你
不同之处在于构建网络的感知器神经元层的数量。
神经网络以感知器为基础。这就像人类的神经元。感知器可以权衡不同类型的证据以做出决定。复杂的感知器网络可以做出非常微妙的决定似乎是合理的。
神经网络具有不同的感知器层。第一层感知器通过权衡输入证据做出非常简单的决定。第二层的感知器呢?这些感知器中的每一个都通过权衡第一层决策的结果来做出决策。通过这种方式,第二层中的感知器可以在比第一层中的感知器更复杂和更抽象的级别上做出决策。第三层的感知器可以做出更复杂的决定。通过这种方式,多层感知器网络可以参与复杂的决策制定。
事实上,网络中任何单个感知器的权重或偏差的微小变化有时会导致该感知器的输出完全翻转,例如从 0 到 1。这种翻转可能会导致网络其余部分的行为以某种非常复杂的方式彻底改变。因此,虽然您的“9”现在可能被正确分类,但所有其他图像上的网络行为可能已经以某种难以控制的方式完全改变。这使得很难看出如何逐渐修改权重和偏差,以使网络更接近所需的行为。也许有一些巧妙的方法可以解决这个问题。但我们如何让感知器网络进行学习并不是很明显。
我们可以通过引入一种称为 sigmoid 神经元的新型人工神经元来克服这个问题。Sigmoid 神经元类似于感知器,但经过修改后,它们的权重和偏差的微小变化只会导致其输出的微小变化。这是允许 sigmoid 神经元网络学习的关键事实。
所描述的网络称为前馈神经网络。这意味着网络中没有环路——信息总是前馈,从不反馈。还有其他的人工神经网络模型,其中反馈回路是可能的。这些模型称为循环神经网络。这些模型中的想法是让神经元在有限的时间内激发,然后变为静止。这种放电可以刺激其他神经元,这些神经元可能会在一段时间后放电,而且持续时间有限。这会导致更多的神经元放电,因此随着时间的推移,我们会得到一连串的神经元放电。循环不会在这样的模型中引起问题,因为神经元的输出只会在稍后的某个时间影响其输入,而不是瞬间影响。
深度神经网络涉及一个层网络,该网络将一个非常复杂的问题——这张图像是否显示一张脸——分解成非常简单的问题,可以在单个像素级别回答。它通过一系列的许多层来做到这一点,早期的层回答关于输入图像的非常简单和具体的问题,而后面的层则建立了一个更加复杂和抽象概念的层次结构。具有这种多层结构(两个或更多隐藏层)的网络称为深度神经网络。
自 2006 年以来,已经开发了一套技术,可以在深度神经网络中进行学习。这些深度学习技术基于随机梯度下降和反向传播,但也引入了新思想。这些技术可以训练更深(和更大)的网络——人们现在经常训练具有 5 到 10 个隐藏层的网络。而且,事实证明,这些在许多问题上的性能都比浅层神经网络(即只有一个隐藏层的网络)要好得多。当然,原因是深度网络能够建立复杂的概念层次结构。这有点像传统编程语言使用模块化设计和抽象思想来创建复杂计算机程序的方式。