花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/85013884

目录

0. 前言

1. 单层卷积网络

2. 各参数维度

3. CNN 前向传播反向传播


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

花书+吴恩达深度学习(十)卷积神经网络 CNN 之卷积层

花书+吴恩达深度学习(十一)卷积神经网络 CNN 之池化层

花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层

花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)

花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)

0. 前言

本篇文章主要介绍卷积神经网络的运算过程。

整体卷积神经网络的运算趋势,是行和列逐渐减小,通道数逐渐增加。

1. 单层卷积网络

此处以单个样本为例子。

  1. 原始图像(上一层输出)作为 x 。
  2. 每一个过滤器的参数叠加在一起,组成这一层的权重 W 。
  3. 为每个过滤器加上偏差,组成偏差 B ,在卷积之后的 2D 图像的每一个像素上加上偏差。
  4. 通过激活函数 A ,激活函数同样针对 2D 图像的每一个像素。
  5. 则,每一个过滤器计算出来为 2D 图像,多个过滤器组合起来作为 3D 图像,下一层的输入。

2. 各参数维度

\begin{align*} & f^{[l]}=filter\ size \\ & p^{[l]}=padding \\ & s^{[l]}=stride \\ & n_c^{[l]}=number\ of\ filters\ in\ layer\ l \\ \end{align*}

\begin{align*} & Input:\ n^{[l-1]}_H\times n^{[l-1]}_W\times n_c^{[l-1]} \\ & output:\ n^{[l]}_H\times n^{[l]}_W\times n_c^{[l]} \\ & n^{[l]}_{H/W}=\lfloor \frac{n^{[l-1]}_{H/W}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1 \rfloor \\ \end{align*}

\begin{align*} & each\ filter:\ f^{[l]}\times f^{[l]}\times n_c^{[l-1]} \\ & weights:\ f^{[l]}\times f^{[l]}\times n_c^{[l-1]}\times n_c^{[l]} \\ & bias:\ 1\times 1\times 1\times n_c^{[l]} \\ \end{align*}

3. CNN 前向传播反向传播

对于每一个 3D 图像,可以看成是,行(长),列(宽),通道(高)。

定义一个 4 维张量 K (也就是每一层的权重 W ),K_{i,j,k,l} 表示位于,输出通道 i (这层第 i 个过滤器,输出的第 i 个通道),输入通道 j (每个过滤器的第 j 个通道),k 行,l 列的值。

定义一个 3 维张量 V (也就是输入数据 x ),V_{i,j,k} 表示位于,通道 i (上层的第 i 个过滤器,输入的第 i 个通道),j 行, k 列的值。

定义一个 3 维张量 Z (也就是输出的 3D 数据),Z_{i,j,k} 表示位于,通道 i (这层的第 i 个过滤器,输出的第 i 个通道),j 行, k 列的值。

则前向传播的卷积运算表示为:

Z_{i,j,k}=\sum_{l,m,n}V_{l,j+m-1,k+n-1}K_{i,l,m,n}

在反向传播中,对 Z_{i,j,k} 的求梯度为:

G_{i,j,k}=\frac{\partial }{\partial Z_{i,j,k}}J(V,K)

使用梯度下降,对权重 K_{i,j,k,l} 求梯度为:

g(G,V,s)_{i,j,k,l}=\frac{\partial }{\partial K_{i,j,k,l}}J(V,K)=\sum_{m,n}G_{i,m,n}V_{j,(m-1)\times s+k,(n-1)\times s+l}

如果不是神经网络的第一层,则需要对输入 V_{i,j,k} 求梯度:

\begin{align*} h(K,G,s)_{i,j,k}&=\frac{\partial }{\partial V_{i,j,k}}J(V,K)\\ &=\sum_{l,m\ s.t.\ (l-1)\times s+m=j}\sum_{n,p\ s.t.\ (n-1)\times s+p=k}\sum_{q}K_{q,i,m,p}G_{q,l,n} \end{align*}


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/85013884
今日推荐