(完整版)深度神经网络及目标检测学习笔记(2)
了解AI技术中的深度学习原理

了解AI技术中的深度学习原理一、深度学习原理简介深度学习是人工智能(AI)领域中的一个重要分支,它通过模拟人脑神经网络的结构和机制来实现对复杂数据的高效处理与分析。
深度学习依赖于一类称为“人工神经网络”的模型,在这些模型中,数据在多个层次上进行变换和表示,从而提取出有效的特征并进行学习。
本文将介绍深度学习的基本原理以及如何应用于AI 技术中。
二、神经网络与深度学习1. 神经元和激活函数神经网络是由大量相互连接的人工神经元组成的。
每个人工神经元接收输入信号,并通过激活函数将其转换成输出。
激活函数通常是非线性的,因为线性函数的叠加等于一个线性函数,无法处理非线性问题。
2. 前向传播前向传播是指信号从网络的输入层流向输出层的过程。
每个人工神经元将输入信号进行计算,并将结果传递给下一层。
通过不断迭代这个过程,网络能够逐渐找到最优参数以提供准确的预测结果。
3. 反向传播反向传播是深度学习中最重要的步骤之一。
它使用梯度下降法来更新神经网络的参数,以使损失函数达到最小值。
反向传播通过计算每个神经元的输出相对于损失函数的导数,然后将这些导数沿着网络进行反向传递。
通过调整所有连接权重和偏差,网络能够逐渐优化预测结果。
三、深度学习中的常见模型1. 卷积神经网络(CNN)卷积神经网络是深度学习中应用最为广泛的模型之一。
它主要应用于图像识别、目标检测等视觉任务。
CNN利用卷积层提取图像特征,并通过池化层进行特征降维,最后通过全连接层将特征映射到不同类别上进行分类。
2. 循环神经网络(RNN)循环神经网络主要应用于序列数据处理,如语音识别、自然语言处理等领域。
RNN具有记忆功能,可以对任意长度的输入序列进行建模,并考虑上下文信息。
然而,传统的RNN存在梯度消失或爆炸问题,在长期依赖任务中表现不佳。
3. 长短期记忆网络(LSTM)为了解决RNN中的梯度问题,提出了长短期记忆网络。
LSTM引入了门控机制,通过遗忘和选择性更新来控制信息的流动。
深度学习基础知识

深度学习基础知识深度学习(Depth Learning)是机器学习的一个重要分支,旨在模仿人类大脑的工作方式,通过神经网络的构建和训练实现智能化的数据分析与决策。
在深度学习的背后,有一些基础知识需要我们掌握,才能更好地理解和应用深度学习技术。
一、神经网络的基本结构神经网络是深度学习的核心,它由多个神经元组成,每个神经元都有激活函数,能接收来自其他神经元的输入,并产生输出。
神经网络通常包括输入层、隐藏层和输出层,其中隐藏层可以有多个。
输入层接受外部数据输入,隐藏层负责对数据进行特征提取和转换,输出层产生最终的结果。
二、梯度下降算法梯度下降算法是深度学习中最基础且最常用的优化算法,用于调整神经网络中各个神经元之间的连接权重,以最小化损失函数。
在训练过程中,通过计算损失函数对权重的偏导数,不断地更新权重值,使得损失函数逐渐减小,模型的性能逐渐提升。
三、反向传播算法反向传播算法是神经网络中用于训练的关键算法,通过将误差从输出层倒推到隐藏层,逐层计算每个神经元的误差贡献,然后根据误差贡献来更新权重值。
反向传播算法的核心思想是链式法则,即将神经网络的输出误差按照权重逆向传播并进行计算。
四、卷积神经网络(CNN)卷积神经网络是一种主要用于图像处理和识别的深度学习模型。
它通过共享权重和局部感受野的方式,有效地提取图像中的特征。
卷积神经网络通常包括卷积层、池化层和全连接层。
其中卷积层用于提取图像中的局部特征,池化层用于降低特征的维度,全连接层用于输出最终的分类结果。
五、循环神经网络(RNN)循环神经网络是一种主要用于序列数据处理的深度学习模型。
它通过引入时间维度,并在每个时间步上传递隐藏状态,实现对序列数据的建模。
循环神经网络可以解决序列数据中的时序依赖问题,适用于音频识别、语言模型等任务。
六、生成对抗网络(GAN)生成对抗网络是一种通过让生成器和判别器相互博弈的方式,实现模型训练和生成样本的深度学习模型。
生成器负责生成与真实样本相似的假样本,判别器负责对真假样本进行分类。
深度学习知识点总结

