本博客主要为作者学习总结之用,由于学识浅薄可能会有许多错误,请读者注意。
这次用神经网络识别手写数字的任务,我打算用之前没有用过的数据增强的方法丰富样本和dropout 方法改善过拟合的问题。
数据增强:
因为训练集的规模较小,而考虑到测试时会遇到许多在训练集中不典型的样本,所以拟以原来的训练集为基础,合理地生成大量的新样本,使训练集的规模成倍扩大并包含更多典型。
产生新样本的方法主要有:
1.平移数字的图像
2.旋转数字的图像
3.反转数字的图像等
由于数字的图像以像素值的矩阵的形式存在,对应的简单的方法有:
1.随机地平移像素值
2.转置矩阵
3.反转矩阵
4.以上三种方法的结合。
。。。。。。
尝试过一个卷积神经网络识别上述姿态的数字后,发现连比较完善的卷积神经网络都不能很好地识别上述转置、反转姿势的数字,那么我这个一个隐藏层的神经网络想都别想了。。。
降低对新样本的要求:
1.小范围的平移
2.正常姿势基础上的小角度的旋转
dropout:
在使用mini-batch方法快速训练模型的时候,一般情况下一个batch对所有神经元进行一次训练,而在dropout中,一个batch只对一部分神经元进行一次训练。