第四课反向传播算法与神经网络(一)

Stanford深度学习课程第四课反向传播算法与神经网络(一)

预备知识

我们不直接介绍课程内容,首先介绍一些预备知识,这样可以更好的理解课程内容。下面我们介绍导数的基本概念及一些常用函数的导数。有些人大概在高中就学过导数,但是有些人没有学过,但是不管怎么样,大家在中学阶段的时候一定学过直线方程!那么不知道大家还记得不记得斜率,下面我们看一个例子,有一个函数方程为y=2x+4,其函数图像如下:

这里的斜率k=2,这里的斜率就是上面直线在直线上每一点的导数。导数其实也可以理解为在某一点上函数值的变化情况(包括变化快慢及变化方向)。

对于任意一个函数f(x),其在x0处的导数可以定义为:

下面不加证明的列出一些常用函数的导数形式及相关公式:

然后还有比较重要的链式法则,若有一个函数:

那么可以得到:

在简单介绍这部分知识后,我们来到反向传播算法。

反向传播算法

对于任意一个运算,我们可以通过构建计算图,然后利用链式法则前向求导,从而求出每一个变量的梯度。举个例子,假如有函数:

根据运算法则,我们首先要计算x+y,再计算乘法,所以可以令:

根据上述运算顺序画出如下计算图

首先前向计算得到:

下面我们看看反向梯度是如何计算的,我们需要计算的是:

根据函数式及求导公式,我们首先可以得出以下结论:

所以最终求得梯度为:

有了梯度之后就可以使用梯度下降法对参数进行更新了。

稍微复杂的一个例子

上面介绍了及其简单的一个例子,下面是稍微复杂的例子,也是在实际中会经常用到的例子:逻辑回归的梯度求解。需要求解梯度的函数如下:

然后我们将上述函数画成计算图(原课程中的图截图过来后不是很清晰,故重画了),通过换元将上面复杂的式子写成简单的式子(特别方便求导的式子):

根据上面过程画出来图形如下:

给定一组已知的输入,比如:

下面根据链式法则来求

的梯度,实际应用中只会对系数求梯度,输入变量是固定的。

通过上面的式子我们可以得到:

则我们可以得到如下列的反向计算结果:

上图中的结果就是给前面的公式中带入具体的值计算出来的。一旦计算得到各个变量的梯度值之后,就可以执行梯度下降,从而对损失函数进行优化。

总结

由上面的推导,对于上面示例中的函数,其反向传播梯度可以通过如下公式进行求解。

后续

1.神经网络简介

2.反向传播算法(矩阵)

Github

使用电脑的同学可以通过Github链接直接查看高清版本!

NGSHotpot Github:

https://github.com/NGSHotpot

本文链接:

https://github.com/NGSHotpot/deep-learning/blob/master/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%8F%8A%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD%E7%AE%97%E6%B3%95.md

本文来自企鹅号 - NGSHotpot机器深度学习生信媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏世界第一语言是java

BP神经网络基础算法

28930
来自专栏杨熹的专栏

梯度消失问题与如何选择激活函数

当我们在做反向传播,计算损失函数对权重的梯度时,随着越向后传播,梯度变得越来越小,这就意味着在网络的前面一些层的神经元,会比后面的训练的要慢很多,甚至不会变化。

12230
来自专栏深度学习与计算机视觉

理解梯度下降在机器学习模型优化中的应用

认识梯度下降算法 这篇博客的内容是为了介绍梯度下降算法在模型优化中的作用,也就是说,正常的顺序是我们要学习一个模型(确定模型参数),在优化这么未知模型的时候,使...

35180
来自专栏人工智能LeadAI

CNN卷积神经网络分析

CNN最大的优势在特征提取方面。由于CNN的特征检测层通过训练数据进行学习,避免了显示的特征抽取,而是隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经...

13910
来自专栏算法修养

文本分类学习 (八)SVM 入门之线性分类器

SVM 和线性分类器是分不开的。因为SVM的核心:高维空间中,在线性可分(如果线性不可分那么就使用核函数转换为更高维从而变的线性可分)的数据集中寻找一个最优的超...

7510
来自专栏深度学习与计算机视觉

Object Detection系列(一) R-CNN

Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detectio...

46560
来自专栏企鹅号快讯

深度学习之卷积神经网络

纵观过去两年,“深度学习”领域已经呈现出巨大发展势头。在计算机视觉领域,深度学习已经有了较大进展,其中卷积神经网络是运用最早和最广泛的深度学习模型,所以今天就和...

24180
来自专栏数说工作室

【分类战车SVM】第三话:最大间隔分类器

分类战车SVM (第三话:最大间隔分类器) 1.回顾 前面说到,线性分类器就是找一个平面,能最好的区分不同类别的样本,logistic模型找的那个超平面,是尽...

28630
来自专栏码农笔录

BP神经网络基础算法

19550
来自专栏图像识别与深度学习

2018-04-21 语义分割Semantic segmentation

455100

扫码关注云+社区

领取腾讯云代金券