zoukankan      html  css  js  c++  java
  • 神经网络反向传播(相关公式)

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

    正向传播是为了计算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

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

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

  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/zswbky/p/8454071.html
Copyright © 2011-2022 走看看