文章目录
- 生物神经元的结构
- 如何用数学建模神经元的工作模式
- 神经网络的结构
我们知道神经网络是一个模拟人脑的数学建模,首先我们来了解一下生物神经元是怎么工作的。
人的大脑是由非常多神经元相互连接形成的网络构成的。一个神经元,可以从其他神经元接收信号,也可以向其他神经元发送信号。
神经元由细胞体、树突、轴突三个主要部分构成
生物神经元的结构
生物神经元,常简称为神经元,是人脑及动物神经系统中的基本单位。
这些细胞负责处理和传输信息,通过电信号和化学物质进行交流。
神经元的结构可以分为几个主要部分:细胞体、树突、轴突和突触。
-
细胞体(Soma)
细胞体是神经元的“指挥中心”。其主要功能是维持细胞的生命活动,含有细胞核和其他细胞器。细胞核控制着细胞的基本功能和蛋白质的合成,是信息处理和决策的核心区域。
-
树突(Dendrites)
树突是从细胞体延伸出的细长结构,它们如树枝一般分布,主要功能是接收来自其他神经元的信息。树突的表面布满了突触,能够捕捉并转换其他神经元释放的化学信号为电信号,传递给细胞体。
-
轴突(Axon)
轴突是一个细长的管状结构,从细胞体延伸出来,其主要功能是传输电信号。在大多数神经元中,轴突的尾端分叉,与其他神经元的树突或细胞体形成连接。轴突可以非常长,达到几厘米甚至更长,使得神经系统能够在身体的不同部位迅速传递信息。
-
突触(Synapses)
突触是神经元之间的连接点。在这些微小的间隙中,电信号无法直接跨越,因此神经元会通过释放化学物质(即神经递质)来传递信息。这些化学物质能够跨过突触间隙,被下一个神经元的树突上的受体捕捉,从而继续传递信号。
—————————————————————————————
在信息传递的过程中,由树突来接收其他神经元的信号,这个作为输入信号,然后树突传递给细胞体,细胞体会把从其他多个神经元传递进来的输入信号进行合并加工,然后通过轴突前端的突触传递给别的神经元,那么这里我们就需要了解一个非常重要的过程,就是神经元是如何对这些输入信号进行合并加工的。
如何用数学建模神经元的工作模式
当一个神经元从其他多个神经元接受到输入信号以后,如果这些信号之和比较小,没有超过神经元的阈值,这神经元的细胞体就会忽略接受的信号,不做出任何反应。如果信号适和足够大,超过了这个阈值的话,细胞体就会做出反应,向其他神经元传递信号,这个过程成为点火。而这里很有趣的地方是,这个输出信号的大小都是固定的,只要接收到的信号超出阈值,不管超出多少,神经元都只输出固定大小的信号。所以我们可以用0和1来表示点火的输出信号。
总结一下过程就是这三步,第一步,接收来自其他神经元的信号之和作为输入信号,第二步,判断输入信号是否超出阈值,超出就点火。第三步,输出数字信号0或1。
然后我们将这个过程进行数学化表示,用X来表示输入信号,用Y表示输出信号,无信号是为0,有信号是为1,然后用数学公式来表示神经元点火的这个判定条件。神经元是否点火取决于其他神经元的输入信号之和。但是呢,这里不是直接把它们加起来这么简单。因为不同的神经样有不同的权重,比方说一个人在打网球的时候,来自视觉神经的信号和来自听觉神经的信号对于大脑的处理来说肯定是有不同的权重的,所以输入信号之和我们应该加权求和,
其中W代表输入信号X对应的权重。当信号之和超过阈值的时候,点火输出信号1没超过就输出信号0,这个过程我们可以用一个单位阶越函数来表示,Z<0的时候输出0 Z>0的时候输出1,其中Z就等于刚才我们列出的这个式子,这个称为神经元的加权输入。
然后我们再将以上神经元的工作进行数学上的一般化处理。首先呢,神经元的图示我们可以进行简化,用下面这个图来表示这种简化以后的神经元,
我们暂且称为神经单元或者人工神经元,和生物神经元区分开来。在生物神经元中,点火的式子是用这个单位阶越函数输出,不是0就是1,但在人工神经元中,我们可以换成别的函数。
这个
函数a是建模者可以自己去定义的,称为激活函数,这样单位阶越函数就是激活函数的其中一种。而在人工神经网络中,一个非常常用的激活函数是sigmoid函数,
这里e代表的就是自然底数,所以这个时候输出信号就不是0或者1了,而是<0<1的数值,这也是人工神经元区别于生物神经元的不同。
所以我们再看这一项,西塔,
它代表神经元点火的阈值,这个值越小,说明神经元越容易兴奋,比较敏感。在数学中,我们这里-西塔换成+b,这样式子变得更漂亮,计算不容易出错,这个b就被称为偏置。
这样神经元我们就在数学上建模好了。大脑中的神经元就是由这种简单的结构和模式构成的,
但是当数十亿的这种简单的单元构成在一起时,最后呈现出的一种极其复杂的整体性质,比我们人脑的意识、思维、情感,这种现象在生物学中叫做emergece涌现,那我们模仿大脑的这种结构,会不会也涌现出这种智能呢?
神经网络的结构
结果大家已经非常清楚了,由神经单元组成的网络在人工智能领域已经取得了各种让人震惊的成就。我们只要把我们前面总结出的这种简单的神经元模型连接成网络状,就形成了神经网络。比方说chat GPT就是由数十亿的这种神经元模型构成的神经网络。网络的连接方法很多,后面我将主要介绍基础的阶层性神经网络和游戏发展而来的卷积神经网络。
我们先来看一个简单的例子,简单的理解了,复杂的就理解了,因为本质都是一样的。
我们建立一个神经网络,用来识别通过4×3像素读取的手写数字0和1。构成这个网络的各层分别是输入层、隐藏层、输出层,其中输入层12个神经单元用来读取12个像素信息,
输出层2个神经单元,其中Sigmoid函数作为激活函数,可以通过比较两个神经单元输出值的大小来判断手写数字是0还是1,
比方说,读取数字0的时候,上面的神经单元输出的值会比下面的值要大。输入层和输入层都很容易理解,再看最难理解的隐藏层,这里隐藏层的作用在于提取输入图像的特征。
比如我们看这几个图像都可以看成是数字0,对于人来说很容易判断,但是对于计算机来说就很困难了,因为答案是不标准的。那神经网络是如何进行判断的呢?
隐藏层有3个神经元ABC,他们会从输入层12个神经元那里获取信号大小,然后进行整合以后传递给输出神经元。
我们可以认为ABC有不同的喜好,他们分别喜欢图片中的模式ABC,于是相对应下面的12个输入神经元在他们这里就有不同的权重。
比方说模式A对应输入神经元4和7,这样对于A来说,4和7有更高的权重,
而5和8在B这里有更高的权重,6和9在C这里有更高的权重,而对于输出神经元0和1来说,A和C在0这里有更高的权重,B在1这里有更高的权重。
那假设我们读取这个手写数字0,
看到这个图像,4769都产生强烈的信号,
于是47向A传递了很强的信号,因为他们在A这里的权重很大,而69向C传递了很强的信号,而几乎就没有神经元给B传递很强的信号。由于A和C在0这里有非常高的权重,于是输出层的神经元0接收到了来自A和C很强的信号,神经元1接收到很弱的信号,输出0的信号大于输出1的信号,于是神经网络判断该图像的数字为0。
神经网络的工作原理就是这样的,并不复杂。但是我们如何确定各层神经元之间的权重大小呢?就是一件非常复杂的事情了。这个事情靠人类自己来做是不可能做到的,尤其是像chatGPT这样包含了数十亿个神经元的网络。那怎么办呢?那就提供大量数据,让机器自己来学习吧,此之为 机器学习噢。
(有空就写,敬请期待…)