MATLAB编程中,向量化的思想可从下图看出:
![](https://img.haomeiwen.com/i11604708/be16617ee11407d4.png)
对于常见的线性回归假设函数
![](https://img.haomeiwen.com/i11604708/57aac679f13db5af.png)
做乘积累加的过程,传统的编写方法可能像左边一样,但是如果把θ和X看作一个向量,则只需要写成向量相乘即可。
对应的C++的向量化例子:
![](https://img.haomeiwen.com/i11604708/7daea8a5777713d8.png)
线性回归算法梯度下降的更新规则的向量化
![](https://img.haomeiwen.com/i11604708/46e7ed8b8a89c79c.png)
梯度下降确定θ参数时,需要同时对所有的θ进行更新,θ的方程如上图所示,一般编程时可能需要写for循环,对所有的θ进行处理,如果是向量化的形式,相当于:
θ = θ - αδ
其中θ是一个j维的向量,α是学习速率,是一个常数。δ是一个j维的向量:
![](https://img.haomeiwen.com/i11604708/5cde6702baab1668.png)
![](https://img.haomeiwen.com/i11604708/6099fda5fed85500.png)
微信公众号:BioLearner
定期更新,欢迎关注
网友评论