二、神经网络的结构

来源:互联网 发布:淘宝店招制作教程 编辑:程序博客网 时间:2024/06/05 20:01

本博客主要内容为图书《神经网络与深度学习》和National Taiwan University (NTU)林轩田老师的《Machine Learning》的学习笔记,因此在全文中对它们多次引用。初出茅庐,学艺不精,有不足之处还望大家不吝赐教。

1. 神经网络的结构

1.1 前馈神经网络的结构示意图

  前馈神经网络的结构如所示


X. 神经网络结构示意图

  ⽹络中最左边的称为输⼊层Input Layer),其中的神经元称为输⼊神经元;最右边的是输出层(Output Layer)包含有输出神经元;中间层的神经元既不是输⼊也不是输出,则被称为隐藏层(Hidden Layer)。上⾯的⽹络仅有⼀个隐藏层,但有些⽹络有多个隐藏层。
  由于历史的原因,尽管神经网络是由S型神经元⽽不是感知器构成,但这种多层⽹络有时被称为多层感知器(Multilayer Perception,MLP)。但是这种叫法会产生歧义,因此不常使用。
  也有⼀些⼈⼯神经⽹络的模型,其中反馈环路是可⾏的,这些模型被称为递归神经⽹络。该模型的关键在于,神经元在变为非激活态之前会在一段 有限时间内均保持激活状态。这种激活状态可以激励其他的神经元,被激励的神经元在随后 一段有限时间内也会保持激活状态。如此就会导致更多的神经元被激活,一段时间后我们将 得到一个级联的神经元激活系统。在这个模型中环路并不会带来问题,因为神经元的输出只 会在一段之间之后才影响到它的输入,它并非实时的。

1.2 前馈神经网络的参数说明

  从X.中可以看到神经网络中具有十分庞大的参数。

  • 神经网络的层数(Layers)
    X.中,隐层的层数是L,但是在实际的编程过程中常常将输入层,输出层也计算在网络层数中,因此常常用L表示包含输入、隐藏、输出层在内的所有层数。

  • 神经网络的节点数(Nodes)
    每一层中神经元的个数

  • 权重(Weights)、偏置(Biases)&加权输入(Weighted Input)
    在神经网络中用 w ljk 表示从第 l1 层的第 k 个神经元到第 l 层的第 j 个神经元的连接的权重;
    b lj 表示第 l 层的第 j 个神经元的偏置;
    z lj 表示第 l 层的第 j 个神经元的加权输入;
    a lj 表示第 l 层的第 j 个神经元的激活值;
    上述参数间的关系满足如下条件

    z lj=kw ljka l1j+b lj

    a lj=σ(kw ljka l1j+b lj)

    若考虑神经网络中所有的神经元,可以写成下式的矩阵形式
    a l=σ(w la l1+b l)

    我们仅 仅将权重矩阵作用于上一层的激活值,然后加上偏置向量,最后用 σ 函数作用于这个结果, 就得到了本层的激活函数值。相比于之前我们采用的神经元到神经元的视角,这种全局的视角通常更加简明和容易理解,涉及到更少的下标,同时还能对正在进行的事情保持精确的阐释。这种表达式在实际操作中也非常有用,因 为大多数矩阵库提供了更快的方式来实现矩阵乘法,向量加法以及函数向量化操作。

  在上述的参数中分为两类,一类是通过数据通过学习算法得到的称之为参数,如权重(Weights)、偏置(Biases),而另一类参数是经过人工设置得到的称之为超参数,如神经网络的层数、节点数等。超参数除了上述的两个之外,剩下的将在训练神经网络的部分进行介绍。

阅读全文
1 0
原创粉丝点击