机器学习深度学习——向量化

向量化

Whenever possible, avoid explicit for-loops.

为什么向量化

加快运算速率,这就要使用一个强大的工具包numpy
直接上代码看看非向量化和向量化的对比 计算 两个向量内积,可以看到,向量化的结果比非向量化的快了有三百倍
机器学习深度学习——向量化_第1张图片

向量化的更多例子

矩阵和一个向量相乘
机器学习深度学习——向量化_第2张图片
计算向量的指数运算
机器学习深度学习——向量化_第3张图片

将向量化运用到logistic回归中

非向量化logistic回归的梯度下降代码:
在这个代码里面 有两个循环,绿色指示的部分,在计算dw的时候,如果我们有多个特征值,就要计算多个dw,此时n=2,dw就计算两个,很多的时候就要用循环解决,但是为了不循环,将下面的代码改成向量
机器学习深度学习——向量化_第4张图片

将dw1,dw2 …改成一个向量dw表示,初始化dw为n_x行1列的0即可
机器学习深度学习——向量化_第5张图片

向量化logistic回归

在上面的向量化中,简化了中间求dw的循环,这里,将for i=1 to m也简化掉,进行向量化
具体的做法是:
首先要求出z1,z2等,由z = wTx + b可知,应先将w,x和b向量化,x是输入的特征值个数,记为nx,而每一个样本都对应不同的输入,一共m个样本,所以有m列,所以x是R(nx,m)的矩阵而w在上面已经知道是个R(nx,1)的矩阵,w*x得到的矩阵是R(1*m)的,所以b也是R(1*m)的,最后z = np.dot(w.t, X) + b
然后要计算a1,a2等,a是由一个激活函数对z求得的,当z已经求出,可以直接将向量放入激活函数求出向量a, 最后A = σ(Z)
机器学习深度学习——向量化_第6张图片

向量化logistic回归的梯度输出

接下来就是计算dz,db,dw
机器学习深度学习——向量化_第7张图片
最后,将向量化运用到logistic回归的梯度输出中去
机器学习深度学习——向量化_第8张图片

你可能感兴趣的:(机器学习深度学习,机器学习,深度学习,python)