学习前馈神经网络的数学原理

在我上一篇博客中,我们讨论了人工神经网络的动机是来源于生理。这一篇博文,我们将讨论如何实现人工神经网络。在人工神经网络中,我们使用不同层数的网络来解决问题。使用多少层的网络才能解决一个特定的问题是另一个话题,我很快将为此写一个博客。但是,目前我们仍然可以着手实现网络,并学习如何用它去解决问题。

作为程序员,我们比其他行业的人更了解代码,并且可以很快地学习任何东西。我们甚至可以直接通过代码了解人工神经网络。然而,我认为知道人工神经算法背后的数学原理有助于我们更好地理解这个过程。所以在研究代码之前,我会讨论它的数学原理。下图为一个前馈神经网络。人工神经网络中有几种网络结构,但是我们先从这个开始。

如上图所示,这个神经网络有三层,从左到右分别是:输入层,隐藏层和输出层。在输入层,输入神经单元X1,X2,... Xn。对于处于中间的隐藏层,其输出为Yh1,Yh2,... Yhn。对于输出层,输出为Y1,Y2,Y3。我们把目标输出设为Ŷ1,Ŷ2,...Ŷn。与此同时,我们在不同的神经元之间有不同的权重,并且把把X1到Yh1之间的权重命名为W11; X1到Yh2之间的为W12; X1到Yh3之间为W13,以此类推; 对于输出层神经元,我们也做了类似的工作。这里需要注意的一个重要的事情是,人工神经网络的输入可以是连续值,离散值或向量值。

总而言之,我们有下列的名词。如果你是神经网络的新手,我建议你看一遍这些名词:

  • 输入层单元= X1,X2,X3
  • 隐藏层输出= Yh1,Yh2,Yh3
  • 输出层输出= Y1,Y2,Y3
  • 目标输出=Ŷ1,Ŷ2,Ŷ3
  • Yh1的输入权重 = W11,W12,W13
  • Yh2的输入权重 = W21,W22,W23
  • Yh3的输入权重 = W31,W32,W33
  • Y1的输入权重 = W41,W42,W43
  • Y2的输入权重 = W51,W52,W53
  • 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函数是什么。下面是它的公式:

我们可以使用不同的激活函数来解决不同的问题。但什么时候选择什么激活函数,又是另一个话题,我们将在另一篇文章中讨论。但是简要地说,Sigmoid函数产生一个S形曲线。当网络的输入是连续可微的时候,我们使用Sigmoid函数,可以很容易地计算它的梯度。

本篇博文到此结束了!如果实现了上面提到的内容,我们的神经网络就准备好了。下一步是训练它。但在详细介绍如何进行训练之前,我们将看一下上述数学原理在Scala中的实现。这内容我们将在下一篇博客中看到。

本文的版权归 wheel_BL 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

哇~这么Deep且又轻量的Network,实时目标检测

最近挺对不住关注“计算机视觉战队”平台的小伙伴,有段时间没有给大家分享比较硬比较充实的“干货”了,在此向大家表示抱歉,今天抽空之余,想和大家说说目标的实时检测。

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

【机器学习】机器学习从“看”到“做”的实战经验

引言 前阵子看到一篇文章,学习了一段时间的机器学习算法后,再回头看机器学习问题,发现要想利用机器学习去很好的求解一个问题,其实并不是一件容易办到的事情,尤其是能...

2398
来自专栏量子位

视觉目标检测和识别之过去,现在及可能

作者:李习华 知乎专栏:碧空的cv之旅 量子位 已获授权编辑发布 计算机视觉中目标检测、跟踪、识别是最基本的几个task,尤其又以检测最为重要和基础。同时基本上...

4077
来自专栏人工智能LeadAI

监督学习中各算法优缺点及应用场景概览

记录一波监督学习算法的应用场景和优缺点。 高斯朴素贝叶斯 场景:该模型常用于性别分类(https://en.wikipedia.org/wiki/Naive_B...

5466
来自专栏机器之心

干货 | 物体检测算法全概述:从传统检测方法到深度神经网络框架

机器之心转载 公众号:阅面科技(ID:readsense) 作者:童志军 物体检测一向是比较热门的研究方向,它经历了传统的人工设计特征+浅层分类器的框架,到基于...

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

【机器学习】机器学习在实践中如何正确应用?

前阵子看到一篇文章,学习了一段时间的机器学习算法后,再回头看机器学习问题,发现要想利用机器学习去很好的求解一个问题,其实并不是一件容易办到的事情,尤其是能够对整...

2678
来自专栏机器之心

学界 | 综述论文:机器学习中的模型评价、模型选择与算法选择

3858
来自专栏新智元

【干货】ICLR-17 最佳论文详解:理解深度学习要重新思考泛化

【新智元导读】ICLR-17 最佳论文《理解深度学习需要重新思考泛化》引起过广泛争议,但弄清深度神经网络泛化本质无疑是重要的问题。新智元在取得本文作者 Adri...

57113
来自专栏大数据挖掘DT机器学习

学了统计、算法,如何正确应用机器学习?

原文:http://blog.csdn.net/google19890102/article/details/40680687 学习了一段时间的机器学习算...

3299
来自专栏编程

图文详解高斯过程(一)——含代码

作者:Alex Bridgland 编译:Bot 编者按:高斯过程(Gaussian process)是概率论和统计学中的一个重要概念,它同时也被认为是一种机器...

8967

扫码关注云+社区

领取腾讯云代金券