想研究前馈神经网络?先了解好它背后的数学吧!

作者 | Pranjut Gogoi

编译 | 聂震坤

如果你刚开始学习前馈神经网络,先了解其背后的数学原理则可以让以后事半功倍。

本文中笔者将在实践中深度探讨人工智能神经网络(ANN)技术。通常为了解决以一个问题,ANN 会拥有不同的层次,关于需要多少分层来解决一个特定问题则是另一个话题,将不在本篇中赘述。

作为一个程序员,应该比任何人都要更了解代码,无论看到什么样的代码都应该可以快速做出反应。因此,程序员可以直接从代码中来学习 ANN。然而,在开始了解 ANN 算法之前,了解算法背后的数学可以加快理解的速度。所以,在看代码之前,先关注代码背后的数学。尽管 ANN 有多种架构,我们先从下图的这一种前馈神经网络开始。

如图不难看出,此网络有3层:输入层,隐藏层,输出层。在输入层,我们有输入 X1, X2, …. Xn. 在中间和隐藏层我们有他的输出 Y1, Y2, Y3。我们将输出目标作为 , , …。同理,不同的神经元具有不同的比重,我们可以并将其命名为 X11 至 Yh1 之间的 W11;X1 至 Yh2 之间的 W12;X1 至 Yh3 之间的 W13,以此类推。我们也为输出层神经元做了类似的工作。这里要注意的一个重要事情是,ANN 是基于实值,离散值和向量值输入的。

下表是对上述内容的简单总结。如果你是新手,则强烈建议你看完他们。

  • Inputs = X1, X2, X3
  • Hidden outputs = Yh1, Yh2, Yh3
  • Putputs = Y1, Y2, Y3
  • Targeted outputs = Ŷ1, Ŷ2, Ŷ3
  • Weights to Yh1 = W11, W12, W13
  • Weights to Yh2 = W21, W22, W23
  • Weights to Yh3 = W31, W32, W33
  • Weights to Y1 = W41, W42, W43
  • Weights to Y2 = W51, W52, W53
  • Weights to Y3 = W61, W62, W63

现在,我们的准备工作已经完成,可以开始应用在神经网络上了。每一个神经元都有自己的激活方程,比如 f(x)=sigmoid(x)。激活方程将需要一个参数。我们的第一步便是为这个激活方程创建一个输入,通过将比重乘输入值来实现。公式如下:

  • XWh1 = X1.W11 + X2. W21 + X3. W31
  • XWh2 = X1.W12 + X2. W22 + X3. W32
  • XWh3 = X1.W13 + X2. W23 + X3. W33

隐藏层的输出则为:

  • Yh1 = sigmoid(XWh1)
  • Yh2 = sigmoid(XWh2)
  • Yh3 = sigmoid(XWh3)

隐藏层的输出值变成了输出层的输入值,并且与刚刚一样乘以比重。因此,过程应该如下:

  • YhWo1= Yh1.W41+Yh2.W51+Yh3.W61
  • YhWo2= Yh1.W42+Yh2.W52+Yh3.W62
  • YhWo3= Yh1.W43+Yh2.W53+Yh3.W63

输出层的最终输出结果为:

  • Y1 = sigmoid(YhWo1)
  • Y2 = sigmoid(YhWo2)
  • Y3 = sigmoid(YhWo3)

如果你刚开始学习神经网络,并且不了解什么是 Sigmoid 方程。下面附上其公式:

我们可以用 ANN 的各种激活方程来解决不同的问题。但简而言之, Sigmoid 函数在放在图上时会产生 S 形曲线。当神经网络的输入值是实值并可微分时,我们使用 Sigmoid 方程,因为我们可以很容易的找到他的梯度。

如果应用上文中所涉及的知识点,那么神经网络则应该已经准备就绪了。

原文:Learn the Math for Feedforward Neural Networks 审校:屠敏

原文发布于微信公众号 - 人工智能头条(AI_Thinker)

原文发表时间:2017-07-13

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVer

ECCV 2018 收录论文名单全公布

前天从朱政研究员那里得知,ECCV 2018所有录用论文已经开放并支持PDF下载了。因为事情较多,就没来得及推送到CVer公众号,而是在Amusi的知乎专栏上推...

3013
来自专栏Python爬虫与算法进阶

初步尝试 sklearn

Scikit-learn是一个用于Python编程语言的免费软件机器学习库。 它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k均值和DBS...

1102
来自专栏PPV课数据科学社区

七种数据分析领域中最为人称道的降维方法

近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。实际上,数据量有时过犹不及。有时在数...

3524
来自专栏机器学习和数学

[高大上的DL]经典网络模型总结之GoogLeNet篇

勘误:开始之前说一下,昨天介绍的环境搭建的那篇,里面我忘记写cudnn的安装说明了,只贴了在哪下载,我在word版里面已经更新了,欢迎需要的童鞋下载查看。还有一...

4484
来自专栏AI科技评论

开发 | 小白学CNN以及Keras的速成

AI 科技评论按:本文作者Sherlock,原文载于其知乎专栏深度炼丹,AI 科技评论已获得其授权发布。 一、为何要用Keras 如今在深度学习大火的时候,第三...

3546

深入学习Apache Spark和TensorFlow

要了解更多关于Apache Spark的信息,请参考Spark Summit East in the New York in Feb 2016。

2168
来自专栏机器之心

机器学习算法如何调参?这里有一份神经网络学习速率设置指南

作者:Jeremy Jordan 机器之心编译 参与:黄小天、许迪 每个机器学习的研究者都会面临调参过程的考验,而在调参过程中,学习速率(learning ra...

3714
来自专栏AI研习社

让深度学习帮你创作爵士乐

数学与音乐有着内在的联系。 用算法作曲的历史,可以追溯到计算机科学出现的初期。翻译模型可以把一张图片转译为音乐。这都是基于规则的:如果图片里有一条水平的线,就会...

3548
来自专栏AI研习社

小白学CNN以及Keras的速成

为何要用Keras 如今在深度学习大火的时候,第三方工具也层出不穷,比较出名的有Tensorflow,Caffe,Theano,MXNet,在如此多的第三方...

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

研究 | YOLO一眼就能认出你:看一个神经网络如何全视野实时检测目标

作者 | Joseph Redmon的 & Ali Farhadi 编译|AI100(rgznai100) YOLO全名You only look once(你...

37113

扫码关注云+社区

领取腾讯云代金券