1.1 神经网络
1.1.1 感知机
神经网络指的是人工神经网络,是仿照动物神经网络的行为特征设计的一种处理信息的模型。谈到人工神经网络,首先需要介绍的就是感知机,它是人工神经网络的一种简单模型。感知机的网络结构如图1.1所示。
图1.1
感知机可以有不同数量的二值输入 x1、x2、x3……,经过一些简单的规则[如加权求和是否超过一个阈值(threshold)]得到一个二值输出(output)。感知机的工作原理可用公式(1.1)描述。
感知机就是一个简单的数学模型,和用户在生活中做出一个决定有些类似。例如,你决定周末要不要外出爬山,会考虑:
(1)自己会不会被要求回公司加班?
(2)周末的天气好不好?
(3)有没有朋友愿意一起?
在考虑这个计划的时候,根据重要性给以上三个要素分配权重,分别为0.5、0.3、0.2,然后知道了不加班的可能性为90%(0.9)、天气是晴天(1)、朋友不确定去不去(0.5),此时,三个因素的计算就是0.9×0.5+1×0.3+0.5×0.2=0.85。最后能不能去爬山就看自己的意愿有多强烈,若很强烈则可以不考虑太多,将 threshold 设置为比较低的值,超过这个值就可以实施计划;若不是很强烈,则可以将threshold设置得高一些,在需要很多条件都满足的情况下才能实施计划。
1.1.2 神经网络原理
感知机只能解决一些简单的问题,对于复杂的问题,就需要增加网络的复杂度,使用多层网络来解决。多层网络的感知机就是神经网络,神经网络的网络结构如图1.2所示。
图1.2
由图1.2看出,神经网络包含很多层,输入所在的层为输入层,最终输出结果所在的层为输出层,输入层和输出层中间的层为隐藏层,图1.2中包含两层隐藏层。
对于神经网络来说,每一层都遵循公式(1.1)的执行方式,将这些输入x1、x2、x3……矢量化为x,同理将权重矢量化为w,将threshold移到不等式的左边,令b=-threshold,则神经网络的公式可以表示为公式(1.2)。
感知机可以较简单地给定对应的权重,但是对于多层网络,如何确定w和b就成了一个难题。目前采用的办法是给网络的所有权重各赋一个随机初值,此时网络就可以得到一个输出值,将这个输出值与真实值进行比较,根据比较的结果调整 w 和 b,直到输出值和真实值的差异在可接受范围内,这就是网络训练的过程。其中,通过输出值调节w和b的过程被称为反向传播。
因此,神经网络的训练过程包含以下四个步骤:
第一步,收集输入、输出数据;
第二步,根据规则搭建神经网络;
第三步,用一组数据计算网络输出值,根据输出值调整w和b;
第四步,反复执行第三步,得到最终的w和b。