gpt4 book ai didi

用于分类的深度置信网络的 Matlab 示例代码

转载 作者:行者123 更新时间:2023-11-30 09:37:48 27 4
gpt4 key购买 nike

我有一个包含 40 个特征向量的数据集,分为 4 个类。有人可以在 Matlab 中给出如何应用深度信念网络进行分类(并解释参数)的示例代码吗?可以使用任意库/tooblox,但应该在Matlab中。

例如,有 shogun 工具箱 ( http://www.shogun-toolbox.org/ )、DeeBNet 工具箱 ( http://ceit.aut.ac.ir/~keyvanrad/DeeBNet%20Toolbox.html ) 或深度学习工具箱 ( http://www.mathworks.com/matlabcentral/fileexchange/38310-deep-learning-toolbox ),但不幸的是,它们都没有很好的文档记录,因为我对这些工具箱完全陌生深度学习/神经网络对我来说真的很难。

编辑:我应该为以下参数选择什么或者我应该在什么范围内搜索?

nn.activation_function              = 'tanh_opt';   %  Activation functions of hidden layers: 'sigm' (sigmoid) or 'tanh_opt' (optimal tanh).
nn.learningRate = 2; % learning rate Note: typically needs to be lower when using 'sigm' activation function and non-normalized inputs.
nn.momentum = 0.5; % Momentum
nn.scaling_learningRate = 1; % Scaling factor for the learning rate (each epoch)
nn.weightPenaltyL2 = 0; % L2 regularization
nn.nonSparsityPenalty = 0; % Non sparsity penalty
nn.sparsityTarget = 0.05; % Sparsity target
nn.inputZeroMaskedFraction = 0; % Used for Denoising AutoEncoders
nn.dropoutFraction = 0; % Dropout level (http://www.cs.toronto.edu/~hinton/absps/dropout.pdf)
nn.testing = 0; % Internal variable. nntest sets this to one.
nn.output = 'sigm'; % output unit 'sigm' (=logistic), 'softmax' and 'linear'

opts.numepochs = 1;
opts.batchsize = 100;
opts.momentum = 0;
opts.alpha = 1;

最佳答案

所以 DBN 相当复杂,我花了几个月的时间才真正理解它们。这是一个快速概述 -

神经网络的工作原理是具有某种特征,并将它们置于“全有或全无激活”层。这些激活具有权重,这就是神经网络试图“学习”的内容。神经网络在 80-90 年代就已经消亡了,因为系统无法正确找到这些权重。直到令人敬畏的2006 paper of Geoff Hinton - 谁想用受限玻尔兹曼机对网络进行预训练,以获得正确的权重。

这取决于你的目标,但如果你的目标是了解它们是如何工作的,我会从 Hinton 的原始论文开始,重写它以具有函数,而不是论文中的静态 3 层网络。这将使您对正在学习的权重和激活方面发生的事情有一个很好的直觉。

现在回答你的第二个问题 - 有一些争论 - 但根据我的经验,最关键的因素是提出系统的架构,这些变量如下:

  • 层数
  • 可见数量
  • 节点每层隐藏节点的数量

您可以控制的其他变量我将其归类为优化变量。这些是:

  • 激活函数 - tanh、sigmoid、relu
  • 学习变量的学习率

不过,我要警告您,不要期望取得出色的结果,并准备好拥有一个需要很长时间训练的系统。

您可以选择的第二条路线是尝试其他一些系统,例如 Caffe,这可能会为您提供更多可用的结果。

无论如何,祝你好运:)

ps,对于如此小的数据,您可能会考虑使用 SVM。

关于用于分类的深度置信网络的 Matlab 示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30818691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com