Questions tagged «backpropagation»

3
通过最大池层反向传播?
这是一个概念上的小问题,困扰了我一段时间:我们如何通过神经网络中的最大池层反向传播? 在本教程中使用Torch 7的nn库时,我遇到了最大池化层。该库为深度网络的每一层抽象了梯度计算和前向传递。我不明白最大池层的梯度计算是如何完成的。 我知道,如果您有一个输入进入第层的神经元,则(定义为的计算公式为: zilzil{z_i}^liiilllδilδil{\delta_i}^lδil=∂E∂zilδil=∂E∂zil{\delta_i}^l = \frac{\partial E}{\partial {z_i}^l}δil=θ′(zil)∑jδjl+1wl,l+1i,jδil=θ′(zil)∑jδjl+1wi,jl,l+1 {\delta_i}^l = \theta^{'}({z_i}^l) \sum_{j} {\delta_j}^{l+1} w_{i,j}^{l,l+1} 因此,最大池化层将接收下一层的;但是由于最大池神经元的激活函数接受了一个值(在其上最大)的向量作为输入,因此不再是单个数字,而是一个向量(必须替换为)。此外,作为最大函数的就其输入而言是不可区分的。δjl+1δjl+1{\delta_j}^{l+1}δilδil{\delta_i}^{l}θ′(zjl)θ′(zjl)\theta^{'}({z_j}^l)∇θ({zjl})∇θ({zjl})\nabla \theta(\left\{{z_j}^l\right\})θθ\theta 所以....应该如何精确计算呢?

3
选择用于训练神经网络的优化器的准则
我已经使用神经网络已有一段时间了。但是,我经常遇到的一件事就是选择用于训练网络的优化器(使用反向传播)。我通常要做的只是从一个开始(例如标准的SGD),然后随机尝试其他一些。我想知道是否有更好的(且随机性较低)的方法来找到好的优化器,例如,从以下列表中查找: SGD(有或没有动力) 阿达达 阿达格拉德 RMSProp 亚当 我特别感兴趣的是,鉴于训练数据具有某些属性(例如,稀疏),是否有某种理论上的理由可以选拔另一个。我也可以想象某些优化器在特定领域比其他优化器工作得更好,例如,在训练卷积网络与前馈网络或分类与回归时。 如果你们中的任何人已经对如何选择优化程序制定了一些策略和/或直觉,那么我将非常感兴趣。此外,如果有一些工作提供了理论上的选择的依据,那就更好了。

1
深度神经网络-使用ReLU进行反向传播
我在使用ReLU进行反向传播时遇到了一些困难,并且做了一些工作,但是我不确定自己是否走对了。 成本函数:12(y−y^)212(y−y^)2\frac{1}{2}(y-\hat y)^2,其中yyy是真正的值,并且 ÿ是一个预测值。还要假设x> 0总是。y^y^\hat yxxx 1层ReLU,其中第一层的权重为w1w1w_1 dCdw1=dCdRdRdw1dCdw1=dCdRdRdw1\frac{dC}{dw_1}=\frac{dC}{dR}\frac{dR}{dw_1} dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) 2层ReLU,其中第一层的权重为w2w2w_2,第二层的权重为w1w1w_1,我想更新第一层的权重w2w2w_2 dCdw2=dCdRdRdw2dCdw2=dCdRdRdw2\frac{dC}{dw_2}=\frac{dC}{dR}\frac{dR}{dw_2} dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) 由于ReLU(w1∗ReLU(w2x))=w1w2xReLU(w1∗ReLU(w2x))=w1w2xReLU(w_1*ReLU(w_2x))=w_1w_2x 3层ReLU,其中第一层的权重为,第二层的权重为w 2和第三层的权重为w 1w3w3w_3w2w2w_2w1w1w_1 dCdw3= dCd[Rd[Rdw3dCdw3=dCd[Rd[Rdw3\frac{dC}{dw_3}=\frac{dC}{dR}\frac{dR}{dw_3} dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−[RË大号ü(w1∗[RË大号ü(w2(∗[RË大号ü(w3)))(w1w2X)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 由于ReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w_1*ReLU(w_2(*ReLU(w_3))=w_1w_2w_3x 由于链规则仅持续2个导数,而S型曲线则可能长达个层。nnn 假设我想更新所有3层权重,其中是第三层,w 2是第二层,w 1是第三层w1w1w_1w2w2w_2w1w1w_1 dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2X))(w1X)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 如果这个推导是正确的,那么如何防止消失呢?与Sigmoid相比,Sigmoid在方程式中有很多乘以0.25,而ReLU没有任何常数值乘法。如果有成千上万的图层,则由于权重会产生很多乘法,那么这会不会导致梯度消失或爆炸?

1
CNN中的反向传播
我有以下CNN: 我从5x5大小的输入图片开始 然后,我使用2x2内核和stride = 1进行卷积,生成大小为4x4的特征图。 然后,我将2x2 max-pooling应用于stride = 2,这会将要素图缩小为2x2。 然后我应用逻辑乙状结肠。 然后是一层完全连接的带有2个神经元的层。 并有输出层。 为了简单起见,假设我已经完成了前向通过并计算出δH1= 0.25和 δH2= -0.15 因此,在完成完全向前传递和部分完成向后传递之后,我的网络如下所示: 然后,我为非线性层(逻辑Sigmoid)计算增量: δ11= (0.25 * 0.61 + - 0.15 * 0.02 )* 0.58 * (1 - 0.58 )= 0.0364182δ12= (0.25 * 0.82 + - 0.15 * - 0.50 )* 0.57 * (1 - 0.57 …

2
滑动窗是否导致LSTM过度装配?
如果我通过滑动窗口方法训练LSTM,我会过拟合吗?为什么人们似乎并没有使用它LSTMs? 为了简化示例,假设我们必须预测字符序列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 如果我继续用以下迷你批次训练LSTM是不好的(还是更好的?): A B C D E F G H I J K L M N, backprop, erase the cell B C D …

1
通过最大池化层进行反向传播
我对这个问题有一个小问题。 我了解到,在通过最大池化层进行反向传播时,梯度将以之前选择为max的上一层神经元获取所有梯度的方式路由回去。我不确定100%是下一层的渐变如何路由回到池化层。 因此,第一个问题是我是否将池化层连接到完全连接的层-如下图所示。 在计算池化层的青色“神经元”的梯度时,是否将来自FC层神经元的所有梯度求和?如果这是正确的,那么池化层的每个“神经元”都具有相同的梯度? 例如,如果FC层的第一个神经元的渐变为2,第二个神经元的渐变为3,第三个神经元的渐变为6,则池化层中蓝色和紫色“神经元”的渐变是什么?为什么? 第二个问题是池化层何时连接到另一个卷积层。那我该如何计算梯度呢?请参见下面的示例。 对于池化层中最右端的“神经元”(绿色框),我只是在下一个conv层中采用紫色神经元的梯度并将其路由回去,对吗? 那个绿色的怎么样?由于链式规则,我需要将下一层的神经元的第一列相乘?还是我需要添加它们? 请不要发布一堆方程式,并告诉我我的答案就在那儿,因为我一直在努力将方程式包围着我,但我仍然不太了解它,这就是为什么我要简单地问这个问题办法。

2
关于卷积网络偏差的问题
我试图找出CNN需要多少权重和偏见。 假设我有一个(3,32,32)图像,并想应用(32,5,5)滤镜。对于每个功能图,我有5x5的权重,所以我应该有3 x(5x5)x 32的参数。现在,我需要添加偏见。我相信我只有(3 x(5x5)+ 1)x 32个参数,因此所有颜色(RGB)的偏差都一样吗? 它是否正确?当我使用不同的权重时,是否在每个图像的深度(在本例中为3)上保持相同的偏差?这是为什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.