基于Maltab BP神经网络图像处理火灾识别系统
Posted 博主QQ2449341593
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Maltab BP神经网络图像处理火灾识别系统相关的知识,希望对你有一定的参考价值。
BP算法原理
BP算法由输入层→隐层→输出层构成。
输入输出层:这里可以看到这层可以有多个入口,也可以只有1个入口。
比如要做一个根据每期福利彩票的结果预测下期的结果。
那么输入层就应该上一期的结果(N个数字)。输出层就是这期(N个数字)。
隐层:隐层可以有N个节点或者N个层次。
正向过程:
输入层分别累加到隐层的各个节点
假设 输入是x 隐层节点是s
那么
s1 = x1+x2+x3+x4+……
s2 = x1+x2+x3+x4+……
s3 = x1+x2+x3+x4+……
然后为了可以动态调整各个节点加入的权值w1 w2 w3……
就变成
s1 = w1*x1+w2*x2+w3*x3+w4*x4+……
s2 = w1*x1+w2*x2+w3*x3+w4*x4+……
s3 = w1*x1+w2*x2+w3*x3+w4*x4+……
顺便加一个偏移值b 数学公式就成了:
Sj 还要经过传递函数 f() 算出 隐层节点的值
f()传递函数对应的过程就是:
神经元累加生物电到达一定程度时触发放电。如果没到达阙值这些累积的生物电就打水漂了。
举个例子来说
常用的一种激励函数是sigmoid 函数图如下
公式 f= 1/(1+e^-x)
这个S型函数的意义只要达到某一阙值 函数就会输出1 就算超出阙值也不会影响输出值。
这里原先是我理解错了,BP算法加入sigmod函数主要的意义在于加入非线性函数来解决非线性问题。
选sigmod的好处在于 求导方便 sigmod的导数= 1 - f
反向回馈的时候需要计算导数
隐层到输出层的过程也是一样的。
不过BP算法的重点在于反向回馈。
反向:
正向传输结束之后我们能够拿到一次结果。
这个结果就可以跟预期值做比较,一般计算方差E。
那么这个误差就可以反向的传递给上一层,用来调整上层节点的权值 w 。这个过程反复执行直到方差E小于期望的最小误差。(因为现实是不可能达到0误差,所以如果不设置最小期望误差则程序结束不了。)
至于具体的权值调整的公式有完整的推导过程,过于复杂这里不讨论。
核心的概念就是通过计算整体方差E对权值变量Wj 的偏微分得出 当前权值应该增加还是应该减少,上式很像n的那个字母就是指学习率。就是这里一次要调整权值时用的基本单位。
偏微分科普:
比如 一个公式有N个变量 y = aX +bY+cZ; 这里 XYZ是变量。abc是常量。
偏微分就是求单一变量的变化对y值的影响,其他变量在此被当作常量来求导。
那么y在这里求x的偏微分,就应该是 =a ; (bY+CZ)被当作常量。
运行结果
文件列表:
目录│文件列表:
├ 1.源码
│ │ 123.mp4
│ │ bp训练结果.jpg
│ │ model.mat
│ │ OneGUI.fig
│ │ OneGUI.m
│ │ run.m
│ │ train.m
│ └ data
│ ├ 火
│ │ │ QQ截图20200422152415.jpg
│ │ │ QQ截图20200422152420.jpg
│ │ │ QQ截图20200422152426.jpg
│ │ │ QQ截图20200422152453.jpg
│ │ └ QQ截图20200422152503.jpg
│ └ 烟
│ │ QQ截图20200422152407.jpg
│ │ QQ截图20200422152510.jpg
│ └ QQ截图20200422152517.jpg
├ 2.演示视频
│ └ 演示视频.mp4
└ 3.参考文档
└ 基于BP神经网络的火焰识别系统.pdf
以上是关于基于Maltab BP神经网络图像处理火灾识别系统的主要内容,如果未能解决你的问题,请参考以下文章
图像识别基于RGB和BP神经网络的人民币识别系统含GUI界面
图像识别基于RGB和BP神经网络的人民币识别系统含GUI界面
图像识别基于RGB和BP神经网络的人民币识别系统含GUI界面
裂缝识别基于matlab GUI BP神经网络路面裂缝识别系统含Matlab源码 1063期