课程视频地址:https://study.163.com/courses-search?keyword=CS231

课程主页:http://cs231n.stanford.edu/2017/

这一讲介绍了一些CNN架构。

AlexNet

第一个例子是AlexNet,其架构如下

上图中每一层拆成两部分是因为当时内存不够的原因。

VGGNet

VGGNet相比AlexNet来说层数更多,其网络架构如下

GoogLeNet

GoogLeNet考虑到计算的问题,利用Inception模块减少了很多参数,Inception模块是一个局部网络,GoogLeNet将很多个Inception模块组成一个大网络,其架构如下

每个Inception模块中进行了并行滤波操作,例如进行多个卷积操作以及池化操作

这样做有一个问题,就是参数会非常多,我们来看个具体例子

从上图中可以看出,如果利用之前所述的架构,那么每个Inception模块计算量就会很大。该问题的解决方案是首先利用$1\times 1$卷积核降低深度,效果如下

在实际中,还用了池化操作,优化后的网络结构如下

利用上述操作减少了大量参数以及操作。

ResNet

ResNet和之前的网络架构相比层数要深的多,达到了152层,它最大特点是使用了残差连接,网络架构如下

之前的网络架构都是想通过增加深度来提升效果,但实际中效果并非如此,这是因为深度越大,网络也越难优化,最后的效果可能还不如浅层的网络

一个比较合理的假设是深层网络的效果至少不比浅层网络差,这里采取的思路是使用残差连接:

和没有残差连接相比,使用残差连接后我们只要拟合残差

如果卷积层的参数为$0$,那么$H(x)= x​$,这样就相当于一个少两层的网络,这一点保证了深层网络至少和浅层网络效果一样好。

课程中还介绍了一些不大常见的网络,这里略过。