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

unroll into vectors

神经网络(11)--具体实现:unrolling parameters

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

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

如何unroll成向量的例子

神经网络(11)--具体实现:unrolling parameters

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

具体的unrolling如何工作的

神经网络(11)--具体实现:unrolling parameters

 

 在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算法的时候,这些函数的参数是向量,这时我们需要将矩阵转化为向量来计算。

 

相关文章:

  • 2022-01-17
  • 2022-02-07
  • 2021-10-26
  • 2021-11-30
  • 2021-12-12
  • 2021-09-02
  • 2021-11-07
猜你喜欢
  • 2021-12-29
  • 2021-06-12
  • 2022-01-01
  • 2021-12-06
  • 2021-11-10
  • 2021-11-30
  • 2022-01-08
相关资源
相似解决方案