从一个简单的神经网络模型开始

 神经网络是一个复杂的系统工程,要想透过表象看本质就需要从最基础的神经网络开始 



关于神经网络的文章写的也不少了,但一直没弄明白神经网络到底是怎么运作的;而现有的神经网络模型又太复杂,如Transformer,CNN,RNN,以及各种应用场景(NLP,CV,分类任务,回归任务等等);导致我们无法看到神经网络最本质的东西。

所以,今天我们就来从最简单的神经网络开始学起。


简单神经网络



神经网络的基本原理很简单,那就是模仿由人类大脑神经元构成的神经网络;神经元结构如下图所示:

上图是生物学中神经元的基本结构,神经元由树突和轴突以及细胞核组成;而不同神经元之间通过轴突进行连接;当然这些都是中学生物学的基础,就不多说了。

我们主要是把现在的神经网络模型与生物学的神经网络模型做对比;如下图所示,其中每个圆圈就代表一个神经元;对应着生物学模型中的紫色部分,而每个神经元的计算过程就相当于生物学神经元中的细胞核部分;而突触就是下图中的箭头部分。

神经网络模型一般情况下分为多层,其中比较特殊的一点就是输入层和输出层;输入层与输出层根据不同的场景神经元数量各不相同,但基本上节点数都是固定的,且输入层和输出层由于需要和外界交互,因此比较特殊;而中间的隐藏层由多层神经网络组成,且每一层的输出都是下一层的输入。

而神经元的结构是一个包含输入,输出与计算功能的模型;输入可以类比生物神经元中的树突,而输出则为神经元的轴突;计算部分就是细胞核——进行信号处理和转换。

如下图所示,红色框中的就是一个简单的神经元计算模型。

而在实际应用中,不同的神经元实现不尽相同,但大都基于以下的神经元数学模型:


其实很多人都有一个错误的认知,那就是在神经网络中最重要的是神经元;其实在神经网络中最重要的是权重(W),神经网络训练的目的就是调整不同神经元的不同权重值,当然这里并不是说神经元不重要。

而当有多个神经元组成一个网络层,然后再由多个网络层组成一个复杂的神经网络结构。

如上图所示,每个圆圈都是一个神经元,一个神经元可能存在多个输入,也就是上层神经元的轴突部分;然后神经元接受到输入之后,经过细胞核(函数计算)之后产生一个结果,并输出给下层的神经网络中的神经元;如上图中的Z1的输入来自于a1,a2和a3。而a1,a2和a3的输出又可以同时输出给Z1和Z2两个神经元。

而具体每个神经元有几个输入,以及输出结果给到几个神经元就有不同的神经网络结构所决定。

虽然说目前有单个神经元或者由单层神经网络组成的神经网络模型并没有太大实际应用价值;但其为学习复杂神经网络提供了基础的理论和数学模型。

而这也是神经网络模型的基础,面对复杂的各种神经网络模型和结构,大部分人都被气复杂的表象所蒙蔽,因此我们最好从最简单的学起。虽然它目前并没有什么用,但能够让你了解神经网络的基本运作原理;当你再面对复杂神经网络时,你就知道了其底层的运作原理。

(文:AI探索时代)

欢迎分享

发表评论