标签: backpropagation

理解神经网络反向传播

更新:更好地解决问题.

我试图以XOR神经网络为例来理解反向传播算法.对于这种情况,有2个输入神经元+ 1个偏置,隐藏层中的2个神经元+ 1个偏置,以及1个输出神经元.

 A   B  A XOR B
 1    1   -1
 1   -1    1
-1    1    1
-1   -1   -1
Run Code Online (Sandbox Code Playgroud)

XOR神经网络示例

我正在使用随机反向传播.

在阅读了一点之后我发现输出单元的错误传播到隐藏层...最初这是令人困惑的,因为当你到达神经网络的输入层时,每个神经元都会得到一个错误调整来自隐藏层中的两个神经元.特别是,首先很难掌握错误的分配方式.

步骤1计算每个输入实例的输出.
步骤2计算输出神经元(在我们的例子中只有一个)和目标值(s)之间的误差:
步骤2 http://pandamatak.com/people/anand/771/html/img342.gif
步骤3我们使用步骤2中的错误计算每个隐藏单元的错误h:
步骤3 http://pandamatak.com/people/anand/771/html/img343.gif

"权重kh"是隐藏单元h和输出单元k之间的权重,这是令人困惑的,因为输入单元没有与输出单元相关联的直接权重.在盯着公式几个小时后,我开始思考求和意味着什么,并且我开始得出结论,连接到隐藏层神经元的每个输入神经元的权重乘以输出误差并总结.这是一个合乎逻辑的结论,但公式似乎有点令人困惑,因为它清楚地说明了'权重kh'(在输出层k和隐藏层h之间).

我在这里正确理解了一切吗?任何人都可以证实吗?

什么是输入层的O(h)?我的理解是每个输入节点有两个输出:一个进入隐藏层的第一个节点,另一个进入第二个节点隐藏层.应该将两个输出中的哪一个插入O(h)*(1 - O(h))公式的一部分?
第3步http://pandamatak.com/people/anand/771/html/img343.gif

computer-science machine-learning backpropagation neural-network

47
推荐指数
2
解决办法
1万
查看次数

为什么Cross Entropy方法优于Mean Squared Error?在什么情况下这不起作用?

尽管上述两种方法都提供了更好的分数以更好地接近预测,但仍然优选交叉熵.是在每种情况下还是有一些特殊情况我们更喜欢交叉熵而不是MSE?

machine-learning backpropagation neural-network mean-square-error cross-entropy

34
推荐指数
3
解决办法
3万
查看次数

反向传播和前馈神经网络有什么区别?

反向传播和前馈神经网络有什么区别?

通过谷歌搜索和阅读,我发现在前馈中只有前向方向,但在反向传播中,一旦我们需要进行前向传播然后反向传播.我提到了这个链接

  1. 除流动方向以外的任何其他差异?重量计算怎么样?结果?
  2. 假设我正在实现反向传播,即它包含前向和后向流.那么反向传播是否足以显示前馈?

classification machine-learning backpropagation neural-network

33
推荐指数
2
解决办法
4万
查看次数

如何在神经网络中使用k折交叉验证

我们正在编写一个小型ANN,它应该根据10个输入变量将7000个产品分类为7个类.

为了做到这一点,我们必须使用k折交叉验证,但我们有点困惑.

我们从演示幻灯片中摘录了这些内容:

k折交叉验证图

什么是验证和测试集?

根据我们的理解,我们通过3个训练集并调整权重(单个纪元).然后我们如何处理验证?因为根据我的理解,测试集用于获取网络的错误.

接下来发生的事情也让我感到困惑.交叉是什么时候发生的?

如果要问的话不是太多,那么我们将不胜感激

validation machine-learning backpropagation neural-network

32
推荐指数
2
解决办法
4万
查看次数

31
推荐指数
4
解决办法
1万
查看次数

keras如何处理多重损失?

所以我的问题是,如果我有类似的东西:

model = Model(inputs = input, outputs = [y1,y2])

l1 = 0.5
l2 = 0.3
model.compile(loss = [loss1,loss2], loss_weights = [l1,l2], ...)
Run Code Online (Sandbox Code Playgroud)

为了获得最终损失,keras做了什么损失?是这样的:

final_loss = l1*loss1 + l2*loss2
Run Code Online (Sandbox Code Playgroud)

此外,在培训期间意味着什么?loss2仅用于更新y2来自的层的权重吗?或者它是否用于所有模型的图层?

我很困惑

backpropagation deep-learning keras loss-function

29
推荐指数
2
解决办法
1万
查看次数

RELU的神经网络反向传播

我正在尝试用RELU实现神经网络.

输入层 - > 1隐藏层 - > relu - >输出层 - > softmax层

以上是我的神经网络的架构.我很担心这个relu的反向传播.对于RELU的导数,如果x <= 0,则输出为0.如果x> 0,则输出为1.因此,当您计算梯度时,这是否意味着如果x <= 0,我会消除梯度.

有人可以一步一步地解释我的神经网络架构的反向传播吗?

backpropagation neural-network

28
推荐指数
4
解决办法
4万
查看次数

参数retain_graph在Variable的backward()方法中意味着什么?

我正在阅读神经转移pytorch教程,并对使用retain_variable(弃用,现在称为retain_graph)感到困惑.代码示例显示:

class ContentLoss(nn.Module):

    def __init__(self, target, weight):
        super(ContentLoss, self).__init__()
        self.target = target.detach() * weight
        self.weight = weight
        self.criterion = nn.MSELoss()

    def forward(self, input):
        self.loss = self.criterion(input * self.weight, self.target)
        self.output = input
        return self.output

    def backward(self, retain_variables=True):
        #Why is retain_variables True??
        self.loss.backward(retain_variables=retain_variables)
        return self.loss
Run Code Online (Sandbox Code Playgroud)

文档中

retain_graph(bool,optional) - 如果为False,将释放用于计算grad的图形.请注意,几乎在所有情况下都不需要将此选项设置为True,并且通常可以以更有效的方式解决此问题.默认为create_graph的值.

因此,通过设置retain_graph= True,我们不会释放在向后传递上为图形分配的内存.保持这种记忆的优势是什么,我们为什么需要它?

automatic-differentiation backpropagation neural-network conv-neural-network pytorch

26
推荐指数
2
解决办法
1万
查看次数

何时在Caffe中使用就地层?

通过将底部和顶部blob设置为相同,我们可以告诉Caffe进行"就地"计算以保持内存消耗.

目前,我知道我可以就地安全地使用"BatchNorm","Scale"并且"ReLU"层(请让我知道,如果我错了).虽然它似乎对其他层有一些问题(这个问题似乎是一个例子).

何时在Caffe中使用就地层?
它如何与反向传播一起工作?

machine-learning backpropagation neural-network deep-learning caffe

23
推荐指数
1
解决办法
2424
查看次数

反向传播算法如何处理不可微分的激活函数?

在深入研究神经网络的主题以及如何有效地训练神经网络时,我遇到了使用非常简单的激活函数的方法,例如重新设计的线性单元(ReLU),而不是经典的平滑sigmoids.ReLU函数在原点是不可微分的,因此根据我的理解,反向传播算法(BPA)不适合用ReLU训练神经网络,因为多变量微积分的链规则仅指平滑函数.但是,没有关于使用我读过的ReLU的论文解决了这个问题.ReLUs似乎非常有效,似乎几乎无处不在,但不会引起任何意外行为.有人可以向我解释为什么ReLUs可以通过反向传播算法进行训练吗?

machine-learning backpropagation neural-network deep-learning

22
推荐指数
1
解决办法
5333
查看次数