首页 > 代码库 > deep learning实践经验总结

deep learning实践经验总结


最近拿caffe来做图片分类,遇到不少问题,同时也吸取不少教训和获得不少经验。


先看例子再总结经验。


这是一个2类分类器,分的是条纹衣服和纯色衣服。

先看几张图片。


条纹衣服:

 


纯色衣服:



肉眼也很容易辨认出来。

训练出来的模型目前的准确率是0.75。


为了可视化特征抽取,我把某一层的特征图和权重图也画出来了,这层是其中一个全连接层。


条纹衣服的特征图:

    



纯色衣服的特征图:

    



看条纹衣服的特征图比较有意思,把“条纹”特征给抽取出来了。也许这就是神经网络神奇的地方,在没有人的干扰的情况下,竟然能学习出来“条纹”特征。



其中一个channel的权重图:



这个就看不出来什么了。曾经有一个数据集,训练的是裙子的模型,当我看到权重图是一个裙子轮廓的图。




好了,说了这么多,总结一下经验吧。


1 数据集要保证质量。曾经玩过一字领和polo领的分类,刚开始效果很差,后来发现有一些“错误”的标签,于是把那些样本给去掉。效果好了很多。

2 learning rate要调整。有一次训练了很久,准确率几乎不变,于是我减少了lr,发现好了很多。

3 均值化图片。实践证明,均值化后再训练收敛速度更快,准确率更高。



对于深度学习的困惑:感觉准确率是个大问题啊,其实这也是所有机器学习算法的通病。

对于别人研究提供的数据集,比如imagenet,cifa10,lenet,效果很好。

但是自己收集的数据集,效果就不是很理想了。

也就是说,算法不是万能的,只是对于某些数据集有效。


我们能做的,是什么?

1 对于哪些数据集,深度学习比较适合?

2 对于效果差的数据集,如何能提高准确率?


曾经脑海里闪过一个念头,是由上面提到的权重图想到的。

当时看到权重图是一个裙子轮廓的图,心里就想。

这是神经网络自动调整出来的权重图,

如果人为加上干预,能否实现优化呢?