深度学习知识点总结深度学习是一种人工智能(AI)的子领域,它的目标是让计算机系统像人类一样具有分析、理解和解释数据的能力。
通过模拟人脑中神经元的工作原理,深度学习算法可以学习和理解数据中的复杂模式,并进行非常准确的分类和预测。
本文将系统地总结深度学习的基本概念和常见技术,帮助读者全面了解深度学习的核心知识点。
一、基本概念1. 神经网络神经网络是深度学习的基础,它模拟了人脑中神经元之间的连接关系。
一个神经网络由许多神经元组成,并通过神经元之间的连接来传递信息。
通常,神经网络被组织成多个层次,包括输入层、隐藏层和输出层。
每个神经元接收来自上一层神经元的输入,通过加权求和和激活函数的处理后产生输出。
神经网络可以通过训练来学习适应不同的数据模式和特征。
2. 深度学习深度学习是一种使用多层神经网络进行学习的机器学习技术。
与传统的浅层神经网络相比,深度学习能够更好地处理大规模高维度的数据,并学习到更加复杂的特征和模式。
深度学习已经广泛应用在图像识别、语音识别、自然语言处理等领域,取得了显著的成果。
3. 监督学习监督学习是一种常见的机器学习方法,它通过使用有标签的数据样本来训练模型。
在监督学习中,模型通过学习输入和输出之间的关系来进行预测。
常见的监督学习算法包括:神经网络、决策树、支持向量机等。
4. 无监督学习无监督学习是一种不使用标签数据的机器学习方法,它通过学习数据之间的内在结构和模式来进行数据分析和分类。
无监督学习常用的算法包括聚类、关联规则、降维等。
5. 强化学习强化学习是一种通过与环境交互来学习最优决策策略的机器学习方法。
在强化学习中,智能体通过观察环境的反馈和奖励来调整自身的行为,并不断优化决策策略。
强化学习在机器人控制、游戏AI等领域有着广泛应用。
6. 深度学习框架深度学习框架是一种方便开发者进行深度学习模型搭建和训练的软件工具。
常见的深度学习框架包括:TensorFlow、PyTorch、Keras、Caffe等。
深度学习基础知识题库 (2)

深度学习基础知识题库1. 什么是深度学习?深度学习是一种机器学习方法,通过使用多层神经网络来模拟人脑的工作原理,从而实现对数据进行学习和分析的能力。
深度学习模型通常由多层神经网络组成,每一层都对输入数据进行特征提取和转换,最终输出预测结果。
2. 深度学习与传统机器学习的区别是什么?深度学习与传统机器学习的主要区别在于特征提取的方式和模型的复杂度。
传统机器学习方法需要手工选择和设计特征,而深度学习可以自动从原始数据中学习最有用的特征。
此外,深度学习模型通常比传统机器学习模型更复杂,拥有更多的参数需要训练。
3. 请解释下面几个深度学习中常用的概念:神经网络、激活函数和损失函数。
•神经网络是深度学习的核心组成部分,它由多个神经元组成,并通过神经元之间的连接进行信息传递和处理。
每个神经元接收一组输入,并通过激活函数对输入进行非线性转换后输出结果。
•激活函数是神经网络中的一个重要组件,主要用于引入非线性。
常用的激活函数包括Sigmoid、ReLU和tanh,它们可以将神经网络的输出限制在一定的范围内,并增加模型的表达能力。
•损失函数用于衡量模型的预测结果与真实标签之间的差异。
常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等,模型的目标是通过优化损失函数的数值来提高预测的准确性。
4. 请解释一下反向传播算法在深度学习中的作用。
反向传播算法是深度学习中训练神经网络的关键算法之一。
它基于梯度下降的思想,通过计算当前预测值和真实标签之间的差异,并向后逐层更新神经网络中的参数,从而最小化误差。
具体地,反向传播算法沿着神经网络的前向传播路径,依次计算每一层的导数和误差。
然后使用链式法则将误差从输出层逐层向后传播,更新每个神经元的参数,直到最后一层。
反向传播算法的使用可以加速神经网络训练的过程,提高模型的准确性。
5. 请简要介绍一下卷积神经网络(CNN)以及它在计算机视觉任务中的应用。
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,特别适用于处理网格状数据,如图像和语音。
深度学习与神经网络

