使用 matlab 神经网络工具箱批量训练一个非常大的数据集
Posted
技术标签:
【中文标题】使用 matlab 神经网络工具箱批量训练一个非常大的数据集【英文标题】:Batch training of a very large data set using matlab neural network toolbox 【发布时间】:2014-03-02 17:45:09 【问题描述】:我想使用 MATLAB 神经网络工具箱在 KTH 数据集中进行语音识别。 现在我的训练数据太大了,我无法一次将它们加载到一个大矩阵中进行批量训练。我发现的一种解决方案是使用增量训练,一次使用适应大量数据。但据我所知,这可能会降低准确性。
我之前使用的是 NICO 工具包。在其中我们可以将输入作为包含训练数据的文件的名称提供。它将读取文件并进行批量训练。但我在 MATLAB 中找不到这样的选项。
有没有办法在 MATLAB 中对如此大的数据集进行批量训练?
【问题讨论】:
【参考方案1】:我不建议对非常大的数据集进行调整。自适应学习最适合表示随时间变化的关系(数据集)的数据集。
如果您有权访问 Parallel Computing Toolbox 和 MATLAB Distributed Computing Server,则可以使用 Neural Network Toolbox 在多台机器上传播计算和数据。
要增加可在特定 RAM 量内训练的数据集的大小,请使用 TRAINSCG(缩放共轭梯度,它比雅可比方法使用更少的内存,或者使用 TRAINBR(贝叶斯正则化雅可比)减少内存(权衡取舍)内存空间的时间)。
假设您仍然没有足够的 RAM,一种可能的解决方案是使用 TRAINBR 在不同的随机数据子集上训练多个网络并减少内存。 TRAINBR 试图找到最简单的解决方案,但每个培训课程可能会找到完全不同的解决方案。在对不同的数据集训练几十个(或更多)神经网络之后,可以平均每个网络的输出。本质上是许多简单的解决方案组合起来找到一个复杂的关系。
确保保留一些不用于训练任何 TRAINBR 神经网络的数据,以便可以独立测量其组合(平均)输出的一般性。
【讨论】:
以上是关于使用 matlab 神经网络工具箱批量训练一个非常大的数据集的主要内容,如果未能解决你的问题,请参考以下文章
神经网络中的输出问题(在 MATLAB 的神经网络工具箱中)