机器学习之BP神经网络学习笔记(基于matlab实现)

关于BP神经网络,你不得不注意的问题 1.模型超参数 【机器学习之BP神经网络学习笔记(基于matlab实现)】***BP神经网络我在学习的过程中模型参数主要觉得这几个需要关注(学习率,隐藏层神经元个数,隐藏层层数【默认为1】)
***学习率一般范围是0.01-0.25,学习率太大容易过拟合,太小容易欠拟合,这里可以利用for循环,挨个试试,选取一个最好的参数。
***隐藏层神经元有很多的经验公式确定,但是经验公式并不一定具有代表性,可以根据某个经验公式利用for进行尝试确定。
***隐藏层层数这里就感觉要是模型输入参数复杂的话需要多设立一些,之前看的文献好像是十几个隐藏层,每层60个神经元,但是感觉有时候一层效果就整挺好。
2.过拟合问题 有很多方法,像提前终止法,正则化方法(L1或L2正则化)等,最直接的是增大训练样本,数据质量感觉还是最主要的影响因素。
3.模型构建 主要函数
net = newff(p_train,t_train,S1);
%p_train 训练集输入
%t_train 训练集输出
%S1 隐藏层神经元个数
4.结果 这里可以用RMSE或者R2或者其他精度评价标准,在这里不太会用得分什么的,没有太仔细研究。
5.一些原理问题及个人感受 BP神经网络属于反向传播的网络,即误差反向传播,每一次训练都会根据训练结果不断的优化上一次得到的权值和阈值,但是也造成了模型的不确定性,建议固定训练样本的选取可能会更好一些。BP神经网络也由于这个调整权值
阈值,当数据量很大时,运行时间也大大增加,这里应该有很多加速方法,不过没有尝试,有时间再试试。
要注意的问题 1.数据输入时要归一化,防止拟合极端化,同样最后经度对比时要反归一化
2.个人觉得随机采样挺好用的,建议多尝试采样方式,选择效果最好的
3.可以用交叉验证对比模型效果
如果有理解的不到位的地方,希望批评指正,一起交流学习。

    推荐阅读