先实现单个更新,得出结果之后,再实现批量更新。

后向传播算法为:

w = w - a*de/dw;

其中,w就是那个参数,e代表误差,a是一个步长,乘以这个导数就变成了实际的一小段,减去它就是了。这个导数这么算:

de/dw = de/dy2 * dy2/dy1 * dy1/dw

其中,e = 1/2 * sum((label - output).^2); 其中,label和output都是101维的向量,它们相减后就是单个误差,平方后去掉负号再全部加起来就是单一个数字了,因此e只是1个数字,1/2是求导用的,其实不用管。de/dy2只是一个简单的二次函数求导,求出这个导函数后用y2的值带进去即可。

然后,设y2 = output,y2 = sigmoid(y1),也就是y2是y1激活来的,那么dy2/dy1就是一个激活函数的导,然后把y1的值带进去即可,因此我们需要保存y1的值,以供这个时候用。

然后,是dy1/dw,这个dy是w1x1+w2x2+...+wnxn+b,但是针对单一的wi而言,它的导数就是xi,也就是输入值,因此这回就是简单的x序列就可以了。

所以输出层的求导公式为:

w2_d = -1.*(label-output).*sigmoid_mat_d(output_inactive).*hide;

然后这样就行:

w2 = w2 - a*w2_d;

对于b,同样是这样:

b2_d = -1.*(label-output).*sigmoid_mat_d(output_inactive);
b2 = b2 - a*b2_d;

对于隐含层的话,情况稍微复杂一点,它的误差导数仍然是de/dw,只不过,这个w是隐藏层的w,与e隔着一个输出层。

首先,对于 de/dy2,在输出层的那个导数中,因为那个w就是在输出层里,因此这个w只会影响到最后结果101个值中的一个,因此其他100个就可以消掉,但是对于隐藏层中的节点来说,由于它能影响到后面的所有节点,因此它是不可以使用消去的。但是对于隐藏层而言,它是可以消去的,这段话看不懂没关系,我没说明白。

对于中间派生的dy2/dy1,由于它是派生的,它有明确的意义,就是对应节点的导数。后面的dy1/dw也是派生前面的,意义明确。

然而这只是派生到了输出层,还应该继续派生到隐藏层。方法与上面相同,不说了。

Matlab实现图像识别(五)相关推荐

  1. matlab:图像识别

    matlab:图像识别 一.Matlab图像识别的基本原理 二.Matlab图像识别的实现步骤 三.常用的Matlab图像识别算法 四.Matlab图像识别的应用领域 五.总结 Matlab是一款非常 ...

  2. matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码

    MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...

  3. 自适应滤波器在matlab仿真的程序_电气信息类专业课程之matlab系统仿真 第五章 BPSK通信系统(3)...

    继续讲解! 上一篇文章提出了那么多问题, 不知道大家是否能回答上来啊? 如果回答不了, 有没有去问问度娘呢? 程序写完了,回想了一下辅导2017届学生毕业设计的过程,那是真累.我要求他们在现有程序基础 ...

  4. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  5. 数学建模常用算法汇总及python,MATLAB实现(五) —— 拟合

    拟合 比较重要的就是2.1和2.3 2.2可以浅看一下, 自己敲着试一试 就拟合部分来说, MATLAB比python强大很多, 自带cftool工具包, 并且有很多快速的函数, 个人建议使用MATL ...

  6. MATLAB学习第五章矩阵

    MATLAB学习第五章 5.1矩阵 矩阵元素修改 矩阵运算 5.1矩阵 eye(n):创建n×n的矩阵 eye(m,n):创建m×n的矩阵 eye(size(A)):创建与A维数相同的单位阵 ones ...

  7. matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)

    基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘  要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...

  8. [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. 基于MATLAB车牌图像识别的设计与实现

    课题介绍 车牌图像识别系统是现代智能交通管理的重要组成部分之一.车牌识别系统使车辆管理更智能化,数字化,有效提升了交通管理的方便性和有效性. 车牌识别系统主要包括了图像采集.图像预处理.车牌定位.字符 ...

最新文章

  1. Javascript基础知识篇(5): 面向对象之链式调用
  2. 部署FTP服务器及其管理
  3. Nginx服务测试时的一些配置:wireshark、常用搜索URL格式、关闭防火墙、siege
  4. 得到目标元素距离视口的距离以及元素自身的宽度与高度(用于浮层位置的动态改变)...
  5. 高级指令——hostname指令【作用:操作服务器的主机名(读取、设置)】、id指令【查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…)】、whoami指令、ps -ef指令
  6. AB1601 烧写程序后上电后无反应
  7. python:sort,sorted,argsort,lexsort
  8. 【最短路】【spfa】小vijos P1447 Updown
  9. 熟悉Qt开发环境--Hello Qt
  10. 为什么微软逐步转变为开源公司
  11. mysql一对一级联_MySQL 表的一对一、一对多、多对多问题
  12. 数据库原理(一)—— 关系代数(二)
  13. 在Ubuntu 18.04上安装PostgreSQL 11和PgAdmin4
  14. VBA 提取 Office 2016 工具栏图标
  15. 南阳理工ACM——106背包问题
  16. 电商网站详情页系统架构
  17. 介绍一款网页翻译插件
  18. 领域驱动战略设计实践
  19. java 库知乎_基于原生Java API爬取最新版本知乎百万用户数据
  20. HTML班级网页设计 基于HTML+CSS+JS制作我们的班级网页(web前端学生网页设计作品)

热门文章

  1. 知识点01、2022版MyBatisPlus教程(一套玩转mybatis-plus) - 1.01-MyBatis-Plus简介
  2. WebLogic安装补丁
  3. 用数据分析来挖掘一下大家最喜欢的抖音视频都有哪些...
  4. 作为测试人员如何写简历
  5. SU插件|Fredo6基础运行库免费下载( (LibFredo6) )
  6. C语言访问数组的常用方法,C语言数组基本知识点详解
  7. 五个了解自己天赋优势的分析工具(三)DISC性格测评
  8. HTML5——新增可拖动
  9. 苹果iPhone到底好在哪里
  10. 基于AntDesign UI的自定义表单