经过几次分享我们已经设计好了神经网络图,今天有所学过的线性代数来整理我们的模型,所以一下我们有时间可以复习一下线性代数代数的知识。
相当在这个神经网络上有 13000 节点需要你来尝试调整。我们需要让计算机来计算出这些数值。
想一下如果这件事要我们手动去做,还是多么大的工程量呀。
每个神经元对应这里我们已经通过图形给大家解释神经网络是如何设计和实现的。我们需要用简洁的表达式来整理这一大坨,细思极恐的模型。如下图
图把神经网络的某一层中的所有激活值统一成一列向量。
权重矩阵再把这一层和他的向下一层间的权重放到一个矩阵中。矩阵第 n 行就是这一层所有神经元和下一层第 n 个神经元间所有连线的权重值。
图这一层所有的激活值和下一层第 n 个神经元间连线权重的加权的和。
图要想更好地解解上面的表达式,我们需要有基本的线性代数的知识。
偏移量可以每个模型的偏移量列为向量,把他和之前的矩阵乘积相加。然后再把整个表达式用一个 sigmoid 包起来。对表达式
图现在我们把权重矩阵和用向量符号抽象地表示。这样我们就用简单的表达式表示神经网络各层间激活值的转化。
图这样的表达式可以轻松容易用 Python 或者 R 需要来实现。
图我们之前提及到每个神经元都是包含数值的容器,实际上神经元中装着的值是取决于你输入图形的。
图所以,准确地说每个神经元应该是一个函数而不是数值。输入是上一层的神经元的函数的结果值。输出是一个 0 1间的数值,这个神经网络也是一个函数,输入是 784 像素值,输出是 10 数值。
网友评论