深度学习入门--Stanford CS230--学习笔记

学习作业和课间整理:

课程包含的五个部分:

https://github.com/jasmine-0/deeplearning.ai

每周更新提交作业,

注:由于版本问题,作业中有的报错的地方

常见报错1:

‘c’ argument has 1 elements…

这个主要是plt.scatter函数改版所致,解决方法:

1 import operator
2 from functools import reduce
3 plt.scatter(X[0, :], X[1, :], c=reduce(operator.add, Y), s=40, cmap=plt.cm.Spectral) 

还会持续更新。

学习计划:

每周周末学习一周的课程并完成作业,每走会有一个小结。

学习心得:

1. 现在深度学习如此强大的原因归结为三个因素:

Data(数据)
Computation(运算能力)
Algorithms(算法)

数据量的几何级数增加,加上GPU出现、计算机运算能力的大大提升,使得深度学习能够应用得更加广泛。另外,算法上的创新和改进让深度学习的性能和速度也大大提升。深度神经网络(DNN’s)可以更好地利用大规模的数据,从而超越较小的网络及传统学习算法。

2. 数据的矢量表达:

数据的处理还可以不用一层一层的 for 循环,矢量化设计数据据处理的结构很好的提高了效率。

3. 激活函数的原理(activation function):

激活函数是对每一层网络计算结果的处理,如果没有激活函数,那就起不到深层网络结构优化的效果

4. 随机初始化的重要性:

不好的参数初始化将导致梯度消失或爆炸。他认为解决这个问题的基本原则是确保每一层的权重矩阵的方差都近似为1。

5. 处理偏差(bias)和方差(variance)的工具

首先要先理解这两个术语的意思,

HIGH VARIANCE:
training set error is low while the dev set error is high.

HIGH BIAS:
not fitting the trainin data well, however, this generalizing at a reasonable level to the dev set.

用英文就比较好理解这两个概念

6. 为什么使用小批量梯度下降(mini-batch)

吴教授使用等高线图解释了减小和增加小批量尺寸的权衡。基本原则是较大的尺寸每次迭代会变慢,而较小的尺寸则可以加快迭代过程,但是无法保证同样的收敛效果。最佳方法就是在二者之间进行权衡,使得训练过程比立即处理整个数据集要快,又能利用向量化技术的优势。

猜你喜欢

转载自www.cnblogs.com/jaszzz/p/12658376.html