本文已参与「新人创作礼」活动,一起开启掘金创作之路。
01.深度学习项目:在零开始构建神经网络
神经网络实际上是深度学习中最基本的。为了正确理解深度学习,您需要清楚地了解神经网络是什么。有几个库可用于实现深度学习算法,但你应该编写一次库以更好地理解它。许多人可能认为这是一个无用的深度学习项目。但是,一旦你完成了这个项目,你就会意识到它的重要性。这个深度学习项目最终将成为初学者的伟大深度学习项目之一。
典型的深度学习模型通常有三层:输入层、隐藏层和输出层。每一层由几个神经元组成。
神经元连接以提供明确的输出。由这些连接形成的模型是一个神经网络。
输入层接收输入。它们是基本的神经元,具有不是很特殊的特性。
神经元之间的连接称为权重。隐藏层中的每个神经元都与权重和偏差相关联。输入乘以相应的权重,并添加偏差。
然后,权重和偏差的数据通过激活函数。输出的损失函数测量误差并将信息传回以改变权重并最终减少损失。
该过程一直持续到损失最小化。过程的速度取决于某些超参数,例如学习速率。这需要花费大量时间,但最终你会明白DL是如何工作的。
02.深度学习项目:交通标志分类
自动驾驶汽车正在成为最近的人工智能(AI)和DL趋势。特斯拉、丰田、梅赛德斯-奔驰和福特等大型汽车制造商正在大力投资开发自动驾驶汽车技术。自动驾驶汽车需要了解交通规则并按照交通规则进行操作。
因此,为了实现精度,汽车必须了解道路标记并做出适当的决策。分析这项技能的重要性,学生可以尝试一个交通标志分类项目。
这个深度学习项目看起来很复杂。但是,使用计算机对项目进行原型设计非常容易。您只需要了解编码的基础知识和理论知识。
首先,您需要向模型传授各种交通标志。学习是使用数据集进行的。Kaggle提供的“交通标志识别”拥有超过50,000张带有标签的图像。
下载数据集后,浏览数据集。您可以使用 Python PIL 库打开映像。如有必要,请清理数据集。
然后,所有图像都带有标签进入列表。CNN 无法处理原始图像,因此它们将图像转换为 NumPy 数组。在训练模型之前,我们将数据拆分为训练集和测试集。
由于这是一个图像处理项目,CNN应该参与其中。让我们在键入之前平展NumPy数组数据。
最后,我们训练和验证模型。观察损耗和精度图。然后在测试集上测试模型。当测试集产生令人满意的结果时,可以将其他项目添加到此深度学习项目中。
03.深度学习项目:乳腺癌分类
乳腺癌分类项目也是一个简单但实用的深度学习项目。这也是一个图像处理项目。全世界每年就有相当多的人受其影响。
然而,如果早期发现癌症,死亡率可以降低。已经发表了许多关于乳腺癌检测的研究论文和项目。让我们开始一个深度学习项目,以提高我们对深度学习和Python编程的了解。
要构建模型,您需要使用本机Python库,例如Tensorflow,Keras,Theano,CNTK等。TensorFlow的CPU和GPU版本都可用。你可以同时使用两者,但TensorFlow-GPU是最快的。
使用 IDC 乳腺组织病理学数据集。仅标记图像就有300,000张。每个图像的大小为50 * 50。整个数据集占用 3 GB 的空间。
如果你是初学者,你应该使用OpenCV进行深度学习项目。使用操作系统库读取数据。让我们将其拆分为训练集和测试集。
然后,它建立了一个CNN,也称为CancerNet。使用 3 x 3 卷积滤波器。堆叠过滤器并添加所需的最大池化层。
使用顺序 API 打包整个 CancerNet。输入层采用 4 个参数。然后,我们设置模型的超参数。使用训练集和验证集开始训练。
最后,我们通过找到混沌矩阵来检查模型的准确性。在本例中,让我们使用测试集。如果结果不令人满意,请更改超参数并再次运行模型。
04.深度学习项目:使用语音进行性别识别
语音性别识别是一个中等难度的深度学习项目。在这个深度学习项目中,我们需要处理音频信号,以便能够区分性别。它是一种二元分类。你必须倾听声音并区分男人和女人。男人有厚厚的声音,女人有尖锐的声音。您可以通过分析和探索信号来理解。深度学习项目最好用TensorFlow完成。
让我们使用Kaggle的“通过语音识别性别”数据集。该数据集包含3,000多个男性和女性的音频样本。
原始音频数据无法输入到模型中,因此会清理数据并执行特征提取。尽可能降低噪音。
男女人数相等,以减少过度拟合的机会。数据可以使用 Mel 频谱图过程提取。将数据转换为大小为 128 的矢量。
我们将处理后的音频数据作为单个数组,并将其分为测试集和训练集。接下来,让我们创建一个模型。在这种情况下,使用前馈神经网络是合适的。
尝试在模型中至少使用 5 层。您可以根据需要增加图层。对隐藏层使用“relu”激活,对输出层使用“sigmoid”。
最后,我们使用适当的超参数运行模型。使用 100 作为纪元。训练后,使用测试集对其进行验证。
05.深度学习项目:图像标题生成器
为图像添加标题是一个高级深度学习项目。因此,您应该在完成上述项目后开始。在当今的社交网络时代,照片和视频无处不在。大多数人更喜欢图像而不是文本段落。此外,使用图像而不是文本更容易理解。
所有这些图像都需要标题。当我们看一张照片时,标题会自动浮现在脑海中。计算机也是如此。在这个深度学习项目中,计算机将学习在没有人工帮助的情况下创建图像标题。
这实际上是一个复杂的深度学习项目。然而,这里使用的网络也是有问题的。模型应该同时使用CNN和LSTM(即RNN)构建。
在本例中,我们使用 Flicker8K 数据集。顾名思义,它有8,000张图像,占用1 GB的空间。同时下载带有图像名称和标题的“Flicker 8K Text”数据集。
您将需要使用许多Python库,例如pandas,TensorFlow,Keras,NumPy,Jupyterlab,Tqdm,Pillow等。确保计算机上所有文件都可用。
字幕生成器模型基本上是 CNN-RNN 模型。CNN 提取特征,LSTM 帮助创建适当的字幕。我们可以通过使用名为 Xception 的预训练模型来简化该过程。
然后训练模型。确保最大准确性。如果结果不令人满意,请清理数据并再次运行模型。
该模型使用单独的图像进行测试。您可以看到模型为图像提供了正确的标题。例如,鸟的图像将标题为“鸟”。