第三节:卷积层详解1

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三节:卷积层详解1相关的知识,希望对你有一定的参考价值。

文章目录

卷积层:卷积层是CNN中的核心层,CNN中大部分计算量就集中在卷积层,卷积层主要完成卷积运算,目的是对输入数据进行特征提取,其要点如下

一:什么是卷积运算(了解)

在数学中,卷积是通过两个函数 f f f w w w生成第三个函数 s s s的数学算子。假设有一个函数 f ( t ) f(t) f(t)用来表示在时刻 t t t发生的某一新闻对股价的影响,且时刻 t t t的股价不仅被该新闻所影响,还会被之前每天发生的相关新闻所影响。显然,距离 t t t时刻越近的新闻与股价就越相关,这里使用加权函数 w ( t − a ) w(t-a) w(ta)对新闻赋予不同权重,其中 a a a表示发生该新闻的时间点, t − a t-a ta就表示该新闻发生时刻 a a a与当前时刻 t t t的时间间隔。

对于时刻 t t t,基于新闻的股价预测函数就可以定义为

s ( t ) = ∑ a = − ∞ + ∞ f ( a ) w ( t − a ) s(t)=\\sum\\limits_a=-\\infty^+\\inftyf(a)w(t-a) s(t)=a=+f(a)w(ta)

也即时刻 t t t的股价预测结果是 t t t时刻及以前所有新闻对骨架的影响加权求和的结果。将上例中的 f f f w w w做一般化后,求 s s s的这种运算就叫做卷积。卷积运算通常用星号表示,这样这样我们就得到了离散形式的卷积公式

s ( t ) = ( f ∗ w ) ( t ) = ∑ α = − ∞ + ∞ f ( a ) w ( t − a ) s(t)=(f*w)(t)=\\mathop\\sum_\\alpha=-\\infty^+\\inftyf(a)w(t-a) s(t)=(fw)(t)=α=+f(a)w(ta)
且当 f f f w w w R R R上的可积函数时,便可以得到卷积公式的积分形式

而在CNN中使用的卷积与少奶奶是一种相当简单的运算,在神经网络中,第一个参数函数 f f f叫做输入,第二个参数 w w w叫做核函数(卷积核)

s ( t ) = ( f ∗ w ) ( t ) = ∫ − ∞ + ∞ f ( a ) w ( t − a )   d a s(t)=(f*w)(t)=\\int_-\\infty^+\\infty f(a)w(t-a) \\, da s(t)=(fw)(t)=+f(a)w(ta)da

二:从全连接层到卷积层

从全连接层到卷积层:卷积层的出现也不是突然的,从某种方面它可以看作是全连接层的拓展,目的还是为了解决全连接层的缺点

  • 图像空间信息丢失(不具备空间不变性)
  • 参数爆炸

(1)解决空间不变性

对于传统的全连接层,假设输入个数为 n n n,那么第 j j j神经元的输出应该为(暂时忽略激活函数), W i j W_ij Wij是一个二维张量表示与第 i i i个输入相连的第 j j j个权重,此时隐藏神经元输出为

H j = ∑ i n W i j X i + B H_j=\\mathop\\sum_i^nW_ijX_i+B Hj=inWijXi+B

而在图像数据中,输入的是矩阵,并不是向量,所以我们可以尝试把这个权重也改为矩阵。运用类比的思想,将 W i , j W_i,j Wi,j权重变形为一个四维张量 W i , j , k , l W_i,j,k,l Wi,j,k,l,表示与第 ( k , l ) (k,l) (k,l)号输入相连的第 ( i , j ) (i,j) (i,j)号权重,此时隐藏神经元输出为

H i j = ∑ k ∑ l W i , j , k , l X k , l + U i , j H_ij=\\mathop\\sum_k^\\mathop\\sum_l^W_i,j,k,lX_k,l+U_i,j Hij=klWi,j,k,lXk,l+Ui,j

  • X k , l X_k,l Xk,l就是输入矩阵中,第 k k k行第 l l l列的输入元素

对上式进行改写,重新索引下标 ( k , l ) (k,l) (k,l),使 k = i + a k=i+a k=i+a, l = j + b l=j+b l=j+b,此时

H i , j = ∑ a ∑ b V i , j , a , b X i + a , j + b + U i , j H_i,j=\\mathop\\sum_a^\\mathop\\sum_b^V_i,j,a,bX_i+a,j+b+U_i,j Hi,j=abVi,j,a,bXi+a,j+b+Ui,j

这表示,对于隐藏层中任意位置 ( i , j ) (i,j) (i,j)处的神经元输出 H i , j H_i,j Hi,j,可以通过在 X X X中以 ( i , j ) (i,j) (i,j)为中心对像素进行加权求和得到,加权使用的权重为 V i , j , a , b V_i,j,a,b Vi,j,a,b

解决平移不变性

局部性是指 我们只需要关注一个图片的局部的特征,不应该偏离到距 ( i , j ) (i,j) (i,j)太远的地方,这意味必须限制 a , b a,b a,b在某一范围之内

H i , j = u + ∑ a ∑ b V a , b X i + a , j + b H_i,j=u+\\mathop\\sum_a^\\mathop\\sum_b^V_a,bX_i+a,j+b Hi,j=u+a以上是关于第三节:卷积层详解1的主要内容,如果未能解决你的问题,请参考以下文章

[人工智能-深度学习-25]:卷积神经网络CNN - CS231n解读 - 卷积层详解

嵌入式与神经网络(二):CNN卷积层

TensorFlow框架之CNN卷积神经网络详解

卷积神经网络 LeNet-5各层参数详解

第三节,TensorFlow 使用CNN实现手写数字识别

卷积神经网络(CNN)详解