神经网络 - 练习

Neural network - exercise

我目前正在自学神经网络的概念,并且正在使用来自 http://neuralnetworksanddeeplearning.com/chap1.html

我做的功法也很少,但有一个功法我真的看不懂,至少一步

任务: 有一种方法可以通过在上面的三层网络中添加一个额外的层来确定数字的按位表示。额外层将前一层的输出转换为二进制表示,如下图所示。为新的输出层找到一组权重和偏差。假设前 3 层神经元使得第三层(即旧输出层)的正确输出具有至少 0.99 的激活,而错误输出的激活小于 0.01。

我也找到了解决方案,如第二张图片所示

我理解为什么矩阵必须具有这种形状,但我真的很难理解用户计算的步骤

0.99 + 3*0.01
4*0.01

这两个步骤我真的看不懂。如果有人能帮助我理解这个计算,我会很高兴

非常感谢您的帮助

前一层的输出是10x1(x)。权重矩阵为 4x10。新的输出层将是 4x1。首先有两个假设:

  • x 仅在一行为 1。 xT= [1 0 0 0 0 0 0 0 0 0]。如果将此向量与矩阵 W 相乘,则输出将为 yT=[0 0 0 0],因为 x 中只有 1。乘以 W 后,这将是 W 的第 0 列的 1 倍数,它们是零。

  • 第二个假设是,如果 x 不再是 1,而不是一个 x 可以是 xT=[0.99 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]。如果你将 x 与 W 的第一行相乘,结果是 0.05(我相信这是错字)。当 xT=[0.01 0.99 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01] 与第一行 W 结果相乘后为 1.03。因为:

0.01*0 + 0.99*1 + 0.01*0 + 0.01*1 + 0.01*0 + 0.01*1 + 0.01*0 + 0.01*1 + 0.01*0 + 0.01*1 = 1.03

所以我认为有一个错字,因为作者可能假设 W 的第一行有 4 个,这是不正确的,因为有 5 个。因为如果第一行有 4 个,那么 x 的第一行 0.99 的实际结果将是 0.04,x 的第二行 0.99 的结果将是 1.02。