1. 神经网络基础知识
1.1 基于深度学习的视觉应用
基于深度学习的视觉应用在多个领域取得了显著进展,以下是一些主要的应用方向和最新研究进展:
图像分类与识别
- 图像分类:深度学习在图像分类任务中表现出色,能够自动从大量图像数据中学习特征,实现高精度的分类。例如,卷积神经网络(CNN)在ImageNet大规模视觉识别挑战赛(ILSVRC)中取得了优异的成绩。
- 物体检测:深度学习方法如区域卷积神经网络(R-CNN)及其变体(Fast R-CNN、Faster R-CNN)在物体检测任务中取得了重大突破,能够实时检测图像中的多个物体。
- 语义分割:语义分割任务的目标是将图像中的每个像素分类为不同的类别。深度学习方法如全卷积网络(FCN)及其变体(DeepLab、U-Net)在语义分割任务中表现出色。
视觉问答(VQA)
视觉问答任务要求模型能够理解图像内容并回答与之相关的问题。深度学习方法通过结合图像特征和语言模型,能够实现对图像内容的理解和问题回答。
视觉跟踪
视觉跟踪任务的目标是跟踪图像序列中的目标对象。深度学习方法如深度特征匹配(DFM)和深度关联滤波(DAF)在视觉跟踪任务中表现出色。
视觉SLAM
视觉SLAM(VSLAM)任务涉及使用视觉传感器同时进行定位和地图构建。深度学习方法通过学习环境的复杂特征,能够提高SLAM系统的鲁棒性和精度。例如,LPL-VIO方法通过结合点和线特征,提高了视觉惯性里程计的性能。
视觉语音分析
视觉语音分析涉及从视频中提取语音信息。深度学习方法在自动视觉语音识别和生成任务中取得了显著进展。
多模态视觉语义交互融合
多模态视觉语义交互融合网络(MGN-Net)通过多粒度特征提取和融合,提高了场景文本检测和识别的性能。
基于深度学习的视觉应用的挑战与未来方向
尽管深度学习在视觉应用中取得了显著进展,但仍面临一些挑战,如数据标注成本高、模型泛化能力有限、对抗攻击等。未来的研究方向包括:
- 多模态融合:结合图像、文本、语音等多种模态信息,提高模型的性能和鲁棒性。
- 自监督学习:利用未标注数据进行自监督学习,减少数据标注成本。
- 可解释性和公平性:提高模型的可解释性和公平性,确保模型的决策过程透明和公正。
- 对抗攻击和防御:研究对抗攻击和防御方法,提高模型的鲁棒性。
这些基于深度学习的视觉应用在各个领域都有广泛的应用前景,如医疗、安防、自动驾驶、机器人等。
1.2 机器学习
机器学习的基本概念
计算机从问世以来,一直是按照人类设定好的程序和逻辑来处理任务。
在人工智能发展之初,研究者们就试图将”智能“
赋予机器,无论是通过赋予机器逻辑推理能力还是通过将人类总结的知识总结出来交给机器,都不能脱离人类设定的规则和知识。希望机器可以自主学习的机器学习方法应运而生,人工智能也因此进入“机器学习时期“
机器学习是一类算法的总称
,这些算法希望可以从大量的数据中学习得出最优模型,并利用最优模型对未知的新数据进行预测与分析,这种模型适用于新数据的能力被称为泛化能力
,对数据进行学习的目的就是获得泛化能力。
机器学习的目的笼统的来说就是寻找一个
输入和输出之间的映射关系(函数)
简介及定义
- 对于
某类任务T
与性能度量P
,一个计算机程序被认为可以从经验E
中学习是指通过经验E
改进后,它在任务T上由性能度量P衡量的性能有所提升
- 假设我们要收集关于苹果的数据,以便让机器进行归纳学习。收集到的有限的数据的合集称为
数据集(Data Set)
,数据集中每个数据子集可称为样本(Sample)或示例(Instance)
,每个样本中一般包含对象的特征(Feature)信息
和标签(Lable)信息
训练集(Training Set)
:训练集中的数据被用来学习模型,即学习关于数据的某种潜在的规律测试集(Test Set)
:测试集中的数据用来检验模型的好坏,即评判学习得出的规律与真实规律之间的差异样本空间(AttributeSpace)
:属性构成的空间称为属性空间(AttributeSpace)或样本空间(Sample Space)
机器学习的主要任务
机器学习的主要任务有:
- 分类: 判断数据属于哪一类?
- 回归: 通过回归线预测数据(连续值)
- 聚类: 让样本根据特性抱团,例如新闻划分,用户群体划分
经典的机器学习方法
线性回归(Linear Regression)
- 目标值预期是
输入变量的线性组合
- 线性回归是利用
数理统计中的回归分析
,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法 - 线性回归就是选择一条
线性函数
来很好的拟合已知数据并预测未知数据 - 线性回归通常用于预测输入和输出之间的关系
- 线性回归可以分为一元线性回归和多元线性回归,其中一元线性回归只包含一个自变量,而多元线性回归包含两个或两个以上的自变量
逻辑回归
- 逻辑回归是一种
分类算法
,其预测结果是离散的分类,逻辑回归是在线性回归的基础上增加了一个sigmoid函数
(将线性回归的值转化成分类结果0或1) 逻辑回归的优点
- 直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题
- 不仅可预测出类别,还能得到该预测的概率,这对一些利用概率辅助决策的任务很有用
- 对数几率函数是任意阶可导的凸函数有许多数值优化算法都可以求出最优解
- 逻辑回归实际上是使用线性回归模型的预测值逼近分类任务真实标记的对数几率,其中事件的几率是指该事件发生的概率与不发生的概率之比
- 决策树
监督学习
的定义: 给定有限样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类- 决策树模型
呈树形结构
,在分类问题中,表示基于特征对实例进行分类的过程 - 决策树由
结点和有向边
组成,结点有两种类型:内部节点
和叶节点
- 内部节点: 一个特征或属性
- 叶节点: 一个类
决策树的优点
- 决策树易于理解和实现
- 对于决策树,数据的准备往往是简单或者是不必要的
- 易于通过静态测试来对模型进行评测
决策树的缺点
- 对连续性的字段比较难预测
- 对有时间顺序的数据,需要很多预处理的工作
- 当类别太多时,错误可能就会增加的比较快
- 没有考虑变量之间相关性,每次筛选都只考虑一个变量
- 神经网络
1.3 人工神经网络
什么是神经网络?
生物神经网络就是由突触连接的神经元形成的网络,网络内部的信息传递以神经元的电活动为基础。人脑能够实现的种种神奇而复杂的功能实际上就是生物神经网络的功能
人工神经网络
: 模拟生物神经网络由简单的处理单元(神经元)组成的大规模并行分布式处理器
激活函数
激活函数是神经网络中的一个关键组件,它引入非线性因素,使神经网络能够学习和模拟复杂的函数映射。在神经网络的每个神经元中,输入信号会经过加权求和和偏置项的调整,然后通过激活函数进行处理,最终输出一个值。
作用
- 引入非线性:如果没有激活函数,神经网络将只能学习线性函数,这将极大地限制其表达能力。激活函数的非线性特性使得神经网络能够学习和模拟复杂的非线性关系,从而能够解决更复杂的任务,如图像识别、语音识别等。
- 控制输出范围:某些激活函数可以将输出值限制在一定的范围内,这有助于稳定网络的训练过程。例如,Sigmoid函数将输出值限制在(0, 1)之间,ReLU函数将输出值限制在非负值。
- 防止梯度消失和梯度爆炸:一些激活函数可以缓解梯度消失和梯度爆炸问题。例如,ReLU函数在正输入时输出输入值本身,这有助于保持梯度的稳定性。
常见的激活函数
- Sigmoid函数
- 公式:$$ \sigma(x) = \frac{1}{1 + e^{-x}} $$
- 特点:输出值在(0, 1)之间,常用于二分类问题的输出层。但存在梯度饱和问题,当输入值较大或较小时,梯度接近0,导致训练过程缓慢。
- 适用场景:二分类问题的输出层。
- Tanh函数
- 公式:$$ \tanh(x) = \frac{2}{1 + e^{-2x}} - 1 $$
- 特点:输出值在(-1, 1)之间,比Sigmoid函数更平滑,梯度饱和问题相对较小。但仍然存在梯度饱和问题。
- 适用场景:隐藏层和输出层,尤其是需要输出在(-1, 1)之间的场景。
- ReLU函数
- 公式:$$ \text{ReLU}(x) = \max(0, x) $$
- 特点:当输入值大于0时,输出等于输入值;当输入值小于0时,输出为0。ReLU函数解决了梯度饱和问题,训练速度更快,但存在“死亡ReLU”问题,即当输入值小于0时,梯度为0,可能导致神经元停止学习。
- 适用场景:隐藏层,尤其是深层神经网络中。
这些激活函数在不同的应用场景中各有优缺点,选择合适的激活函数对于神经网络的性能和训练效果至关重要。
神经网络的学习方式
有监督学习(SupervisedLearning)
: 已知一组正确的输入输出结果的条件下神经网络依据这些数据,调整并确定权值(误差校正学习)强制学习
: 作为一种输入模式被提出的同时,一个适当的响应层神经元在外界作用下被迫动作,不断强制使连接强度增加,并随着时间的推移,在没有外力作用下去分类(以上两种都包含Hebbian学习)。例如,机器人在没有人类指导的前提下通过试错来学习执行任务无监督学习(UnsupervisedLearning)
: 只有输入数据没有正确的输出结果情况确定权值下,在
神经网络的性能评估
稳定性
: 对于反馈神经网络而言,系统输出是动态的,如果把整个神经网络看或是一个控制系统,则该系统的输出最终是否会收敛至一个稳定状态就反应了该网络的稳定性鲁棒性
: 当网络的某些神经元或某些连接权被破坏时,系统仍然能够继续工作的能力适应性:
当外界环境(输入信号的统计特性)发生变化时,系统能够自适应地调整内部参数的能力。即网络的学习能力
人工神经网络的工作特点
- 利用神经元连接和连接强度来存储知识而非存储器
- 学习能力强,鲁棒性、容错性好
- 分布式存储与分布式信息处理
- 非编程,联想记忆,连接主义
- 应用范围极广,几乎可以囊括所有的计算技术
1.4 深度学习基本原理
深度学习是机器学习的一个分支
,是以深度神经网络
为工具的机器学习方法。
- 深度学习采用的模型主要是神经网络模型,为了完成从输入到输出之间的映射变换,深度神经网络通过对数据集中的样本进行学习,再经过一系列数据变换来实现这种输入到目标的映射
- 深度神经网络中包含多个隐藏层,其中每层实现的特征变换由该层的权重值来决定,权重也被称为该层的参数
- 深度学习的过程就是为神经网络的每一层找到其合适的权重值,能够将输入准确映射到目标值。
机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)_神经网络反向传播原理-CSDN博客
深度学习与传统神经网络
相同点:
- 二者均采用分层结构,系统包括输入层、隐藏层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接
- 不同点: 采用不同的训练机制
- 神经网络: 采用迭代算法来训练整个网络。随机设定初值,计算当前网络的输出,然后根据当前输出和样本真实标签之间的差去改变前面各层的参数,直到收敛
- 深度学习: 如果对所有层同时训练,时间复杂度会太高,如果每次训练一层,偏差逐层传递会出现过拟合。因此深度学习整体上是一个分层训练机制
由于神经网络模型可以使用误差反向传播算法
,从而可以比较好地求解权值问题,因此神经网络模型成为深度学习中主要采用的模型
1.5 深度学习模型
视觉感知任务
深度学习的目标
是分离出能解释观察数据的变差因素(特征),并通过这些较为简单的变差因素来表达更为复杂表示
对于许多视觉感知任务而言,很难知道应该提取哪些特征。例如 :汽车检测,车轮易受到阴影、光源照射的影响等
传统的解决办法:
- 开始通过传感器(例如CMOS)来获得数据,然后通过预处理、特征提取、特征选择,最后实现推理、预测或者识别等
深度神经网络:
- 端到端的网络输入和输出简化了传统视觉特征提取的概念
深度卷积神经网络
卷积神经网络(Convolutional NeuralNetworks,CNN)
是一类包含卷积计算
且具有深度结构的前馈神经网络
- 卷积过程: 卷积神经网络中的特征提取过程,每个神经元的输入与前一层的局部感受野相连,并提取该局部的特征
- 池化过程: 求取区域平均值或者最大值降低卷积层特征维度,提高畸变容忍能力
卷积神经网络结构主要结构特性
- 卷积神经网络的一个特性是局部连接。如果每个神经元只与上一层中的部分神经元相连接,就是一维卷积网络。将其由一维扩展到二维,就是卷积神经网络
- 权值共享
- 卷积神经网络的优点就在于局部连接和权值共享减少了神经网络需要训练的参数的个数,并且使用卷积来提取多维(d>=2)空间特征