【学习笔记】吴恩达老师《深度学习工程师》三

二周目课程

第一课 二分分类

二分类问题,说白了就是结果只有两种可能。老师以识别图像中是否为猫作为举例,首先讲解了神经网络中常用的符号规定。

当给我们一幅图:

我们需要得到的结果是,图片中是否是猫呢?显然结果仅有两种:是(1)和不是(0)。

那么神经网络是如何处理图片呢?图片由三种颜色(三个通道)组成,RGB,如果这幅图是64*64像素,那么它在计算机中结果如下:


每一个数字代表了像素的亮度(就和画画调色一样,不同的RGB亮度组合最终变成了不同颜色)。因此,一副64*64像素的图片,最终变为了3个64*64的堆叠矩阵。

而这些数字可以用来组成一个n维的特征向量。在机器学习和深度学习中,特征向量代表一个目标,本例中,代表是否是一只猫。

为了创造一个特征向量x,那些代表像素亮度值的数字将被按照不同颜色“铺开”或“重组(reshape)”。而一个64*64像素的图片,最终形成的特征向量的维度为nx=64*64*3=12 288。

符号约定:

(x,y)表示一个单独的样本;x是一个n维的特征向量,输出y{0,1}

训练集由m个样本组成:(x(1),y(1))表示样本一,(x(2),y(2))表示样本二……

mtrain表示训练集的样本数、mtest表示测试集的样本数

将训练样本更紧凑的表示,使用一个矩阵X,如下图所示:

X为一个nxm列的矩阵。在Python中,用X.shape = nxm)来表示X的大小。

同理,输出y亦可用一个矩阵Y表示。

Y是一个1行,m列的矩阵。在Python中,用Y.shape = 1m)来表示Y的大小。

第二课 logistic回归

这节课说了sigmoid函数。 我们对于任何一次预测,都渴望得到一个结果例如,它是1或者0.。  我们构建网络时引入权值w和偏差b,自然的我们想到=wx+b,但是这样定义,使得变为了一个线性函数,而且可能性(的取值)很可能不是介于0-1之间,甚至可能是负数。  怎么办?

引入sigmoid非线性函数:


函数式为:

=, so that,结果将被挤压在0~1之间。

不难看出:

Z是一个很大的正数,那么δ(z)=1

Z是一个很小或者很大的负数,那么δ(z)=0

Z=0,那么δ(z)=0.5

定义了 ,我们如何知道它与标准结果y之间的误差呢?就要定义损失函数。

猜你喜欢

转载自blog.csdn.net/yourgreatfather/article/details/79883322