从自我学习到深层网络

From Ufldl

Jump to: navigation, search
Line 24: Line 24:
【一审】
【一审】
在自我学习中,我们首先利用未标注数据训练一个稀疏自动编码器。随后,给定一个新样本<math>x</math>,我们通过隐含层提取出特征<math>a</math>。上述过程图示如下:
在自我学习中,我们首先利用未标注数据训练一个稀疏自动编码器。随后,给定一个新样本<math>x</math>,我们通过隐含层提取出特征<math>a</math>。上述过程图示如下:
 +
Line 34: Line 35:
【一审】
【一审】
我们感兴趣的是解决一个分类任务,目标是预测标注类型<math>\textstyle y</math>。我们拥有标注训练集<math>\textstyle \{ (x_l^{(1)}, y^{(1)}), (x_l^{(2)}, y^{(2)}), \ldots (x_l^{(m_l)},y^{(m_l)}) \}</math>,包含<math>\textstyle m_l</math>个标注样本。此前我们已经证明,可以利用稀疏自动编码器计算获得的特征<math>\textstyle a^{(l)}</math>(“替代”表示)来替代初始特征。如此,我们就获得训练数据集<math>\textstyle \{(a^{(1)},y^{(1)}), \ldots (a^{(m_l)}, y^{(m_l)}) \}</math>。最终,我们训练得到一个从特征<math>\textstyle a^{(i)}</math> 到分类标注<math>\textstyle y^{(i)}</math>的logistic分类器。为说明这一过程,如同我们此前的笔记,可以如下图描述logistic回归单元(橘黄色)。
我们感兴趣的是解决一个分类任务,目标是预测标注类型<math>\textstyle y</math>。我们拥有标注训练集<math>\textstyle \{ (x_l^{(1)}, y^{(1)}), (x_l^{(2)}, y^{(2)}), \ldots (x_l^{(m_l)},y^{(m_l)}) \}</math>,包含<math>\textstyle m_l</math>个标注样本。此前我们已经证明,可以利用稀疏自动编码器计算获得的特征<math>\textstyle a^{(l)}</math>(“替代”表示)来替代初始特征。如此,我们就获得训练数据集<math>\textstyle \{(a^{(1)},y^{(1)}), \ldots (a^{(m_l)}, y^{(m_l)}) \}</math>。最终,我们训练得到一个从特征<math>\textstyle a^{(i)}</math> 到分类标注<math>\textstyle y^{(i)}</math>的logistic分类器。为说明这一过程,如同我们此前的笔记,可以如下图描述logistic回归单元(橘黄色)。
 +
【原文】
【原文】
Line 43: Line 45:
【一审】
【一审】
现在,考虑我们利用这个方法所学到的整个分类器(输入-输出映射)。具体来说,让我们通过把一个新的测试样<math>\textstyle x</math>本映射到一个新的预测<math>p(y=1|x)</math>来检验我们的分类器。。将此前的两张图片结合起来,我们可以获得该映射函数的图形表示。最终的分类器可以表示为:
现在,考虑我们利用这个方法所学到的整个分类器(输入-输出映射)。具体来说,让我们通过把一个新的测试样<math>\textstyle x</math>本映射到一个新的预测<math>p(y=1|x)</math>来检验我们的分类器。。将此前的两张图片结合起来,我们可以获得该映射函数的图形表示。最终的分类器可以表示为:
 +
【原文】
【原文】
Line 52: Line 55:
【一审】
【一审】
该模型的参数通过两个步骤训练获得:第一层从输入<math>\textstyle x</math>到隐含单元<math>\textstyle a</math>的权重权值<math>\textstyle W^{(1)}</math>映射可以通过稀疏自动编码器训练过程训练获得。第二层从激活<math>\textstyle a</math>到输出<math>\textstyle y</math>的权重<math>\textstyle W^{(2)}</math>映射可以通过logistic回归或softmax回归训练获得。
该模型的参数通过两个步骤训练获得:第一层从输入<math>\textstyle x</math>到隐含单元<math>\textstyle a</math>的权重权值<math>\textstyle W^{(1)}</math>映射可以通过稀疏自动编码器训练过程训练获得。第二层从激活<math>\textstyle a</math>到输出<math>\textstyle y</math>的权重<math>\textstyle W^{(2)}</math>映射可以通过logistic回归或softmax回归训练获得。
 +
