我是matlab的新手,我无法找到解决问题的方法......
有什么问题?
我必须使用matlab创建一个神经网络,它将拥有近25k输入和10个输出。还有300种模式需要学习。
当我在matlab中阅读有关神经网络的信息时,我看到所有输入/学习数据都在一个矩阵中。 xor或类似的东西都可以。然后我意识到我必须创建包含25 000 * 300个元素的矩阵( 7,5万个整数)。
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()?
感谢您的帮助;)
答案 0 :(得分:0)
对不起,我没有答案让Matlab处理那么大的矩阵。不过,我确实有一些可能与问题相关的评论。
与大多数机器学习算法一样,当与数据点数量相比存在大量特征(输入)时,神经网络不太可能表现良好。除非您有一个或两个数量级的数据点,而您描述的250,000个功能,否则这种方法可能无效。你好像只有300箱。对于这个问题,即使是支持向量机也不太可能在这些条件下表现良好。
如果没有足够数量的特征数据,您可以将其视为有保证的过度拟合,因为每个数据点将在特征空间中独特定位并且分开。
您是否考虑过降低功能?这将解决您的Matlab问题,并可能提高您的ANN的性能。