广告位API接口通信错误,查看德得广告获取帮助

电竞之家_品味电竞生活移动版

主页 > CS:GO >

理解神经网络:从神经元到RNN、CNN、深度学习(2)

理解神经网络:从神经元到RNN、CNN、深度学习


Leaky ReLU是一个其中最出名的一种变形,对于正数输入,其输出和ReLU一样,但是对于所有负数输出,不再是0,而是具有一个常数斜率(小于1).这个斜率是在构建模型时,需要使用者设置的参数。它通常被叫做alpha,例如,使用者设置alpha=0.3.这个激活函数则表示为f(x)=max(0.3x,x)。这具有一个理论优点,通过x在所有值处都能有一个影响,使得在x中包含的信息被充分利用。激活函数还有有其他可以替代的选择,但是对于从业者和研究人员,发现一般情况通过改变使用其他激活函数代替ReLU,并不能带来足够的收益。在平常实践中,ReLU比Sigmoid或者tanh函数表现的更好。


神经网络到目前为止,我们已经介绍完了神经元和激活函数,它们一起是构建任意神经网络的基本构件。现在,我们更深入的了解什么是神经网络,以及它们不同的种类。我强烈的建议你,如果对于神经元和激活函数有任何的疑惑,回过头去复习一下它们。在理解一个神经网络之前,有必要去理解神经网络中的Layer(层),一层Layer是一组有输入输出的神经元。每一个神经元的输入通过其所属的激活函数处理,例如,这是一个小型神经网络。

理解神经网络:从神经元到RNN、CNN、深度学习


网络的最左边的layer叫做输入层,最右边的layer叫做输出层(在这个例子中,只有一个节点)。中间的layer叫做隐藏层,因为其值不能在训练集中观察到。我们也可以说,我们的神经网络例子,具有3个输入单元(不包括偏置单元),3个隐藏单元,1个输出单元。任何神经网络都至少包含1个输入层和1个输出层。隐藏层的数量在不同的网络中不同,取决于待解决问题的复杂度。另一个需要做笔记的重点是每一个隐藏层可以有一个不同的激活函数,例如,在同一个神经网络中,隐藏层layer1可能使用sigmoid函数,隐藏层layer2可能使用ReLU,后续的隐藏层layer3使用Tanh。激活函数的选择取决于待解决的问题以及使用的数据的类型。现在对于一个可以做精确预测的神经网络,在其中每一层的每一个神经元都学习到了确定的权值。学习权值的算法叫做反向传播,其中的细节超过了本文的范围。


具有超过一个隐藏层的神经网络通常被叫做深度神经网络。卷积神经网络(CNN)卷积神经网络(CNN)是神经网络的一种,在计算机视觉领域应用非常广泛。它的名字来源于组成其隐藏层的种类。CNN的隐藏层通常包含卷积层,池化层,全连接层,以及归一化层。这些层的名字简洁的表明了,使用了卷积和池化函数等作为激活函数,而不是使用之前定义的普通激活函数。

理解神经网络:从神经元到RNN、CNN、深度学习


想要详细的了解CNN,需要先理解什么是卷积和池化。这些概念都来源于计算机视觉领域,定义如下:卷积:卷积作用在两个信号(1维)或者两张图片(2维)上:你可以认为其中一个作为"输入"信号(或图片),另一个作为一个"滤波器"(也叫作kernel,核),然后生成第三个信号作为输出。用非专业的表述,就是在输入信号上使用一个滤波器。本质上,使用一个kernel(核)乘以输入信号,得到调整后的输出信号。数学上,两个函数f和g的卷积定义如下:

理解神经网络:从神经元到RNN、CNN、深度学习


这就是输出函数和kernel(核)函数的点乘运算。在图像处理案例中,可视化一个卷积核在整个图片上滑动是非常简单的,每个像素的值都是在这个过程中改变的。

理解神经网络:从神经元到RNN、CNN、深度学习


池化(pooling):池化是一个基于采样的离散化处理。它的目标是对输入(图片,隐藏层,输出矩阵等)进行下采样,来减小输入的维度,并且包含局部区域的特征。有两个主要的池化种类,max和min pooling。正如其名字表明的,max pooling是在选择区域选择中最大值,min pooling是在选择区域中选择最小值。

理解神经网络:从神经元到RNN、CNN、深度学习


因此,正如我们所看到的,卷积神经网络CNN是一个基本的深度神经网络,它包含多个隐藏层,除之前介绍的非线性激活函数之外,这些层还使用了卷积和池化函数。更多详情可以在以下网站找到:循环神经网络(RNN)循环神经网络RNN,正如其名,是一个非常重要的神经网络种类,在自然语言处理领域应用非常广泛。在一个普通的神经网络中,一个输入通过很多层的处理后,得到一个输出,假设了两个连续的输入是互相独立不相关的。然而这个假设在许多生活中的情节并不成立。例如,如果一个人相应预测一个给定时间的股票的价格,或者相应预测一个句子中的下一个单词,考虑与之前观测信息的依赖是有必要的。RNNs被叫做循环,因为它们对于一个序列中的每一个元素执行相同的任务,它们的输出依赖于之前的计算。另一个理解RNN的角度是,认为它们有"记忆",能够捕捉到到目前为止的计算信息。理论上,RNN能够充分利用任意长序列中的信息,但是实践上,它们被限制在可以回顾仅仅一些步骤。结构展示,一个RNN如下图所示。它可以想象成一个多层神经网络,每一层代表每一个确定时刻t的观测。

(责任编辑:波少)

广告位API接口通信错误,查看德得广告获取帮助