CaptainBed人工智能学习笔记——6.向量化人工智能算法

        今天这一章也许会有一些难度,因为思维比较的抽象,建议没有学过线性代数的同学们可以先去学习一下线性代数~其次编程语言也是必须的,然后在学习的过程中,我是用纸笔边学习变画图的,我也建议大家可以尝试一下我的办法!

原始计算方法

        首先,我们给出一段伪代码:

        我先提前解释一下这段代码的用处:通过前向传播算出损失,再通过反向传播得出z、w、b各自的偏导数。但要注意这不是我们最后得到的代码,因为他没用向量化,只是用了循环。

        这段代码是包含多个样本的,因此外面这个红色的大循环就是遍历每一个样本,m就是样本数量,并且每一个样本都包含n个特征。

        绿色代码的含义就是遍历当前样本的所有特征,算出每一个特征的w和b的乘积的结果,最后所有特征的w与b的乘积结果都加在一起后,再加上最后的阈值b,就完成了w与x的向量相乘,也就是矩阵相乘,再加上b的最终结果。

        黑色的代码就是计算激活函数的值。

        第一行橙色的代码是计算损失值,然后根据我们前一章学习的公式,可以直接计算出dz。

        第一部分蓝色的代码是遍历当前样本的所有特征,然后根据dw的计算公式进行每一个特征的累加,第二部分蓝色的代码就是求出每一个样本中相同特征点的平均值。

        紫色部分的代码就是计算db的值

向量化计算方法

        我们知道,用循环去处理问题,时间复杂度和空间复杂度是非常高的,训练一个神经网络不知道需要几年才行,就算训练好,预测也要需要很长时间.....

        因此,科学家们创造了一个方法——向量化数据

        假设我们的网络的单个样本是这样的:         当我们有多个样本,就代表着输入数据x不止3个,可能是6个、9个、12个.....

对绿色代码的简化

        (1)对输入数据的向量化:

        (2)对权重数据的向量化;

  

        通过对x和w的向量化,我们得到了X和W(大写字母表示向量化后的结果,里面存着小写的对应数据),还记得逻辑回归公式嘛?我们在逻辑回归公式中提到,我们需要将X和W进行向量相乘,也就是将前面的两个矩阵相乘了,但是我们很快就可以发现问题:向量相乘,是一行乘一列,但是我们需要每一个特征和该特征对应的权重相乘,所以我们需要将W进行转置,变成一个行向量,就可以进行计算了,计算如下:

        由于b是不变的,并且python可以进行广播化操作(将b扩展成适应运算的矩阵),所以我们可以直接将绿色这一部分的代码写成一句:

        用向量化表示答案:

对黑色代码的简化:

        这一部分比较简单,由于我们已将算出了Z,所以只需要把小z换成向量大Z就可以了:

        由于Z是一个向量,并且原本的小a存储的是每一个样本的值,现在就是每一个样本的a的集合A,所以图像表达就是:

对橙色代码的简化:

        橙色代码的作用是先算出每一个样本的损失值,最后再相加除以样本数,就可以得到每一个样本的平均损失值,也就是成本。我们已经可以通过前面的向量化操作得到A,也就是每一个样本的预测结果,这样我们就可以把原来公式中的a替换为A,对每一个a一次性进行运算。

对灰色代码的简化:

        原始的计算中,灰色代码的作用是每一个样本中,损失函数关于z的导数,我们在前面的文章中已经得到了相应的计算公式,直接记住就可以了,那么现在因为已经得到了向量A和Y(标签的向量,包含了每一个样本的标签值),所以可以直接通过公式获得,并给出计算过程:

对蓝色和紫色代码的简化:

        蓝色代码和则色代码的两部分其实都如出一辙,我们通过前面已经学到过的公式,然后将参数换成向量化后的参数即可,最后计算样本的平均值:

        这一部分的向量化就不多写了,感兴趣的可以自己试着画一画

总结代码

        至此,所有原始的代码都已经替换成了向量化之后的代码了,我们看一下完整的代码:

        附上一张笔记图片:

         再次声明:本人只分享在课堂中学习到的知识,不会发布原创著作的原文内容,若用到原文的图像,会有水印标注,本人的文章全都是对知识的再次理解写出来的,原创不易!尊重版权!

        原创网站:人工智能教程 (captainai.net)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LifeGPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值