预训练如何改善神经网络的分类?

时间:2015-12-29 16:05:43

标签: machine-learning neural-network deep-learning conv-neural-network autoencoder

到目前为止,我所阅读的许多论文都提到了这些提及的预训练网络可以提高反向传播错误的计算效率,并且可以使用RBM或自动编码器实现。

  1. 如果我理解正确,AutoEncoders可以通过学习来实现 身份功能,如果它的隐藏单位小于 输入数据,然后它也做压缩,但这甚至有什么 与提高传播计算效率有关 错误信号向后?是因为前者的重量 训练有素的隐藏单位与初始值没有多大差异?

  2. 假设正在阅读本文的数据科学家将自己 已经知道AutoEncoders将输入作为目标值 他们是学习身份的功能,被视为 无监督学习,但可以应用这种方法 卷积神经网络,第一个隐藏层是 功能图?每个要素图都是通过卷积学习来创建的 内核在图像中有一个感受野。这个学到的内核,如何 这可以通过预训练(无监督的方式)来获得吗?

2 个答案:

答案 0 :(得分:11)

需要注意的一点是,自动编码器会尝试学习非平凡识别功能,而不是识别功能本身。否则他们根本不会有用。那么预训练有助于将权重向量移动到错误表面上的良好起点。然后使用基本上进行梯度下降的反向传播算法来改进这些权重。请注意,梯度下降卡在关闭的局部最小值中。

enter image description here

[忽略发布的图片中的全局最小值一词,并将其视为另一个更好的本地最小值]

直观地说,假设您正在寻找从原点 A 到目的地 B 的最佳路径。有一个没有显示路线的地图(你在神经网络模型的最后一层获得的错误)有点告诉你要去哪里。但是你可能会把自己置于一条有很多障碍的路上,上山和下山。然后假设有人告诉你一条路线是他之前经历过的方向(预训练)并递给你一张新地图(pre =训练阶段的起点)。

这可能是一个直观的原因,为什么从随机权重开始并立即开始使用反向传播优化模型可能不一定帮助您实现使用预训练模型获得的性能。但是,请注意,许多获得最新结果的模型不一定使用预训练,他们可能会将反向传播与其他优化方法结合使用(例如adagrad,RMSProp,Momentum和......),以避免获得陷入糟糕本地最低点。

enter image description here

Here是第二张图片的来源。

答案 1 :(得分:0)

我对自动编码器理论知之甚少,但我对RBM做了一些工作。 RBM做的是他们预测看到特定类型的数据的概率是什么,以便将权重初始化到正确的球场 - 它被认为是(无监督的)概率模型,因此您不能使用已知标签进行更正。基本上,这里的想法是,学习率太大将永远不会导致收敛,但是如果学习率太小则需要永远训练。因此,通过这种方式“预训练”,您可以找到权重的球场,然后可以将学习率设置得很小,以便将它们降低到最佳值。

关于第二个问题,不,你通常不会预先知道内核,至少不是以无人监督的方式。我怀疑这里预训练的含义与你的第一个问题有点不同 - 也就是说,发生的事情是他们正在采用预训练模型(比如来自模型动物园)并用新的集合进行微调。数据的。

您使用的模型通常取决于您拥有的数据类型和手头的任务。 Convnets我发现能够更快更有效地训练,但并非所有数据在卷积时都有意义,在这种情况下dbns可能是最佳选择。除非说,你有少量数据然后我会完全使用神经网络以外的东西。

无论如何,我希望这有助于澄清你的一些问题。