神经网络和深度学习
神经网络基础
二分分类
-
在神经网络的计算中,通常先有一个叫做前向传播的步骤,接着有一个叫做反向传播的步骤。
-
逻辑回归是一个用于二分类(binary classification)的算法。
- 这里有一个二分类问题的例子,假如你有一张图片作为输入,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。
- 现在我们可以用字母
来表示输出的结果标签,如下图所示:
-
为了保存一张图片,需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为 64x64 像素,那么你就有三个规模为 64x64 的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。
-
为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为 5x4 而不是 64x64,如下图所示:
- 为了把这些像素值放到一个特征向量中,我们需要把这些像素值提取出来,然后放入一个特征向量 。
- 为了把这些像素值转换为特征向量 ,我们需要像下面这样定义一个特征向量 来表示这张图片,我们把所有的像素都取出来,例如255、231等等,直到取完所有的红色像素,接着最后是255、134、 …、255、134等等,直到得到一个特征向量,把图片中所有的红、绿、蓝像素值都列出来。
- 如果图片的大小为 64x64 像素,那么向量 的总维度,将是64乘以64乘以3,这是三个像素矩阵中像素的总量。
- 在这个例子中结果为12288。现在我们用 ,来表示输入特征向量的维度.
- 所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果
为1还是0,也就是预测图片中是否有猫:
-
符号定义:
- :表示一个 维数据,为输入数据,维度为 ;
- :表示输出结果,取值为 ;
- :表示第 组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
- :表示所有的训练数据集的输入值,放在一个 的矩阵中,其中 表示样本数目;
- :对应表示所有训练数据集的输出值,维度为1×m。
- 用一对 来表示一个单独的样本, 代表 维的特征向量, 表示标签(输出结果)只能为0或1。
- 训练集将由 个训练样本组成,其中 表示第一个样本的输入和输出, 表示第二个样本的输入和输出,直到最后一个样本 ,然后所有的这些一起表示整个训练集。
- 有时候为了强调这是训练样本的个数,会写作 ,当涉及到测试集的时候,我们会使用 来表示测试集的样本数。
-
是一个规模为 的矩阵,当你用 Python 实现的时候,你会看到 X.shape,用于显示矩阵的规模,即 X.shape 等于 ,这就是如何将训练样本(输入向量 的集合)表示为一个矩阵。
-
等于 ,所以在这里是一个规模为1乘以 的矩阵,同样地使用 Python 将其表示为 Y.shape 等于 ,表示这是一个规模为1乘以 的矩阵。