我对神经网络是新手,我想创建一个用于多类分类的前馈神经网络。我可以使用任何公开可用的代码,但不能使用MATLAB工具箱,因为我没有访问权限(所以不能使用神经网络工具箱)。目标是将数据分类到10个类别中的一个。这是数据集,类别由最后一列的三字母代码定义。
在创建神经网络时,是否只需定义节点数量,并让第i层的每个节点连接到第i+1层的每个节点?然后让它们自己学习权重吗?
另外,有没有一个我可以参考的资源,里面有MATLAB代码,用于创建具有任意数量输入、任意数量节点的、进行多类分类的前馈神经网络?
回答:
神经网络的一般介绍(看起来你还需要学习一些关于它们是什么的知识):http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html
阅读这份文档,它解释了带有反向传播的前馈网络是如何工作的(数学很重要):http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
这里有一个带注释的MATLAB实现:http://anoopacademia.wordpress.com/2013/09/29/back-propagation-algorithm-using-matlab/
关于你的问题:
1) “在创建神经网络时,是否只需定义节点数量,并让第i层的每个节点连接到第i+1层的每个节点?”这取决于你使用的神经网络。在简单的全连接前馈神经网络中,是这样的。
2) “然后让它们自己学习权重吗?”这就是一般思路。你有一些已知类别的数据(监督学习),你会将这些数据提供给神经网络来学习模式,学习完成后,你使用这些更新后的权重来分类新的、未见过的数据。