LeNet试验(四)使用shuffle label观察网络的记忆能力

  神经网络既有记忆能力又有泛化能力,这对应了我们现实世界的情况,既有多样性又有规律性,所以神经网络能够学习现实世界很多领域的问题。(多说一句,我认为现实世界的规律性是由宇宙的同源性(宇宙大爆炸,基本粒子不可再分)引起的,多样性是由随机性效应(量子力学、混沌效应等)引起的。)
  下面通过shuffle label试验来感受LeNet的记忆能力。


1、shuffle label试验

  shuffle label的方法在Bengio大神的文章《A Closer Look at Memorization in Deep Networks》https://arxiv.org/abs/1706.05394中提到。就是在训练时把标签完全打乱,样本和标签之间失去联系,然而此时仍然是可以训练的,网络完全是死记住了所有样本和标签之间的关联。当然这种记忆没有任何的泛化能力,在验证集上表现为完全随机预测。
  我们在LeNet上进行shuffle label试验,注意torch中没有shuffle功能,所以我们需要在numpy中shuffle,试验在我之前的代码https://blog.csdn.net/Brikie/article/details/112253975上修改,仅对get_data部分修改如下。

def get_data():
    train_img, train_label = _read(
        'train-images-idx3-ubyte.gz',
        'train-labels-idx1-ubyte.gz')
        train_img = train_img[:10000]
    	train_label = train_label[:10000]
        np.random.shuffle(train_label)
        ...

在这里插入图片描述
  LeNet在Mnist数据集上shuffle label的训练结果如上图,acc表示在训练集上的精度。可见,模型有很强的记忆能力,即使是标签完全打乱,模型也能学到东西。如果训练样本较多,模型记忆的过程会较慢,如果样本数量较少,比如只有5000个时,不到100epoch就能够全部都记住,精度几乎达到100%。

2、去掉卷积层之后的对比

  去掉LeNet的两个卷积层之后,把全连接层的输入尺寸改为28*28,参数量还变大了,从61706变为105214。但从下图可以看出,没有卷积层时记忆能力显著下降。这说明即使是“死记”,卷积层也仍可以对特征进行提取,相当于图片压缩了,仍可以减少需要记忆的信息量。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值