10.3 感知器解密
如图10-4所示,从神经网络的神经元本身来看,每个神经元有许多输入,感知器(Perceptron)和之前实现的Sigmoid等函数的神经元不太一样,从最原始的神经元的角度,正常的神经元会接收一些输入,做一些神经脉冲,然后有一个输出结果,在神经细胞间进行传递,从一个神经元依次传递到下一个神经元。在大脑中可能有上百万个神经细胞,大脑就是一台超级计算机,神经细胞通过神经元连接起来。一个神经元有很多输入,经过某种关系产生一个输出,这跟写普通的计算机程序没什么区别。
大脑通过视觉、触觉、味觉等感知到某个东西,神经元要做出决定,这个决定具体是怎么做出的?假设三种感觉视觉、味觉、触觉分别是x1、x2、x3,输入你的大脑,大脑就相当于一个很大的感知器,神经元根据输入做出相应的应激反应,应激反应就是输出结果。这里面有一个度的问题,跟感知系统最后感知到的综合结果有关,从不同的输入x1、x2、x3,最终达到一种临界值,超过这个临界值,就会发生相应的应激反应;没超过这个临界值,系统就不会做出反应。神经系统最终根据临界值得到最后的结果。
在图10-5中,类似于人的神经感知系统,计算机的感知系统进行综合判断时的w1、w2、w3是多少?假设人的神经感知系统中,把x1、x2、x3分别理解为视觉、味觉、触觉,那这几种不同的感知用于神经元做决定的重要性是否一样?可能在不同的生活场景是不一样的,假设这里的应激反应中,x3(触觉)占的重要性更大一些。从计算机的角度讲,对于不同的输入因素,将使用不同的权重来标记,这里假设味觉占的权重是0.1,视觉占的权重是0.5,触觉占的权重可能是0.9。
图10-4 感知神经元
图10-5 神经元
输出结果基于阈值(threshold),判断最终的结果如果小于等于阈值,就不做反应;判断最终的结果如果大于阈值,就做出应激反应。
这里的是指权重与x分别相乘然后进行累加(x1×w1 + x2×w2 + x3×w3),累加的结果总和如果超过了阈值,则结果为1;如果没有超过阈值,则结果为0。
如图10-6所示,我们可以将上面的内容拓展,左边的输入层节点中分别是x1、x2、x3、x4、x5五个输入元素(也可以更多),元素本身乘以权重然后累加求和,得出一个结果,将结果与一个具体的阈值进行比较。这里先不要考虑Sigmoid函数等,我们带领大家从根源上一步一步研发,不跳过任何一个步骤。
图10-6 神经网络
也可以举另外一个例子,如图10-7所示,对于要不要看电影Ready Player One有几个决定性因素:x1,交通是否方便;x2,是否有人陪伴;x3,是否下雨。假设交通是否方便的影响因素是0.2,是否有人陪伴的影响因素是0.2,是否下雨的影响因素是0.9,将x1×0.2 + x2×0.2 +x3×0.9累加以后得到一个结果,这个结果如果达到一个值(这个值假设是5),如果超过了5,就去看电影;如果没有超过5,就不去看电影。
图10-7 是否看电影
这个阈值将解密什么是偏爱因子,真正的偏爱因子是什么?很多学习深度学习的读者看到偏爱因子,就认为不过是调一个参数,这个理解没错,但对于调优没有任何意义。
偏爱因子是决定性的因素之一,从理解的角度,就是用户的偏好或者喜好。偏爱因子不是随随便便调成0.1或者调成0.5那么简单。
假设
有一个阈值,这个阈值用来判断要不要看电影,将输入值和权重相乘累加达到一个值,然后将值和阈值(即一个门槛)进行比较得出一个结果,要么是0,要么是1;要么去看电影,要么不去。
将
阈值往不等式左边移动一下,即将阈值从不等式右边移动到左边。阈值移动到左边以后不用阈值的名称了,而改为b,这时符号和原来的相反了,原来是减号,现在变成了加号。将因素和权重相乘累加,例如x1×w1 + x2×w2 + x3×w3 + … + xn×wn + b,计算式最后加了一个b,这个b就是偏爱因子。
在看电影的例子中,偏爱因子是决定是否看电影的一个标准,满足什么条件,对条件进行衡量之后,达到预期就去看电影,达不到预期就不看电影。