吴恩达deeplearning Lesson2 Week2
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,出现下图
注意,页面上显示要你提交submission.json,困惑了我一段时间。实际上是让你提交你本地的ipynb文件。因为,ipynb格式文件实际上也是json!
另外,值得一提的是,并不是写完哪个函数就提交哪个函数。提交了两个以后,页面并没有反应。我一度以为coursera又卡页面了,很是恼火,后来才发现,必须每个蓝框都要进行提交和上传操作,最下面的submit才会可选啊!!
课程
这次做作业因为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比较常见。
指数加权平均
指数加权平均数公式的好处之一在于,它占用极少内存,电脑内存中只占用一行数字而已,然后把最新数据代入公式,不断覆盖就可以了,正因为这个原因,其效率,它基本上只占用一行代码。
本质是将当前值和之前值的指数平均进行了结合。使曲线更平稳。
另外,需要进行指数加权平均的偏差修正(下图蓝圈)。
目的是解决 一开始前几个值,指数加权平均不准的问题。
动量梯度下降法(Gradient descent with Momentum)
很有意思,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新权重。
在纵轴上,你希望学习慢一点,因为你不想要这些摆动,但是在横轴上,你希望加快学习,你希望快速从左向右移,移向最小值,移向红点。所以使用动量梯度下降法。
其目的是减少收敛过程中的上下摆动,更平稳更快的收敛。实际就是
具体实现:
RMSprop
动量的升级版
Adam
结合了动量和RMSprop
默认选择