神经网络向量化

From Ufldl

Jump to: navigation, search
Line 1: Line 1:
-
In this section, we derive a vectorized version of our neural network. In our earlier description of  [[Neural Networks]], we had already given a partially vectorized implementation, that is quite efficient if we are working with only a single example at a time. We now describe how to implement the algorithm so that it simultaneously processes multiple training examples. Specifically, we will do this for the forward propagation and backpropagation steps, as well as for learning a sparse set of features.
+
在本节,我们将引入神经网络的向量化实现版本。在前面关于[[神经网络]]介绍的章节中,我们已经给出了一个部分向量化的实现,它在一次输入一个训练样本时是非常有效率的。下边我们看看如何实现同时处理多个训练样本的算法。具体来讲,我们将把正向传播、反向传播这两个步骤以及稀疏特征集学习扩展到多训练样本版本。
-
 
+
-
'''初译''':
+
-
在本节,我们将引入神经网络的向量化。在前面关于神经网络介绍的章节中,我们已经给出了一个部分向量化的实现,这个实现在我们每次只有一个单一训练样本时是非常有效的。下边我们将要看看如何实现算法使得它能够同时处理多个训练样本。具体来讲,我们将针对正向传导、反向传导以及稀疏属性集的学习。
+
-
 
+
-
'''一审:'''
+
-
在本节,我们将引入神经网络的向量化。在前面关于神经网络介绍的章节中,我们已经给出了一个部分向量化的实现,它在一次输入一个训练样本时是非常有效率的。下边我们看看如何实现同时处理多个训练样本。具体来讲,我们将把正向传导、反向传导这两个步骤以及稀疏特征集学习扩展到多训练样本版本。
+
-
 
+
-
 
+
-
== Forward propagation ==
+
-
 
+
-
Consider a 3 layer neural network (with one input, one hidden, and one output layer), and suppose <tt>x</tt> is a column vector containing a single training example <math>x^{(i)} \in \Re^{n}</math> . Then the forward propagation step is given by:
+
==正向传导==
==正向传导==
-
'''初译:'''
+
考虑一个三层网络(一个输入层、一个隐含层、以及一个输出层),并且假定x是包含一个单一训练样本<math>x^{(i)} \in \Re^{n}</math> 的列向量。则向量化的正向传播步骤如下:
-
我们考虑一个三层的神经网络(一个输入层、一个隐含层、以及一个输出层),并且假定<tt>x</tt>是包含一个单一训练样本 <math>x^{(i)} \in \Re^{n}</math> 的列向量。则正向传导的步骤可以如下:
+
-
 
+
-
'''一审:'''
+
-
考虑一个三层网络(一个输入层、一个隐含层、以及一个输出层),并且假定x是包含一个单一训练样本<math>x^{(i)} \in \Re^{n}</math> 的列向量。则正向传导的步骤可向量化表示如下:
+
:<math>\begin{align}
:<math>\begin{align}
Line 27: Line 12:
\end{align}</math>
\end{align}</math>
-
This is a fairly efficient implementation for a single example. If we have <tt>m</tt> examples, then we would wrap a for loop around this.
+
这对于单一训练样本而言是非常有效的一种实现,但是当我们需要处理<tt>m</tt>个训练样本时,则需要把如上步骤包装进一个<tt>for</tt>循环中。
-
 
+
-
'''初译:'''
+
-
这对于单一训练样本是非常有效的一种实现,但是当我们需要考虑<tt>m</tt>个训练样本时,则需要对如上步骤增加<tt>for</tt>循环。
+
-
 
+
-
'''一审:'''
+
-
这可相当有效率地实现对单个样本的训练,但是当我们需要处理<tt>m</tt>个训练样本时,则需要把如上步骤包装进一个<tt>for</tt>循环中。
+
-
 
+
-
Concretely, following the [[Logistic Regression Vectorization Example]], let the Matlab/Octave variable <tt>x</tt> be a matrix containing the training inputs, so that <tt>x(:,i)</tt> is the <math>\textstyle i</math>-th training example.  We can then implement forward propagation as:
+
-
 
+
-
 
+
-
'''初译:'''
+
-
更具体点来说,参照逻辑回归向量化的例子,我们用Matlab/Octave变量<tt>x</tt>表示一个包含输入训练样本的矩阵,<tt>x(:,i)</tt>代表第<math>\textstyle i</math>个训练样本。我们可以用如下的方式实现正向传导:
+
-
'''一审:'''
+
更具体点来说,参照逻辑回归向量化的例子,我们用Matlab/Octave风格变量<tt>x</tt>表示包含输入训练样本的矩阵,<tt>x(:,i)</tt>代表第<math>\textstyle i</math>个训练样本。则x正向传播步骤可如下实现:
-
更具体点来说,参照Logistic回归向量化的例子,我们用Matlab/Octave风格变量<tt>x</tt>表示包含输入训练样本的矩阵,<tt>x(:,i)</tt>代表第<math>\textstyle i</math>个训练样本。则可实现正向传导如下:
+
<syntaxhighlight>  
<syntaxhighlight>  

Revision as of 15:20, 15 March 2013

Personal tools