当前位置:网站首页>梯度下降、反向传播
梯度下降、反向传播
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层进行相应的调整。
此时神经网络第一轮的更新迭代完成了。
总结
对于反向传播,其实就是一直在寻找最好的参数Θ,通过调整参数,来让输出值最达到合理的范围内。
同时还有一点所有的输出节点包括在一个函数里,这个函数才是损失函数,无论输出有多少维,损失函数都只有一个,通过这个函数求出梯度,进而对网络中的所有权重进行一次更新。
边栏推荐
猜你喜欢
随机推荐
opencv目标检测
优雅的拦截TabLayout的点击事件
Oracle 分区索引详解(local、global)
【DC-5 Range Penetration】
`monorepo` 中 `hoist` 机制导致加载配置文件路径的变化
【DC-4 Range Penetration】
嵌入式实验四
动态规划笔记
Go (一) 基础部分3 -- 数组,切片(append,copy),map,指针
MySQL 慢查询
Playing with Markdown(2) - Extraction and Manipulation of Abstract Syntax Trees
request.getParameter的结果为on
关于如何向FastAPI的依赖函数添加参数
ansible的安装和部署详细过程,配置清单基本操作
软件测试 -- 入门 1 软件测试是什么?
速来围观,17个运维实用技巧
Flask,3-6
中国食品产业园区行业前景规划建议及投融资模式分析报告2022~2028年
c#,.net 下载文件 设置断点
BeanFactory和FactoryBean的区别









