【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial—5.6 向量化 Vectorization

5.6 向量化 Vectorization

  参考视频: 5 - 6 - Vectorization (14 min).mkv

 


 

  下面是向量化的小例子,如果将所有u(j) 、所有v(j)、所有w(j)都看成列向量,则公式变为为向量加法 u = 2v + 5w

 


 

   再复杂一些,在线性回归中 h(x) 的公式如下:

   假设此时n=2,只有两个特征。将其向量化:

  在Octave中,如果使用for循环实现,则为左边的代码。使用看做向量相乘,则只需要右边一行代码:

 

   在C++中,for循环和向量化方法的对比如下:


  当 n = 2 时,梯度下降的公式如下:

 

   实现这三个方程的方式之一,是用一个 for 循环,让 j 分别等于 0、1、2 来更新 Θj。

  因为三个参数是同步更新,可以用向量化的方法来实现。我们使用 δ 替代公式中下面这项(注意最右边 x 没有下标):

 

  则δ是一个 n+1 维向量(在这里是3维)

  α 是一个实数,α δ 也是 n+1 维向量


  x(i) 是一个 n+1 维向量(在这里是3维)

   公式变为一个向量减法:

    Θ := Θ -  α δ

   有时我们使用几十或几百个特征量来计算线性归回,当使用向量化地实现线性回归,通常运行速度就会比 for 循环快的多

 

posted @ 2018-10-29 21:21  马小豆包  阅读(702)  评论(0编辑  收藏  举报