前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >吴恩达深度学习笔记 2.10~2.18 向量化与python

吴恩达深度学习笔记 2.10~2.18 向量化与python

作者头像
Dar_Alpha
发布2018-09-03 16:42:23
4790
发布2018-09-03 16:42:23
举报
文章被收录于专栏:技术小站技术小站

对于非向量化,我们要求得z的值,必须用到for循环,但是当数据量非常庞大的时候,for循环所用的时间会比较多,这个时候可以使用向量运算来提高速度

用python的函数np.dot实现两个向量/矩阵 相乘.

SIMD:为了加快深度学习神经网络运算速度,可以使用比CPU运算能力更强大的GPU。事实上,GPU和CPU都有并行指令(parallelization instructions),称为Single Instruction Multiple Data(SIMD)。SIMD是单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。SIMD能够大大提高程序运行速度,例如python的numpy库中的内建函数(built-in function)就是使用了SIMD指令。相比而言,GPU的SIMD要比CPU更强大一些。

在举一个例子:

求u关于对于v的每一个元素进行乘方操作,运用向量运算结果如上右图所示.

Vectorizing Logistic Regression:

Broadcasting in Python:

Python中矩阵的运算用到了广播(broadcast)的机制.

广播例子:

要求的四个食物中每一项热量所占的百分比,先求出每一项的热量总和

A.sum(axis=0)表示每一个向量从上至下相加,如果axis=1则表示从左到右相加

如果对矩阵的维度不确定,可以采用reshape命令进行重塑.

General Princial In Broadcasting:

'

下面用一些例子来对此进行说明,该原则非常简单,就不一一说明:

接下来我们将总结一些python的小技巧,避免不必要的code bug。

python中,如果我们用下列语句来定义一个向量:

代码语言:javascript
复制
a = np.random.randn(5)
  • 1

这条语句生成的a的维度是(5,)。它既不是行向量也不是列向量,我们把a叫做rank 1 array(秩为1的矩阵)。这种定义会带来一些问题。例如我们对a进行转置,还是会得到a本身。所以,如果我们要定义(5,1)的列向量或者(1,5)的行向量,最好使用下来标准语句,避免使用rank 1 array。

代码语言:javascript
复制
a = np.random.randn(5,1)
b = np.random.randn(1,5)
  • 1
  • 2

除此之外,我们还可以使用assert语句对向量或数组的维度进行判断,例如:

代码语言:javascript
复制
assert(a.shape == (5,1))
  • 1

assert会对内嵌语句进行判断,即判断a的维度是不是(5,1)的。如果不是,则程序在此处停止。使用assert语句也是一种很好的习惯,能够帮助我们及时检查、发现语句是否正确。

另外,还可以使用reshape函数对数组设定所需的维度:a.reshape((5,1))

Juypter notebook的使用:

juypter notebook又称IPython notebook,是一个交互式的笔记本,支持运行超过40种编程语言。本课程所有的编程练习题都将在Jupyter notebook上进行,使用的语言是python

安装过程可参考:https://jupyter.readthedocs.io/en/latest/install.html  官方的文档

Explanation of logistic regression cost function(optional)

之前我们的到了Loss Funtion,现在对其进行一个解释

y hat 等于σ(w T x+b) ,y hat 可以看做是预测结果为1的一个概率,即P(y=1|x),所以我们能得到:

因为log函数为单调函数,我们可以对其进行一个log的处理得到:

我们希望上述概率P(y|x)越大越好,对上式加上负号,则转化成了单个样本的Loss function,越小越好,这样就得到了我们之前介绍的逻辑回归的Loss function形式。对于训练m个样本,它们是符合独立同分布的,所以我们可以对p(y(i)|x(i))进行乘积,并要所得到的结果最大(即预测结果与输出越接近),将乘积log化后并将负号提出来以后,得到Cost Function,则Cost Function越小越好

代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Explanation of logistic regression cost function(optional)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档