人工神经网络——神经元模型介绍

目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革。要学习深度学习,那么首先要熟悉神经网络(Neural Networks,简称NN)的一些基本概念。当然,这里所说的神经网络不是生物学的神经网络,我们将其称之为人工神经网络(Artificial Neural Networks,简称ANN)貌似更为合理。神经网络最早是人工智能领域的一种算法或者说是模型,目前神经网络已经发展成为一类多学科交叉的学科领域,它也随着深度学习取得的进展重新受到重视和推崇。

神经元模型

人工神经网络是受到人类大脑结构的启发而创造出来的。如下图所示,在我们的大脑中,有数十亿个称为神经元的细胞,它们互相连接形成成了一个神经网络。

人工神经网络——神经元模型介绍

神经网络算法正是模仿了上面的网络结构。下面是一个人工神经网络的构造图。每一个圆代表着一个神经元,他们连接起来构成了一个网络。

人工神经网络——神经元模型介绍

 人类大脑神经元细胞的树突用于接收来自外部的多个强度不同的刺激,并在神经元细胞体内进行处理,然后将其转化为一个输出结果。在这里,神经元是神经网络的基本单元,我们学过生物的同学都知道,神经元有两种状态:兴奋和抑制。一般情况下,大多数的神经元是处于抑制状态,但是一旦某个神经元收到刺激,导致它的电位超过一个阈值,那么这个神经元就会被**,处于“兴奋”状态,进而向其他的神经元传播化学物质(其实就是信息),下图为生物学上的神经元结构示意图:

人工神经网络——神经元模型介绍

 

人工神经元也有相似的工作原理。如下图所示。

人工神经网络——神经元模型介绍

上面的x是神经元的输入,相当于树突接收的多个外部刺激。w是每个输入对应的权重,代表了每个特征的重要程度,它对应于每个输入特征,影响着每个输入x的刺激强度。假设只有3个特征,那么x就可以用(x1,x2,x3)。b表示阈值[yù zhí],用来影响预测结果。z就是预测结果。

所以有:z = (x1 * w1 + x2 * w2 + x3 * w3) - b。

上面这个式子在业内我们称之为逻辑回归。

**函数

在实际的神经网络中,我们不能直接用逻辑回归,必须要在逻辑回归外面再套上一个函数,这个函数我们就称它为**函数。**函数非常非常重要,如果没有它,那么神经网络的智商永远高不起来。更详细的,在1943年,McCulloch和Pitts将上图的神经元结构用一种简单的模型进行了表示,构成了一种人工神经元模型,也就是我们现在经常用到的“M-P神经元模型”,如下图所示:

人工神经网络——神经元模型介绍

从上图M-P神经元模型可以看出,神经元的输出

人工神经网络——神经元模型介绍

 其中θ为我们之前提到的神经元的**阈值,函数f(⋅)也被称为是**函数。**函数不止一种,如上图所示,函数f(⋅)可以用一个阶跃方程表示,大于阈值**;否则则抑制。但是这样有点太粗暴,因为阶跃函数不光滑,不连续,不可导,因此我们更常用的方法是用sigmoid函数来表示函数函数f(⋅),它的公式和图像如下。

人工神经网络——神经元模型介绍

我们在这里先只介绍它的一个用途——把z映射到[0,1]之间。上图中的横坐标是z,纵坐标我们用y’来表示,y’就代表了我们最终的预测结果。从图像可以看出,z越大那么y’就越靠近1,z越小那么y’就越靠近0。那为什么要把预测结果映射到[0,1]之间呢?因为这样不仅便于神经网络进行计算,也便于我们人类进行理解。例如在预测是否有猫的例子中,如果y’是0.8,就说明有80%的概率是有猫的。 

总结

大脑的结构越简单,那么智商就越低。单细胞生物是智商最低的了。人工神经网络也是一样的,网络越复杂它就越强大,所以我们需要深度神经网络。这里的深度是指层数多,层数越多那么构造的神经网络就越复杂。

训练深度神经网络的过程就叫做深度学习。网络构建好了后,我们只需要负责不停地将训练数据输入到神经网络中,它内部就会自己不停地发生变化不停地学习。打比方说我们想要训练一个深度神经网络来识别猫。我们只需要不停地将猫的图片输入到神经网络中去。训练成功后,我们任意拿来一张新的图片,它都能判断出里面是否有猫。但我们并不知道他的分析过程是怎样的,它是如何判断里面是否有猫的。就像当我们教小孩子认识猫时,我们拿来一些白猫,告诉他这是猫,拿来一些黑猫,告诉他这也是猫,他脑子里会自己不停地学习猫的特征。最后我们拿来一些花猫,问他,他会告诉你这也是猫。但他是怎么知道的?他脑子里的分析过程是怎么样的?我们无从知道~~

参考:

https://www.captainbed.net/2018/11/18/whatisnn/