首页 > 解决方案 > 矩阵形状讲座之间的差异

问题描述

我目前正在通过两堂课学习深度学习。让我感到困惑的是,两节课在塑造输入矩阵 X 时存在符号差异。

在 Coursera 的讲座中,他们制作了一个形状为(特征数,样本数)的矩阵 X,以便他们垂直堆叠样本。否则,另一堂课将样本水平堆叠,以便每一行代表一个样本。

是什么造成了这种差异,我应该遵循哪一个?

标签: pythonmachine-learningdeep-learning

解决方案


多件事情要在这里解压:

首先让我们首先假设我们的神经网络中只有一层,批次中只有一个样本,您可以垂直堆叠特征,因为这样很直观, 神经网络基本结构

如上图所示,每个特征都将由一个输入节点表示,因此如果集合中有多个样本,则将它们排列为(特征数,样本数)的形状是有意义的,然后再继续到下一部分,请确保您正确理解了这一部分。

第 2 部分现在当我们想要移动到下一层时,我们想让它看起来像上一层的输出是这一层的输入,所以我们希望输入的形状为(隐藏层数,样本数),以便我们以一致的方式对每一层进行可视化,现在我们还必须前馈,为此,在我们的隐藏层权重矩阵中,我们有形状(前一层的特征数/神经元数,特征数/神经元数在当前层),现在为了保持一致性,我们必须在乘以 X 之前转置权重矩阵(W)。我希望这能解释为什么我们堆叠样本列。

现在我们转向为什么它们有时被表示为水平堆叠,答案是因为计算成本和损失更直观,你的输出层 y 堆叠为垂直列,你的预测 y_hat 作为垂直列,这使得陈述像 y - y_hat 这样的方式比水平堆叠而不是向量更直观。

那么应该从中学到什么,在训练输入输入时,我们将它们堆叠为(特征数量,样本数量)以保持整个网络的一致性和直观性,我们垂直堆叠样本以获得 Y 作为向量。在实践中,人们通常会避免垂直堆叠样本,他们只是获得 y 的转置,或者从水平堆叠中输出向量,但最好在一开始就进行可视化。

编辑 还表示输入数据,例如,当它以表格结构表示时,如 excel、csv、Dataframe 等。样本垂直堆叠。

如果您有任何困惑/疑问,请在下方评论。

图片来源:谷歌


推荐阅读