美文网首页
ANN的理解

ANN的理解

作者: 凌晨的月亮圆又亮 | 来源:发表于2020-04-17 09:00 被阅读0次

    学习背景:ANN几乎已经是现在机器学习入门必备的知识技能了,很多框架模型都是在ANN的基础上改进或者添加,所以不妨静下心来认真学习。

    1)ANN出现的背景

    我发现我是个研究什么技术都想知道知道背景的人,因为技术需要记忆,记忆需要逻辑,我喜欢来龙去脉。话不多说,开始。

    网络

    对于复杂问题,采用分而治之的方法,或者采用树,或者采用网络。在网络中,一般只有两类数据,一是节点v,一是边e。节点可以看成是处理器,具有各种处理能力,由函数完成处理器的功能。

    神经网络

    当将节点视作神经单元,网络就成了神经网络。神经网络的来源是参考了人类神经元中的树突传递信息。树突的生物形象可以简化成一个节点带一条边,让我灵魂画手来给你们画幅画。


    百度百科中突触.png

    在生物学上,神经元一的神经传导物质的释放,会使得神经元二的受体结合,而这个神经传导物质本身可能是兴奋或者抑制两种可能,就使得神经元二有了不同的反应,而人工神经网络ANN就是借鉴了这种机制,在结点中设置了函数,比如sigmoid或者tanh函数,来完成抑制或激活的目标。
    经过符号化的神经元突触结构变成了下面这种类型:


    符号化的神经元
    输入可以理解为神经递质,神经递质可以是多个,而每个神经递质可以是不同类型、不同数量的,然后每个神经地址的权重不同,可以是正负或零。这些权重的初始值一般是随机的,一开始会得到一个初始输出值,而将初始输出值和我们想要的结果进行对比,会发现差距,然后这时候就需要调整权重,以此来得到我们想要的结果,这个过程就称为“学习”或者“训练”的过程。而“学习”的方法有很多种,一般比较常见的就是后向传播算法学习。下面学习后向传播算法。

    后向传播算法

    激活函数实际的分工图.png

    后向传播算法中,其实先是激活函数起作用:


    激活函数.png

    激活函数其实就是权重和输入的乘积和。如果输出函数不作为,那么最后结构就是激活函数的结果,但是一般的输出函数都是一个非线性函数,才导致神经网络能够处理非线性的任务。数学函数如下图所示:


    激活函数Sigmoid
    激活函数图像如图所示:
    激活函数图像
    设想我们最简单的模型只有三层,输入层,中间隐藏层,最后输出层,现在输出层的结果和我们实际拿到的结果存在误差,这个时候就为这个输出神经元配备一个误差函数:
    误差函数

    如果输出层中存在多个神经元,只需要把他们的误差相加,就是最后的误差结果:


    误差函数求和
    从以上的公式中我们可以看到,后向传播误差来源于三个部分:1)输入2)权重3)输出,然后通过梯度下降法来调整权值:
    梯度下降法
    现在我们按照这个公式来计算:
    1) E对O的导数
    2) O对Wij的导数
    3) E对Wij的最后导数.png
    当存在多层的网络时,如何不断进行反向误差计算呢?,首先我们要搞清楚,多一层其实只是对第二层来说,输入是第一层输出,而不是x,所以只需要把公式(7)(8)(9)中的xi用wij来替换即可,实际中
    上前一层中的误差(设为Vik),是这样的:
    image.png

    一部分是:


    image.png
    另一部分是:(可以假设是输入值为uk,权重为vik的信号进入神经元,反向误差求到了输入层)
    image.png
    总的来说如果还需要多加层,也是一样的。

    参考文章:
    [给初学者们讲解人工神经网络(ANN)](https://blog.csdn.net/tdkcs/article/details/29561511

    相关文章

      网友评论

          本文标题:ANN的理解

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