| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 李宏毅深度学习笔记(二)——后向传播(Backpropagation) -> 正文阅读 |
|
[人工智能]李宏毅深度学习笔记(二)——后向传播(Backpropagation) |
Backpropagation解决的是在神经网络中如何有效率的进行Gradient?Descent算法的问题。更具体地说,假设将Loss?Function记为,其中为一个向量,表示所有的参数,那么的梯度表示为 Backpropagation就是快速计算的一种方法。 定义函数为第n个预测值与真实值之间的距离函数,则Loss?Function可以表示为 将中的某一个参数记为w,简记为C,下面开始展示的计算过程。 如图所示是一个神经元,输入为和,令sigmoid函数的输入,则根据链式法则,. ?其中是容易得到的。若,则;若,则;否则。但是,计算需要考虑后面的运算对C带来的影响。 进一步地,令,我们可以得到??。同样的,可以由sigmoid函数求导得到,计算需要考虑后面的运算对C带来的影响。 于是我们考虑下一层神经元。假设这个神经元只与下一层的两个神经元的连接。在下一层中,经过同样的运算可以得到和。于是。 ? ?观察这个式子,从图中易得,,而和的求法与没有任何区别。于是我们考虑:能不能用递推的方法求出所有的呢? 答案是肯定的。通过以上的推导可以得到递推式 ?如果这层神经元不是最后一层,即不是output?layer,则用递推式计算;如果是output?layer,假设输出分别为和,则,。 ?由于C是距离函数,表达式已知且显含y,所以易于求得。 与此同时,我们观察到,递推式的项数与该神经元连接到的神经元的个数相同,并且同样乘以一个系数之后相加,这个过程与神经网络做的事情很像。于是我们用一个反向的神经元来表示这个计算过程。但是激活函数由sigmoid函数换为乘一个常数,并且没有bias项。 ? 由于这个过程与正常的神经网络进行运算的方向是相反的,所以这个过程又叫做Backward?pass。 整理一遍整个运算过程,假设下图为我们要计算的神经网络。 ?首先,对整个神经网络进行一次运算,计算出z1,z2…以及y1和y2。 然后进行backward?pass,计算,…一次性计算出所有需要用到的偏微分值。 ?最后依次对所有参数进行运算即可。 ? ? ? ? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/22 10:19:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |