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

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

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

  • 相关阅读:
    [LeetCode] 215. Kth Largest Element in an Array 数组中第k大的元素
    [LeetCode] 23. Merge k Sorted Lists 合并k个有序链表
    [LeetCode] 146. LRU Cache 近期最少使用缓存
    [LeetCode] 381. Insert Delete GetRandom O(1)
    [LeetCode] 380. Insert Delete GetRandom O(1) 插入删除获得随机数O(1)时间
    [LeetCode] 57. Insert Interval 插入区间
    [LeetCode] 56. Merge Intervals 合并区间
    [LeetCode] 155. Min Stack 最小栈
    移动web开发-------meta
    font-family
  • 原文地址:https://www.cnblogs.com/zswbky/p/8454071.html
Copyright © 2011-2022 走看看