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

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

到目前为止,我读过的许多论文都提到“预训练网络可以提高反向传播误差方面的计算效率”,并且可以使用 RBM 或自动编码器来实现。

  1. 如果我理解正确的话,自动编码器的工作原理是学习 恒等函数,如果它的隐藏单元小于 输入数据,然后它也进行压缩,但这有什么用 与提高传播计算效率有关的任何事情 错误信号向后?是不是因为预置的权重 经过训练的隐藏单元与其初始值相差不大?

  2. 假设正在阅读本文的数据科学家会自己 已经知道自动编码器将输入作为目标值,因为 他们正在学习恒等函数,该函数被视为 无监督学习,但是这种方法可以应用于 第一个隐藏层是的卷积神经网络 特征图?每个特征图都是通过卷积学习来创建的 图像中具有感受野的内核。这个学习了内核,如何 这可以通过预训练(无监督方式)获得吗?

最佳答案

需要注意的一件事是,自动编码器尝试学习非平凡识别函数,而不是识别函数本身。否则它们就根本没有用处。那么预训练有助于将权重向量移向误差表面上的良好起点。然后使用反向传播算法(基本上是梯度下降)来改进这些权重。请注意,梯度下降陷入局部极小值附近。

enter image description here

[忽略发布图像中的术语全局最小值,并将其视为另一个更好的局部最小值]

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

这可能是一个直观的原因,说明为什么从随机权重开始并立即开始通过反向传播优化模型可能不一定能帮助您实现通过预训练模型获得的性能。然而,请注意,许多达到最先进结果的模型不一定使用预训练,它们可能会将反向传播与其他优化方法(例如 adagrad、RMSProp、Momentum 等)结合使用,以期避免出现陷入局部最小值。

enter image description here

Here是第二张图片的来源。

关于machine-learning - 预训练如何改善神经网络的分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514687/

相关文章:

machine-learning - 决策树学习算法中的重复训练数据

python - ValueError : could not broadcast input array from shape (11253, 1) 进入形状 (11253)

machine-learning - 了解caffe库

machine-learning - 具有用户特定数据的 Tensorflow 模型

algorithm - 缺少项的 SVD

machine-learning - 将 keras CNN 应用于新数据集

python - CNN 给出随机答案,而全连接神经网络工作正常

machine-learning - keras 模型中的 NaN 损失

python - Tensorflow 中的目标必须是一维 Top_k_categorical_accuracy

python - 用于导出 C++ 的 vgg16 keras 保存模型