deeplearning.ai学习笔记02

第二周

Posted by ZhY on September 5, 2017

符号表

约定的符号表如下:

Logistic Regression

Logistic Regression和Linear Regression的关系:

对于一个二分类问题(比如图片上是否是一只猫),我们给出x,并求出,即该图片是猫的概率。对于Linear Regression来说,应满足:

但是由于概率应该为0~1之间的一个数,而线性回归明显不是在0~1之间。因此我们将一个sigmoid函数,即:,作用到上。变为了:

这种形式就是Logistic Regression。

损失函数(误差函数)与成本函数

在Logistic Regression中,我们想要知道训练的效果如何,因此要用损失函数来评价。损失函数不用的原因是这个函数非凸。我们选择作为损失函数。

损失函数是评价对于单一样本来说训练效果的好坏,而评价w和b用在所有样本上的效果要用到成本函数:

梯度下降

这里Logistic Regression的成本函数我们希望能够尽量小,因此我们要想办法到达全局最小值,这个时候可以用到梯度下降的办法。对于,每次更新:

在编程时,一般用代替

Logistic回归的算法流程为:

向量化的优势

上面的流程是使用了for循环,从i=1到i=m。事实上,向量化之后再计算会比直接使用for循环快的多(参照向量化与非向量化时间对比)。这是因为像np.function这种函数在进行向量化计算时使用了SIMD进行并行化计算。GPU比CPU更加擅长SIMD计算,因此通常可扩展深度学习的实现在GPU上做。

将logistic回归向量化之后为:

python中的广播操作

几种常用的广播操作:boardcasting example

注意事项:

尽量避免使用秩为1的矩阵。在不确定矩阵的形式时使用assert观察或者使用a.reshape()来调整。

作业中需要注意的部分

材料及作业

week2

预处理

Common steps for pre-processing a new dataset are:

  • Figure out the dimensions and shapes of the problem (m_train, m_test, num_px, …)
  • Reshape the datasets such that each example is now a vector of size (num_px * num_px * 3, 1)
  • “Standardize” the data