基于Python的深层神经网络

2018-10-11 11:00:57 浏览数 (1)

什么是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

不代表云加社区观点,更多详情请查看原文链接

0 人点赞