卷积神经网络(CNN)基础知识

卷积神经网络基础知识

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有局部连接权值共享等特性的深层前馈神经网络。
卷积神经网络最早主要是用来处理图像信息。在用全连接前馈网络来处理图像时,会存在以下两个问题:

  1. 参数太多:如果输人图像大小为100×100×3(即图像高度为100,宽度为100以及RGB 3个颜色通道),在全连接前馈网络中,第一个隐藏层的每个神经元到输入层都有100×100×3=30000个互相独立的连接,每个连接都对应一个权重参数。随着隐藏层神经元数量的增多,参数的规模也会急剧增加。这会导致整个神经网络的训练效率非常低,也很容易出现过拟合。
  2. 局部不变性特征:自然图像中的物体都具有局部不变性特征,比如尺度缩放、平移、旋转等操作不影响其语义信息:而全连接前馈网络很难提取这些局部不变性特征,一般需要进行数据增强来提高性能。卷积神经网络是受生物学上感受野机制的启发而提出的。感受野(Receptive Field)机制主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号。在视觉神经系统中,视觉皮层中的神经细胞的输出依赖于视网膜上的光感受器。视网膜上的光感受器受刺激兴奋时,将神经冲动信号传到视觉皮层,但不是所有视觉皮层中的神经元都会接受这些信号,一个神经元的感受野是指视网膜上的特定区域,只有这个区城内的刺激才能够激活该神经元。

目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络。卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚。这些特性使得卷积神经网络具有一定程度上的平移缩放和旋转不变性。和前馈神经网络相比,卷积神经网络的参数更少。
卷积神经网络主要使用在图像和视频分析的各种任务(比如图像分类、人脸识别、物体识别、图像分割等)上,其准确率一般也远远超出了其他的神经网络模型.近年来卷积神经网络也广泛地应用到自然语言处理、推荐系统等领域。

卷积与互相关

卷积

卷积(Convolution),是分析数学中一种重要的运算。在信号处理或者图像处理中,经常使用一维卷积或二维卷积

一维卷积

