关于卷积神经网络损失函数的改进算法
- 格式:pdf
- 大小:341.88 KB
- 文档页数:5
卷积神经网络的参数剪枝和稀疏化方法卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像识别、语音识别等领域的深度学习模型。
在实际应用中,为了提高模型的运行效率和减少存储空间,我们常常需要对CNN模型进行参数剪枝和稀疏化处理。
本文将介绍CNN模型的参数剪枝和稀疏化方法,探讨其原理和应用。
一、参数剪枝参数剪枝是指在训练完成后,通过某种策略将模型中一部分参数设置为零,从而减少模型的参数数量。
参数剪枝的核心思想是去除对模型精度影响较小的参数,以达到减少存储和计算量的目的。
常见的参数剪枝方法包括:全局剪枝、局部剪枝和结构剪枝。
全局剪枝是指在整个模型中统一地减少参数数量;局部剪枝是指在每个层次上独立地减少参数数量;结构剪枝是指通过调整模型的结构,如剔除某些层次或通道,实现参数剪枝。
参数剪枝的优点是可以显著减少模型的存储和计算成本,但也存在一定的缺点,如剪枝后的模型稀疏性不够高、剪枝策略不够灵活等。
二、稀疏化方法稀疏化是指通过某种手段使模型中的参数更加稀疏,即更多地参数被设置为零。
与参数剪枝不同,稀疏化更注重在模型训练的过程中就尽可能地使参数稀疏。
常见的稀疏化方法包括:L1正则化、L0正则化和模型蒸馏。
L1正则化是通过在损失函数中加入L1范数惩罚项,促使参数更容易被设置为零;L0正则化是指在损失函数中加入L0范数惩罚项,促使参数直接变得稀疏;模型蒸馏是指通过在训练过程中使用一个较小的模型来引导原模型的参数趋向稀疏。
稀疏化方法的优点是能够更灵活地控制模型的稀疏程度,但在实际应用中也面临着稀疏性和精度之间的平衡问题。
三、参数剪枝与稀疏化的结合参数剪枝和稀疏化方法可以相互结合,以达到更好的效果。
例如,可以先使用稀疏化方法使模型参数趋向稀疏,然后再进行参数剪枝以进一步减少模型的存储和计算成本;或者可以在参数剪枝的基础上使用稀疏化方法进一步提高模型的稀疏性。
结合参数剪枝和稀疏化方法的优点是能够充分利用两种方法的互补性,同时也能够克服它们各自的局限性,得到更加高效和稀疏的模型。
第30卷第4期CT理论与应用研究Vol.30, No.4 2021年8月(403-415)CT Theory and Applications Aug., 2021陈康, 狄贵东, 张佳佳, 等. 基于改进U-Net卷积神经网络的储层预测[J]. CT理论与应用研究, 2021, 30(4): 403-415. DOI:10.15953/j.1004-4140.2021.30.04.01.CHEN K, DI G D, ZHANG J J, et al. Reservoir prediction based on improved U-Net convolutional neural network[J]. CT Theory and Applications, 2021, 30(4): 403-415. DOI:10.15953/j.1004-4140.2021.30.04.01. (in Chinese).基于改进U-Net卷积神经网络的储层预测陈康1,狄贵东1,张佳佳2,3 ,周游2,3,吴尧2,3,张广智2,31.中国石油西南油气田分公司勘探开发研究院,成都6100412.中国石油大学(华东)地球科学与技术学院,山东青岛2665803.深层油气地质与勘探教育部重点实验室,山东青岛266580摘要:传统的U-Net卷积神经网络大多存在深层网络梯度消失的问题。
本文在U-Net卷积神经网络中加入残差模块,提出了一种改进U-Net卷积神经网络。
残差模块保证了U-Net卷积神经网络在误差反向传播过程中梯度的存在,在一定程度上可以缓解梯度消失的问题。
最后将改进U-Net卷积神经网络应用于实际储层预测中,实际数据测试结果表明基于改进U-Net卷积神经网络在岩性识别以及“甜点”预测上均能取得较好的效果。
关键词:卷积神经网络;U-Net;深度学习;岩性识别DOI:10.15953/j.1004-4140.2021.30.04.01 中图分类号:TP183;P631 文献标志码:A深度学习(deep learning,DL)是用于建立和模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术[1],是人工智能(artificial intelligence,AI)研究重点领域之一,已经在图像分类和语音识别方面取得了重大突破[2-5]。
如何解决卷积神经网络中的欠拟合问题卷积神经网络(Convolutional Neural Network,简称CNN)是一种广泛应用于图像识别、目标检测等领域的深度学习模型。
然而,在实际应用中,我们常常会遇到CNN的欠拟合问题,即模型无法充分地学习到数据的特征,导致预测性能不佳。
本文将探讨如何解决CNN中的欠拟合问题,并提出一些有效的方法。
首先,我们需要了解欠拟合的原因。
欠拟合通常是由于模型的复杂度不足所导致的。
CNN是一种强大的模型,但是如果模型的层数过少或参数量不足,就容易发生欠拟合。
因此,我们可以通过增加模型的复杂度来解决这个问题。
一种常见的方法是增加网络的深度。
通过增加卷积层和全连接层的数量,可以增加模型的复杂度,使其能够更好地拟合数据。
此外,我们还可以增加每个卷积层和全连接层的神经元数量,以增加模型的表示能力。
然而,需要注意的是,增加模型的复杂度也会增加训练的难度和计算的复杂度,因此需要在准确性和效率之间进行权衡。
另一种解决欠拟合问题的方法是增加数据量。
数据量不足也是导致欠拟合的一个重要原因。
通过增加训练样本的数量,可以提供更多的信息给模型,帮助其更好地学习特征。
我们可以通过数据增强的方式来扩充数据集,例如旋转、平移、缩放、翻转等操作,以生成更多的训练样本。
此外,还可以利用迁移学习的方法,将已经训练好的模型在其他任务上的参数作为初始参数,以加速模型的训练和提高准确性。
除了增加模型复杂度和数据量,正则化也是解决欠拟合问题的一种重要手段。
正则化通过对模型的参数进行约束,防止其过拟合训练数据。
在CNN中,常用的正则化方法包括L1正则化和L2正则化。
L1正则化通过在损失函数中添加参数的绝对值之和,使得模型更加稀疏,减少不重要的特征对预测结果的影响;L2正则化通过在损失函数中添加参数的平方和,使得模型的参数更加平滑,减少参数之间的差异。
此外,还可以使用Dropout技术,随机地将一部分神经元的输出置为0,以减少模型的复杂度,防止过拟合。
【python实现卷积神经⽹络】损失函数的定义(均⽅误差损失、交叉熵损失)代码来源:卷积神经⽹络中卷积层Conv2D(带stride、padding)的具体实现:激活函数的实现(sigmoid、softmax、tanh、relu、leakyrelu、elu、selu、softplus):这节讲解两个基础的损失函数的实现:from__future__import divisionimport numpy as npfrom mlfromscratch.utils import accuracy_scorefrom mlfromscratch.deep_learning.activation_functions import Sigmoidclass Loss(object):def loss(self, y_true, y_pred):return NotImplementedError()def gradient(self, y, y_pred):raise NotImplementedError()def acc(self, y, y_pred):return 0class SquareLoss(Loss):def__init__(self): passdef loss(self, y, y_pred):return 0.5 * np.power((y - y_pred), 2)def gradient(self, y, y_pred):return -(y - y_pred)class CrossEntropy(Loss):def__init__(self): passdef loss(self, y, p):# Avoid division by zerop = np.clip(p, 1e-15, 1 - 1e-15)return - y * np.log(p) - (1 - y) * np.log(1 - p)def acc(self, y, p):return accuracy_score(np.argmax(y, axis=1), np.argmax(p, axis=1))def gradient(self, y, p):# Avoid division by zerop = np.clip(p, 1e-15, 1 - 1e-15)return - (y / p) + (1 - y) / (1 - p)其中y是真实值对应的标签,p是预测值对应的标签。
基于卷积神经网络的股票价格趋势预测股票市场一直以来都是投资者关注的焦点,而股票价格的趋势预测一直是投资者们努力追求的目标。
随着人工智能技术的快速发展,特别是卷积神经网络在图像识别领域的成功应用,越来越多的研究者开始将卷积神经网络应用于股票价格预测中。
本文将探讨基于卷积神经网络的股票价格趋势预测方法,并对其优势和局限性进行分析。
首先,我们需要了解什么是卷积神经网络。
卷积神经网络是一种深度学习模型,其主要特点是能够自动从数据中学习特征,并具备对数据进行层次化表示和抽象的能力。
在图像识别领域,卷积神经网络已经取得了令人瞩目的成果,并在许多任务上超越了传统方法。
在基于卷积神经网络进行股票价格趋势预测时,我们首先需要构建一个合适的模型架构。
一般而言,我们可以使用多层卷积层和池化层来提取输入数据中的时空特征。
对于股票价格预测任务,我们可以将股票的历史价格数据作为输入,通过卷积神经网络的卷积层和池化层提取时序特征。
在构建模型时,我们还可以引入其他的网络结构来增强模型的性能。
例如,我们可以在卷积神经网络中引入长短期记忆(LSTM)层来捕捉时间序列中的长期依赖关系。
LSTM层能够有效地建模时间序列数据中的记忆和遗忘过程,从而更好地预测股票价格趋势。
除了模型架构的设计,数据预处理也是进行股票价格趋势预测时必不可少的一步。
在处理股票数据时,我们需要考虑到其特殊性。
一方面,股票市场具有高度非线性和不确定性特征;另一方面,不同公司之间、不同时间段之间存在着巨大差异。
因此,在进行数据预处理时需要充分考虑这些因素,并采取相应措施来降低噪声和增强信号。
在训练过程中,我们需要选择合适的损失函数和优化算法来优化模型参数。
对于股票价格趋势预测任务而言,常用的损失函数包括均方误差(MSE)和交叉熵损失函数。
而在优化算法方面,我们可以选择梯度下降算法的变种,如Adam和RMSprop等,来加速模型的收敛速度。
在进行实验时,我们可以选择一段历史数据来进行训练,并使用另一段历史数据来进行模型的验证和测试。
基于卷积神经网络的图像去雾算法研究近年来,随着计算机视觉技术的快速发展,图像处理成为了一个热门的研究领域。
其中之一的问题是图像去雾,即去除由于大气散射引起的图像模糊和降低对比度的问题。
为了解决这个问题,研究人员提出了许多算法。
本文将重点研究基于卷积神经网络的图像去雾算法。
卷积神经网络(CNN)是一种广泛应用于图像处理领域的深度学习算法。
它通过多层的卷积和池化操作,有效地提取图像的特征。
在图像去雾任务中,CNN可以学习到大气散射的特征,并且通过去除这些特征来还原清晰的图像。
首先,我们需要收集一组带有雾霾的图像以及对应的清晰图像作为训练数据集。
这些图像可以通过真实场景的拍摄或者从互联网上的图像库中获取。
接下来,我们需要对这些图像进行预处理,包括调整大小、裁剪、增加噪声等操作,以增加模型的鲁棒性。
然后,我们可以设计一个基于CNN的图像去雾模型。
这个模型可以由多个卷积层、池化层和全连接层组成。
卷积层用于提取图像的空间特征,池化层用于减小特征图的尺寸,全连接层用于将特征转化为输出结果。
此外,我们可以使用一些激活函数(例如ReLU)来增加模型的非线性能力。
在训练过程中,我们需要使用带有雾霾的图像作为输入,清晰的图像作为目标输出。
通过比较模型输出和目标输出的差异,我们可以计算出损失函数,并使用反向传播算法来更新模型参数。
为了提高模型的泛化能力,可以使用数据增强技术,如旋转、缩放和翻转等。
此外,还可以使用一些正则化技术,如Dropout和L2正则化,来防止过拟合。
当模型训练完成后,我们可以使用它来对新的图像进行去雾处理。
具体来说,我们将待处理的图像输入到模型中,并获得相应的输出。
这个输出将是去除雾霾后的图像。
通过对比输入和输出图像,我们可以评估模型的去雾效果。
为了进一步提高去雾效果,我们可以考虑引入一些先验知识。
例如,我们可以利用大气散射的物理模型来指导图像去雾过程。
这可以通过将物理约束添加到模型的损失函数中来实现。
基于卷积神经网络的图像分类算法研究与优化随着人工智能技术的不断发展,图像分类算法已经成为了计算机视觉中的一个重要问题。
其中,基于卷积神经网络(Convolutional Neural Networks,简称CNN)的图像分类算法已经被广泛应用于图像检索、图像超分辨率、图像识别等领域,受到了越来越多的关注。
一、卷积神经网络简介卷积神经网络是一种深度学习算法,主要包括卷积层、池化层、全连接层等模块。
卷积层主要负责提取特征,池化层主要负责降低特征图的维度,全连接层主要负责实现分类。
二、图像分类算法的应用图像分类算法可以应用于很多领域,例如人脸识别、车牌识别、国旗识别等。
在这些应用场景中,不同的图像分类算法的表现往往不同,需要我们根据具体的需求和问题来选择相应的算法。
三、如何进行图像分类图像分类的过程一般可以分为以下几个步骤:1、数据预处理。
将图像进行尺寸缩放、灰度化、归一化等处理。
2、特征提取。
使用卷积神经网络提取图像的特征向量。
3、特征选择。
根据不同的应用场景,选取合适的特征。
4、分类器构建。
使用分类算法对特征向量进行分类。
四、如何优化图像分类算法对于卷积神经网络中的图像分类算法,我们可以从以下几个方面进行优化:1、模型的选择。
不同的应用场景对模型的要求不同,我们需要根据具体的需求来选择不同的卷积神经网络模型。
2、超参数调整。
对于卷积神经网络模型,我们需要调整网络的超参数来优化分类性能,例如学习率、批大小、网络深度等。
3、数据增强。
使用数据增强技术可以提升模型的泛化能力,例如旋转、平移、随机裁剪等。
4、迁移学习。
在一些场景下,我们可以使用迁移学习来将预训练好的模型参数应用于当前的任务中,从而提升分类性能。
五、结语在本文中,我们对基于卷积神经网络的图像分类算法进行了简单的介绍,并探讨了如何对图像分类算法进行优化。
当然,图像分类算法的研究还有很多可发掘的领域,例如在多任务学习、半监督学习等方面的应用。
我们相信,在不断的探索和研究之中,这一领域的发展前景将会更加明朗。
如何解决卷积神经网络中的过拟合问题卷积神经网络(Convolutional Neural Network,CNN)是一种在图像识别、语音识别等领域取得巨大成功的深度学习模型。
然而,CNN在训练过程中往往会遭遇过拟合问题,即模型在训练集上表现良好,但在测试集上表现不佳。
本文将探讨如何解决CNN中的过拟合问题。
一、数据扩增数据扩增是一种常用的解决过拟合问题的方法。
通过对训练数据进行一系列随机变换,如旋转、平移、缩放、翻转等操作,可以生成更多的训练样本,从而增加模型的泛化能力。
数据扩增可以有效地减少过拟合,提高模型的鲁棒性。
二、正则化正则化是另一种常见的解决过拟合问题的方法。
L1正则化和L2正则化是两种常用的正则化方法。
L1正则化通过在损失函数中引入权重的绝对值之和,使得模型的权重更加稀疏,减少过拟合的风险。
L2正则化通过在损失函数中引入权重的平方和,使得模型的权重更加平滑,减小权重的波动,从而减少过拟合的可能。
三、DropoutDropout是一种在训练过程中随机丢弃一部分神经元的方法。
通过随机丢弃神经元,可以减少神经元之间的依赖关系,使得模型更加鲁棒。
Dropout可以看作是一种模型集成的方法,通过随机丢弃神经元,可以生成多个不同的子模型,从而减少过拟合。
四、早停早停是一种简单而有效的解决过拟合问题的方法。
早停的基本思想是在训练过程中监控模型在验证集上的性能,当模型在验证集上的性能开始下降时,就停止训练,从而防止模型过拟合。
早停可以通过设置一个阈值,当模型在连续若干个epoch中都没有取得性能提升时,就停止训练。
五、模型集成模型集成是一种常用的解决过拟合问题的方法。
通过将多个不同的模型进行集成,可以减少模型的方差,提高模型的泛化能力。
常用的模型集成方法包括投票法、平均法和堆叠法等。
模型集成可以通过训练多个不同的模型,然后将它们的预测结果进行综合得到最终的预测结果。
六、调整模型复杂度模型复杂度是影响过拟合问题的一个重要因素。
卷积自编码器去噪的损失函数卷积自编码器(Convolutional Autoencoder)是一种神经网络模型,常用于图像去噪和特征提取任务。
对于卷积自编码器去噪任务,可以使用不同的损失函数来衡量生成图像和原始图像之间的差异。
常见的损失函数包括:1.均方误差(Mean Squared Error, MSE):计算生成图像和原始图像之间像素级别的平均差异。
损失函数可以定义为每个像素位置的差的平方的总和除以像素数量,即:MSE = (1/N) * Σ(I - I')^2其中,N表示像素的总数量,I是原始图像的像素值,I'是生成图像的像素值。
2.交叉熵损失(Cross-Entropy Loss):一种常用的分类损失函数,在图像去噪任务中可以用于测量生成图像和原始图像之间的差异。
交叉熵损失可以定义为:CrossEntropy = -Σ(I * log(I') + (1 - I) * log(1 - I'))其中,I是原始图像的像素值在0到1之间的范围,I'是生成图像的像素值。
3.结构相似性损失(Structural Similarity Loss, SSIM):衡量生成图像和原始图像之间的结构相似性,包括亮度、对比度和结构。
SSIM损失可以定义为:SSIM = (2μ_Iμ_I' + C1) * (2σ_I_I' + C2) / (μ_I^2 + μ_I'^2 + C1) *(σ_I^2 + σ_I'^2 + C2)其中,μ_I和μ_I'是原始图像和生成图像的亮度的均值,σ_I和σ_I'是原始图像和生成图像的亮度的标准差,C1和C2是常数用于稳定计算。
这些仅仅是一些常见的损失函数示例,实际使用时可以根据具体的任务和需求进行选择和调整。
需要注意的是,生成图像和原始图像的像素值范围会影响损失函数的选择和设定。
基于双流卷积神经网络的改进人体行为识别算法张怡佳;茅耀斌【摘要】近年来人体行为识别成为计算机视觉领域的一个研究热点,而卷积神经网络(convolutional neural network,CNN)在图像分类和识别领域取得了重要突破,但是人体行为识别是基于视频分析的,视频包含空间域和时间域两部分的信息;针对基于视频的人体行为识别问题,提出一种改进的双流卷积神经网络(Two-Stream CNN)模型,对于空间域,将视频的单帧RGB图像作为输入,送入VGGNet_16模型;对于时间域,将多帧叠加后的光流图像作为输入,送入Flow_ Net模型;最终将两个模型的Softmax输出加权融合作为输出结果,得到一个多模型融合的人体行为识别器.基于JHMDB公开数据库的实验,结果证明了改进的双流CNN在人体行为识别任务上的有效性.【期刊名称】《计算机测量与控制》【年(卷),期】2018(026)008【总页数】5页(P266-269,274)【关键词】人体行为识别;深度学习;双流卷积神经网络;模型融合【作者】张怡佳;茅耀斌【作者单位】南京理工大学自动化学院,南京210094;南京理工大学自动化学院,南京210094【正文语种】中文【中图分类】TP2420 引言人体行为识别的目的是分析并理解视频中的人体的动作和行为,与静态图像中二维空间的物体识别不同,行为识别主要研究如何感知目标对象在图像序列中的时空运动变化,将人体行为的表现形式从二维空间拓展到了三维时空。
人体行为识别有着重要的理论意义且在很多领域有着重要的应用价值,如智能监控、视频检索和人机交互等[1]。
随着大规模数据集的涌现,传统算法已经很难满足如今大数据处理的需求,深度学习成为近几年国内外的研究热点。
深度学习是机器学习领域的重点研究问题,它模拟人脑认知机制的多层次模型结构,通过组合低层特征形成更为抽象的高层特征来获得数据更有效的特征表示,相比于传统的人工提取特征更适合目标的检测和识别。
卷积神经网络中的残差连接技术介绍卷积神经网络(CNN)是一种深度学习模型,用于处理视觉数据。
在实际应用中,CNN已经取得了很大的成功,比如在图像分类、目标检测和语义分割等任务中都表现出了出色的性能。
然而,随着网络深度的增加,CNN也面临着一些问题,比如梯度消失和梯度爆炸等问题。
为了解决这些问题,研究者们提出了一些方法,其中最著名的就是残差连接技术。
残差连接技术简介残差连接技术最早由微软亚洲研究院的研究者们提出,并在2015年的ImageNet图像识别比赛中取得了第一名的成绩。
残差连接技术的核心思想是引入跨层的信息流动,通过直接连接前后层的特征图,使得网络可以学习到残差信息,从而更容易学习到恒等映射。
这种设计可以有效缓解梯度消失和梯度爆炸问题,让网络更容易训练。
此外,残差连接技术还能够提高网络的学习能力,减少了网络的训练难度,使得网络更容易收敛。
残差连接技术的原理残差连接技术的原理非常简单,就是在神经网络中引入跨层连接,将前一层的输出直接加到后一层的输入上。
这样可以使得网络学习到残差信息,从而更容易学习到恒等映射。
具体来说,假设我们有一个卷积层的输出为H(x),那么残差连接技术的计算公式可以表示为:F(x) = H(x) + x其中F(x)为残差连接后的输出,H(x)为卷积层的输出,x为卷积层的输入。
通过这样的设计,网络可以更容易地学习到恒等映射,从而提高了网络的学习能力和训练效果。
残差连接技术的改进除了最初的残差连接技术之外,研究者们还提出了一些改进的方法,使得残差连接技术更加灵活和高效。
其中最著名的就是“瓶颈结构”和“组合连接”。
瓶颈结构是指在残差连接中引入了一个1x1的卷积层,用于降低维度。
这样可以有效地减少参数数量,加速网络的训练过程。
组合连接则是指在残差连接中引入了多个分支,将多个分支的特征图进行融合,从而提高了网络的学习能力和表示能力。
这些改进都使得残差连接技术更加灵活和高效,广泛应用于各种深度学习模型中。
第39卷 第1期 高 师 理 科 学 刊 Vol. 39 No.1 2019年 1月 Journal of Science of Teachers′College and University Jan. 2019
文章编号:1007-9831(2019)01-0023-05
关于卷积神经网络损失函数的改进算法 徐振忠 (广东工业大学 应用数学学院,广东 广州 510520) 摘要:经典的卷积神经网络模型损失函数在设计时只考虑输出与标签之间的比较,没有涉及到图片之间的差异.为了提高卷积神经网络模型提取特征的差异,提出了基于Triplet network模型约束的卷积神经网络模型,这种方法提高了卷积神经网络提取有效特征的能力,减少数据集数量对于模型的影响. 在MNIST数据集和cifar-10数据集上进行实验,提出的新模型在这2个数据集上比经典的卷积神经网络模型识别效果更好. 关键词:卷积神经网络;Triplet network模型;反馈调节 中图分类号:TP391 文献标识码:A doi:10.3969/j.issn.1007-9831.2019.01.007
An improved algorithm for the loss function of convolution neural networks XU Zhen-zhong (School of Applied Mathematics,Guangdong University of Technology,Guangzhou 510520,China) Abstract:The loss function of classical convolution neural network model only considers the comparison between output and label,but does not involve the difference between pictures.In order to improve the difference of feature extraction from convolutional neural network model,proposes a convolution neural network model based on Triplet network model constraint.This method improves the ability of convolution neural network in extracting effective features and reduces the infection due to the dataset′ number.MINIST datasets and cifar-10 datasets will be tested for certifying the effectiveness of this methed,and the result shows that the new model is better than the classical convolutional neural network model in recognition of these two datasets. Key words:convolution neural network;Triplet network model;back propagation
1980年,Fukushima根据Huble和Wiesel[1]的研究提出了多层感知机[2].多层感知机为卷积神经网络的出现奠定了重要的基础.Lecun[3]等在Fukushima的研究基础上采用BP算法建立了卷积神经网络(CNN)模型并运用到手写字符的识别上,并取得了一定的效果,该模型被称为LeNet-5.LeNet-5是最基本的CNN模型,该模型包括输入层、卷积层、池化层、全连接层和输出层.后面的研究者大多在这个模型的基础上进行相应的改进.目前,对于经典CNN模型的改进大体从5个方面进行:(1)CNN结构的层数,如增加卷积层和池化层的数目,改变它们的顺序[4-5];(2)卷积核的大小和连接方式,如选择大小不同的卷积核进行组合[6-7];(3)池化的方式,如最大值池化和均值池化[8-9];(4)激活函数的选择,如sigmoid函数、tanh函数和ReLU函数[10-11];(5)损失函数的选择,如采用不同的损失函数或在损失函数上加上相应的正则约 束[12-13].本文在经典CNN模型损失函数的基础上加了Triplet Network[14]的正则约束,得到基于Triplet network模型约束的深度学习算法CNN模型(简称为TCNN).在经典CNN模型的损失函数中加入同类和异类的2
收稿日期:2018-10-05 作者简介:徐振忠(1992-),男,广东雷州人,在读硕士研究生,从事深度学习和图像识别及处理研究.E-mail:745007440@qq.com 24 高 师 理 科 学 刊 第39卷 张图片的比较,实验表明,TCNN模型对小数据集图片的识别具有一定的效果. 1 经典CNN模型 经典CNN模型的网络结构见图1,其基本结构主要分为输入层、卷积层、池化层、全连接层和输出层. 图1表示的是对该模型输入一张2828´的图片作为模型的第1层;卷积层1采用6个大小为55´的卷积核进行卷积,滑动步长为1,遍历整个输入图像,得到6张大小为2424´的特征图;下采样层1运用均值进行下采样,池化核的大小为22´,池化核之间无重叠,进而得到6张大小为1212´的特征图;卷积层2采用12个大小为55´的卷积核进行卷积,得到12张大小为88´的特征图;再次经过下采样层2得到12张大小为44´的特征图,最后进入全连接层.
经典CNN模型中一个单层卷积层和池化层的结构见图2. 图2 经典CNN模型中一个单层卷积层和池化层的结构 在经典CNN模型中,卷积层和池化层一般是交替出现,而在最后靠近输出层时将原来以矩阵形式表示的特征拉成一个向量的形式,做一个全连接网络.在模型的最后采用相应的损失函数和运用BP算法对模型的参数进行调节.
2 经典CNN模型的损失函数及BP算法
设由m个样本组成的样本集为()()(){}(1)(1)(2)(2)()(), , , , , , mmxyxyxyL,在这些样本里有n类,()iy
表示()ix的期望输出. 传统卷积神经网络的损失函数为 ()()2()(),11111(, ), ; , 2mmiiii
biiRbLbxypxymmwww==
æö==-ç÷
èø
åå (1)
其中:w为每个神经元的权值;b为偏置项;(),ibpxw为实际输出. 模型通过训练调节参数, bw,使损失函数(, )Rbw达到最小.
输入层 卷积层1 下采样层1 卷积层2 下采样层2 输出层 一张28×28图像 6张24×24特征图 6张12×12特征图 12张8×8特征图 12张4×4 特征图
图1 经典CNN模型的网络结构
样本 卷积 下采样 卷积 子图像
下采样 全连接 第1期 徐振忠:关于卷积神经网络损失函数的改进算法 25 经典CNN模型通过梯度下降法对损失函数进行参数调节,迭代公式为 ()()()(, )llijijl
ij
Rbwwaww¶=-¶ (2)
()()()(, )lliil
i
bbRbbaw¶=-¶ (3)
其中:a表示学习率. 式(2)和式(3)使用BP算法计算偏导数. 在使用反向传播算法时,首先计算前向传播,得到最后一层的输出(),ibpxw,再计算输出值与期望值之间的差距,这个差距表示为(, )Rbw. 然后通过最后一层的残差反向逐层计算出前一层的残差,从而得到新的权值和偏置项. 3 基于Triplet network模型约束的CNN模型 为了让算法有更好的分类能力,本文在损失函数中加入Triplet Network的正则项约束.Triplet Network模型是在输入层每次输入3张图片,在这3张图片中有2张属于同类图片,而剩下的1张属于异类的图片.Triplet Network模型在训练这3张图片时,其参数是共享的.Triplet Network模型通过训练得到图片的特征,进而运用同类的2张图片特征的差距函数1L和异类的2张图片特征的差距函数2L
的比较调整Triplet
Network模型的参数.
1L和2L分别定义为
122()()1,,12ll
bbLppww=- (4)
()2()()2,,1min(1, 2)2ill
bbLnpiww=-= (5)
其中:()()(),,iill
bbppxww=为同类图片的输出特征;()()(),,llbbnnxww=
为异类图片的输出特征.Triplet Network的网络结构见图3. 在1L函数的每次迭代过程中都会使同类的特征差距变小,
在2L函数的每次迭代过程中都会使异类的特征差距变大.
为了让经典CNN模型可以更好地提取得到对分类有用的特征,本文提出在原来的损失函数的基础上加上Triplet Network的正则化约束的新损失函数模型(TCNN).这种方法使得输出层的特征同类距离逐渐变小,异类距离逐渐变大. 经过改进后形成的TCNN模型目标函数为
12LRLLab=+- (6) 其中:R为神经网络的损失函数;, ab为大于零的权重系数;
1L为2张同类图片特征的距离;2L为2张异类图片特征的距离., ab可以通过实验的验证计算来确定.这样设计损失函数的目的是为了总代价函数在考虑分类损失的同时,也考虑到同类图片和异类图片的差距. 这有利于在权值调整的过程中让参数尽可能地集中提取差距比较大的特征.实验表明,该方法在数据集较少的情况下有一定的识别效果. 本文运用BP算法更新每一层的残差.对于同类图片的特征约束目标函数1L,其输出层每个参数的残
差计算公式为 ()()
()()()()()()()()()()()()()()()()
12
1212121122
2()()()2,,()()()()()(),,,,()()()()()(),,,,,,12 11llnl
ibbnlnl
ii
llllbbbb
llllllbbbbbb
LpxpxZZpxpxpxpxpxpxpxpxpxpxwwwwwwwwwwwwd¶¶
==´´-=
¶¶
æö¢¢
--=ç÷
èø
éù-´--´-
êúëû
对于异类图片的特征约束目标函数,其输出层每个参数的残差计算公式为
图3 Triplet Network的网络结构