首页 > 代码库 > deep learning实践经验总结
deep learning实践经验总结
最近拿caffe来做图片分类,遇到不少问题,同时也吸取不少教训和获得不少经验。
先看例子再总结经验。
这是一个2类分类器,分的是条纹衣服和纯色衣服。
先看几张图片。
条纹衣服:
纯色衣服:
肉眼也很容易辨认出来。
训练出来的模型目前的准确率是0.75。
为了可视化特征抽取,我把某一层的特征图和权重图也画出来了,这层是其中一个全连接层。
条纹衣服的特征图:
纯色衣服的特征图:
看条纹衣服的特征图比较有意思,把“条纹”特征给抽取出来了。也许这就是神经网络神奇的地方,在没有人的干扰的情况下,竟然能学习出来“条纹”特征。
其中一个channel的权重图:
这个就看不出来什么了。曾经有一个数据集,训练的是裙子的模型,当我看到权重图是一个裙子轮廓的图。
好了,说了这么多,总结一下经验吧。
1 数据集要保证质量。曾经玩过一字领和polo领的分类,刚开始效果很差,后来发现有一些“错误”的标签,于是把那些样本给去掉。效果好了很多。
2 learning rate要调整。有一次训练了很久,准确率几乎不变,于是我减少了lr,发现好了很多。
3 均值化图片。实践证明,均值化后再训练收敛速度更快,准确率更高。
对于深度学习的困惑:感觉准确率是个大问题啊,其实这也是所有机器学习算法的通病。
对于别人研究提供的数据集,比如imagenet,cifa10,lenet,效果很好。
但是自己收集的数据集,效果就不是很理想了。
也就是说,算法不是万能的,只是对于某些数据集有效。
我们能做的,是什么?
1 对于哪些数据集,深度学习比较适合?
2 对于效果差的数据集,如何能提高准确率?
曾经脑海里闪过一个念头,是由上面提到的权重图想到的。
当时看到权重图是一个裙子轮廓的图,心里就想。
这是神经网络自动调整出来的权重图,
如果人为加上干预,能否实现优化呢?