深度学习 - 对神经网络本质的理解(层结构和行为角度)
神经网络做分类等问题的核心原理是使用升维/降维、 放大/缩小、旋转、平移、弯曲这5大类操作完成扭曲变换,最终能在扭曲后的空间找到轻松找到一个超平面分割空间。
神经网络是一种受到生物神经系统启发而设计的计算模型,用于机器学习和人工智能领域。神经网络由大量的人工神经元(模拟生物神经元)组成,这些神经元通过连接权重相互连接,形成网络结构。神经网络的目标是通过学习和调整权重来模拟和解决复杂的问题。
神经网络做分类等问题的核心原理是使用升维/降维、 放大/缩小、旋转、平移、弯曲这5大类操作完成扭曲变换,最终能在扭曲后的空间找到轻松找到一个超平面分割空间。
NNLM是从语言模型出发(即计算概率角度),构建神经网络针对目标函数对模型进行最优化,训练的起点是使用神经网络去搭建语言模型实现词的预测任务,并且在优化过程后模型的副产品就是词向量。
深度学习是使用现代硬件的人工神经网络的应用。它使开发,训练和使用比过去更大(更多层)的神经网络成为可能。研究人员提出了数千种类型的特定神经网络,它们往往是对现有模型的修改或调整。有时也会有全新的方法。作为一名从业者,我建议你等到模型出现后普遍适用后再使用。因为很难从每天或每周发布的大量出版物的中梳理出效果良好的那个。
1987年,美国学者Robert Hecht-Nielsen提出了对偶传播神经网络模型 (Counter Propagation Network,CPN),CPN最早是用来实现样本选择匹配系统的。CPN 网能存储二进制或模拟值的模式对,因此这种网络模型也可用于联想存储、模式分类、函数逼近、统计分析和数据压缩等用途。
人工神经网络有两个重要的超参数,用于控制网络的体系结构或拓扑:层数和每个隐藏层中的节点数。配置网络时,必须指定这些参数的值。
dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。
这篇文章主要介绍了机器学习中最先进的算法之一——神经网络的八种不同架构,并从原理和适用范围进行了解读。机器学习和神经网络如此优秀,我们先来探讨两个问题——为什么需要机器学习?为何要使用神经网络?之后在来详细了解八种不同的网络架构。
神经网络的发展史可以分为三个阶段,第一个阶段是Frank Rosenblatt提出的感知机模型,感知机模型的逻辑简单有效,但不能处理异或等非线性问题。第二个阶段是Rumelhart等提出的反向传播算法,该算法使用梯度更新权值,使多层神经网络的训练成为可能。第三个阶段得益于计算机硬件的发展和大数据时代的到来,促进了深度神经网络的发展。
如今,即便是结构非常复杂的神经网络,只要使用Keras,TensorFlow,MxNet或PyTorch等先进的专业库和框架,仅需几行代码就能轻松实现。而且,你不需要担心权重矩阵的参数大小,也不需要刻意记住要用到的激活函数公式,这可以极大的避免我们走弯路并大大简化了建立神经网络的工作。然而,我们还是需要对神经网络内部有足够的了解,这对诸如网络结构选择、超参数调整或优化等任务会有很大帮助。本文我们将会从数学角度来充分了解神经网络是如何工作的。
总结下深度学习里的第三类神经网络模型:玻尔兹曼机。主要关注于这类模型中的受限玻尔兹曼机(Restricted Boltzmann Machine,以下简称RBM), RBM模型及其推广在工业界比如推荐系统中得到了广泛的应用。