首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种简单卷积神经网络的反向传播

一种简单卷积神经网络的反向传播
EN

Data Science用户
提问于 2020-07-22 13:50:55
回答 1查看 1K关注 0票数 2

嗨,我正在做一个简单的卷积神经网络(图片附在下面)。输入映像为5x5,内核为2x2,它经历了一个ReLU激活函数。在ReLU获得最大的2x2池池后,这些池就会被平化,并连接到完全连接的层中。一旦通过完全连接层,输出被转换为Softmax概率。我已经通过网络进行了传播,现在正在执行反向传播步骤。取交叉熵和softmax的导数,计算了全连通层的权值。

我感到困惑的是如何通过最大池预先形成反向传播,然后最终在卷积层中找到权值的导数。

我在网上发现的是,你需要找出关于平坦层的损失的导数,但我不确定你是如何做到的。

如果我能得到一些解释上的帮助,最好是用方程式来解释,那就太棒了。

堆栈溢出(https://stackoverflow.com/questions/63022091/back-propagation-through-a-simple-convolutional-neural-network)中的交叉张贴

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-07-23 02:32:08

反向传播算法在网络中按权重分配惩罚。要获得每个权重的相关梯度,我们需要使用派生链规则将误差反传回其层。

平坦层

一个层的导数取决于正在应用的函数。在扁平层的情况下,它只是简单地重塑(映射)值。因此,在这一层不会增加额外的损失。你所需要知道的就是扁平是如何发生的。

例如,如果前传球扁平是

flatten\begin{pmatrix} a & b\\ c & d \end{pmatrix} = \begin{pmatrix} a \\ b \\ c \\ d \end{pmatrix}

然后,您可以轻松地将相关成本映射到2 \times 2 \times 1功能映射。

Max池层

在前向传递中,最大池层在沿着图像传递的3 \times 3窗口中获取最大值。例如,第一个3 \times 3窗口中的粗体值最大为11

maxpooling \begin{pmatrix} \bf{1} & \bf{2} & \bf{3} & 4 \\ \bf{5} & \bf{6} & \bf{7} & 8 \\ \bf{9} & \bf{10} & \bf{11} & 12 \\ 13 & 14 & 15 & 16 \end{pmatrix} = \begin{pmatrix} \bf{11} & 12\\ 15 & 16 \end{pmatrix}

因此,由此产生的误差反向传播只会通过前向传递所传递的最大值。对于所有其他值,错误项不会反向传播。因此,在此点之前反向传播的当前错误矩阵将被乘以

\begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix}

因此,只有4个错误项将继续到早期的层。

卷积层

我在这里详细介绍了如何通过卷积进行反向传播:层间CNN反向传播

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/78132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档