• 神经网络反向传播(相关公式)


    看了网上的帖子,写的很好,不过我还是想自己整理下,有的地方原来的博主还是有点散了,不过建议先看原博,然后在按照如下思路展开,不然可能有点跳跃。
    自己认为下面的思路还是很清晰的,编辑公式就花了我好长时间啊。。。

    正向传播是为了计算net out的值
    反向传播
    这里写图片描述

    首先说一下sigmoid函数的一个比较好的特点:

    f(x)=f(x)(1f(x))

    (1)隐含层—->输出层

    EtotalW5=Etotalouto1outo1neto1neto1w5=δo1neto1w5=δo1outh1

    在这里δo1=Etotalouto1outo1neto1

    Etotalouto1outo1neto1=δo1=Etotalneto1=(Eo1outo1+Eo2outo1)outo1neto1=(Eo1outo1+0)outo1neto1=[(targeto1outo1)][outo1(1outo1)]

    因此原式带入后:

    EtotalW5=Etotalouto1outo1neto1neto1w5=δo1outh1=[(targeto1outo1)outo1(1outo1)][outh1]

    (2)隐含层—->隐含层

    EtotalW1=Etotalouth1outh1neth1neth1w1

    这里的Etotalouth1

    Etotalouth1=Eo1outh1+Eo2outh1=(Eo1neto1neto1outh1)+(Eo2neto2neto2outh1)=[(Eo1outo1outo1neto1)neto1outh1]+[(Eo2outo2Eo2outo2)neto2outh1]=[(targeto1outo1)outo1(1outo1)w5]+[(targeto2outo2)outo2(1outo2)w6]

    为了简化公式记δ(h1)表示隐含层单元h1的误差为

    Etotalw1=i=12[(Etotaloutoioutoinetoi)netoiouth1]outh1neth1neth1w1=i[δoiwh?][outh1(1outh1)][i1]=δh1i1

    这里的δ链接顶部的公式是同一个公式,所以为什么偏导是这样的也就解释清楚了,当然在链接也给出了形式化的证明

    对比这上面两个,可以发现两个后面的红色字体部分是一样的,只不过针对两个层需要稍微改动点,并且两个偏导数的形式是一样的

  • 相关阅读:
    MY_HOME
    跨站请求伪造CSRF防护方法
    python中的函数参数
    python 中的闭包
    append追加元素绑定事件无效的解决办法
    webservice练习(cxf,axis,httpclient)
    hibernate5 mysql写入中文乱码
    今天面试中遇到的几个sql查询问题
    Eclipse运行maven项目是出现-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.这种问题解决办法
    模拟博客园登录java实现
  • 原文地址:https://www.cnblogs.com/zswbky/p/8454071.html
Copyright © 2020-2023  润新知