当前位置:网站首页>梯度下降、反向传播
梯度下降、反向传播
2022-08-03 05:23:00 【白小李】
目录
反向传播
正向传播:把数据输入到神经网络,这些数据会沿着神经网络进行正向传递,传递的过程中,会一层层的感知机进行操作,最后得出结果。
反向传播:当一个神经网络还未训练好的时候,它的判断结果是有偏差的,传递偏差的信息,将这些偏差传递到各个参数上,根据参数对偏差的贡献大小,相应的承担修改责任。
梯度方向:指向上升最快的那个方向,当取反的时候就是减小最快的方向。梯度可以将它当作一个向量的概念,来进行分解。
梯度的数学表达如下图所示。
当从z轴向下俯视函数f的图像时,函数f在x轴的切线斜率加上函数f在y轴的切线斜率指向的一个方向恰好是变化最大的一个方向,即梯度的方向。
梯度传播
从神经网络中单独拿出一个感知机,感知机由三部分组成, w,b两个系数,把前面感知机的输出值作为后面感知机的输入值,通过w,b两个系数进行线性运算后得出来的就是这个z值。方括号上的L代表这个是第几层,下方的下标i代表的是第L层第i个。算出来的z值是不能直接输出的,通过激活函数进行计算,得出的a值就是感知机向外输出的值。
利用矩阵写出第l层的感知机输出a[l]
y上面的的k代表的是训练数据集里面的第几号数据,其中x是代表的是训练的数据集。y代表的是给训练的数据集打上的标签。这个神经网络在输出层只有一个输出节点,只能判断一个分类问题。当输出层有多个节点时,可以判断多个分类问题。
当想进行反向传播的时候, 先对J求梯度,求梯度之后,它的变量只有ai,即这个梯度的分量一定是J对ai的偏导。
对J求梯度展开后的样子。
此时J对W求的偏导,展开的公式如下所示。
其中向量是有自己的分量,对于分量的偏导。
感知机的w进行迭代。
接下来得出一个新的损失函数,损失函数就是那个偏差值。这个偏差值是由第L层的神经网络带来的,这个偏差值是由后面的L-1层负责承担。
此时进行下一轮的反向传播。
此时的L+1层是上次反向传播的L层,在这一轮反向传播是把L+1层全部的偏差全部反向给L层,让L层进行相应的调整。
此时神经网络第一轮的更新迭代完成了。
总结
对于反向传播,其实就是一直在寻找最好的参数Θ,通过调整参数,来让输出值最达到合理的范围内。
同时还有一点所有的输出节点包括在一个函数里,这个函数才是损失函数,无论输出有多少维,损失函数都只有一个,通过这个函数求出梯度,进而对网络中的所有权重进行一次更新。
边栏推荐
猜你喜欢
解决Gradle Download缓慢的百种方法
网卡软中断过高问题优化总结
【DC-4靶场渗透】
Hook初探索
Let small program development into ` tailwind jit ` era
Qlik Sense 赋值详解(Set、Let)
Leetcode刷题——一些用层次遍历解决的问题(111. 二叉树的最小深度、104. 二叉树的最大深度、226. 翻转二叉树、剑指 Offer 27. 二叉树的镜像)
NFT租赁提案EIP-5006步入最后审核!让海外大型游戏的链改成为可能
Android学习 | 08.SQLiteOpenHelper
关于semantic-ui的cdn失效问题(怎样通过本地引用semantic-ui)
随机推荐
微信小程序 自定义tabBar
该描述怎么写成SQL语句
中国人力资源服务行业投资建议与前景战略规划研究报告2022~2028年
MySQL 一些函数
磁盘空间管理
中国磷化铟晶圆行业发展前景与投资规划分析报告2022~2028年
Invalid signature file digest for Manifest main attributes解决方法
当我们在看Etherscan的时候,到底在看什么?
Qlik Sense 临时处理表数据详解(Resident)
中国水产养殖行业市场投资分析及未来风险预测报告2022~2028年
Greetings(状压DP,枚举子集转移)
3559. 围圈报数
[Rebound shell and privilege escalation]
令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客
Let small program development into ` tailwind jit ` era
【DC-5靶场渗透】
滚动条 scrollbar 和scrollbar-thumb 样式
Qlik Sense 判空详解(IsNull)
【源码解读】你买的NFT到底是什么?
Haproxy服务监控