0%

CNN图像分类学习记录(五)——Inception

Inception提出了很多想法被后续的NN接受,比如1x1卷积减少计算量,两层3x3等价于一层5*5,非对称卷积,并行的pooling,平滑标签。

Inception和其他的CNN比起来,主要是足够宽了。但是超参太多了,尤其是涉及到网络结构的超参,这个可能就导致他们开始考虑做NAS了。

Inception v1

《Going deeper with convolutions》

Inception V1是2014年时最好的CNN了,想研究一下内部细节。

作者说改进NN的直接方法就是增加深度,增加宽度。而更多的参数会更容易导致overfitting。减少overfitting需要更多的标注数据,但这些数据不容易得到。另一个缺点就是,计算量会过大。

文章还提到,可能解决问题的方式是从全连接的架构,转换成稀疏连接。《provable bounds for learning some deep representations》这个论文的结论是如果数据集的概率,可以通过一个很大,且稀疏的NN表示,那么这个NN的网络结构,可以逐层的构建出来。

这篇文章可能是作者在做自动寻找NN的时候,提出来的模型,总是在一个更宏大的视角看CNN,导致很多内容是我等小白无法理解的。只能留到日后再看。

inception用一组不同尺寸的filter去提取特征,作者非得管这个叫local sparse structure。利用1x1的filter进行降维,减少计算量。同时在最后也采用NiN的 average pooling的方式计算类别分值。

inception和之前的CNN比较就是多个在同一层上,可以组合多个size的filter,而且max-pool stride为1的时候,也能产生相同output的feature map。

但是为什么一组不同尺寸的conv操作,就能更好的提取特征?为什么1*1的conv降维再升维对信息representation没有影响,或影响是什么?这些好像都没看懂。

Inception v2/v3

《Rethinking the Inception Architecture for Computer Vision》

1,分解filter。因为相近的神经元非常相关,所以可以通过1x1降维。另外一方面,把一层5x5变成两个3x3也可以减少计算量。进一步,n*n还能通过分解为1*n和n*1两层,继续减少计算量,但只在中部层有用。

2,新的pooling,可以既减少计算量,又能够保持信息

Inception-v4

《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》

上来就说自己保守了,网络太复杂了。幸亏我没太死扣,要不然亏死我了。这篇文章终于不是大段大段的讲那些思考方式、设计原则了,那些内容也许更有意义,但是我看不懂啊。这个只是简明扼要的把网络结构,实验结果放出来,我觉得这样其实挺好的。