深度学习与神经网络深度学习和神经网络是近年来蓬勃发展的领域,其在计算机视觉、自然语言处理和语音识别等各个领域取得了巨大的成功。
本文将从深度学习的介绍、神经网络的原理和应用等角度深入探讨这两个主题。
一、深度学习的介绍深度学习是机器学习领域的一个重要分支,通过模拟人脑神经元之间的连接方式,实现对数据的自动分析和学习。
深度学习的核心是神经网络,它可以通过增加网络的深度来提高对数据的表达能力,从而实现更高级别的特征提取和模式识别。
深度学习的一个重要特点是端到端的学习方式,即从原始输入数据到最终输出结果的全过程都由神经网络完成。
这种方式避免了手工设计特征的繁琐过程,使得系统自主地从数据中学习到更抽象、更高层次的特征表示。
二、神经网络的原理神经网络是深度学习的核心算法之一,它模拟了生物神经元之间的连接方式。
神经网络由输入层、隐藏层和输出层组成,每一层又由多个神经元组成。
神经元接收来自上一层神经元的输入,经过激活函数处理后,将输出传递给下一层神经元。
神经网络的训练过程主要包括前向传播和反向传播两个阶段。
前向传播通过将输入数据输入网络,逐层计算输出结果;反向传播通过计算损失函数的梯度并更新网络参数,使得网络的输出结果逐渐接近于真实标签。
通过多次迭代训练,神经网络可以不断优化模型以提高准确率。
三、深度学习的应用深度学习和神经网络在各个领域都有广泛的应用。
在计算机视觉领域,深度学习已经实现了对图像的分类、目标检测和图像生成等任务。
例如,通过训练深度神经网络,可以实现对猫和狗的图像进行准确分类。
在自然语言处理领域,深度学习可以实现对文本的情感分析、语言模型和机器翻译等任务。
通过使用递归神经网络或者长短期记忆网络,可以捕捉到句子之间的语义关系和上下文信息,进而提高文本处理的效果。
此外,深度学习在语音识别、推荐系统和金融分析等领域也有广泛的应用。
通过利用大规模数据和强大的计算能力,深度学习的模型可以不断地优化和提高性能,为各个应用场景带来更好的效果和体验。
《深入浅出图神经网络:GNN原理解析》随笔

