深度学习之收敛问题
来源:互联网 发布:字幕翻译软件 编辑:程序博客网 时间:2024/06/05 06:37
最近在用caffe, 想用caffe来做人脸识别。使用的是1558个人的人脸数据集,每个人35张照片训练,15张照片用于验证。使用caffe中自带的caffenet模型来进行微调,但是最后的误差一直在7点多以上,请问大家,是模型有问题,还是数据集问题,总是达不到收敛的效果,希望大家为我解答
知乎用户、不懂这个世界赞同
1.数据库太小一般不会带来不收敛的问题,只要你一直在train总会收敛(rp问题跑飞了不算)。反而不收敛一般是由于样本的信息量太大导致网络不足以fit住整个样本空间。样本少只可能带来过拟合的问题,你看下你的training set上的loss收敛了吗?如果只是validate set上不收敛那就说明overfitting了,这时候就要考虑各种anti-overfit的trick了,比如dropout,SGD,增大minibatch的数量,减少fc层的节点数量,momentum,finetune等。
2.learning rate设大了会带来跑飞(loss突然一直很大)的问题,这个是新手最常见的情况——为啥网络跑着跑着看着要收敛了结果突然飞了呢?可能性最大的原因是你用了relu作为激活函数的同时使用了softmax或者带有exp的函数做分类层的loss函数。当某一次训练传到最后一层的时候,某一节点激活过度(比如100),那么exp(100)=Inf,发生溢出,bp后所有的weight会变成NAN,然后从此之后weight就会一直保持NAN,于是loss就飞起来辣。会为了模拟这个情况,我复现了一下一年前我的一次失败的实验。我花了整个过程的loss曲线:
其中红色是loss,绿色是accuracy。可以看出在2300左右的时候跑飞了一次,不过所幸lr设的并不是非常大所以又拉了回来。如果lr设的过大会出现跑飞再也回不来的情况。这时候你停一下随便挑一个层的weights看一看,很有可能都是NAN了。对于这种情况建议用二分法尝试。0.1~0.0001.不同模型不同任务最优的lr都不一样。
3.尽量收集更多的数据。有个方法是爬flickr,找名人标签,然后稍微人工剔除一下就能收集一套不错的样本。其实收集样本不在于多而在于hard,比如你收集了40张基本姿态表情相同的同一个人的图片不如收集他的10张不同表情的图片。之前做过试验,50张variance大的图per person和300多张类似的图per person训练出来的模型后者就比前者高半个点。
4.尽量用小模型。如果数据太少尽量缩小模型复杂度。考虑减少层数或者减少kernel number。
=======================
看到这个问题的时候我正好在训练一个10,000 class face identify的网络,感觉很有缘所以小答一下。估计是运气好一次就收敛了~附accuracy的图(我是从random的googlenet开始train的,第100k次训练的时候做了finetune)。
2.learning rate设大了会带来跑飞(loss突然一直很大)的问题,这个是新手最常见的情况——为啥网络跑着跑着看着要收敛了结果突然飞了呢?可能性最大的原因是你用了relu作为激活函数的同时使用了softmax或者带有exp的函数做分类层的loss函数。当某一次训练传到最后一层的时候,某一节点激活过度(比如100),那么exp(100)=Inf,发生溢出,bp后所有的weight会变成NAN,然后从此之后weight就会一直保持NAN,于是loss就飞起来辣。会为了模拟这个情况,我复现了一下一年前我的一次失败的实验。我花了整个过程的loss曲线:
其中红色是loss,绿色是accuracy。可以看出在2300左右的时候跑飞了一次,不过所幸lr设的并不是非常大所以又拉了回来。如果lr设的过大会出现跑飞再也回不来的情况。这时候你停一下随便挑一个层的weights看一看,很有可能都是NAN了。对于这种情况建议用二分法尝试。0.1~0.0001.不同模型不同任务最优的lr都不一样。
3.尽量收集更多的数据。有个方法是爬flickr,找名人标签,然后稍微人工剔除一下就能收集一套不错的样本。其实收集样本不在于多而在于hard,比如你收集了40张基本姿态表情相同的同一个人的图片不如收集他的10张不同表情的图片。之前做过试验,50张variance大的图per person和300多张类似的图per person训练出来的模型后者就比前者高半个点。
4.尽量用小模型。如果数据太少尽量缩小模型复杂度。考虑减少层数或者减少kernel number。
=======================
看到这个问题的时候我正好在训练一个10,000 class face identify的网络,感觉很有缘所以小答一下。估计是运气好一次就收敛了~附accuracy的图(我是从random的googlenet开始train的,第100k次训练的时候做了finetune)。
阅读全文
0 0
- 深度学习之收敛问题
- 深度学习之收敛问题
- 深度学习之收敛问题
- 纠错: 深度学习模型优化时快速收敛
- 神经网络的收敛问题
- 深度学习之对抗样本问题
- 卷积神经网络/CNN/深度学习在做分类训练时不收敛的解决方案
- 深度学习—加快梯度下降收敛速度(一):mini-batch、Stochastic gradient descent
- 深度学习—加快梯度下降收敛速度(二):Monmentum、RMSprop、Adam
- 机器学习岗位面试问题汇总 之 深度学习
- 深度学习之基础篇:凸学习问题
- continuity不收敛的问题
- 深度学习性能问题
- 深度学习优化问题
- 深度学习之问题记录--fast r-cnn训练过程
- 深度学习——致命问题之Gradient Vanish
- 深度学习之autoencoder
- 深度学习之autoencoder .
- [Leetcode] 436. Find Right Interval 解题报告
- vue-quill-editor自定义图片上传
- android输入框显示在软键盘上边
- 【OpenCV】音符提取(形态学实例)
- 唯快不破:Python Paste 学习笔记
- 深度学习之收敛问题
- 15个顶级Java多线程面试题及回答
- Ubuntu中安装Intellij Idea
- SDN 下用ODL实现QoS保障(2)-创建网络拓扑
- charles截取https的包
- 纪念碑谷2第九章(神圣之门)
- 八家征信试点机构竟然全部out,央行到底想要一个怎样的市场格局?
- 【大数据周聘汇】双十一就要到了,你找到工作了吗?
- 纪念碑谷2第十章(植物园)