吴恩达机器学习笔记---向量化

前言

 向量化可以通过使用系统内置的线性代数库或者数值线性代数库,大大减少代码的数量和运行的时间

向量化(Vectorization)

       在之前讲多变量线性回归的时候,假设函数 h h h如下:
在这里插入图片描述
       要想表示出假设函数,我们可以通过未向量化的代码通过累加 θ j \theta_{j} θj x j x_{j} xj获得,也可以直接通过向量化,把 θ \theta θ x x x看作向量,直接计算它们的内积,之后一步得到:
在这里插入图片描述
       通过C++的例子可以很明显的看出两者的区别:
在这里插入图片描述
       接下来,我们将向量化运用到线性回归算法的梯度下降中。模型参数更新规则如下:
在这里插入图片描述
       假设 n n n=2,即有两个特征变量,可以得到:
在这里插入图片描述
       这时候,我们把 θ \theta θ看做一个向量,然后用 θ \theta θ- α \alpha α 乘以某个别的向量 δ \delta δ 来更新 θ \theta θ,很明显, δ \delta δ= 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) \frac{1}{m}\sum\limits_{i=1}^{m}{({{h}{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x^{(i)} m1i=1m(hθ(x(i))y(i))x(i)。也就是模型参数 θ \theta θ的更新规则可以表示为:
        θ = θ − α δ \theta=\theta-\alpha\delta θ=θαδ
        δ = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) \delta=\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x^{(i)} δ=m1i=1m(hθ(x(i))y(i))x(i)

       再深入一点, δ = [ δ 0 δ 1 δ 2 ] \delta\text{=}\begin{bmatrix} \delta_{0}\\ \delta_{1}\\ \delta_{2}\\ \end{bmatrix} δ=δ0δ1δ2 δ j = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \delta_{j}=\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{j}^{(i)} δj=m1i=1m(hθ(x(i))y(i))xj(i)。其中, x ( i ) = [ x 0 ( i ) x 1 ( i ) x 2 ( i ) ] x^{(i)}\text{=}\begin{bmatrix} x^{(i)}_{0}\\ x^{(i)}_{1}\\ x^{(i)}_{2}\\ \end{bmatrix} x(i)=x0(i)x1(i)x2(i) h θ ( x ( i ) ) − y ( i ) {{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} hθ(x(i))y(i)是一个常数, x ( i ) x^{(i)} x(i) n + 1 n+1 n+1维的,所以 δ \delta δ也是 n + 1 n+1 n+1维的。我们就可以这样一步步地将所有变量有向量的形式表示出来。在上一篇中,用Python计算代价函数就是利用的向量化。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值