《深入浅出图神经网络:GNN原理解析》阅读随笔目录一、前言 (2)1.1 本书的目的和价值 (3)1.2 图神经网络简介 (3)二、图神经网络基础 (5)2.1 图的基本概念 (6)2.2 神经网络的基本概念 (8)2.3 图神经网络与神经网络的结合 (9)三、图神经网络的分类 (10)3.1 基于消息传递的图神经网络 (12)3.2 基于能量函数的图神经网络 (12)3.3 基于图注意力机制的图神经网络 (14)四、图神经网络的训练方法 (15)4.1 迭代训练法 (16)4.2 随机梯度下降法 (17)4.3 动量法 (19)4.4 自适应学习率方法 (20)五、图神经网络的优化技术 (21)5.1 局部优化算法 (22)5.2 全局优化算法 (24)5.3 混合优化算法 (26)六、图神经网络的评估与可视化 (27)6.1 评估指标 (28)6.2 可视化方法 (29)6.3 实战案例分析 (31)七、图神经网络的未来发展方向与应用前景 (32)7.1 当前研究的热点和挑战 (34)7.2 未来可能的技术创新 (35)7.3 图神经网络在各个领域的应用前景 (37)八、结语 (38)8.1 对本书内容的总结 (39)8.2 对未来图神经网络发展的展望 (40)一、前言在人工智能领域,图神经网络(Graph Neural Networks, GNNs)作为一种强大的深度学习模型,近年来得到了广泛的关注和研究。
它们能够处理非结构化数据,如社交网络、分子结构、知识图谱等,因此在许多应用中具有重要的地位。
尽管GNNs在学术界和工业界都取得了显著的成功,但它们的原理和应用仍然是一个活跃的研究课题。
特别是对于初学者来说,理解和掌握GNN的原理解析及其在实际问题中的应用,是一个不小的挑战。
为了帮助读者更好地理解GNNs,本文将从基础到高级逐步展开,深入剖析GNN的核心概念、模型架构以及最新的研究进展。
结合具体的代码实现和实验结果,我们将展示GNN在实际应用中的强大能力。
深度神经网络原理

深度神经网络原理深度神经网络是一种由多层神经元组成的人工神经网络,它是一种模仿人脑神经元网络结构和工作原理而设计的计算模型。
深度神经网络的原理是基于神经元之间的连接和信息传递,通过多层次的非线性变换来学习数据的特征表示,从而实现对复杂数据的高效处理和分析。
深度神经网络的核心原理是通过多层次的神经元连接来构建复杂的特征表示。
每一层的神经元接收上一层的输出,并进行加权求和和非线性变换,然后将结果传递给下一层。
通过这种逐层的信息传递和变换,深度神经网络可以逐渐学习到数据的高级特征表示,从而实现对复杂数据的有效建模和分析。
在深度神经网络中,每一层的神经元都包含权重和偏置,通过学习算法来不断调整这些参数,使得网络可以更好地拟合数据。
常见的深度神经网络结构包括卷积神经网络(CNN)、循环神经网络(RNN)和深度信念网络(DBN)等,它们在不同领域都取得了显著的成就。
深度神经网络的训练过程通常采用反向传播算法,通过计算损失函数对网络参数进行调整,使得网络的预测结果与真实标签尽可能接近。
在训练过程中,需要大量的标记数据和计算资源来不断优化网络参数,以提高网络的泛化能力和性能。
深度神经网络在计算机视觉、自然语言处理、语音识别等领域都取得了重大突破,例如在图像分类、目标检测、机器翻译等任务上都取得了优于传统方法的效果。
随着硬件计算能力的提升和深度学习算法的不断发展,深度神经网络在各个领域的应用前景也越来越广阔。
总之,深度神经网络是一种强大的机器学习模型,它通过多层次的非线性变换来学习数据的特征表示,从而实现对复杂数据的高效建模和分析。
随着深度学习技术的不断发展,深度神经网络将在各个领域发挥越来越重要的作用,推动人工智能技术的进步和应用。
深度学习与神经网络

