文章目录

  1. 1. 参考资料


微信公众号

神经网络,顾名思义,是由神经元所组织的网络。现在,我们来看下神经网络的结构。下面这张图,这是一个比较简单的神经网络结构。

enter image description here

这是一个 2 层神经网络。因为,一般情况下,输入层不算,隐藏层算 1 层,输出层算 1 层,一共 2 层。

在一个神经网络中通常会分这样几层:输入层、隐藏层、输出层。

输入层,在整个网络的最前端部分,直接接受输入的向量,它是不对数据做任何处理的,所以通常这一层是不计入层数的。

隐藏层,可以有一层或多层。 放入隐藏层的结点越多,我们能训练的函数就越复杂。

输出层是最后一层,用来输出整个网络处理的值,这个值可能是一个分类向量值,也可能是一个类似线性回归那样产生的连续的值,也可能是别的复杂类型的值或者向量,根据不同的需求输出层的构造也不尽相同。

神经元就是像图上所画的这种首尾相接的方式进行数据传递的,前一个神经元接收数据,数据经过处理会输出给后面一层的相应的一个或多个神经元。对于一个 x 向量中的任何一个维度分量,你都可以在这种拓扑描述中看到它在通过一层一层的处理时通过了哪些神经元的处理,并且在输出后又输入了哪些神经元。

也许我们想象成“大脑的运作”会更好地理解这个概念。首先,我们会在脑中处理这个信息,然后产生输出信息。在神经网络中也是如此,神经元接收到一个输入信息,然后对它进行加工处理,然后产生输出信息,传输到其他神经元中进行进一步信息处理。

enter image description here

现实中,各种因素很少具有同等重要性:某些因素是决定性因素,另一些因素是次要因素。因此,可以给这些因素指定权重,代表它们不同的重要性。当输入信息到达神经元时,它就会乘上一个权重。举例来说,如果一个神经元包含两个输入信息,那么每个输入信息都被赋予它的关联权重。我们随机初始化权重,并在模型训练过程中更新这些权重。接受训练后的神经网络会赋予它认为重要的输入信息更高的权重值,而那些不重要的输入信息权重值则会相对较小。权重值为零就意味着这个特征是无关紧要的。

enter image description here

除了权重之外,输入还有另一个线性分量,被称为偏置。输入信息乘上权重后再加上偏置,用来改变权重乘输入的范围。

z = Wx + b

此外,我们还会引入激活函数实现去线性化。换句话说,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。 例如,我们使用 sigmoid 激活函数。

σ(z) = 1 / (1 + e^(-z))

事实上,神经网络,尤其是深度神经网络之所以这么吸引人,主要是因为它能够通过大量的线性分类器和非线性关系的组合来完成平时非常棘手的线性不可分的问题。

参考资料

文章目录

  1. 1. 参考资料