二周目课程
第一课 二分分类
当给我们一幅图:
我们需要得到的结果是,图片中是否是猫呢?显然结果仅有两种:是(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为一个nx行m列的矩阵。在Python中,用X.shape = (nx,m)来表示X的大小。
同理,输出y亦可用一个矩阵Y表示。
Y是一个1行,m列的矩阵。在Python中,用Y.shape = (1,m)来表示Y的大小。
第二课 logistic回归
这节课说了sigmoid函数。 我们对于任何一次预测,都渴望得到一个结果例如,它是1或者0.。 我们构建网络时引入权值w和偏差b,自然的我们想到=wx+b,但是这样定义,使得变为了一个线性函数,而且可能性(的取值)很可能不是介于0-1之间,甚至可能是负数。 怎么办?
引入sigmoid非线性函数:
函数式为:
即=, so that,结果将被挤压在0~1之间。
不难看出:
l 若Z是一个很大的正数,那么δ(z)=1
l 若Z是一个很小或者很大的负数,那么δ(z)=0
l 若Z=0,那么δ(z)=0.5
定义了 ,我们如何知道它与标准结果y之间的误差呢?就要定义损失函数。