TensorFlow从0到1 | 第九章“驱魔”之反向传播大法

上一篇8 万能函数的形态:人工神经网络解封了人工神经网络,如果用非常简短的语言来概括它,我更喜欢维基百科的诠释:

人工神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。

就这样,人类照着上帝创造生灵万物的手法,居然也徒手造出了“活物”,且让它们附体在芯片之中,操纵世事。它们中有庞然大物,有小巧玲珑,不知疲倦,冰冷无情,是为“魔”。

然而要驱动那一堆首尾相连的神经元,让其“活”起来,还有最后一个步骤,就像圣经中神造人时吹的那口生气,即本篇要说的反向传播大法(Backpropagation)。

Backpropagation

神经网络有多少参数

与线性回归的算法框架如出一辙,基于神经网络的机器学习,是基于数据的、运用梯度下降算法来优化网络(减小损失)的过程。

在套用这个算法框架之前,要先搞清楚神经网络的参数及其形式。以经典的3层感知器为例:

3层感知器

第一层是输入层,其中的神经元仅仅提供输出值,并不含有权重和偏置。图中输入层有8个神经元。

第二层是隐藏层,有15个神经元,每个神经元都会接收第一层的8个神经元的输出作为输入,在其内部,加权求和之后还有一个偏置。

第三层是输出层,有10个神经元,每个神经元都会接受第二层的15个神经元的输出作为输入,在其内部,加权求和之后也有一个偏置。

用wjkl来表示一个单独的权重,它代表的是第l层的第j个神经元、与上一层(l-1)第k个神经元输出相对应的权重。或许你对这种表示方法感到有些别扭,但很快就会适应的。以w243为例见下图:

w<sub>24</sub><sup>3</sup>

用bjl来表示第l层上,第j个神经元中的偏置,这个比较显而易见。

基于上述的神经网络结构和对权重和偏置的符号的定义,当前构建的神经网络的参数如下所示:

第2层神经元的权重和偏置
第3层神经元的权重和偏置

基于神经网络的机器学习

第二层神经元的权重120=15x8个,偏置15个,第三层神经元的权重150=10x15个,偏置10个。整个神经网络的参数:295个。一个不算特别复杂的,由33个神经元构成的全连接神经网络,其参数已经达到了295个之多。

所谓的训练神经网络,就是调整这295个参数,使其对于样本数据,能够让“损失”达到最小。再次回顾二次损失函数的定义(其中n=295):

B-O-F-2 损失函数

接着,套用随机梯度下降算法,调整每个参数(以前两个为例):

B-O-F-6 参数的增量

至此,只要求取每个参数对损失函数的偏导数,代入上式即可对参数进行1次优化。可是我们已经知道:神经网络可以近似任意的函数,但却无法知道其代表的函数的确切形式是什么。也就是说,对已知函数求偏导的公式算法,根本用不上。

反向传播

从二十世纪40、50年代人工神经元被发明,那一堆首尾相接的神经元沉寂了长达三十年的漫漫长夜。直到1986年,心理学家David Rumelhart,在深度学习的守护者Geoffrey E. Hinton等人的协助下发现了“反向传播”终极大法,它们就要“活”起来了。

本篇的最后,贴出大法秘诀一饱眼福:

BP1
BP2
BP3
BP4

它由四个基本公式构成,就像所有真理的数学描述一样简洁。仔细看最后两个公式,那不就是损失函数关于神经网络的参数(权值和偏置)的偏导数的表达式吗?而这就是反向传播的核心目的,有了它梯度下降算法就能run起来了。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

干货 | 深度详解ResNet及其六大变体

编译 | 图普科技 本文由图普科技工程师编译自《An Overview of ResNet and its Variants》。 从AlexNet[1]在201...

53160
来自专栏新智元

谷歌新 AI 实验室主管 Hugo 深度学习教程:神经网络、CV、NLP 难点解析

【新智元导读】 11月22日,谷歌在蒙特利尔的现有办公室开设了一个全新的深度学习和人工智能研究小组。新团队将作为位于山景城的 Google Brain 团队的远...

37150
来自专栏CreateAMind

原始图片中的ROI如何映射到到feature map?

最后找到一篇靠谱的文章 卷积神经网络物体检测之感受野大小计算 - machineLearning - 博客园,它给出了一个不错的启发,还附带了代码,最关键的是它...

24940
来自专栏机器学习之旅

理论:SVM理论解析及python实现

关于常见的分类算法在不同数据集上的分类效果,在《Do we Need Hundreds of Classifiers to Solve Real World C...

13730
来自专栏用户2442861的专栏

Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

作者:我爱机器学习 链接:https://zhuanlan.zhihu.com/p/22094600 来源:知乎 著作权归作者所有。商业转载请联系作者获得...

32010
来自专栏智能算法

一文读懂 CNN、DNN、RNN 内部网络结构区别

从广义上来说,NN(或是更美的DNN)确实可以认为包含了CNN、RNN这些具体的变种形式。在实际应用中,所谓的深度神经网络DNN,往往融合了多种已知的结构,包括...

45650
来自专栏决胜机器学习

机器学习(十四) ——朴素贝叶斯实现分类器

机器学习(十四)——朴素贝叶斯实现分类器 (原创内容,转载请注明来源,谢谢) 一、概述 朴素贝叶斯,在机器学习中,是另一种思想,属于概率思想。不过其还是在已知...

36260
来自专栏IT派

从香农熵到手推KL散度:一文带你纵览机器学习中的信息论

IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 信息论是应用数学的一个分支,主要研究的是对一个信号包含信息的多少进行量化。它最初被发明是用来...

37080
来自专栏量子位

超分辨率技术如何发展?这6篇ECCV 18论文带你一次尽览

在这篇文章中,亲历了ECCV 2018的机器学习研究员Tetianka Martyniuk挑选了6篇ECCV 2018接收论文,概述了超分辨率(Super-Re...

1.5K20
来自专栏数据科学与人工智能

决策树算法那些事--CART|机器学习

一、树算法介绍 当前数据挖掘领域中存在10个火热的算法、它们涉及到数据的聚类、分类、关联规则、排序等方面。今天就跟大家说说基于树的分类算法--决策树,决策树有非...

38150

扫码关注云+社区

领取腾讯云代金券