【原文】
【原文】
Line 62: Line 66:
我们描述的整个/最终分类器明显是一整个大的神经网络。因此,在训练获得模型最初参数(利用自动编码器训练第一层,利用logistic/softmax回归训练第二层)之后,我们可以进一步修正模型参数,进而降低训练误差。具体来说,我们可以对参数进行微调,在现有参数的基础上采用梯度下降或者L-BFGS来降低标注样本集
我们描述的整个/最终分类器明显是一整个大的神经网络。因此,在训练获得模型最初参数(利用自动编码器训练第一层,利用logistic/softmax回归训练第二层)之后,我们可以进一步修正模型参数,进而降低训练误差。具体来说,我们可以对参数进行微调,在现有参数的基础上采用梯度下降或者L-BFGS来降低标注样本集
<math>\textstyle \{ (x_l^{(1)}, y^{(1)}), (x_l^{(2)}, y^{(2)}), \ldots (x_l^{(m_l)}, y^{(m_l)}) \}</math>的训练误差。
<math>\textstyle \{ (x_l^{(1)}, y^{(1)}), (x_l^{(2)}, y^{(2)}), \ldots (x_l^{(m_l)}, y^{(m_l)}) \}</math>的训练误差。
 +
【原文】
【原文】
Line 71: Line 76:
【一审】
【一审】
开展微调的时候,初始的非监督特征学习步骤(也就是自动编码器和logistic分类器训练)有时候被称为预训练。微调的好处在于,标注数据集也可以用来修正权值<math>W^{(1)}</math>,因此通过隐含单元层所提取的特征<math>a</math>也可以获得修正。
开展微调的时候,初始的非监督特征学习步骤(也就是自动编码器和logistic分类器训练)有时候被称为预训练。微调的好处在于,标注数据集也可以用来修正权值<math>W^{(1)}</math>,因此通过隐含单元层所提取的特征<math>a</math>也可以获得修正。
 +
【原文】
【原文】
Line 80: Line 86:
【一审】
【一审】
到现在为止,我们描述上述过程时,都假设采用了“替代”表示而不是“级联”表示。在替代表示中,logistic分类器所看到的训练样本格式为<math>(a^{(i)}, y^{(i)})</math>;而在级联表示中,分类器所看到的训练样本格式为<math>((x^{(i)}, a^{(i)}), y^{(i)})</math>。对级联表示同样可以开展微调(在级联表示神经网络中,输入值<math>x_i</math>也直接被输入至输出层的logistic分类器。对我们此前讨论的神经网络示意图稍加更改,即可获得其示意图。其特点在于,第一层的输入节点除将越过隐含层,与第三层输出节点直接相连)。但是只要开展微调,级联表示相比替代表示几乎没有优势。因此,如果需要开展微调,我们通常在建立替代表示网络(但是如果不开展微调,级联表示的效果有时候会好得多)。
到现在为止,我们描述上述过程时,都假设采用了“替代”表示而不是“级联”表示。在替代表示中,logistic分类器所看到的训练样本格式为<math>(a^{(i)}, y^{(i)})</math>;而在级联表示中,分类器所看到的训练样本格式为<math>((x^{(i)}, a^{(i)}), y^{(i)})</math>。对级联表示同样可以开展微调(在级联表示神经网络中,输入值<math>x_i</math>也直接被输入至输出层的logistic分类器。对我们此前讨论的神经网络示意图稍加更改,即可获得其示意图。其特点在于,第一层的输入节点除将越过隐含层,与第三层输出节点直接相连)。但是只要开展微调,级联表示相比替代表示几乎没有优势。因此,如果需要开展微调,我们通常在建立替代表示网络(但是如果不开展微调,级联表示的效果有时候会好得多)。
 +
【原文】
【原文】

Revision as of 16:21, 13 March 2013

Personal tools