⬇️
1.因为按照之前选择变异模型的规则,整个变异模型的精度差异应该呈阶梯式下降,但是svhn一直没有达到理想中的分布,它几乎没有用到利用NAI和NEB算子生成的变异模型
鉴于此,重新利用WS、NAI、NEB生成一批svhn_lenet1的变异模型,将ratio控制在(0,0.1]内,存储在new_mutated_model7中,共3000个
unique | sum | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
WS | 419 | 374 | 22 | 7 | 19 | 17 | 16 | 14 | 17 | 24 | 25 | 16 | 22 | 26 | 26 | 29 | 22 | 16 | 18 | 18 | 12 | 8 |
NAI | 866 | 265 | 1 | 0 | 0 | 2 | 7 | 11 | 12 | 11 | 12 | 16 | 15 | 16 | 16 | 16 | 20 | 9 | 23 | 26 | 24 | 28 |
NEB | 881 | 863 | 28 | 25 | 39 | 38 | 53 | 61 | 68 | 70 | 58 | 62 | 69 | 54 | 43 | 62 | 24 | 32 | 36 | 15 | 15 | 11 |
这么看来对于svhn,NAI的ratio上限设置为0.1还是太大了
❌将使用的svhn_lenet5的变异模型调整到了和mnist_lenet5的变异模型相同的阶梯式分布,实验效果还是非常不好,因此阶梯式分布可能并不是一个合理的选择方法,需要进一步探索。
❌猜测是否是因为svhn样本较多的原因,但通过随机选择10000个样本(准确率依然为0.8789,与全部样本的准确率保持一致)进行实验,效果依然不理想
❌猜测是否因为svhn使用的模型过于简单的原因,目前resnet18相关的实验还没有跑完。就已经得到的结果而言,效果要优于svhn+resnet18的效果要优于svhn+lenet5(resnet18的acc为0.9193,而lenet5的acc为0.8789),如果从svhn的测试集中随机选择10000个样本(控制其准确率为0.90/0.94/0.98),观察实验效果。
效果确实略有提升,但是效果本来就肯定会因为错误样本较少有提升,0.98时的效果也和mnist_lenet5没办法比,而且我也不能控制它的准确率
❌猜测是否是因为svhn样本杀死率分布悬殊
❌因为svhn各类样本个数极其不均匀,但变异模型相较于原模型的改变有的时候会倾向于改变某一类或某几类的样本,所以选择10000个样本但控制每类样本个数为1000(900个正确样本+100个错误样本)
❌阶梯式分布也许不是好的选择方法,之前只是因为ratio的设置原因生成的变异模型的精度恰好呈阶梯下降,尝试均匀分布。
❌猜测是否有某类变异算子生成的变异模型相较于其他变异算子生成的变异算子更有助于区分正确样本和错误样本
(但控制生成的变异模型的精度差异相差不多很难)
有关变异模型和预测结果的整理
第一批生成的4000个变异模型(7个模型都有):exp
第二批仅利用GF算子生成的4000个变异模型(7个模型都有):new_mutated_prediction
第三批生成的4000个变异模型(7个模型都有:new_mutated_prediction3
第四批生成的4000个变异模型(仅svhn_lenet5):new_mutated_prediction4
第五批生成的12000个模型(svhn_resnet18):new_mutated_prediction4
第六批仅利用GF、WS算子对神经网络的最后一层进行扰动生成的4000个模型(仅针对svhn_lenet5):new_mutated_prediciton5