一维卷积经常用在信号处理中,用于计算信号的延迟累积,假设一个信号发生器每个时刻t产生一个信号 x t x_t xt,其信息的衰减率为 ω k ω_k ωk。即在 K − 1 K-1 K1个时间步长后,信息为原来的 ω ω ω倍。假设 ω 1 = 1 , ω 2 = 1 / 2 , ω 3 = 1 / 4 ω_1=1,ω_2=1/2,ω_3=1/4 ω1=1,ω2=1/2,ω3=1/4,那么在时到t收到的信号,为当前时刻产生的信息和以前时刻延迟信息的叠加,
y t = 1 × x t + 1 2 × x t − 1 + 1 4 × x t − 2 = ω 1 × x t + ω 2 × x t − 1 + ω 3 × x t − 2 = ∑ k = 1 3 ω k x t − k + 1 % MathType!MTEF!2!1!+- % feaahqart1ev3aaaM9-sbqvzybssUbxD0bctH52z1f2zLbaxIv2zP5 % 2EHXwAN5wFnaciMaYE7XfDLHhD7LxF991ECrxz4r3E01xF91tmCrxA % Tv2CGS3E413x7rxF9TcxMjxyJTxm9TNm9XfDP1wzZbYE7HxFFThDTe % tF9TcxMjxyJTxm9Thn9XfDP1wzZbYE7HxFFThDTitF9bcxCbsdGyci % GaciG0ZE7X1BTv2zHbsFFTxm91hx0LwBLnhi7ThE991E01xFRS3EC9 % wBLDwyG03x7jtF9XfDP1wzZbYE7HxFFThDTetF9TYE7X1BTv2zHbsF % FT3m91hx0LwBLnhi7ThE991E01Im91hiCXfinaIjGaciGaspCnxDTX % fBP1wA0n3x7TwpX0Nx7ntF7T3EC9wBLDwyG03x7TwF913E7HxFFThD % TS2kX0xFGWfxG0axL5gz7fgBPDMB9bWexLMBbXgBcf2CPn2qVrwzqf % 2zLnharuavP1wzZbItLDhis9wBH5garmWu51MyVXgaruWqVvNCPvMC % G4uz3bqee0evGueE0jxyamXvP5wqSX2qVrwzqf2zLnharyWYoZC5ai % baieYlNi-xH8yiVC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0x % bbG8FasPYRqj0-yi0dXdbba9pGe9xq-JbbG8A8frFve9Fve9Ff0dme % aabaqaciGacaGaaeqabaWaaeaaeaqbaOabaeqabaaeaaaaaaaaa8qa % caqG5bWdamaaBaaaleaapeGaaeiDaaWdaeqaaOWdbiabg2da9iaaig % dacqGHxdaTcaWG4bWdamaaBaaaleaapeGaamiDaaWdaeqaaOWdbiab % gUcaRmaalaaapaqaa8qacaaIXaaapaqaa8qacaaIYaaaaiabgEna0k % aadIhapaWaaSbaaSqaa8qacaWG0bGaeyOeI0IaaGymaaWdaeqaaOWd % biabgUcaRmaalaaapaqaa8qacaaIXaaapaqaa8qacaaI0aaaaiabgE % na0kaadIhapaWaaSbaaSqaa8qacaWG0bGaeyOeI0IaaGOmaaWdaeqa % aaGcbaWdbiabg2da9iabeM8a39aadaWgaaWcbaWdbiaaigdaa8aabe % aak8qacqGHxdaTcaWG4bWdamaaBaaaleaapeGaamiDaaWdaeqaaOWd % biabgUcaRiabeM8a39aadaWgaaWcbaWdbiaaikdaa8aabeaak8qacq % GHxdaTcaWG4bWdamaaBaaaleaapeGaamiDaiabgkHiTiaaigdaa8aa % beaak8qacqGHRaWkcqaHjpWDpaWaaSbaaSqaa8qacaaIZaaapaqaba % GcpeGaey41aqRaamiEa8aadaWgaaWcbaWdbiaadshacqGHsislcaaI % YaaapaqabaaakeaapeGaeyypa0ZaaabCa8aabaWdbiabeM8a39aada % WgaaWcbaWdbiaadUgaa8aabeaaaeaapeGaam4Aaiabg2da9iaaigda % a8aabaWdbiaaiodaa0GaeyyeIuoakiaadIhapaWaaSbaaSqaa8qaca % WG0bGaeyOeI0Iaam4AaiabgUcaRiaaigdaa8aabeaaaaaa!0338! \begin{array}{l} { {\rm{y}}_{\rm{t}}} = 1 \times {x_t} + \frac{1}{2} \times {x_{t - 1}} + \frac{1}{4} \times {x_{t - 2}}\\ = {\omega _1} \times {x_t} + {\omega _2} \times {x_{t - 1}} + {\omega _3} \times {x_{t - 2}}\\ = \sum\limits_{k = 1}^3 { {\omega _k}} {x_{t - k + 1}} \end{array} yt=1×xt+21×xt1+41×xt2=ω1×xt+ω2×xt1+ω3×xt2=k=13ωkxtk+1
我们把 ω 1 , ω 2 , . . . ω_1,ω_2,... ω1,ω2,...称为滤波器或卷积核。假设滤波器的长度为 K K K,它和一个信号序列 x 1 , x 2 . . . x_1,x_2... x1,x2...的卷积为:
y t = ∑ k = 1 K ω k x t − k + 1 % MathType!MTEF!2!1!+- % feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqiVu0Je9sqqr % pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs % 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai % aabeqaamaabaabauaakeaacaWG5bWaaSbaaSqaaiaadshaaeqaaOGa % eyypa0ZaaabCaeaacWGNasyYdC3ai4jGBaaaleacEcOai4jGdUgaae % qcEciaaeaacaWGRbGaeyypa0JaaGymaaqaaiaadUeaa0GaeyyeIuoa % kiacEc4G4bWai4jGBaaaleacEcOai4jGdshacWGNaAOeI0Iai4jGdU % gacWGNaA4kaSIai4jGigdaaeqcEciaaaa!60AC! {y_t} = \sum\limits_{k = 1}^K { {\omega _k}} {x_{t - k + 1}} yt=k=1Kωkxtk+1
为了简单起见,假设卷积的输出 y t y_t yt的下标 t t t K K K开始。
信号序列 x x x和滤波器 ω ω ω卷积定义为:
y = w ∗ x % MathType!MTEF!2!1!+- % feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqiVu0Je9sqqr % pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs % 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai % aabeqaamaabaabauaakeaacaWH5bGaaCypaiaahEhacGaGqFOkaiaa % hIhaaaa!44F2! {\bf{y = w*x}} y=wx
其中 ∗ * 表示卷积运算。一般情况下滤波器的长度K远小于信号序列x的长度。
我们可以设计不同的滤波器来提取信号序列的不同特征。比如,当令滤波器 ω = [ 1 / K , … , 1 / K ] ω=[1/K,…,1/K] ω=[1/K,,1/K]时,卷积相当于信号序列的简单移动平均(窗口大小为 K K K);当令滤波器 ω = [ 1 , − 2 , 1 ] ω=[1,-2,1] ω=[1,2,1]时,可近似对信号序列的二阶微分,即
x ′ ′ ( t ) = x ( t + 1 ) + x ( t − 1 ) − 2 x ( t ) % MathType!MTEF!2!1!+- % feaahqart1ev3aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbl7mZLdGeaGqiVu0Je9sqqr % pepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9pwe9Q8fs % 0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaaeGaciGaai % aabeqaamaabaabauaakeaacaWG4bGaaiiyaiaaccgacaGGOaGaamiD % aiaacMcacqGH9aqpcaWG4bGaaiikaiaadshacqGHRaWkcaaIXaGaai % ykaiabgUcaRiaadIhacaGGOaGaamiDaiabgkHiTiaaigdacaGGPaGa % eyOeI0IaaGOmaiaadIhacaGGOaGaamiDaiaacMcaaaa!54F8! x''(t) = x(t + 1) + x(t - 1) - 2x(t) x(t)=x(t+1)+x(t1)2x(t)
图1,给出了两个滤波器的一维卷积示例。可以看出,两个滤波器分别提取了输入序列的不同特征。滤波器 ω = [ 1 / 3 , 1 / 3 , 1 / 3 ] ω=[1/3,1/3,1/3]

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙宫大niu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值