dlnd-your-first-neural-network中反向传播的笔记

来源:互联网 发布:.net软件开发工程师 编辑:程序博客网 时间:2024/06/05 14:55

本文Udacity上深度基石项目的一个作业的笔记.由于反向传播中矩阵计算设计到下标的配合。因此,作如下笔记用于回顾总结。

注:所有相乘的公式均可以使用np.dot()来实现。

下面是作业中误差反向传播的一段代码,用python来实现。其中的hidden_errors是wjkδk是使用 np.dot()相乘以的结果。而hidden_grad则是对f(hj)的求导结果,如下的实现是sigmoid的求导结果。
最后,根据矩阵规则,将两者的乘积得到w的更新结果。

# TODO: Backpropagated error hidden_errors = np.dot(self.weights_hidden_to_output.T, output_errors)hidden_grad = hidden_outputs * (1 - hidden_outputs)self.weights_hidden_to_output += self.lr*np.dot(output_errors,hidden_outputs.T) self.weights_input_to_hidden += self.lr*np.dot((hidden_errors * hidden_grad), inputs.T) 

δj是除去输出层外各层误差,其最后的结果一定和f(hj)同维度,也就是该层的节点个数。i是第i层的输入,这两者构成了w的两个端点。其最后相乘的矩阵要等于两层之间相连的w的维度

0 0