卷积神经网络中转移学习的性能更差

时间:2017-05-14 19:39:32

标签: initialization neural-network transfer matconvnet pre-trained-model

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

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

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

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

int main(void)

1 个答案:

答案 0 :(得分:0)

“在数据集A上微调我的网络时,我只从预训练网络中获取三个初始层(conv,relu,pool)。”

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