什么是人工神经网络(ANN)

一、简介
人工神经网络,顾名思义,是一个可以说是仿生学的概念。人类发现神经元之间相互协作可以完成信息的处理和传递,于是提出了人工神经网络的概念,用于进行信息处理。

二、人工神经网络
神经网络既然是输入数据之后计算输出,曾有人提出了如下网络结构:

什么是人工神经网络(ANN)

这个神经网络由两层神经元构成。左边是输入层,神经元的个数就是输入数据的个数;右边是输出层,神经元的个数就是输出数据的个数。两层之间呈二分图的拓扑结构,每条边上有一个权值w。
首先,我们考虑,一个神经元接收到信息之后,只会傻乎乎地加权求和,然后输出给下一个神经元吗?它是不是可以做点什么?没错,事实上,生物体内的神经元接受信息之后并不一定被**,而是判断这个信息是否达到了一个阈值。如果信息的值并没有达到这个阈值,神经元就处于抑制状态,否则,神经元被**,并将信息传递给下一个神经元。
为了提高神经元的利用率,我们用非线性函数代替突跃函数作为神经元的**函数。方法是,在神经元接收到加权求和的值x之后,神经元的输出y = A(x),其中A(x)是该神经元的**函数。这就是每个神经元对信息的处理,得到的输出值y再进入下一层进行加权求和,或者在输出层输出。
引入非线性**函数,似乎就能拟合非线性关系,但这远远不够。其次,我们继续考虑,输入数据直接传到输出层吗?单凭输出层的**函数处理信息,是不是力量有点单薄?于是我们引入隐含层。
什么是人工神经网络(ANN)
隐含层的层数和每层神经元的个数都是超参数,需要我们在训练和执行网络之前就已经设计好。
这样的网络,每相邻两层之间依旧是二分图的拓扑结构,只是层数变多了。这样的模型,最先在1986年由Paul Smolensky提出,当时的名字叫作“簧风琴”。后来人们发现这个模型与统计物理学中的玻尔兹曼机非常相似,于是命名为受限玻尔兹曼机。而这个“限”,指的是全连接二分图(上一层所有神经元,与下一层除偏置量外的所有神经元都是全连接的)。
此时我们发现,不需要借助外力,四种逻辑运算符(and, or, xor, nand)已经可以训练得非常完美了。比如我们可以用ReLU作为**函数,通过BP算法训练每种逻辑运算符的四个样本,得到四个神经网络,来运算和、或、异或、与非四个逻辑运算。
同时任何非线性函数的拟合效果也非常完美。
我们增加网络层数,于是深度学习模型中最简单的DNN(深度神经网络)诞生了。
什么是人工神经网络(ANN)

三、总结
以上便是最基本的人工神经网络的知识。下面我们将会继续对人工神经网络的其余部分展开介绍。