首先,先看一个简化的生物神经元结构:
生物神经元有多种类型,内部也有复杂的结构,但是可以把单个神经元简化为3部分组成:
- 树突:一个神经元往往有多个树突,用于接收传入的信息。
- 轴突:一个神经元只有一个轴突,轴突前端的轴丘用来执行运算。
- 轴突末梢(突触末梢):多个轴突末梢用于给其他多个神经元传递运算结果。
神经元通过微弱的电信号进行运算和信号传递,多个生物神经元彼此之间相互连接,就构成了复杂的生物神经网络。
而人工神经网络是对真实的神经系统的模拟,本质上是一种模型。
人工神经网络单个神经元,模仿生物神经元,也由3部分组成:
- 输入层:对应树突,用于接收传入的信息。
- 隐藏层:对应轴突,用来执行运算。
- 输出层:对应轴突末梢,用于给其他多个神经元传递信息。
人工神经元可以简化为一个黑盒,接收多个输入,经过运算(一般是加权)后,产生多个输出。
神经元的计算有很多种方式,以最简单的加权计算举例。如上图,ax表示输入,wx表示输出,z表示结果。用公式简单表达如下:
其中,g是sgn函数(取正负号的函数)。运算后z的结果只有0、1两种结果,多个输出的z值相同。
这个神经元可认为是一个最简单的人工神经网络,对于它的运行原理,拿春运买火车票举个例子:
假设小明要回家过年,打开12306,开始买票,他浏览了一遍,然后把打算要买的车票加入候补。
每个火车票都有一些属性,提取一些关键属性作为人工神经元的输入,
假设输入a1表示票价,a2表示时长,a3表示始发站。
而买票人小明是个吊丝,对票价很敏感,
那么先假定w1权重为80%,w2权重20%,w3权重为50%。
然后把每个火车票作为样本对这个神经元模型进行训练:
假设输入一张K普通车票,运算结果与小明的选择一致,那权重不变。
再输入一张G高铁车票,运算结果与小明的结果不一致,就修改权重,比如加大w1权重值。
然后依次训练调整权重值,就可以生成与小明的决策几乎完全一致的模型。
最后留几个样本来验证模型的运行情况,评估模型的质量。
而多个神经元之间相互连接,就是多层人工神经网络。