首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷积神经网络中迁移学习的性能较差

卷积神经网络中迁移学习的性能较差
EN

Stack Overflow用户
提问于 2017-05-15 03:39:32
回答 1查看 861关注 0票数 0

我正在用MatConvNet中的卷积神经网络进行情感识别。我有一个主要的大数据集(A有40.000张照片)和两个更硬的,更小的数据集(B,C有5.000张照片),具有相同的类。当我在具有随机权重初始化的数据集A上运行网络时,我获得了70%的准确率。

因此,我希望通过使用在同一网络架构上的数据集B和C上预先训练的权重进行初始化来提高性能。在数据集A上对网络进行微调时,我只从预训练网络中提取了三个初始层(conv,relu,pool)。然而,与随机加权相比,我得到的结果更低。我还尝试了所有的层,六个第一层和一个第一层。

我对它的理解和实现正确吗?我使用的是来自预训练网络的权重,而不是前三层中的随机权重(实际上只在第一层-conv中)。现在我不确定我是否很好地理解了这个概念。

我使用以下代码进行微调:

代码语言:javascript
复制
net = load('net-epoch-100.mat');
trainOpts.learningRate = [0.004*ones(1,25), 0.002*ones(1,25), 
0.001*ones(1,25), 0.0005*ones(1,25)];  %I set much higher training rate
                                       %for pretraining on datasets B and C
net.layers=net.layers(1:end-13);       %only taking first three layers from pretrained net
... the rest of the layers
EN

回答 1

Stack Overflow用户

发布于 2017-05-22 06:37:43

在对数据集A上的网络进行微调时,我仅从预先训练的网络中获取三个初始层(conv、relu、pool)。

由于relu和pool是不可训练的,因此您基本上只使用了预训练网络中的一层。第一个卷积层只做一些边缘检测,没有捕获任何高级视觉概念。迁移学习的最佳实践是使用来自高层的ImageNet预训练功能。您可以先在大型数据集上对其进行微调,然后在小型数据集上对其进行微调。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43968096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档