zoukankan      html  css  js  c++  java
  • 神经网络(11)--具体实现:unrolling parameters

    我们需要将parameters从矩阵unrolling到向量,这样我们就可以使用adanced optimization routines.

    unroll into vectors

    costFunction与fminunc里面的theta都是n+1维的向量,costFunction的返回值gradient也是n+1维的向量。

    但是当我们使用神经网络时,我们的Θ和gradient都是一个矩阵,而不是一个向量.在这儿我们的目标是将这些矩阵展开为向量,这样就可以使用上面的这两个函数了。

    如何unroll成向量的例子

    如上图所示,我们可以将矩阵转换为向量(thetaVec and DVec are big long vector),也可以将向量利用reshape变为矩阵。

    具体的unrolling如何工作的

     在costFunction中,我们会从thetaVec中得到Θ(1)(2)(3),,这样方便我们计算后面所需要的D(1),D(2),D(3),和J(Θ);

    然后再将这些D(1),D(2),D(3)unroll to 得到gradientVec进行返回。

    总结(什么时候使用矩阵,什么时候使用向量)

    使用矩阵的情况: 当做forward propagation 和 back propagation时,我们需要使用矩阵来计算,这里就需要用reshape来构建矩阵。

    使用向量的情况: 当使用fminunc这些advanced算法的时候,这些函数的参数是向量,这时我们需要将矩阵转化为向量来计算。

  • 相关阅读:
    mysql 主从复制
    confluence wiki搭建使用
    python 解析json loads dumps
    在linux下修改mysql的root密码
    [转]量子恒道统计
    php include
    php solr 查询
    php solr 扩展
    IKAnalyzer 和 solr4.3 冲突
    solr 4.3.0 配置
  • 原文地址:https://www.cnblogs.com/yan2015/p/5023847.html
Copyright © 2011-2022 走看看