介绍
我们在机器学习教程的前一章中介绍了有关神经网络的基本思想。
我们已经指出了生物学中神经元和神经网络之间的相似性。我们还引入了非常小的人工神经网络,并引入了决策边界和 XOR 问题。
在我们到目前为止介绍的简单示例中,我们看到权重是神经网络的基本部分。在开始编写具有多层的神经网络之前,我们需要仔细查看权重。
我们必须了解如何初始化权重以及如何有效地将权重与输入值相乘。
在接下来的章节中,我们将用 Python 设计一个神经网络,它由三层组成,即输入层、隐藏层和输出层。您可以在下图中看到这种神经网络结构。我们有一个包含三个节点的输入层一世1,一世2,一世3 这些节点得到相应的输入值 X1,X2,X3. 中间或隐藏层有四个节点H1,H2,H3,H4. 该层的输入源于输入层。我们将很快讨论该机制。最后,我们的输出层由两个节点组成○1,○2
输入层与其他层不同。输入层的节点是被动的。这意味着输入神经元不会改变数据,即在这种情况下没有使用权重。他们接收一个值并将这个值复制到他们的许多输出中。
输入层由节点组成 一世1, 一世2 和 一世3. 原则上,输入是一维向量,如 (2, 4, 11)。一维向量用 numpy 表示,如下所示:
将 numpy 导入为 np
输入向量 = np 。数组([ 2 , 4 , 11 ])
打印( input_vector )
输出:
[ 2 4 11]
在我们稍后将编写的算法中,我们必须将其转置为列向量,即只有一列的二维数组:
将 numpy 导入为 np
输入向量 = np 。数组([ 2 , 4 , 11 ])
input_vector = np 。数组(input_vector , ndmin = 2 )。T
打印(“输入向量:\n ” , input_vector )
打印(“这个向量的形状:” , 输入向量。形状)
输出:
输入向量:
[[2]
[4]
[11]]
这个向量的形状:(3, 1)
权重和矩阵
我们网络图中的每个箭头