【神经网络原理】神经网络结构 & 符号约定

作者: Hennyxu | 来源:发表于2019-11-09 13:09 被阅读0次

    本文将主要讲解全连接神经网络的基本结构,包括对神经元、网络的输入 & 输出,权重w & 偏置b,激活函数的理解与符号约定。主要参考Neural Networks and Deep Learning这本书,非常适合初学者入门。

    一、神经元—神经网络的组成单元

    神经元模型的符号约定:输入:\vec{x},权重(weight):\vec{w},偏置(bias):b,未激活值:z,激活输出值:a
    神经元可用于解决部分二分类问题——当有一个类别未知的\vec{x}输入感知机,若输出值a = 1时,感知机被激活,代表x属于第一类;若输出值a = 0时,感知机未激活,则代表x属于第二类。而对于sigmoid神经元,若输出值a ≥ 0.5时,代表x属于第一类,否则为第二类。

    二、sigmoid神经元的优势

    不难看出,感知机可以轻松实现“与非”逻辑,而与非逻辑可以组合成其他任意的逻辑,但对于一些过于复杂的问题,我们难以写出其背后地逻辑结构。这时候神经网络就能大显身手:它可以自适应的学习规律,调节网络地权重和偏置等参数,我们只需要用大量的数据对其正确地训练,即可得到我们想要的效果!
    那有一个很有意思的问题:相比于阶跃函数,为什么我们在神经网络中更愿意采用sigmoid函数作为激活函数呢?

    首先,由于感知机的激活函数为阶跃函数(在0处突变),权重的一个小的变化就可能导致输出值的突变,而如果将激活函数替换为sigmoid函数,输出值的变化就能发生相应的小的变化,有利于网络学习;另外,由于采用二次代价函数作为损失函数时,利用BP算法求梯度值需要对冲激函数求导,sigmoid函数正好时连续可导的,而且导数很好求。

    三、全连接神经网络结构

    为了便于理解,先画一个三层的全连接神经网络示意图,激活函数都选用sigmoid函数。全连接神经网络指除输出层外,每一个神经元都与下一层中的各神经元相连接。网络的第一层为输入层,最后一层为输出层,中间的所有层统称为隐藏层。其中,输入层的神经元比较特殊,不含偏置b,也没有激活函数\sigma(·)

    神经网络结构的符号约定w^l_ {kj}代表第l层的第k个神经元与第(l-1)层的第j个神经元连线上的权重;W^l代表第l层与第l-1层之间的所有权重w构成的权重矩阵。b^l_ {k}、z^l_ {k}、a^l_ {k}分别代表第l层的第k个神经元对应的偏置、未激活值、激活值;\vec{b}^l、\vec{z}^l、\vec{a}^l则分别代表第l层的所有偏置组成的列向量、所有未激活值组成的列向量以及所有激活值组成的列向量。

    注意!w^l_ {kj}上角标数字l是连线右边的层的层数,而下角标数字kj是先写连线右边的层中神经元所在的位置k,再写连线左边的层中神经元所在的位置j,此顺序是为了使W·\vec{x}时无需转置,方便书写。

    下面展示了一个手写体识别的三层全连接神经网络结构:

    隐藏层的功能可以看作是各种特征检测器的组合:检测到相应特征时,相应的隐藏层神经元就会被激活,从而使输出层相应的神经元也被激活。

    近期的更新计划是 1. 如何利用梯度下降法更新各层网络参数——权重与偏置,使损失函数的值尽可能小、2. 如何利用BP反向误差传播算法优化损失函数对各层网络参数梯度求解、3. 梯度下降算法的常见变种。后面也会更新一些BP网络、CNN网络源代码,欢迎关注,有不严谨之处请指正~

    相关文章

      网友评论

        本文标题:【神经网络原理】神经网络结构 & 符号约定

        本文链接:https://www.haomeiwen.com/subject/cppwbctx.html