计划在9月4日(截止日期)之前完成DeepLearning的所有课程学习。每个课程对应一篇博客,根据学习进度随时更新。
参考课程

(一)深度学习概论

1.结构化数据和非结构化数据

结构化数据是已经清楚定义并组织的数据,如数据库。
非结构化数据不具有结构化特征,如图片、音频等。

2.提高效果的方法

-训练更大的神经网络
-投入更大规模的标记数据

(二)神经网络基础

1.二分分类

举例:识别输入图像x中有/没有猫,返回y(有为1,无为0)
图片在计算机中的存储形式
吴恩达DeepLearningCourse1-神经网络和深度学习

使用向量x存储矩阵中的三组数据,组织成nx1的向量,并将每个向量作为一列组织成整体输入X(一种约定),输出Y则为1xm的向量。

2.Logistic回归

在二分分类问题中,得到的结果是输入符合要求的期望,因此需要介于0和1之间。采用σ函数满足该限制。
吴恩达DeepLearningCourse1-神经网络和深度学习

Loss Function:考察单个样本数据和实际结果的接近程度。选择该形式是因为其直观上是凸函数,有唯一极小值,避免非凸函数的多个极值情况,便于求解。
吴恩达DeepLearningCourse1-神经网络和深度学习

Cost Function:考察样本总体对实际结果的拟合效果。
吴恩达DeepLearningCourse1-神经网络和深度学习

3.梯度下降法

初始化w和b,每次选择梯度最大的方向前进,或者停在最终结果处,由于成本函数是凸函数,所以存在唯一极小值。
吴恩达DeepLearningCourse1-神经网络和深度学习

其中,α代表学习率,即前进步长。
吴恩达DeepLearningCourse1-神经网络和深度学习

4.计算图、计算图的导数计算

导数计算采用链式法则从右向左进行,即dJ/da = (dJ/du)*(du/da)
吴恩达DeepLearningCourse1-神经网络和深度学习

单个训练样本时同理操作。

5.Logistic回归中的梯度下降法

对代价函数的每个累加项对应求导即可得到偏导值。
图中的J,dw1,dw2,db是累加项,所以最终要除以m。而zi,ai,dzi对应每个训练样本的值。求累加值增量时,采用4中的链式法则的思想。
吴恩达DeepLearningCourse1-神经网络和深度学习

6.向量化

向量化避免了在程序中显式使用for循环,有效减少运行时间。
例子中的操作方法:
import numpy
a = numpy.random.rand(1000000)
b = numpy.random.rand(1000000)
c= numpy.dot(a, b)
该操作比for循环计算并累加效率高得多。所以每次需要for循环时,查看numpy中是否有可调用的内置函数,避免使用for循环。
根据以上例子,我理解的向量化是用向量的形式,组织每轮循环中得到的结果,利用numpy内置函数高效地计算出矩阵相乘的结果。
吴恩达DeepLearningCourse1-神经网络和深度学习

逆向传播时通过向量化消除了两层的for循环,即在一次步进中没有循环。但如果想要多次迭代,还需在外层添加计数循环。
吴恩达DeepLearningCourse1-神经网络和深度学习

7.Python广播

在矩阵元素的运算(区别于矩阵乘法)中,将规模较小的矩阵(其实是向量)进行若干次复制后,再对对应位置的元素进行运算。
吴恩达DeepLearningCourse1-神经网络和深度学习

使用assert保证矩阵是预期的形状,如assert(a.shape==(3, 4))。调用reshape方法可以将矩阵保持期望形状,如a = a.reshape(3, 3)。

相关文章:

  • 2021-10-09
  • 2021-11-11
  • 2021-11-02
  • 2021-11-12
  • 2021-08-10
  • 2021-10-13
  • 2021-09-24
  • 2021-07-31
猜你喜欢
  • 2021-10-14
  • 2021-07-30
  • 2021-05-05
  • 2021-11-05
  • 2021-04-13
  • 2021-11-20
  • 2021-11-20
相关资源
相似解决方案