起首我们看到 l 层的第 i 个神经元与 l+1 层的所有神经元都有连接,那么我们可以将 δ 展开成如下的式子:

也等于说我们可以将 E 看做是 l+1 层所有神经元输入值的 z 函数,而膳绫擎式子的 n 表示的是 l+1 层神经元的数量,再进行化简后就可以获得膳绫擎所说的式子。
在这里的推导过程只说清楚明了关键的部分。别的也参考了周志华所写的机械进修中的神经收集部分的内容和 neural networks and deep learning的内容。
Python 源码解析
源率攀来自于 Michael Nielsen大年夜神的深度进修在线教程。
应用 Python 实现的神经收集的代码行数并不多,仅包含一个 Network 类,起首来看看该类的构造办法。
- def __init__(self, sizes):
- """
- :param sizes: list类型,储存每层神经收集的神经元数量
- 譬如说:sizes = [2, 3, 2] 表示输入层有两个神经元、
- 隐蔽层有3个神经元以及输出层有2个神经元
- """
- # 有几层神经收集
- self.num_layers = len(sizes)
- self.sizes = sizes
- # 除去输入层,随机产生每层中 y 个神经元的 biase 值(0 - 1)
- self.biases = [np.random.randn(y, 1) for y in sizes[1:]]
- # 随机产生每条连接线的 weight 值(0 - 1)
- self.weights = [np.random.randn(y, x)
- for x, y in zip(sizes[:-1], sizes[1:])]
- def feedforward(self, a):
- """
- 前向传输计算每个神经元的值
- :param a: 输入值
- :return: 计算后每个神经元的值
- """
- for
推荐阅读
发个牢骚,搞大年夜数据的也得扶植数据仓库吧。并且不管是传统行业照样如今的互联网公司,都须要对数据仓库有必定的看重,而不是谈一句本身是搞大年夜数据的就很厉害了。数据仓库更多代表>>>详细阅读
本文标题:一文详解神经网络 BP 算法原理及 Python 实现
地址:http://www.17bianji.com/lsqh/36072.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示