向量化思想学习笔记

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)'
	end
end

参考文献:

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



  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值