吴恩达deeplearning Lesson2 Week2

吴恩达deeplearning Lesson2 Week2

  • matlab python 细节
    • matlab取整
    • matlab 无视警告
    • python表示数组结尾
    • pyhton表示乘方、开方
  • coursera notebook打不开
    • 本地提交方法
  • 课程
    • mini-batch梯度下降法
    • 指数加权平均
    • 动量梯度下降法(Gradient descent with Momentum)
    • RMSprop
    • Adam

matlab python 细节

matlab取整

1)fix(x) : 截尾取整.

fix(37/10)

ans = 3

(2)floor(x):不超过x 的最大整数.(高斯取整)

floor(5.6)

ans =5
(3)ceil(x) : 大于x 的最小整数

ceil(4/6)

ans =1
(4)四舍五入取整

round(4/6)

ans =1

round(2/6)

ans =0

matlab 无视警告

warning(‘off’)

python表示数组结尾

a[k:]

后面表示直到结尾

pyhton表示乘方、开方

乘方:pow(a,b) 意味着matlab a^b
也可以写为 a ** b
平方: a**2 或者 np.square(a)
开方: np.sqrt(a)

coursera notebook打不开

本地提交方法

下载下来ipynb,本地修改,然后在提交作业栏里找到my submission
点击create submission,出现下图
吴恩达deeplearning Lesson2 Week2_第1张图片
注意,页面上显示要你提交submission.json,困惑了我一段时间。实际上是让你提交你本地的ipynb文件。因为,ipynb格式文件实际上也是json!

另外,值得一提的是,并不是写完哪个函数就提交哪个函数。提交了两个以后,页面并没有反应。我一度以为coursera又卡页面了,很是恼火,后来才发现,必须每个蓝框都要进行提交和上传操作最下面的submit才会可选啊!!

吴恩达deeplearning Lesson2 Week2_第2张图片

课程

这次做作业因为courseranotebook登录不上去,所以导致耗费了很多时间。这里讲讲week2的课程收获与感想。

mini-batch梯度下降法

由于现实的数据集很大,基本都在用,很少见到不用的,函数化做的很不错了,自己实现的时候注意要把mini-batch序列进行编号并随机打乱顺序。
mini-batch大小是2的次方,代码会运行地快一些,64就是2的6次方,以此类推,128是2的7次方,256是2的8次方,512是2的9次方。所以经常把mini-batch大小设成2的次方。
64到512的mini-batch比较常见。

指数加权平均

吴恩达deeplearning Lesson2 Week2_第3张图片
指数加权平均数公式的好处之一在于,它占用极少内存,电脑内存中只占用一行数字而已,然后把最新数据代入公式,不断覆盖就可以了,正因为这个原因,其效率,它基本上只占用一行代码。
本质是将当前值和之前值的指数平均进行了结合。使曲线更平稳。

另外,需要进行指数加权平均的偏差修正(下图蓝圈)。
目的是解决 一开始前几个值,指数加权平均不准的问题。
吴恩达deeplearning Lesson2 Week2_第4张图片

动量梯度下降法(Gradient descent with Momentum)

很有意思,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新权重。
吴恩达deeplearning Lesson2 Week2_第5张图片

在纵轴上,你希望学习慢一点,因为你不想要这些摆动,但是在横轴上,你希望加快学习,你希望快速从左向右移,移向最小值,移向红点。所以使用动量梯度下降法。
其目的是减少收敛过程中的上下摆动,更平稳更快的收敛。实际就是

具体实现:
吴恩达deeplearning Lesson2 Week2_第6张图片

RMSprop

动量的升级版
吴恩达deeplearning Lesson2 Week2_第7张图片

Adam

结合了动量和RMSprop
吴恩达deeplearning Lesson2 Week2_第8张图片
默认选择
吴恩达deeplearning Lesson2 Week2_第9张图片

你可能感兴趣的:(Tensorflow)