什么是Python深层神经网络?
在了解深层神经网络是什么之前,让我们先了解一下人工神经网络。
人工神经网络
ANN(人工神经网络)受生物神经网络的启发。它可以通过观察示例来学习执行任务,我们不需要使用特定于任务的规则对它们进行编程。 ANN可以查看标记为“猫”或“无猫”的图像,并学习识别更多图像本身。
这样的网络是人工神经元连接节点的集合,生物大脑中的这些模型神经元。连接就像大脑中的突触,能够将信号从一个人工神经元传递到另一个人工神经元。 这个神经元处理它接收到的信号,并向它连接的更多人工神经元发出信号。
这样,我们就可以有输入、输出和隐藏层。
人工神经网络在计算机视觉、语音识别、机器翻译、社会网络过滤、医学诊断、棋盘和电子游戏等领域有着广泛的应用。
深层神经网络
深层神经网络是一种在输入层和输出层之间有多个层的神经网络。这样的网络在多个层中筛选并计算每个输出的概率。
DNN能够模拟复杂的非线性关系。
深层神经网络的结构
DNN通常是前馈网络,这意味着数据从输入层流到输出层,而不返回。
这种只有一个隐层的网络将是一个非深(或浅)的前馈神经网络。但是在深层神经网络中,隐藏层的数量可以说是1000层。但它必须大于2才能被认为是DNN。
DNN创建虚拟神经元的映射,并随机分配权重给这些神经元之间的连接。它将权重与输入相乘,以返回0到1之间的输出。如果它不能识别一个模式,它使用一个算法来调整权重。
深层神经网络的类型
广义上,我们可以将深层神经网络分为两类:
递归神经网络
递归神经网络是一种人工神经网络,其节点之间的连接沿着序列形成有向图。RNN可以使用内部状态/内存来处理输入序列。因此,我们可以将它用于非分割、连接手写识别和语音识别等任务。RNN的种类:
· 有限脉冲递归网络:一种有向无环图(DAG),可以用严格的前馈神经网络代替。
· 无限脉冲递归网络:一个我们无法展开的有向循环图。
一个基本的RNN是一个由神经元组成的网络,在这个网络中,一个层中的每一个节点都单向地连接到下一层中的每一个其他节点。在RNN中,数据可以向任意方向流动。我们利用LSTM(长期短期内存),并在语言建模等应用程序中使用RNN。
卷积神经网络(CNN或ConvNet)
CNN是一种深层次的神经网络,是前馈的。我们将它用于分析视觉图像、计算机视觉、用于自动语音识别(ASR)的声学建模、推荐系统和自然语言处理(NLP)等应用。
CNN使用多层感知器进行最小预处理。在这样的网络中,神经元之间的连接模式模仿动物视觉皮层的组织方式。CNN学习过滤器,因此几乎不需要预处理。它具有以下体系结构:
深层神经网络面临的挑战
发展网络面临两大挑战:
过度拟合
由于DNN具有更多的抽象层,所以它可以对训练数据中的稀有依赖进行建模。为了解决这个问题,我们可以:
· 使用正则化的方法。
· 在训练时,使用正则化从隐藏层中随机省略单元。
· 使用裁剪和旋转等方法来增加数据,扩大较小的训练集。
计算时间
要浏览参数空间(大小、学习速率、初始权重),可能需要更多的计算资源和时间。为了解决这一问题,我们可以:
· 执行批处理,一次计算多个训练示例的梯度。
· 使用多个核心架构,因为它们具有很大的处理能力,并且适合于矩阵和矢量计算。
深层信念网络
在我们开始退出之前,让我们再谈一件事-深度信念网络。DBN是一种包含多层潜在变量或隐藏单元的深度神经网络。这样的网络观察层之间的连接,而不是这些层上的单元之间的连接。
如果我们在一组没有监督的例子上训练一个DBN,我们可以让它学会重建输入概率。你可以调用图层特征检测器。在此之后,我们可以通过监督培训来进行分类。
所以,这都是在Python的深层神经网络中完成的。
结论
在这篇深度神经网络文章中,我们研究了深度学习,它的类型,面临的挑战以及深度信念网络。
原文标题《Deep Neural Networks With Python》
作者:Rinu Gour
译者:lemon
不代表云加社区观点,更多详情请查看原文链接