如何解决反向传播中的矩阵相乘是如何工作的
我是神经网络的新手,我的任务是用 Python 创建我自己的神经网络。到目前为止,我已经设法创建了具有自己的权重、输出和导数的层。我目前正在研究反向传播过程,但遇到了一些问题。这是我的算法的当前逻辑。在图片中,假设 '*' 作为元素乘法,如 np.multiply。 ydtf 是每一层的每个节点的导数,权重是每个节点从它之前的层收到的权重连接。如果转置错误,我很抱歉。
事实证明,我发现了为什么我的反向传播维度是错误的:
问题是,这个逻辑正确吗?如果没有,我该怎么做才能完全自动化反向传播?这个过程是靠比较每层有多少个节点吗?
解决方法
您的问题是指反向传播,但您似乎在描述正向传播,(如果这是一个错误,请查看我的答案底部以获取更多详细信息)。
假设我们有一个具有 5 个输入节点、3 个神经元节点和 1 个输出节点的神经网络。所有这些节点都与权重(线)相连。
要为神经元数组创建矩阵,我们必须遍历网络中的每个神经元。我们以 N 0 为例。
N 0 的方程将是 N0 = (I 0 * W 0 ) + (I1 * W 1) + (I2 * W 2) + (I3 * W 3) + (I4 * W 4).
这是我可以用等式表示的最简单方法。最简单的方法是 - 下一个矩阵的值等于进入该神经元的所有权重和输入的总和。
请记住,这只是一个简单的等式,不包括任何类型的偏差或激活函数等
你的问题不是很清楚,所以我可能误解了你所说的。如果我的回答没有解决您的问题,请查看我之前的一些回答,它们可能会有所帮助。
Does Back Propagation and Gradient Descent use the same logic?
How does the Gradient function work in Backpropagation?
希望其中一个回答能回答您的问题,祝您有美好的一天!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。