MATLAB神经网络43个案例分析——BP网络数据分类

MATLAB神经网络43个案例分析——BP网络数据分类_第1张图片
MATLAB神经网络43个案例分析——BP网络数据分类_第2张图片
MATLAB神经网络43个案例分析——BP网络数据分类_第3张图片
MATLAB神经网络43个案例分析——BP网络数据分类_第4张图片

  1. 小论文
    主要工作:BP神经网络MATLAB实现,这个例子有24个特征,网络是24-25-4的结构。详细了解程序。看明白了并且用matlab看变量的变化,加深了理解。
    后续目标:自己写出一个训练BP的网络,测试成功率,加深理解,便于后期自己制作。
    写明思路步骤:

边看程序,边做了笔记来理解。写完步骤流程后了解到,这个程序主要有3大块:
这个部分是前期数据选择和归一化:

这个部分是BP网络的训练:

这个部分是网络的分类和结果测试

总结:详细读了程序,把程序一行一行运行,加上手算等,理解了每个变量的运行机理。先输入随机的【-1,1】的w和b的数据矩阵即初始化,再将输入特征信号保存入input函数内,然后经过运算一层一层逐层向下传递,传递到最后一层输出yn,和预测输出output对比的误差e,通过e反向传播,逐层倒回由e的计算能一点点变成每层需要更新的微小的w和b的变量更新矩阵,再前面一层又通过后一层的变量再进行更新,这就是梯度下降的核心链式传播,链式反向更新每层的w和b达到训练的目的。通过这个2000样本(1500个训练样本,500个测试样本)的语音例子,我运行了20遍,以下是结果:

4类语音 1 2 3 4
识别率低于50%次数 2 0 6 1

导致第3类错误率偏低的原因是和第一类比较接近,很多第三类都错判为了第一类。这是由于训练样本的不足,BP网络训练尚未到位所致。如果把训练样本改成1900,测试样本改成100。其准确率似乎没有明显提升:
4类语音 1 2 3 4
识别率低于50%次数 1 0 8 2

但是我相信随着训练样本以量级上升,必然会将分类的成功率提升。但这么做并没有意义。所以接下来我需要思考的是如果训练样本不足,那能够将BP网络运用在平台的拿个地方来实现理想的效果。结合Fortran这种实时语言会不会更有优势?这是我接下来思考的方向。

你可能感兴趣的:(神经网络)