深度神经网络在图像分类中的应用
本教程将使用我们在前几部分中实现的函数来构建深度神经网络,并将其应用于猫与狗的分类。希望与之前的Logistic回归实现相比,我们将看到精确度有所提高。在这一部分之后,我们将仅使用NumPy库构建深度神经网络并将其应用于监督学习。
让我们首先导入在这一部分中需要的所有包。我们将使用与Logistic回归中相同的“猫与狗”数据集作为神经网络教程。我们建立的模型在猫和狗的图像分类上有60%的测试准确率。希望我们的新机型能表现得更好!Logistic Regression as a Neural Network
我将导入我们已经从“逻辑回归”系列教程中编写的代码:“Logistic Regression”
L层深度神经网络:
很难用图形来表示深度神经网络。但是,以下是简化的网络表示法:
该模型可概括为:[线性->RELU]×(L-1)->线性->S型。上图详细架构:
- 输入是被展平到大小为(12288,1)的向量的(64,64,3)图像;
- 对应的向量:
- 然后乘以权重矩阵W[1],然后添加截距b[1]。其结果称为线性单位;
- 接下来,取线性单位的reu。根据模型体系结构,此过程可以针对每个(W[l],b[l])重复多次;
- 最后,取最后一个线性单位的Sigmoid。如果大于0.5,则将其归类为猫。
一般方法:
像往常一样,我们将遵循深度学习方法来构建模型:
1.初始化参数/定义超参数2.num_iterations的循环:
- 正向传播;
- 计算成本函数;
- 后向传播;
- 更新参数(使用Backprop中的参数和梯度)。
3.使用训练好的参数对标签进行预测。
L层神经网络:
我们将使用前面实现的辅助函数来构建具有以下结构的L层神经网络:[LINEAR->RELU]×(L-1)->LINEAR->S型。
参数:
X-data,NumPy形状数组(示例数,行*列*通道);Y-true“label”向量(如果是猫,则包含0;如果是狗,则包含1),形状(1,示例数);layer_dims-包含输入大小和每个层大小的列表,长度为(层数+1);Learning_rate-渐变下降更新规则的学习率;num_iterations-优化循环的迭代次数;print_ost-如果为True,则每100步打印成本
返回:
参数-模型学习的参数。然后可以用它们来预测。
预测功能:
在训练我们的模型之前,我们需要编写一个预测函数,该函数将用于预测L层神经网络的结果:
参数:
X-要标记的示例数据集。参数-训练模型的参数。
返回:
给定数据集X的P-预测。
我们现在已经准备好训练我们的深度神经网络模型。所以我们可以运行下面的单元来训练我们的模型。每次迭代都应该降低成本。在我的例子中,有6,000张图像,在我的cpu上运行10000次迭代可能需要一天多的时间。以下是代码:
我更新的猫对狗训练结果:
这是培训成本图:
从我们的测试精确度可以看出,在猫和狗的分类上几乎没有更好的结果。这是因为简单的神经网络不能很好地做到这一点。我们需要使用卷积神经网络来获得更好的结果(在以后的教程中使用它们)。
我们将使用以下代码测试我们的深度神经网络代码。因此有两个功能:创建数据,我们将使用它来训练我们的模型。另一个函数将用于在我们的绘图中绘制决策边界,这是由我们的神经网络预测的;如果不深入了解这些函数,则如下所示:
让我们用以下行来可视化我们的培训数据:
让我们绘制我们的训练数据:
首先,我们将尝试使用具有一个隐藏层的神经网络,其中输入为2,4个隐藏层,输出等于1:
在15000次迭代和0.2%的学习率下,我们得到了61%的准确率:
这是分类图:
它看起来不是很好,所以让我们尝试同样的15000次迭代和0.2%的学习率,有10个隐藏层:
现在我们收到了73%的准确率。很好;让我们画出我们的结果:
现在,让我们测试一下我们所做的努力,并尝试使用Layers_dims=[2,128,4,1]进行更深层次的网络。
现在我们收到了74%的准确率。这很好,但正如你所见,要取得更好的结果越来越难了。让我们画出我们的结果:
恭喜你!在相同的数据集上,我们的深度神经网络似乎比我们的两层神经网络(73%)有更好的性能(74%)。对于这项任务来说,这是一个相当好的表现。干得好!
这是一个相当长的教程。现在,当我们知道如何构建深度神经网络时,我们就可以学习如何优化它们。在接下来的教程中,我们将学习如何通过系统地搜索更好的超参数(Learning_rate、layer_dims、num_iterations等)来获得更高的精度。在下一个教程中见。
完整的教程代码和猫与狗的图像数据集可以在我的GitHub页面上找到。GitHub
最初发表于https://pylessons.com/Deep-neural-networks-part5https://pylessons.com/Deep-neural-networks-part5
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/29/%e6%b7%b1%e5%ba%a6%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e6%9c%80%e7%bb%88%e9%a2%84%e6%b5%8b%e6%a8%a1%e5%9e%8b/