machine-learning - "sparse"在神经网络中意味着什么?

标签 machine-learning neural-network

我看到“稀疏”和“稀疏”的使用方式表明它可以提高模型的准确性。例如:

I think the unsupervised phase might be not so important if some sparse connections or neurons are used, such as rectifier units or convolutional connection, and big training data is available.

来自https://www.quora.com/When-does-unsupervised-pre-training-improve-classification-accuracy-for-a-deep-neural-network-When-does-it-not

在这种情况下“稀疏”意味着什么?

最佳答案

TL;DR:稀疏意味着大部分权重为 0。这可以提高空间和时间效率。

<小时/>

详细版:一般来说,神经网络被表示为张量。每层神经元都由一个矩阵表示。矩阵中的每个条目都可以被认为代表两个神经元之间的连接。在简单的神经网络中,如经典的前馈神经网络,给定层上的每个神经元都连接到后续层上的每个神经元。这意味着每个层必须有 n2 个连接表示,其中 n 是两个层的大小。在大型网络中,这可能需要大量内存和时间来传播。由于神经网络的不同部分通常处理不同的子任务,因此每个神经元没有必要连接到下一层中的每个神经元。事实上,对于神经网络来说,大多数神经元对的连接权重为 0 可能是有意义的。训练神经网络可能会导致这些不太重要的连接权重采用非常接近 0 的值,但如果满足以下条件,准确性不会受到显着影响:这些值恰好是 0。

大多数元素为 0 的矩阵称为稀疏矩阵。如果矩阵足够大且稀疏,则可以更有效地存储这些矩阵,并且可以更有效地对它们执行某些计算。神经网络可以通过假设大多数连接权重等于 0 来利用稀疏性所获得的效率。

我必须说神经网络是一个复杂且多样化的话题。使用的方法有很多种。有些神经网络的形态与我上面提到的简单层连接不同。由于矩阵对于神经网络表示相当通用,因此可以在许多类型的神经网络中利用稀疏性。

关于machine-learning - "sparse"在神经网络中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325673/

相关文章:

python - GridSearchCV 给出 ValueError : continuous is not supported for DecisionTreeRegressor

python - 使用 LSTM 循环网络进行 Pybrain 时间序列预测

algorithm - 如何在图或人工神经网络中引导信息流?

python - 用于文本分类的 SkLearn 模型

python - 为什么在softmax_cross_entropy_with_logits中将logit解释为 'unscaled log probabililty'?

machine-learning - `sklearn.model_selection.RandomizedSearchCV` 是如何工作的?

neural-network - 神经网络输出分组 0.5?

tensorflow - 如何清理图像以与 MNIST 训练模型一起使用?

javascript - 为什么我的 Brain.js 神经网络卡在中间?

tensorflow - 在大量类别上训练分类器时,SVM 非常慢