神经网络向量化

From Ufldl

Jump to: navigation, search
Line 143: Line 143:
但在上面的代码中,仍旧含有一个需要在整个训练集上运行的<tt>for</tt>循环,这里<tt>delta2</tt>是一个列向量。
但在上面的代码中,仍旧含有一个需要在整个训练集上运行的<tt>for</tt>循环,这里<tt>delta2</tt>是一个列向量。
-
作为对照,回想一下在向量化的情况下,<tt>delta2</tt>现在应该是一个有m列的矩阵,分别对应着<math>m</math>个训练样本。还要注意,稀疏惩罚项<tt>sparsity_delta</tt>对所有的训练样本一视同仁。这意味着要向量化实现上面的计算,只需在构造<tt>delta2</tt>时,往矩阵的每一列上分别加上相同的值即可。因此,要向量化上面的代码,我们只需简单的用<tt>repmat</tt>命令把<tt>sparsity_delta</tt>加到<tt>delta2</tt>的每一列上即可(译者注:这里原文描述得不是很清楚, 看似应加到上面代码中<tt>delta2</tt>行等号右边第一项,即<tt>W2'*delta3</tt>上)。
+
作为对照,回想一下在向量化的情况下,<tt>delta2</tt>现在应该是一个有m列的矩阵,分别对应着<math>m</math>个训练样本。还要注意,稀疏惩罚项<tt>sparsity_delta</tt>对所有的训练样本一视同仁。这意味着要向量化实现上面的计算,只需在构造<tt>delta2</tt>时,往矩阵的每一列上分别加上相同的值即可。因此,要向量化上面的代码,我们只需简单的用<tt>repmat</tt>命令把<tt>sparsity_delta</tt>加到<tt>delta2</tt>的每一列上即可(译者注:这里原文描述得不是很清楚,看似应加到上面代码中<tt>delta2</tt>行等号右边第一项,即<tt>W2'*delta3</tt>上)。

Revision as of 14:17, 16 March 2013

Personal tools