深度学习与神经网络深度学习与神经网络深度学习和神经网络是当前人工智能领域中最热门和前沿的技术。
它们的出现和发展为计算机在视觉、语音、自然语言处理等各种复杂任务上取得了令人瞩目的成果。
本文将从深度学习和神经网络的基本概念、原理及其应用方面进行探讨。
一、深度学习的基本概念和原理深度学习是一种基于神经网络的机器学习方法,它的核心思想是通过构建多层次的神经网络来模拟人脑神经元之间的连接和信息传递过程。
与传统机器学习方法相比,深度学习具有以下几个显著特点:1. 多层次特征提取:深度学习模型通过多层次抽象,能够自动地从原始数据中提取出具有更高级别的抽象特征,从而实现更准确的分类和预测。
2. 非线性建模能力:神经网络中的激活函数的引入使得深度学习模型具有强大的非线性建模能力,可以处理复杂的非线性关系和高维数据。
3. 大规模数据支持:深度学习需要大量的数据进行训练,而当前互联网时代数据的爆炸使得深度学习能够发挥出其强大的模型拟合能力。
深度学习的核心组成是神经网络,它由输入层、隐藏层和输出层组成。
在训练过程中,神经网络通过不断调整权重和偏置参数,以最小化损失函数来拟合训练数据。
常用的深度学习算法包括卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)等。
二、深度学习在计算机视觉领域的应用深度学习在计算机视觉领域的应用涵盖了图像分类、目标检测、图像生成等多个任务。
其中,深度卷积神经网络(DCNN)是最常用的一种模型。
1. 图像分类:深度学习可以通过对大规模图像数据进行训练,实现对图像的自动分类。
比如,利用卷积神经网络可以实现对猫和狗的图像进行自动化分类。
2. 目标检测:深度学习可以通过对图像中的目标进行定位和识别,实现目标检测。
比如,通过使用区域卷积神经网络(R-CNN)可以实现对图像中各种目标的检测与识别。
3. 图像生成:深度学习可以学习到大规模图像数据的分布规律,并通过生成对抗网络实现图像的自动生成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深度神经网络及目标检测学习笔记https://youtu.be/MPU2HistivI上面是一段实时目标识别的演示,计算机在视频流上标注出物体的类别,包括人、汽车、自行车、狗、背包、领带、椅子等。
今天的计算机视觉技术已经可以在图片、视频中识别出大量类别的物体,甚至可以初步理解图片或者视频中的内容,在这方面,人工智能已经达到了3岁儿童的智力水平。
这是一个很了不起的成就,毕竟人工智能用了几十年的时间,就走完了人类几十万年的进化之路,并且还在加速发展。
道路总是曲折的,也是有迹可循的。
在尝试了其它方法之后,计算机视觉在仿生学里找到了正确的道路(至少目前看是正确的)。
通过研究人类的视觉原理,计算机利用深度神经网络(Deep Neural Network,NN)实现了对图片的识别,包括文字识别、物体分类、图像理解等。
在这个过程中,神经元和神经网络模型、大数据技术的发展,以及处理器(尤其是GPU)强大的算力,给人工智能技术的发展提供了很大的支持。
本文是一篇学习笔记,以深度优先的思路,记录了对深度学习(Deep Learning)的简单梳理,主要针对计算机视觉应用领域。
一、神经网络1.1 神经元和神经网络神经元是生物学概念,用数学描述就是:对多个输入进行加权求和,并经过激活函数进行非线性输出。
由多个神经元作为输入节点,则构成了简单的单层神经网络(感知器),可以进行线性分类。
两层神经网络则可以完成复杂一些的工作,比如解决异或问题,而且具有非常好的非线性分类效果。
而多层(两层以上)神经网络,就是所谓的深度神经网络。
神经网络的工作原理就是神经元的计算,一层一层的加权求和、激活,最终输出结果。
深度神经网络中的参数太多(可达亿级),必须靠大量数据的训练来“这是苹在父母一遍遍的重复中学习训练的过程就好像是刚出生的婴儿,设置。
.果”、“那是汽车”。
有人说,人工智能很傻嘛,到现在还不如三岁小孩。
其实可以换个角度想:刚出生婴儿就好像是一个裸机,这是经过几十万年的进化才形成的,然后经过几年的学习,就会认识图片和文字了;而深度学习这个“裸机”用了几十年就被设计出来,并且经过几个小时的“学习”,就可以达到这个水平了。
1.2 BP算法神经网络的训练就是它的参数不断变化收敛的过程。
像父母教婴儿识图认字一样,给神经网络看一张图并告诉它这是苹果,它就把所有参数做一些调整,使得它的计算结果比之前更接近“苹果”这个结果。
经过上百万张图片的训练,它就可以达到和人差不多的识别能力,可以认出一定种类的物体。
这个过程是通过反向传播(Back Propagation,BP)算法来实现的。
建议仔细看一下BP算法的计算原理,以及跟踪一个简单的神经网络来体会训练的过程。
1.3 小结人工神经网络就是根据人的神经元模型而构建的一个感知算法,利用大量的神经元组合对人的认知行为进行拟合。
目前我们仍然无法精确的知道它为什么能工作、如何工作,如同我们仍然无法精确知道人的大脑是如何工作一样。
在摸索过程中,我们好像应该更多地思考人类自己是怎么去“看”的,这会更有助于设计更好的算法。
比如本文开头的视频识别算法,它很快,但是不够精确,而有些可以“看清”细节的算法,就会非常慢。
就像我们人类自己,走马观花只能看到概貌,驻足观赏才能看清细节。
我们越了解自己,就越能做得更好。
二、卷积神经网络2.1 简介卷积神经网络(Convocational Neural Network,CNN)是一个特殊的深层神经网络,目前在计算机视觉领域广泛使用,可以认为它是一个二维向量(图片就是一个二维向量)的感知器。
.CNN算法的核心是对图像(二维向量)进行矩阵卷积运算,这就相当于是对图像进行加权求和。
为了减小计算量,CNN采用了局部感知和权值共享的方法。
局部感知,就是用一个N×N(如N=3)的矩阵(称为卷积核)去滑动扫描图像,进行卷积运算。
权值共享,就是扫描图片的滑动矩阵的权值是共享的(相同的)。
在实际运算中,这个卷积核相当于一个特征提取的过滤器(filter)。
举例来说,假设一个10×10的图像,用一个3×3的卷积核以步长1做一次卷积运算,那么会得到一个8×8的特征图(feature map)。
为了使得到的feature map和原图等大小,一般给原图进行扩充为12×12,这样卷积一次以后,得到的仍然是10×10大小的图像。
在这个例子中,如果不采用权值共享,则一共需要100个权值参数,权值共享后,只需要3×3=9个权值参数。
在实际中,一个RGB图像是三个通道,而卷积核也可能有多个。
这样计算起来会比上面的例子复杂些,但基本原理是一样的。
2.2 CNN计算流程一个典型的CNN算法的流程大概是这样的:首先是输入,然后是n个卷积和池化的组合,最后全连接层感知分类。
在这个流程里,卷积运算主要是用来提取特征。
一个典型的卷积计算如下图所示。
<卷积计算示意图>图中input是同一个图像的三个通道,周边有填充0;有两个卷积核Filter W0和Filter W1,一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。
在这里还要加上激活函数,对计算结果进行非线性变换。
常用的激活函数有tanh、ReLU、sigmoid等。
激活函数的作用好像可以解释为:过滤掉一些可以忽略的不重要因素,以避免其对决策产生过度影响。
池化是为了降维,有最大池化(Max Pooling)和平均池化(Average Pooling)。
最大池化的示例如下图。
2×2一个它输出它将前面卷积层提取的特征映射到样本标记空间,最后是全连接层,一个分类的概率,也就是最终的结果。
模型典型的CNN2.3最大池化,识别×2×55卷积核,2LeNet,最早用于数字识别的CNN,用—POOLCONVPOOL——28输入为×28的灰度点阵,网络结构是(CONV—。
—FC)CONV。
网络结构如10%2012 ImageNet比赛第一名,准确度超过第二名AlexNet,511、,卷积核分别是3个FC11×、个、个、个下图。
5CONV3POOL2LRN 作为激活函数。
ReLU,采用3×3、5×.卷积核。
3×3,使用VGG,有跟多的卷积层(16~19)。
1来减少参数(用1×卷积核降维)InceptionGoogLeNet,采用层到据说上千层。
采用残差网络来解决,很多很多层的网络,从152ResNet 多层网络难以训练的问题。
以上网络的对比如下表。
.2.4 训练集应该可以感受到,人工智能也好,深度学习也好,算法的优劣是一方面,而需要大量的对最终的效果影响更大。
而训练集又非常难做,训练数据集的好坏,就在做这个工年ImageNet数据,且标记这些数据需要巨大的工作量(过去的8。
逐渐,一些数据集就慢慢出了名。
很多算法的性能数据都会指明是在哪个作)数据集上训练的。
一些有名的数据集如下。
60000,一个手写数字数据库,有:深度学习领域的“Hello World!”MNIST。
数据集以28*2810000个测试样本集,每个样本图像的宽高为个训练样本集和12M。
二进制存储,不能直接查看。
数据集大小为多万幅图片,涵李飞飞团队过去几年的成果,目前有1400ImageNet:MIT层次(目前只有名根据ImageNetWordNet万多个类别。
数据集大小为盖21T。
其中每个节点的层次结构是由成千上万的图像描绘。
词)组织的一个图像数据库,目前,有平均每个节点超过五百的图像。
,是一个新的图像识别、分割、和字幕数:Common Objects in ContextCOCO 。
40G据集,由微软赞助,具有上下文识别、语义描述等特点。
数据集大小为PASCAL VOC:图片集包括20个目录,数据集图像质量好,标注完备,非常适合用来测试算法性能。
数据集大小为2G。
由于数据集生成有一定难度且工作量巨大,两年来GAN(Generative Adversarial Nets,生成对抗网络)快速发展,并在很多应用场景的训练集生成产生了巨大作用,比如车牌识别。
三、物体检测3.1 检测流程在实际场景中,我们需要在一副图像中找出有哪些物体,这是一个多对多的映射(所谓的回归)。
按照已有的CNN方法,常规的检测流程就是:先找到哪些区域有物体,然后再用CNN来对其分类。
区域选择最原始的办法就是用不同大小的滑动窗口对整幅图像进行扫描。
这样不但计算量大,也容易造成误判。
一个改进的方法是所谓Region Proposal,即预先找出物体可能在的位置。
这里需要提到以下几个概念。
IoU:Intersection over Union,Region Proposal与Ground Truth的窗口的交集比并集的比值,如果IoU低于0.5,那么相当于目标还是没有检测到。
Ground Truth就是实际物体真实的区域。
mAP,mean Average Precision,平均精度均值。
是对多个验证集求PR曲线的均值。
PR曲线是Precision和Recall作为横纵坐标轴的曲线,Precision是准确率,即检测出的样本有多少是正确的,Recall是召回率,即应该被检测出的样本有多少被检测出来。
PR曲线越高,说明算法越好,即又多又准。
3.2 典型的算法从2014年的R-CNN(Region proposal+CNN)开始,出现了一系列目标检测算法,从R-CNN到fast R-CNN和faster R-CNN,以及SPP-NET,R-FCN,还有YOLOv1~v3和SSD、DSSD。
R-CNN:采用selective search方法(一种Region Proposal方法,Region Proposal 的方法有selective search、edge box)进行区域选择,选出2000个左右。
将每个(支持向量机)分SVM计算特征,最后由CNN,再送入227×227区域缩放至.类。
很明显,R-CNN很慢。
SPP-NET:为了加快R-CNN的速度,采取对一副图像的多个Region Proposal一次提取特征。
这就要求网络必须适应不同尺寸的图像。
方法是在全连接层之前加入一个网络层,让它对任意尺寸的输入产生固定的输出(将图像分成16、4、1个块)。
SPP-NET训练步骤繁琐,并且仍然不够快。
fast R-CNN:与R-CNN相比,fast R-CNN在最后一个卷积层后加了一个ROI pooling layer,同时损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练,最后用softmax替代SVM进行分类。