神经网络:是否应该针对每种情况重写算法?

时间:2011-12-21 20:13:16

标签: machine-learning neural-network

我有2个数字序列,我想继续使用神经算法(其中有一些逻辑,但我不知道是什么,并且没有影响选择的外部因素)。两个序列中的每个序列都有一些关系,以及它们之间的关系。

所以,我是机器学习的新手,但我有这样一个想法:是否有任何已编写且运行良好的应用程序(库)为我实现精确的算法,在使用之前不要全部学习它们。就像“最常用的神经算法套件”一样。

我正在考虑分析一些音乐表和两个序列:“音符”和“持续时间”。

3 个答案:

答案 0 :(得分:3)

好的,根据评论,我认为我得到了你想要的东西。

通常,不,您不需要重写ANN的标准算法。但请注意,ANN不是 算法,而是一组算法(包括BackPropagation-ANN,Hopfield-ANN,Boltzmann Machine等)。其中我推荐 BP-ANN ,它简单,适合您的项目。您可能想要输入已知音符和持续时间的序列,然后期望输出下一个音符和持续时间。

要使用BP-ANN,您无需重写它们。由于其广泛使用的算法,它有许多工具包和开源实现:

  1. Google“back propagation neural network implementation”,您会轻松找到它。 Github上还有一些开源项目(C语言和Matlab):https://github.com/search?q=back+propagation&type=Everything&repo=&langOverride=&start_value=1
  2. 如果您还想深入了解其实施细节,请继续阅读:http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1279&context=ecetr&sei-redir=1

答案 1 :(得分:1)

如果您对神经网络感兴趣,可以使用大量库。 ANNIE是一个这样的开源示例,MATLAB Neural Network toolbox是一个 商业例子。这些是你告诉它的架构的库 神经网络,你可以训练,测试,验证等等 这些机器学习方法就是你如何表示你的数据 你得到的评论(例如Predictor's)。有时你得到 一个代表性的优秀结果和其他人的非常糟糕的结果。

还有用于训练SVM的库(用于训练神经元的专用算法) 网络)具有二次正则化,LIBSVM是一个很好的例子。

还有很多关于用神经网络预测时间序列的工作(如果 这就是你想要用音乐做的事情,我不确定你到底想要什么。)

答案 2 :(得分:-1)

如果输入是一系列(音符,持续时间)对,那么我怀疑你会通过总结历史音符到音符的过渡或通过类似的东西来捕获音乐的语法来进一步发展(马尔可夫分析等),而不是将其填充到神经网络中。也可以尝试将系列表示为音符差异,测量新音符的音阶上下音量,而不是音符本身的实际值。