1

我是matlab新手,找不到解决问题的方法...

问题是什么?

我必须使用 matlab 创建一个具有近 25k 输入和 10 个输出的神经网络。还有 300 种模式可供学习。

当我在 matlab 中阅读有关神经网络的信息时,我看到所有输入/学习数据都在一个矩阵中。xor 或类似的小东西没关系。然后我意识到我必须创建包含 25 000 * 300 个元素(750 万个整数)的矩阵。

1)我可以通过添加新行(学习模式)来扩展矩阵吗?

2)或者它可能是这样的:

learnPatternMatrix1 = [1, 2, 3 , ..., 25 000];
perfectOutputMatrix1 = [1, 2, 3, ... , 10];

network.addPattern(learnPatternMatrix1, perfectOutputMatrix1);
network.addPattern(learnPatternMatrix2, perfectOutputMatrix2);
% ...
network.addPattern(learnPatternMatrix300, perfectOutputMatrix300);
network.learn()?

感谢帮助 ;)

4

1 回答 1

0

很抱歉,我没有让 Matlab 处理这种大小的矩阵的答案。但是,我确实有一些可能与问题相关的评论。

与大多数机器学习算法一样,神经网络在与数据点数量相比存在大量特征(输入)时不太可能表现良好。除非您的数据点比您描述的 250,000 个特征多一个或两个数量级,否则这种方法可能行不通。你好像只有300箱。即使支持向量机,据说对这个问题很健壮,在这些条件下也不太可能表现良好。

如果没有足够的数据用于特征数量,您可以将其视为有保证的过度拟合,因为每个数据点将在特征空间中具有独特的位置并广泛分离。

你考虑过减少特征吗?这将解决您的 Matlab 问题,并且可能会提高您的人工神经网络的性能。

于 2013-05-08T14:34:39.573 回答