首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反向传播示例

反向传播示例
EN

Stack Overflow用户
提问于 2020-04-10 05:18:35
回答 1查看 145关注 0票数 1

我正在尝试实现我自己的神经网络,但我不是很有信心我的数学是正确的。

我正在做MNIST数字识别,所以我有10个概率的软最大输出。作为输出。然后,我计算我的增量输出如下:

代码语言:javascript
复制
delta_output = vector of outputs - one-hot encoded actual label

delta_output是一个维数为10 x 1的矩阵。

然后我计算最后一个隐藏层的权重的增量,如下所示:

代码语言:javascript
复制
delta_hidden = weight_hidden.transpose * delta_output * der_hidden_activation(output_hidden)

假设在最后的隐藏层中有N个节点,weight_hidden是N×10的维数的矩阵,上面的delta_output是10x1,der_hidden_activation(output_hidden)的结果是N x 1。

现在,我的第一个问题是,delta_output和der_hidden_activation(output_hidden)的乘法是否应该使用外积返回10xN矩阵?我认为我需要对得到的矩阵做一个哈达玛乘积,得到delta_hidden仍然是N x 10。

最后,我将这个delta_hidden乘以我的学习率,并从最后一个隐藏层的原始权重中减去它,得到新的权重。

我的第二个也是最后一个问题是,我错过了什么吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-10 09:00:34

假设在最后的隐藏层中有N个节点,weight_hidden是N×10的维数的矩阵,从上面开始的delta_output是10x1,并且der_hidden_activation(output_hidden)的结果是N x 1。

当从N个神经元的层(隐藏层)到M个神经元的层(输出层)时,在matrix multiplication下,权重矩阵的维数应该是M x N。因此,对于反向传播阶段,从M个神经元的层(输出)到N个神经元的层(隐藏层),使用权重矩阵的transpose,它将给出一个维数为(N X M)的矩阵。

现在,我的第一个问题是,delta_output和der_hidden_activation(output_hidden)的乘法应该返回一个使用外积的10 x N矩阵吗?我认为我需要对得到的矩阵做一个哈达玛乘积,得到delta_hidden仍然是N x 10。

是的,您需要使用hadamard product,但是您不能将delta_output和der_hidden_activation(output_hidden)相乘,因为它们是不同维数的矩阵(分别为10 x 1和N x 1)。相反,您将hidden_weight矩阵(N X 10)的转置乘以delta_output (10 X 1),得到N x 1的矩阵,然后使用der_hidden_activation(output_hidden)执行hadamard乘积。

如果我没弄错的话...

hidden_weight矩阵=

delta_output =

delta_hidden =

der_hidden_activation(output_hidden) =

将这个插入BP公式中。

正如您所看到的,您需要首先将weight_hidden (N X 10)的转置乘以delta_output (10 X 1),以产生一个矩阵(N X 1),然后将hadamard乘积与der_hidden_activation(output_hidden)一起使用。

最后,我将这个delta_hidden乘以我的学习率,并从最后一个隐藏层的原始权重中减去它,得到新的权重。

你不能将delta_hidden乘以学习率。你需要在偏差和增量权重矩阵上使用学习率...

增量权重矩阵是一个与您的(隐藏)权重矩阵具有相同维度的矩阵,并使用公式...

然后你可以很容易地应用学习率。

Incidentally, I just answered a similar question on AISE which might help shed some light and goes into more detail about the matricies to use during backpropagation.

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

https://stackoverflow.com/questions/61130368

复制
相关文章

相似问题

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