1、卷积核的概念,卷积核的size,就是滑动窗口的大小,例如原始数据为28*28的手写数字,滑动窗口size为5*5,则卷积核的size为5*5。卷积核就是权重集合,就是5*5+1。1表示偏置项。卷积核就是输入层的25个点+1个偏置项,链接卷积层的一个点后的权重值集合W。
2、feature map 就是通过卷积以后,计算的输出的神经元值的集合,比如输入28*28的手写数字,经过5*5的卷积核卷积,通过sigmod的函数计算得到的输出神经元的值的集合24*24就是一个feature map,由于一般用多个卷积核进行卷积,假设6个,那么第二层就有6*24*24的数据,即6个featuremap。
3、每一层内的权值即卷积核是共享的,值是一样的。例如6个featuremap,那么输入层到某一个featuremap的时候有24*5*5个链接,如果按照普通的神经网络的话就有24*5*5个w需要学习,但是权值共享以后(即权值相同),就只要学习5*5个w权值即可。因为另外23个5*5的值与这个5*5是一样的。
4、pool又叫subsampling,就是子采样。其实就是把图片模糊化,目的是降维。例如24*24的C1层经过pooling后,变为6个14*14的featuremap。S3层的卷积核一般为2*2,即卷积核是1/4。其实就是w=1/4。c层与s层的链接w是不需要学习的。S3层的featuremap(其实就相当于这层的值)也不用sigmod计算,而是直接把上一层C2层的featuremap直接mean pooling。均值化即可。
5、C3层也是卷积层,同样采用5*5的卷积核。要从上面的6个subsampling的featuremap中链接。这一层的featuremap为16个,也就是用16个卷积核去卷积。C3中的每个featuremap是连接到S2中的所有6个或者几个featuremap的,表示本层的特征map是上一层提取到的特征map的不同组合(这个做法也并不是唯一的)。为什么不把S2中的每个特征图连接到每个C3的特征图呢?原因有2点。第一,不完全的连接机制将连接的数量保持在合理的范围内。第二,也是最重要的,其破坏了网络的对称性。由于不同的特征图有不同的输入,所以迫使他们抽取不同的特征。
6、最后一层输出层,采用全连接的形式 F6层有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全相连。有10164个可训练参数。如同经典神经网络,F6层计算输入向量和权重向量之间的点积,再加上一个偏置。然后将其传递给sigmoid函数产生单元i的一个状态。
7、cnn源码中的d表示残值,就是对cost function 求导数的来的,步骤如下