在研究这篇文章时,有一点很清楚。2014年是发展真正流行的图像分类预训练模型的标志性一年。尽管上述VGG-16在当年的ILSVRC中排名第二,但排名第一的不是别人,正是谷歌——通过它的GoogLeNet或Inception。
最初的论文提出了Inceptionv1模型。在只有700万个参数的情况下,即比当时流行的模型(如VGG和AlexNet)小得多,再加上较低的错误率,你就可以看出为什么它是一个突破性的模型。不仅如此,本文的主要创新也是另一个突破—Inception模块。
简单来说,Inception模块只是对输入执行不同大小的卷积,执行最大池,并将结果连接到下一个Inception模块。1*1卷积运算的引入大大降低了参数。
尽管Inceptionv1中的层数为22,但参数的大量减少使其成为一个难以击败的模型。
Inceptionv2模型是对Inceptionv1模型的一项重大改进,它提高了准确性,并进一步降低了模型的复杂性。在与Inceptionv2相同的论文中,作者介绍了Inceptionv3模型,并对v2进行了一些改进。Inceptionv3在2016年CVPR中以3.5%的前五名错误率位居榜首。
以下是主要的改进措施:批量标准化介绍、更多因子分解、RMSProp优化
正如你所看到的,与VGG16微不足道的16层相比,层的数量是42层。此外,Inceptionv3将错误率降低到仅4.2%。
我们执行以下操作:将基本模型的输出展平到一维,添加一个具有1024个隐藏单元和ReLU激活的完全连接层,这一次,我们的DropOut设置为0.2,添加最后一个完全连接的Sigmoid层。我们将再次使用RMSProp,当然你也可以尝试Adam Optimizer,然后,我们将对模型进行拟合:
因此,我们可以看到,我们在10个epochs内获得了96%的验证准确率。还要注意,这个模型比VGG16快得多。每个epochs仅占VGG16中每个epochs的1/4左右。当然,你可以使用不同的超参数值进行实验,看看它的性能有多好/差。
具体过程,可查看原文链接:
微信公众号:
下载对应的论文,在公众号中回复:paper