#Matlab的神经网络工作箱你了解吗?

    Matlab自带的神经网络工具箱功能很强大的,在Matlab 2010b以后的版本都有,操作步骤也非常简单。可以直接在应用栏下拉菜单机器学习工具里面找到,总共有四种工具箱可以选择,四种工具箱:拟合/分类/聚类/时间序列。

    也可以直接在命令行输入“nnstart”,会自动跳出神经网络的工具箱供你选择。



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_拟合

    举例最常用的,nftool,拟合



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_拟合_02

    基本界面就是这个样子,它是建立一个单隐藏层的神经网络来做数据拟合,输入和输出数据都可以是多维的,隐藏层的神经元个数可以自己调整。

    这里需要解释的是,隐藏层(hidden layer)的神经元数量的选取没有一定的准则。数量过少会使得拟合效果不好(模式分类不够准确),数量过多有可能出现过拟合状态(对于其他数据的识别能力较差)。所以一般的做法是保留默认值,如果对默认值不满意再增加神经元数量。

    点击next,此时已经创建好神经网络



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_神经网络_03

matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_matlab划分训练集验证和测试集代码_04

接下来是对你的样本数据进行划分,划分成训练集、验证集和测试集,这可以根据自己需要设定。



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_数据_05

    验证集和测试集的区别就在于验证集也是参与训练过程的,训练过程中在训练集训练好后会代入验证集进行验证,测试集就仅仅只是做个预测。

    下一步设置隐藏层神经元个数,默认是10个,这个根据情况自己调整,一般不要设的过大,不仅训练速度很慢而且容易过拟合。



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_数据_06

    训练算法提供了三种选择,常用的是LM算法,就是梯度下降法和高斯牛顿法的结合,训练速度比较快而且准确率也不错,其他两种算法也可以,但由于权值初始化是随机的,需要多训练几次才会得到想要的结果。

    训练结束后可以在plots查看图表。



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_神经网络_07

    最后会出现这样的截面,可以选择第一个“Simple Script”,它会自动生成一个代码的脚本文件,你可以保存下来,下次直接在脚本里面修改参数就可以了,还可以自己添加循环之类的公式。



matlab中神经网络工具箱怎样设置初始权值 matlab神经网络工具箱_matlab划分训练集验证和测试集代码_08

      对于plots,较有参考价值的为后面三个。