龙空技术网

从零开始人工智能(第五节)——反向传播算法如何计算

人工智能排头兵 175

前言:

目前看官们对“神经网络反向传播公式的推导”大概比较珍视,小伙伴们都需要知道一些“神经网络反向传播公式的推导”的相关文章。那么小编也在网上汇集了一些对于“神经网络反向传播公式的推导””的相关内容,希望兄弟们能喜欢,同学们快快来学习一下吧!

在说明如何计算之前,我们先解释几个专业词汇。

1:误差是什么?

就是我们用已经拥有的数据训练的模型,输出结果与实际结果的差异进行量化表示。对误差的表示有很多具体的方法。当我们实际使用的时候再了解也不迟。只要知道误差就是衡量预测数据和实际数据之间的差异有多少,量化了才有利于使用计算机进行自动计算

2:什么是偏导

首先我们要知道导数,以直线为例,计算一阶导数就是计算斜率,计算二阶导数就是计算斜率的变化率。(至于如何计算在需要的时候理解就好,现在的框架内部,以及很多编程语言都集成了自动求导)

至于什么是偏导那?导数主要针对一个单变量的函数,但是我们前面说过,神经网络模型的参数太多了,求关于其中一个变量的导数就是偏导数。

关于反向传播计算有两种表达方式,一种是基于数学的形式,一种是基于计算图的形式。使用数学的形式比较常见,大部分的书籍都是基于数学形式进行论述。这里我们先以数学的形式进行说明。后面我们也会说到计算图形式(因为里面的计算图是现在比较火的图优化的基础

其实详细说起来还涉及到其它专业算法,以及连式法则等规则。但是为了降低难度,我们用几个实际数据和实际网络来推演一下前向求导和反向传播过程,后面再涉及到代码计算的时候会进行说明,或者以视频的形式表现(打字太累了[呲牙])

下面我们就用数学的形式说一下反向传播:

数据和网络节点说明

简单说一下,我们上面要做什么事情呢?就是要设计一个网络,通过输入信息,获得输出信息,也就是列表中的样本值。x1和x2是参数值,也就是我们模型开始运行时所赋予的值。

logsig节点公式如下:

logsig函数

残差和加权求和,大家看一下计算步骤就能理解了。很简单的计算,只是换个名字

大家可以对照上面给定的参数,将各个值赋予网络就得到以下形式:

参数初始化并进行前向计算

将logsig用起来

计算误差准备反向

计算残差

准备更新权重

更新权重

重复以上的计算,直到模型的性能达到预期。

实际的网络当然更复杂,但是基本的原理并没有不同。只是节点功能更多,节点数量更巨大,模型结构设计更加精巧,更加复杂。

下一节我们看看补一下里面缺少的基础知识。

标签: #神经网络反向传播公式的推导 #反向传播算法例题 #反向计算