1. 磐创AI-开放猫官方网站首页
  2. Medium

深度神经网络最终预测模型

深度神经网络在图像分类中的应用

本教程将使用我们在前几部分中实现的函数来构建深度神经网络,并将其应用于猫与狗的分类。希望与之前的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/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息