误差反向传播

栏目: 编程工具 · 发布时间: 5年前

内容简介:第一时间获取好内容

点击上方“ 大数据与人工智能 ”,“星标或置顶公众号”

第一时间获取好内容

误差反向传播

作者丨stephenDC

这是作者的第 11 篇文章

前馈网络是神经网络中最为基础的一种,对网络结构的修改可以延伸出其他的网络类型。前馈网络模型的训练,通常基于模型参数的导数。

而误差反向传播,就是其中最为高效的一种求解导数的算法。

但是,误差反向传播并不是很容易被理解。

作者是数学专业出身,也花了不少功夫来理解这个东西。完了就在思考,明明就是一个复合函数的链式求导,为毛会整的这么难以理解呢?

后来发现, 其实是“误差反向传播”这个概念有一定的误导性 ,如果当初起名叫“ 导数反向传播 ”或者“ 梯度反向传播 ”,就容易理解多了。

本文就跟大家聊一下这个话题。

前馈网络模型

误差反向传播

图1. 前馈网络结构

前馈网络的结构,如上图所示。

其中包括两类对象,结点和边。结点用来表示一个变量,而边则表示两个结点直接的关系。图中的边我们画成了有向的 (带箭头) ,这是因为从输入到输出,信息是单向的向前流动的,而不能反向流动,所谓的“前馈”,也正是这个意思。每一条边上会附带一个参数,称之为“权重”,其作用我们后面再提。

为了一般性,我们在上图中把网络分成了三个部分,中间部分拿来作为示例,其前后都可能还有若干层的网络结构。

在很多文献里,会把结点称为“神经元”,然后讲“树突”、“轴突”什么的。尽管神经网络模型的提出,确实受到了神经科学的启发,但学习这个模型的时候最好忘掉这些东西,没有什么鸟用。

原因有两点:

1. 作为一个抽象出来的数学模型,应该更加通用,跟生物和神经科学扯在一起,只会限制你的思考。

2. 真正生物意义上的“神经网络”,其结构远比这个复杂,这个模型并不足以描述。

模型的计算

误差反向传播

很简单对吧?

不过这里要注意的有两点:

1.  对于回归问题,神经网络的输出层(也即最后一层),通常采用线性激活函数,而中间层则采用非线性激活函数。这里为了说明方便,采用了统一的激活函数。

2.  从输入到输出,每一层都先后按照以上方式进行作用,其结果就是输出变成了输入的一个复合函数。信息每向前传播一层,复合函数之上就多加了一次线性加权求和和一次激活函数作用。

模型的训练

对于监督学习来说,计算出损失函数,然后求出损失函数对各个模型参数的导数,即可对模型进行训练。

对神经网络模型而言,参数求导似乎是一个非常艰巨的任务, 一是因为模型参数非常多;二是因为复合函数非常复杂。

事实上确实如此,但幸运的是,模型参数的导数之间是有关系的,利用这种关系可以高效地对所有参数进行求导。

误差反向传播

误差反向传播

误差反向传播

误差反向传播

小结

这篇文章告诉我们,如果有一天你成了大神,发明了什么算法,一定要慎重地给各种相关概念起名字。

大神们都知道咋回事,但容易误导他人啊!谁特么告诉我,输出为连续值的监督学习问题,怎么就叫Regression了? (摊手...)

-end-

误差反向传播


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Purely Functional Data Structures

Purely Functional Data Structures

Chris Okasaki / Cambridge University Press / 1999-6-13 / USD 49.99

Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Ha......一起来看看 《Purely Functional Data Structures》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具