Matlab实现图像识别(五)
先实现单个更新,得出结果之后,再实现批量更新。
后向传播算法为:
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实现图像识别(五)相关推荐
- matlab:图像识别
matlab:图像识别 一.Matlab图像识别的基本原理 二.Matlab图像识别的实现步骤 三.常用的Matlab图像识别算法 四.Matlab图像识别的应用领域 五.总结 Matlab是一款非常 ...
- matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码
MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...
- 自适应滤波器在matlab仿真的程序_电气信息类专业课程之matlab系统仿真 第五章 BPSK通信系统(3)...
继续讲解! 上一篇文章提出了那么多问题, 不知道大家是否能回答上来啊? 如果回答不了, 有没有去问问度娘呢? 程序写完了,回想了一下辅导2017届学生毕业设计的过程,那是真累.我要求他们在现有程序基础 ...
- 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码
更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...
- 数学建模常用算法汇总及python,MATLAB实现(五) —— 拟合
拟合 比较重要的就是2.1和2.3 2.2可以浅看一下, 自己敲着试一试 就拟合部分来说, MATLAB比python强大很多, 自带cftool工具包, 并且有很多快速的函数, 个人建议使用MATL ...
- MATLAB学习第五章矩阵
MATLAB学习第五章 5.1矩阵 矩阵元素修改 矩阵运算 5.1矩阵 eye(n):创建n×n的矩阵 eye(m,n):创建m×n的矩阵 eye(size(A)):创建与A维数相同的单位阵 ones ...
- matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)
基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘 要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...
- [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 基于MATLAB车牌图像识别的设计与实现
课题介绍 车牌图像识别系统是现代智能交通管理的重要组成部分之一.车牌识别系统使车辆管理更智能化,数字化,有效提升了交通管理的方便性和有效性. 车牌识别系统主要包括了图像采集.图像预处理.车牌定位.字符 ...
最新文章
- Javascript基础知识篇(5): 面向对象之链式调用
- 部署FTP服务器及其管理
- Nginx服务测试时的一些配置:wireshark、常用搜索URL格式、关闭防火墙、siege
- 得到目标元素距离视口的距离以及元素自身的宽度与高度(用于浮层位置的动态改变)...
- 高级指令——hostname指令【作用:操作服务器的主机名(读取、设置)】、id指令【查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…)】、whoami指令、ps -ef指令
- AB1601 烧写程序后上电后无反应
- python:sort,sorted,argsort,lexsort
- 【最短路】【spfa】小vijos P1447 Updown
- 熟悉Qt开发环境--Hello Qt
- 为什么微软逐步转变为开源公司
- mysql一对一级联_MySQL 表的一对一、一对多、多对多问题
- 数据库原理(一)—— 关系代数(二)
- 在Ubuntu 18.04上安装PostgreSQL 11和PgAdmin4
- VBA 提取 Office 2016 工具栏图标
- 南阳理工ACM——106背包问题
- 电商网站详情页系统架构
- 介绍一款网页翻译插件
- 领域驱动战略设计实践
- java 库知乎_基于原生Java API爬取最新版本知乎百万用户数据
- HTML班级网页设计 基于HTML+CSS+JS制作我们的班级网页(web前端学生网页设计作品)
热门文章
- 知识点01、2022版MyBatisPlus教程(一套玩转mybatis-plus) - 1.01-MyBatis-Plus简介
- WebLogic安装补丁
- 用数据分析来挖掘一下大家最喜欢的抖音视频都有哪些...
- 作为测试人员如何写简历
- SU插件|Fredo6基础运行库免费下载( (LibFredo6) )
- C语言访问数组的常用方法,C语言数组基本知识点详解
- 五个了解自己天赋优势的分析工具(三)DISC性格测评
- HTML5——新增可拖动
- 苹果iPhone到底好在哪里
- 基于AntDesign UI的自定义表单