• Machine Learning


    1. 回顾cost function

    cost function for a neural network is:
    J(Θ)=1mt=1mk=1K[yk(t) log(hΘ(x(t)))k+(1yk(t)) log(1hΘ(x(t))k)]+λ2ml=1L1i=1slj=1sl+1(Θj,i(l))2

    simple non-multiclass classification (k = 1) and disregard regularization, the cost is computed with:

    cost(t)=y(t)log(hΘ(x(t))+(1y(t))log(1hΘ(x(t))

    Theδj(l) is the error for aj(l) ,

    δj(l)=cost(t)zj(l)

    2. 计算δj(l)

    回顾一下前向传播,某一个节点的值是如何计算的。我们将把(xi,yi )输入到这个网络当中, xi1xi2将是我们对输入层的设置. 当我们进入第一个隐层, 我们会计算z1(2)z2(2).然后我们来用冲击函数计算他们的激励值有a1(2)a2(2)。之后我们把这些值乘以相应的权重如θ10(2),θ11(2),θ12(2)并赋予给z1(3),再使用sigmoid函数激活得到a1(3)。 类似的,我们一直得到z1(4)和最后的结果a1(4).
    p8
    误差反向传播与正向传播很像,我们先看他的代价函数。考虑最简单的一个输出(K=1)的情况:
    J(Θ)=1mt=1m[y(t) log(hΘ(x(t)))+(1y(t)) log(1hΘ(x(t)))]+λ2ml=1L1i=1slj=1sl+1(Θj,i(l))2
    不考虑正则化:

    J(Θ)=1mt=1m[y(t) log(hΘ(x(t)))+(1y(t)) log(1hΘ(x(t)))]

    上面简化的代价函数所做的事情就和下面的函数是一样的:
    cost(t)=y(t)log(hΘ(x(t))+(1y(t))log(1hΘ(x(t))

    这个函数的作用等价于逻辑回归时使用的均方误差,描述模型的输出和真实值的接近程度。

    反向传播在做什么
    p9
    首先,设置delta项 δ1(4),正如我们对前向传播算法对训练数据i的做法一样。 δ1(4)=a1(4)yi就是我们预测结果和真实结果的误差。我们 δ1(4)反向传播回去,得到 δ1(3), δ2(3). 进一步往前,得到 δ1(2δ2(2). 看起来就像是前向传播,只不过我们现在反过来做了. 看看最后我们如何得到δ2(2). 所以我们得到δ2(2) 和前向传播类似,它与权重Θ11(2Θ22(2),以及下一层的误差结果δ1(3), δ2(3)相关,把这个值乘以它权值,最后做加权求和就得到了δ2(2)。同理这里还要知道δ2(3),这就等于δ1(4)乘以它的权重。我们一般不考虑偏置单元。

  • 相关阅读:
    POJ 2411 Mondriaan's Dream( 轮廓线dp )
    BZOJ 4177: Mike的农场( 最小割 )
    BZOJ 2186: [Sdoi2008]沙拉公主的困惑( 数论 )
    2015.8.27
    BZOJ 1084: [SCOI2005]最大子矩阵( dp )
    BZOJ 1014: [JSOI2008]火星人prefix( splay + hash )
    BZOJ 1047: [HAOI2007]理想的正方形( 单调队列 )
    BZOJ 1025: [SCOI2009]游戏( 背包dp )
    BZOJ 2795: [Poi2012]A Horrible Poem( hash )
    HDU 5636 Shortest Path 分治+搜索剪枝
  • 原文地址:https://www.cnblogs.com/siucaan/p/9623136.html
Copyright © 2020-2023  润新知