AlexNet--结构分析

1、caffeNet与AlexNet结构区别:norm1,pool1,以及norm2,pool2互换了顺序




1. 基本结构

a. 共有8层,其中前5层convolutional,后边3层full-connected ,最后的一个full-connected层的output是具有1000个输出的softmax,最后的优化目标是最大化平均的multinomial logistic regression

b. 在第一层conv1和conv2之后直接跟的是Response-nomalization layer,也就是norm1,norm2层。

c. 在每一个conv层以及full-connected层后紧跟的操作是ReLU操作。

d. Max pooling操作是紧跟在第一个norm1,norm2,以及第5个conv层,也就是conv5

e.Dropout操作是在最后两个full-connected层。

2. 操作流程

a. 在第一个conv层(conv1)中,AlexNet采用了96个11*11*3的kernel在stride为4的情况下对于224*224*3的图像进行了滤波。直白点就是采用了11*11的卷积模板在三个通道上,间隔为4个像素的采样频率上对于图像进行了卷积操作。4个像素是receptive field中心在kernel map上的距离,这是个经验数据。

最初的输入神经元的个数为224*224*3 = 150528个。对于每一个map来说,间隔为4,因此224/4 = 56,然后减去边缘的一个为55个,也就是本层的map大小为55*55,然后神经元数目为55*55*96 = 290400(原文中是253440,这个不太理解,有知道的请告知)

得到基本的conv数据后,则进行一次ReLU(relu1)以及Norm(norm1)的变换后,然后进行pooling(pool1),作为输出传递到下一层。

本层map数目为96.

b.第二个conv层(conv2)是第一个conv层(conv1)经过norm(norm1)以及pool(pool1)后,然后再apply 256个5*5的卷积模板卷积后的结果。

pool1后,map的size减半int(55/2)= 27,得到的本层的神经元数目为27*27*256 = 186642个。

本层map数目为256个。

c. 第三个conv层(conv3)的生成过程和第二层类似,不同的是这一层是apply 384个3*3的卷积模板得到的。

pool2后,map的size减半int(27/2) = 13,得到本层神经元数目为13*13*384 = 64896。

本层map数目为384个。

d. 第四个conv层(conv4)是第三个conv层(conv3)进行一次ReLU(relu3)后,然后直接apply 384个3*3的卷积模板得到的。

本层神经元的数目为13*13*384 = 64896。

本层map数目为384个,size还是13*13.

e. 第五个conv层(conv5)与第四个生成类似,只是对上层进行了一个ReLU(relu4)后生成的,不同之处在于此处apply的卷积模板为256个3*3的。

本层神经元的数目为13*13*256 = 43264。

本层map数目为256个,size还是13*13。

f. 第一个full-connected层(fc6)是上一个conv层(conv5)进行pooling(pool5)后的全连接。

pool5后,map的size减半int(13/2) = 6,上层基本连接为6*6*256,然后全连接后到4096个节点,本层最终节点为4096个。

g.第二个full-connected层(fc7)是上一个full-connected(fc6)进行ReLU(relu6)后,然后进行dropout(drop6)后再进行全连接的结果

本层节点数目为4096个。

h.最后一个full-connetcted层(fc8)则是上一个full-connected层(fc7)再次进行ReLU(relu7)以及dropout(drop7)后再进行全连接的结果。最后输出为融合label的softmax loss。

本层节点数目为1000个,对应着1000类对象。

在下面将对于AlexNet的原理进行以及算法的执行细节进行分析。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章