打字猴:1.70050846e+09
1700508460 别忘了,这里还有一个激励函数。
1700508461
1700508462 同理,对最后一层上任意一个神经元的b,都有
1700508463
1700508464
1700508465
1700508466
1700508467 对最后一层来说,它的前一层的任意一个神经元的输出都是其函数的输入,那么对于其前一层的任意一个神经元的w1和b1来说,仍然可以用链式法则来推导。
1700508468
1700508469 通常这种损失函数得到的值非常大(可能是几百万,上亿也毫不奇怪),尤其是在几百万维的图片识别训练中——这与它的定义有关。在它逐步减小的过程中,通过判断损失函数值超过某个值来决定终止通常是很不明智的,原因有如下两个。
1700508470
1700508471 第一,在这个收敛过程中,损失值的大小没有具体的物理解释,所以无法通过指定一个“较小”的损失值来确保召回率和准确率。
1700508472
1700508473 第二,如果通过不断的收敛,最终使损失函数的值减小为0,通常也会产生严重的过拟合现象,这种现象在模式识别中会显得格外严重。
1700508474
1700508475 所以,在训练过程中,通常会把整个训练集按一定的比例分配,一部分作为训练集,另一部分作为验证集。例如,按4∶1的比例分配,其中80%的样本用来做训练,20%的样本用来做验证(抑或其他比例,70%的样本用来做训练,30%的样本用来做验证)。训练过程是:在用80%的样本做训练的同时,不断用当前迭代产生的wij矩阵去对20%的样本做分类,直到分类结果中召回率和准确率没有明显的提高为止,否则就会看到一个现象——随着训练时间的延长(Epoch增多),验证集中的损失函数值反而会增加(召回率和准确率会下降)。此外需要注意,样本的数量要足够多(因为样本数量太少本身就非常容易造成过拟合)。
1700508476
1700508477 数据科学家养成手册 [:1700503596]
1700508478 11.9.4 非线性分类
1700508479
1700508480 神经网络最强大的地方在于它对复杂的线性不可分问题的处理能力,这是SVM无法企及的,也是神经网络最大的优势。在深度神经网络(深度学习)领域,通过对网络进行合理的设计,通常能够对音乐、图像、视频等模式识别领域的分类有比较好的召回率和准确率。
1700508481
1700508482 为什么深度神经网络有这么好的非线性分类能力呢?我们来看看样本通过网络的时候究竟发生了什么。
1700508483
1700508484 如图11-44所示,在一个二维空间中有一个六角形,如果要用普通的线性0, 1分类器对这样一个“不规则”图形做分类,是无论如何都找不到一条(一个)可以把空间恰好分为两部分的直线(超平面)的——一部分是组成六角形的部分,另一部分不是组成六角形的部分。这种情况下的BP网络应该怎么设计呢?
1700508485
1700508486
1700508487
1700508488
1700508489 图11-44 非线性分类
1700508490
1700508491 我们可以考虑设计一个3层的神经网络(如图11-45所示),输入层只有2个神经元,分别接收x和y的坐标值。隐含层有2层,在物理上可以解释为拟合出l1到l6各自的表达式,以及相互之间的“与”或“非”关系。输出层有1层,用来最终输出0(否)或1(是)。
1700508492
1700508493
1700508494
1700508495
1700508496 图11-45 3层BP网络
1700508497
1700508498 这样一个六角形区域中的点应该怎样表示呢?
1700508499
1700508500 设6个超平面的表达式分别为l1(x, y)、l2(x, y)、l3(x, y)、l4(x, y)、l5(x, y)和l6(x, y),则这个六角形可以转化成中心的1个正六边形和旁边的6个正三角形的表达式的并集,即
1700508501
1700508502
1700508503
1700508504
1700508505 能够表达这样一种关系的神经网络是很容易设计的。
1700508506
1700508507 从理论上讲,这个网络中所拥有的VC维已经足够把刚刚的非线性分类问题转换成线性分类和“与”或“非”判断的问题组合了。单个神经元的工作方式是线性分类器的工作方式,这个观点刚刚已经讨论过了,那么“与”或“非”计算是怎么实现的呢?
1700508508
1700508509 对于一个有2个维度输入的神经元来说,“与”运算的构造要达到如表11-8所示的效果。
[ 上一页 ]  [ :1.70050846e+09 ]  [ 下一页 ]