原创博客,转载请注明出处!
本周的主题是神经网络基础
1、二分分类
逻辑回归是一个用于二分类的算法。首先我们从一个问题开始说起,这里有一个二分类问题的例子,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。现在我们可以用字母 y 来 表示输出的结果标签,如下图所示:
我们来看看一张图片在计算机中是如何表示的,为了保存一张图片,需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为64x64像素,那么你就有三个规模为64x64的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为5x4 而不是64x64,如下图所示:
为了把这些像素值放到一个特征向量中,我们需要把这些像素值提取出来,然后放入一个特征向量 x 。为了把这些像素值转换为特征向量 x ,我们需要像下面这样定义一个特征向量 x 来表示这张图片,我们把所有的像素都取出来,例如255、231等等,直到取完所有的红色像素,接着最后是255、134、…、255、134等等,直到得到一个特征向量,把图片中所有的红、绿、蓝像素值都列出来。如果图片的大小为64x64像素,那么向量 x 的总维度,将是64乘以64乘以3,这是三个像素矩阵中像素的总量。在这个例子中结果为12,288。现在我们用 n_x=12,288 ,来表示输入特征向量的维度,有时候为了简洁,我会直接用小写的 n 来表示输入特征向量 x 的维度。所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果 y 为1还是0,也就是预测图片中是否有猫
先来学习下余下课程的符合定义:
x :表示一个 n_x 维数据,为输入数据,维度为 (n_x,1) ;
y :表示输出结果,取值为 (0,1) ;
(x^{(i)},y^{(i)}) :表示第 i 组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
X=[x^{(1)},x^{(2)},...,x^{(m)}] :表示所有的训练数据集的输入值,放在一个 n_x×m 的矩阵中,其中 m 表示样本数目;
Y=[y^{(1)},y^{(2)},...,y^{(m)}] :对应表示所有训练数据集的输出值,维度为 1×m 。
在python里
X.shape
输出矩阵规模
2、logistic回归
重温下逻辑回归学习算法,该算法适用于二分类问题,本节将主要介绍逻辑回归的Hypothesis Function(假设函数)
wTx+b是线性函数,很难让输出y保持在0到1,因此我们的输出应该是等于上面得到的线性函数式子作为自变量的sigmoid函数中,将线性函数转换为非线性函数
下图是sigmoid函数的图像,如果我把水平轴作为 z 轴,那么关于 z 的sigmoid函数是这样的,它是平滑地从0走向1
在符号上要注意的一点是当我们对神经网络进行编程时经常会让参数 w 和参数 b 分开,在这里参数 b 对应的是一种偏置。
3、logistics回归损伤函数
下面看逻辑回归的代价函数(也加成本函数)
为什么需要代价函数:
为了训练逻辑回归模型的参数参数 w 和参数 b 我们,需要一个代价函数,通