| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习之——反向传播 -> 正文阅读 |
|
[人工智能]深度学习之——反向传播 |
反向传播算法(BP):前向传播通过训练数据和权重参数计算输出结果;反向传播通过导数链式法则计算损失函数对各参数的梯度,并根据梯度进行参数的更新。 1.前向传播在前面的:全连接神经网络——前向传播中我们已经实现了神经网络的前向计算 这里就不过多介绍了,我们直接上代码:
2.损失计算在:深度学习——损失函数这篇文章中我们也得到了两种不同的损失函数,接下来,我们就将利用前向计算所得到损失函数进行反向传播,去修正我们的权值。前面前向计算得到两个10分类的概率分布,这时我们将前向传播的结果和标签(真实值做对比)求损失。 这里就不过多介绍了,我们直接上代码(这里用到的是MSE损失):
3.反向传播如果,在输出层输出的数据和我们设定的目标以及标准相差比较大(损失函数较大),这个时候,就需要反向传播。利用反向传播,逐层求出目标函数对各神经元权值的偏导数(利用链式法则)。 构成目标函数对权值向量的梯度,之所以算这个,是为了对权值的优化提供依据(梯度下降的思想),等权值优化了之后,再转为正向传播……当输出的结果达到设定的标准时(损失函数足够低),算法结束。 反向传播的原理:(1)链式求导法则? (2)梯度下降 链式求导法则:
我们以逻辑回归的神经元为例子: 显然,在这神经元当中: 最后,这个线性方程z会被代入到Sigmoid函数当中,也就是说: ???????????????????????????????????????????????????????? 计算之后都会产生一定的损失值,我们把这个损失函数记为loss(a:输出,A:标签): 反向传播的最终目的是修正权值w,那么我们让loss对w求偏导,根据链式准则: (公式0) ? ? ? ? ??? 正向传播与反向传播其实是同时使用的。首先,你需要正向传播,来计算z对w的偏导,进而求出sigmoid(z)是多少。然后,根据输出层输出的数据进行反向传播,计算出loss对z的偏导是多少,最后,代入到(公式0)当中,即可求出loss对w的偏导是多少。注意,这个偏导,其实反应的就是梯度。然后我们利用梯度下降法,对这个w不断进行迭代(也就是权值优化的过程),使得损失函数越来越小,整体模型也越来越接近于真实值。 代码示例:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 18:05:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |