主页 > 案例大全 > 论文技巧大全-深度学习在人物属性识别中的应用探究

论文技巧大全-深度学习在人物属性识别中的应用探究

2021-04-23 11:57:34

  计算机视觉是人工智能研究中的重要领域之一,在智能安防,图片搜索等领域有着重要的应用价值,旨在让计算机能通过输入得视频数据进行相应的决策,从而帮助人们完成很多基于图片视频的枯燥机械性的工作。人物属性识别是计算机视觉中重要的研究方向,通过人的图像信息中可被观测到的外观特征对输入数据进行分类。深度学习是近年来兴起的算法模型,最早于上世纪四十年代被提出,经历了多年的变化,由于其优秀的性能被广泛的应用于各种分类任务当中。近十年来,随着相关研究的推进,不少模型被提出,在诸多领域内被广泛应用。本文梳理了机器学习和深度学习发展的相关历史,介绍了卷积神经网络中的常用概念与算法,并通过搭建残差神经网络模型对人物的属性进行分类。最后,通过一个共享残差网络的多任务分类模型,对多个人物属性标签进行识别。

  在2012年的ImageNet竞赛中,Hinton和他的学生设计的AlexNet取得了优异的成绩。由此,深度学习作为机器学习的重要一支再次成为了实验室的宠儿。按照周志华[3]等人书中的描述,机器学习发展经历了联结主义,符号主义,统计学习方法和深度学习。四个阶段本章的1.1节将简述机器学习的发展历程,1.2节将对当今流行的深度神经网络方法的发展进行着重介绍,1.3节则介绍深度神经网络中的相关算法概念,为下文的模型介绍进行铺垫。

  2.1机器学习与深度学习

  1950年,英国数学家,逻辑学家艾伦·麦席森·图灵(Alan Mathison Turing)发表了一篇名为《Computing Machinery and Intelligence》的论文,在文中,他提出了“图灵测试”,来检验机器是否具有“智能”,设想如下:

  1)一个人A与一台机器B作为被测试者待在一间屋子里,一个人C作为测试者待在另一间屋子里

  2)C与A或B通过没有图像和声音的工具进行交谈,持续足够多轮。

  3)由C判断每轮和自己交谈的到底是机器还是人

  4)当C的判断错误率高于30%,则认为机器通过了图灵测试,即这台机器是有“智能”的。这篇文章为科学界描绘了“机器智能”的可能。在二十世纪中叶就已经有关于机器学习的相关研究,最著名的就是A.Samuel设计的跳棋程序[4]与F.Rosenblatt提出的感知机模型[5],后者即为神经网络中神经元模型的前身。

  到了六七十年代,科学家们将目光转向了知识与推理能力上,通过符号表示逻辑的“符号主义”得到了蓬勃的发展。主要的工作有A.Newell和H.Simon的“逻辑理论家程序”[6],P.Winston的结构学习系统[7],R.S.Michalski等人的“基于逻辑的归纳学习系统”[8]等。前者在1952年证明了罗素和怀特海的名著《数学原理》中的38条定理,并在1963年完成了全部52条定理的证明,其中有的证明甚至比罗素和怀特海更加巧妙。通过这项工作,他们在1975年获得了图灵奖。

  1983年,E.A.Feigenbaum等人在其著作《人工智能手册》第三卷[9]中将现有的机器学习方法划分为“机械学习”,“类比学习”,“示教学习”,“归纳学习”四类。其中的机械学习即单纯将输入的信息记录下来,需要时再取出,更接近于信息检索而非学习。归纳学习则涵盖的方面最广,被研究的最多,涵盖了监督学习和无监督学习等内容。

  上个世纪九十年代前,除了推理和知识系统,另一大主流技术是基于神经元连接网络的连接主义学习。1983年J.J.Hopfield通过神经网络在求解“旅行推销员”问题上取得了重大突破,使这一算法模型重新回到了大家的关注中。D.E.Rumelhart等人[10]在1986年发明了著名的BP算法,为神经网络的自动化训练铺平了基础。但连接主义算法广受人诟病的一点就是不可解释性。使用者只了解模型可以解决相关问题,却并不清楚其中的原理。这导致深度学习在调优上更多是通过不断“试错”来进行,而且其可靠性只能通过在测试集上尝试来验证。并且连接主义模型往往比较复杂,反向传播算法更是需要强大的计算能力,由此这一流派也渐渐不被人提及。

  九十年代初期,支持向量机算法被提出。统计学习方法迅速占领了主流舞台。支持向量机基于1963年V.N.Vanpink[11]提出的“支持向量”这一概念,即距离超平面最近且满足条件的样本点。同时,核方法的提出保证了其收敛性。支持向量机的优越性能使其成为当下的宠儿,伴随支持向量机一起出现的核方法也被广为使用。

  近些年来,随着硬件技术的发展,计算机的算力得到加强,可以处理深度更深,参数更复杂的模型。同时,数据量的增大使得统计学习方法的表现总是不尽人意。而深度学习却在大数据时代异军突起,由于优异的性能,得到了研究人员的广泛关注,使得各类机器学习问题有了新的突破。

  2.2深度学习发展历程

  请按照Ian Goodfellow等人的描述[12],历史上深度学习的发展可分为控制论,联接主义和深度学习三个阶段。现代深度学习的雏形是基于神经科学建立的线性简单模型。如公式2.1所示,这些模型有一组n个输入,并得到一个输出y,目的是通过学习一组权重得到他们的输出。

  这种线性模型及当时的相关研究被称为控制论。相关的研究有1943年McCulloch和Pitts提出的McCulloch-Pitts神经元[13],1956年Rosenblatt提出的感知机模型和自适应线性单元(ADALINE)。其中McCulloch-Pitts神经元只能依靠手动设置的参数得到输出,而感知机模型和ADALINE模型已经可以根据现有的输入来学习权重。后者的调节算法便是随机梯度下降的一种特殊情况,时至今日,随机梯度下降依然是重要的训练算法。值得注意的是,当时的线性模型存在很多局限性。其中最著名的就是“异或问题”如图2.1所示,相对于其他问题而言,异或问题是线性不可分的,这导致单纯的线性模型无法解决这一问题。研究者们便将目光转向了其他方法。

  二十世纪八十年代,联结主义在认知科学的背景下出现了。其中心思想为:将大量简单神经元模型连接在一起来实现复杂行为。这一思想基于生物系统大量连接的神经元,研究者认为其和计算模型中隐藏单元有着类似的作用。另一方面,Hiton在1986年提出“分布式表示”,他认为系统的输入和输出应该由多个特征表示,而非单独的神经元或特征。这一思路使得k个n值特征可以描述个不同概念,大大增强了神经网络的表示能力。实验证明,虽然存在隐含层的bp神经网络已经可以解决XOR这种非线性问题,但依然存在着不足。神经网络模型的计算随着网络深度的增大而变得复杂,而反向传播运算参数时,传播的距离越远,求出的差值会急剧减小或极速增大,这导致网络的收敛速度缓慢,而且不稳定,这种现象被称为梯度消失和梯度爆炸。另一方面,为了追求拟合能力更强的模型,实验者往往会设计更深的网络结构,伴随而来的是大量的运算,上个世纪的计算机便显得捉襟见肘,这也影响了神经网络的发展。

  二十一世纪初期,随着计算能力的提高和数据量的增大,连接主义方法展现出了他强大的一面。另一方面Hinton在2006年提出的“无监督逐层预训练+微调”的方法[14],解决了神经网络模型伴随深度产生的梯度消失和梯度爆炸问题,使其训练效果更佳。从此,进入了深度学习时代。比较著名的模型有LeNet,AlexNet,GoogLeNet,Vgg,ResNet等。

  2.3深度学习中的基础概念

  2.3.1神经元模型及神经网络

  神经元模型,演变自上文提到的感知机模型。这是一种将生物神经系统中的神经元抽象得到的数学模型。相比于感知机模型,神经元模型添加了激活函数这一部分,使得模型具有非线性的表达能力。

  如公式2.2所示,其中为第i个输入,对应着生物神经元中的树突。接收输入的是一个线性模型,为所对应的权重,b为偏移量,控制神经元的激活阈值。为了增强模型的非线性表达能力,神经元模型中引入了激活函数。线性模型的输出将进入一个非线性的激活函数中。激活函数对应神经元中的轴突,控制是否向外部输出信号,即公式中的f()。常用的激活函数有Relu,tanh,sigmoid等。

  神经网络模型则是将神经元模型按层排列,每一层的输出作为后一层的输入。数据从输入层开始逐层向前传播,每一层的神经元接受上一层所有的输出并按照公式加权求和,向激活函数传递。通过激活函数运算后将结果向下传递,从而得到关于输入数据的表示。

  图2.2是一个简单的三层神经网络,其中,直接接受输入的神经元层为输入层,最后产生输出的神经元层为输出层。在输入层与输出层之间的,学习图像深层表达的神经元层为隐含层。

  2.3.2损失函数与反向传播算法

  反向传播算法是现在神经网自动化学习的主流算法。这一算法思想来自1962年Bernard Widrow和Marcian Hoff提出的Widrow-Hoff学习规则[15]和1986年由认知心理学家McClelland和Rumelhart引入的delta学习规则[16]。这一算法分为两个过程,即计算损失和计算误差两个阶段。

  在计算损失阶段,首先需要定义一个函数表达计算结果与预期结果的差值,而后通过一次次迭代修正当前误差值,从而找到最小的误差。一个好的代价函数应当是非凸的,利于优化。常见的代价函数有均方代价函数,对数损失函数,交叉熵等,如表2.1所示。其中为输出的损失,n为样本个数,为第i次输入函数得到的实际输出,为第i次输入的标签。