如何描绘神经网络
相关概述
这是向更高级的神经网络健康前进的关键。
在 10,000 英尺的高度,这是所有神经网络的功能。假设神经网络实际上只是一系列由层连接的矩阵,让我们稍微放大一下,考虑一下任何特定的权重矩阵都在做什么。
当您只有两个图层(输入和输出)时,权重矩阵知道输出图层应该基于输出数据集。它寻找输入和输出数据集之间的相关性,因为它们是在输入和输出层捕获的。
当全局相关性告诉每一层它应该是什么时,局部相关性可以局部优化权重。当最后一层的一个神经元说,“我需要再高一点,”它接着告诉紧挨着它的前一层的所有神经元,“嘿,前一层,给我发送更高的信号。”然后他们告诉他们前面的神经元,“嘿。给我们发送更高的信号。”这就像一个巨大的电话游戏——在游戏结束时,每一层都知道它的哪一个神经元需要更高和更低,然后本地相关汇总接管,相应地 更新权重。
简化可视化
先前过于复杂的可视化在简化思维的同时,让我们也简化可视化。
之前的比较复杂的网格表示方法
权重矩阵是从一个节点到另一个节点的直线,向量是节点的条带。
对复杂的连接表示法进行简化。
实际上我们这种表示方式的本质是线性代数的方式,每一个圆形代表一个矩阵/向量的值,一个椭圆代表一个矩阵/向量。
不是说椭圆是圆角的矩形,而这种图示方法比之前的体现所有神经元之间的连接,没有损失信息。
神经网络就像乐高积木,每个积木都是一个向量或矩阵。我们将建造新的神经网络架构,就像人们用乐高积木建造新结构一样。相关性总结最大的优点是,导致它的所有细节(反向传播、梯度下降、阿尔法、下降、小批量等等)都不依赖于乐高的特定配置。 无论如何组合矩阵系列,将它们与层粘合在一起,神经网络都将尝试通过修改输入层和输出层之间的权重来学习数据中的模式。
我们将构建所有的神经网络,如图。条带是一个向量,盒子是一个矩阵,圆圈是单独的权重。请注意,该框可以被视为“向量的向量”,水平或垂直。
进一步简化
矩阵的维数由层决定。
由于每一层的神经元之间的权重矩阵,仍然是由向邻居层的神经元数量决定,知道了每一层的神经元的数量就知道了所有信息所以中间的神经元的连接信息就可以省略,所以就有了下面
看网络预测
在图 1 中,选择了路灯数据集中的一个数据点。layer_0 设置为正确的值。
在图 2 中,对 layer_0 执行了四种不同的加权求和。这四个加权和由 weights_0_1 执行。提醒一下,这个过程叫做向量矩阵乘法。这四个值存放在 layer_1 的四个位置,并通过 relu 函数(将负值设置为 0)。为了清楚起见,layer_1 中从左数第三个值应该是负数,但是 relu 函数将其设置为 0。
如图 3 所示,最后一步再次使用矢量矩阵乘法过程对 layer_1 进行加权平均。这产生了数字 0.9,这是网
络的最终预测。
使用字母而不是图片进行可视化
有这些图片和详细的解释实际上是一个简单的代数。
W代表权重矩阵。
W0代表第0层到第一层的连接的矩阵,layer的l代表每一层的神经元的值,lo代表第0层。
可以看到
一个很好的变量选择,指向它们各自的神经网络部分。但是定义它们并不能显示它们之间的联系。让我们通过向量矩阵乘法来组合变量。
是一个从输入层到输出层的非常简单的神经网络图+符号的方式。
链接变量
字母可以组合起来表示功能和操作。
向量矩阵乘法很简单。要想象两个字母彼此相乘,把它们放在一起
l0W0:取第 0 层向量,用权重矩阵 0 执行向量矩阵乘法。
l1W1:取第 1 层向量,用权重矩阵 1 进行向量矩阵乘法。
l1 = relu(l0W0):"要创建第 1 层向量,取第 0 层向量,用权重矩阵 0 执行向量矩阵乘法;然后对输出执行 relu 功能(将所 有负数设置为 0)。
l2 = l1W1:要创建第 2 层向量,取第 1 层向量,用权重矩阵 1 执行向量矩阵乘法
前向传播步骤中的所有逻辑都可以包含在这个公式中。注意:在这个公式中,假设向量和矩阵的维数是正确的。
l2 = relu(l0W0)W1
layer_2 = relu(layer_0.dot(weights_0_1)).dot(weights_1_2) l2 =
relu(l0W0)W1
可视化工具的重要性
我们将把这些向量和矩阵以一些创造性的方式结合起来。
如前所述,神经结构控制信号如何通过网络流动。如何创建这些体系结构将影响网络检测相关性的方式。会发现,希望创建的体系结构能够最大限度地提高网络专注于有意义的相关领域的能力,同时最大限度地降低网络专注于包含噪声的领域的能力。
但是不同的数据集和领域有不同的特征。例如,图像数据与文本数据具有不同种类的信号和噪声。尽管神经网络可以在许多情况下使用,但是不同的体系结构更适合不同的问题,因为它们能够定位某些类型的相关性。
绘制神经网络: