什么是预训练?如何预训练神经网络?


10

我知道预培训可避免常规培训中的某些问题。如果我将反向传播与自动编码器一起使用,我知道我会遇到时间问题,因为反向传播的速度很慢,而且我会陷入局部最优状态而无法学习某些功能。

我不了解的是我们如何预训练网络,以及具体如何进行预训练。例如,如果给我们一堆受限的玻尔兹曼机器,我们将如何对该网络进行预训练?


2
FX=最大值X0

是的,我正在假设存在大量未标记的样本,很少甚至没有标记的样本。
Michael Yousef

Answers:


2

您首先要分别训练堆栈中的每个RBM,然后将其合并为可以进一步调整的新模型。

假设您有3个RBM,则使用数据(例如一堆图像)训练RBM1。RBM2受RBM1的输出训练。对RBM3进行了RBM2输出的培训。想法是,每个RBM模型都具有代表图像的特征,并且它们在此过程中所学习的权重对于其他区分性任务(例如分类)很有用。


0

对堆叠的RBM进行预训练是要逐层贪婪地最小化定义的能量,即最大化可能性。G. Hinton提出了CD-k算法,可以将其视为Gibbs采样的一次迭代。


因此,对堆叠式RBM进行预训练可使我们最小化定义的能量并获得更好的结果。然后,Hinton的“对比发散”算法是我们实际进行预训练的方式。预培训如何精确地影响学习额外功能?我认为对于速度问题,CD算法比反向传播要快得多。
Michael Yousef
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.