记录鱼书:
一.批处理
批处理对计算机的运算大有利处,可以大幅缩短每张图像的处理时间。那么为什么批处理可以缩短处理时间呢?这是因为大多数处理数值计算的库都进行了能够高效处理大型数组运算的最优化。并且,在神经网络的运算中,当数据传送成为瓶颈时,批处理可以减轻数据总线的负荷(严格地讲,相对于数据读入,可以将更多的时间用在计算上)。也就是说,批处理一次性计算大型数组要比分开逐步计算各个小型数组速度更快。
二.小批量
神经网络的学习也是从训练数据中选出一批数据(称为mini-batch,小批量),然后对每个mini-batch进行学习。比如,从60000个训练数据中随机选择100笔,再用这100笔数据进行学习。这种学习方式称为mini-batch学习。由于是随机的,所以并不是每个数据都被选到的。
和收视率一样,mini-batch的损失函数也是利用一部分样本数据来近似地计算整体。也就是说,用随机选择的小批量数据(mini-batch)作为全体训练数据的近似值。
三.验证集
验证集的作用:
❑ 根据验证集的性能表现来调整学习率、权值衰减系数、训练次数等。
❑ 根据验证集的性能表现来重新调整网络拓扑结构。
❑ 根据验证集的性能表现判断是否过拟合和欠拟合
和训练集-测试集的划分类似,训练集、验证集和测试集可以按着自定义的比例来划
分,比如常见的 60%-20%-20%的划分
验证集与测试集的区别在于,算法设计人员可以根据验证集的表现来调整模型的各种
超参数的设置,提升模型的泛化能力,但是测试集的表现却不能用来反馈模型的调整,否
则测试集将和验证集的功能重合,因此在测试集上的性能表现将无法代表模型的泛化能
力。
权值为什么初始值不置为0
因为在误差反向传播法中,所有的权重值都会进行相同的更新。
比如,在2层神经网络中,假设第1层和第2层的权重为0。这样一来,正向传播时,因为输入层的权重为0,所以第2层的神经元全部会被传递相同的值。第2层的神经元中全部输入相同的值,这意味着反向传播时第2层的权重全部都会进行相同的更新。
因此,权重被更新为相同的值,并拥有了对称的值(重复的值)。这使得神经网络拥有许多不同的权重的意义丧失了。为了防止“权重均一化”(严格地讲,是为了瓦解权重的对称结构),必须随机生成初始值。