吴恩达深度学习课程笔记-神经网络编程基础-二分类

吴恩达深度学习课程笔记-神经网络编程基础-二分类

吴恩达深度学习课程笔记

第二周:神经网络编程基础(Basics of Neural Network programming)

2.1 二分类(Binary Classification)

首先我们从一个问题开始说起,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。现在我们可以用字母y来表示输出的结果标签,如下图所示: enter image description here

我们来看看一张图片在计算机中是如何表示的,为了保存一张图片,需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为64×64像素,那么你就有三个规模为64×64的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为5×4,如下图所示: enter image description here

为了把这些像素值放到一个特征向量中,我们需要把这些像素值提取出来,然后放入一个特征向量x。为了把这些像素值转换为特征向量x,我们依次把红、绿、蓝的所有像素都取出来,放到一个特征向量中,那么向量x的总维度将是5x4x3=60,这是三个像素矩阵中像素的总量。现在我们用n_x来表示输入特征向量的维度,有时候为了简洁,我会直接用n来表示输入特征向量的维度。所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果y为1还是0,也就是预测图片中是否有猫:

    \[x=\begin{bmatrix}255 \ 231 \ \vdots \ 255 \ 134 \ \vdots \end{bmatrix}\]

    \[n_x = 60\]

接下来我们说明一些在余下课程中,需要用到的一些符号。

符号定义 :

x: 表示一个n_x维数据,为输入数据,维度为(n_x, 1)

y:表示输出结果,取值为(0, 1);

(x^{(i)}, y^{(i)}): 表示第i组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;

X = [x^{(1)}, x^{(2)}, \dots, x^{(m)}]: 表示所有的训练数据集的输入值,放在一个n_x * m 的矩阵中,其中m表示样本数目;

Y = [y^{(1)}, y^{(2)}, \dots, y^{(m)}]: 对应表示所有训练数据集的输出值,维度为1 * m

当你在后面的课程中实现神经网络的时候,你会发现,一个好的符号约定能够将不同训练样本的数据很好地组织起来。而我所说的数据不仅包括x或者y还包括之后你会看到的其他的量。将不同的训练样本的数据提取出来,然后就像刚刚我们对x或者y所做的那样,将他们堆叠在矩阵的列中,形成我们之后会在逻辑回归和神经网络上要用到的符号表示。

下一篇:吴恩达深度学习课程笔记-神经网络编程基础-逻辑回归

发表评论

电子邮件地址不会被公开。 必填项已用*标注