向量化思想学习笔记
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 examplesJ_history = zeros(num_iters, 1);for iter = 1:num_iterstheta=theta-alpha/m*((X*theta-y)'*X)'end end參考文獻:
NG 《機器學習》課程,第5章第六節。
總結
- 上一篇: 【Bug解决】Could not fin
- 下一篇: 空间数据与空间分析不确定性原理——学习笔