向量化思想学习笔记

来源:互联网 发布:爱.回家知乎 编辑:程序博客网 时间:2024/05/22 17:20

1、为什么要用向量化?

很多语言中包含了矩阵计算,矩阵计算可以将一些程序计算进行简化并且可以提速。

2、如何理解向量化?

【非向量化案例】


这个是一个我们通常计算预测的一个公式。左边的预测值是由右边的公式求和获得。

程序可以写成:


【向量化案例】

如果右边化简的话可以用以下表达式:


计算求和就是:

Theta*x=1*1+2*2+3*3+4*4=1+4+9+16=30

于是乎就达到了效果

变成可以写成:


3、场景应用:

梯度下降中我们会更新theta值,那么每次的迭代更新就可以使用这个思想:


【向量化思想】

使用Octave软件实现:

function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)    m = length(y); % number of training examples    J_history = zeros(num_iters, 1);    for iter = 1:num_iters        theta=theta-alpha/m*((X*theta-y)'*X)'endend

参考文献:

NG 《机器学习》课程,第5章第六节。



1 0
原创粉丝点击