英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料
基于文本的CAPTCHA识别的选择性学习混淆类
摘要:完全自动化的公共图灵测试区分计算机和人类(CAPTCHA)是CAPTCHA研究中最重要的分支之一。现有的基于深度卷积神经网络(DCNN)的CAPTCHA识别方法在混淆类中具有较低的识别精度。为了解决这个问题,提出了一种基于文本的CAPTCHA识别的选择性学习混淆类的新方法。首先,提出了一个具有两级DCNN的帧,它集成了全级DCNN和混淆级DCNN。其次,构造混淆关系矩阵以显示类之间的混淆关系,可用于分析所有类DCNN的输出。第三,提出了一种集合划分算法,可用于将混淆类集划分为多个子集,每个子集对应一个新的混淆类DCNN。第四,为提高混淆类DCNN中混淆字符的识别准确率,提出了训练和验证交互式学习算法。最后,将两个阶段的产出合并为最终识别结果。基于真实CAPTCHA数据集的实验结果表明,与四种最先进的方法相比,该方法可以有效地提高基于文本的CAPTCHA识别准确率1.4%-39.4%。
(SLCC方法的培训过程。I.训练所有级别的DCNN:(1)训练具有初始训练数据集的全级DCNN。II。分析输出:(2)通过混淆矩阵获得混淆关系矩阵。(3)将混淆类集划分为几个混淆类子集。III。训练混淆类DCNN:(4)每个混淆类子集对应于混淆数据子集。(5)每个混淆数据子集用于训练新的混淆类DCNN。)
第一节
介绍
作为一种有效的安全机制,基于文本的CAPTCHA(完全自动公共图灵测试,告诉计算机和人类除外)广泛用于许多网站和应用,如云网络,物联网,移动社交网络等。近年来,CAPTCHA在数据安全方面发挥着越来越重要的作用。
CAPTCHA的研究包括设计技术和识别技术。在本文中,我们专注于基于文本的CAPTCHA识别技术。在用于不同基于文本的CAPTCHA的各种识别框架中,识别网络是必不可少的关键步骤,其准确性直接决定了CAPTCHA识别的成功率。如今,大多数识别网络都是基于深度学习,它广泛应用于各个领域,如图像分类[1] - [2] [3],物体检测[4] - [5] [6] [7],图像隐写术[8] - [9] [10]。在基于文本的CAPTCHA识别领域,DCNN(深度卷积神经网络)是一种流行的深度学习网络。在现有的研究结果中,使用典型的DCNN [11],[12] - [13] [14]中的方法获得了良好的识别性能。
当前DCNN的性能高度依赖于通过多次迭代的模型参数的监督学习,并且该方法基于精心设计的网络架构和大量标记的训练样本。在分类器训练过程的早期阶段,误差减少率更高。但是,随着迭代次数的增加,它会逐渐减少。可能是在几次训练迭代之后大多数样本被很好地识别,并且混淆样本对降低错误率几乎没有影响。因此,一些以前的DCNN使用这种现象作为停止学习的信号[15]。但是,如果停止训练,就会放弃学习混淆样本的能力,这显然忽略了混淆样本对识别准确性的贡献[27]。此外,大多数DCNN模型在学习过程中统一处理所有训练样本。然而,通过观察,我们发现识别错误样本并非在所有类中均匀分布,而是相对集中在几个类中。也就是说,每个类使用相同数量的样本进行训练的分类器不具有识别每类字符的相同能力。因此,我们应该关注混淆样本识别,以提高基于文本的CAPTCHA的识别准确性。
在心理学领域,选择性认知意味着当外部世界存在大量信息时,我们不会平等对待所有信息并同等重视它。在某些时候,我们倾向于选择性地吸收与我们的信念,态度,兴趣,需求等一致的信息,并忽略与主要认知需求无关或微弱相关的信息。这种趋势使人们更容易专注于满足需求的事物,而忽略那些与需求无关的事物[16]。受这一理论的启发,本文给出了选择性学习的定义,这意味着当训练集中有许多类样本时,我们不再关注公认的类样本,而是选择混淆类样本来训练新的DCNN 。在此基础上,提出了一种基于文本的CAPTCHA识别的选择性学习混淆类(SLCC)方法。在本文中,混淆类是指在分类过程中彼此混淆的一些类;全类DCNN用于识别所有类,并且混淆类DCNN用于识别混淆类。
本文的主要贡献如下。
提出了一个具有两级DCNN的框架,它集成了全级DCNN和混淆级DCNN。与其他框架相比,框架可以提高准确性,因为增加了对混淆类DCNN的混淆类样本的训练。
我们构造一个混淆关系矩阵来显示类之间的混淆关系。与混淆矩阵不同,混淆关系矩阵关注的是类之间是否存在混淆关系,而不是混淆字符的数量。它可用于分析所有类DCNN的输出。
我们提出了一种集合分区算法。使用该算法,基于混淆关系矩阵将混淆类集划分为多个子集。并且每个混淆类子集对应于新的混淆类DCNN。
为了提高混淆类DCNN中混淆类样本的识别准确性,提出了一种训练和验证的交互式学习算法。
本文的其余部分安排如下:第二部分简要介绍了相关工作; 第三节提供了拟议的SLCC方法的详细说明; 实验结果和分析见第四节 ; 第五节总结了论文。
第二节
相关工作
近年来,DCNN在物体识别方面取得了显着成果,包括图像识别[1],[4],[17],人脸识别[18],手写识别[19],[20],CAPTCHA识别[12] - [13] [14],[21]。现有的研究结果使用不同的方法来改善DCNN的性能。为了减少过度拟合,Hinton 等人。 [22]建议通过在每个训练案例中随机省略一半特征探测器来防止对训练数据进行复杂的协同调整。Wan 等人。 [23]提出DropConnect以将网络中随机选择的权重子集设置为零。并且每个单元因此从前一层中的单元的随机子集接收输入。Hensman和Masko [24]表示,对不平衡训练集使用过采样以将性能提高到平衡集的性能,并且是抵消训练数据中不平衡影响的可行方法。霍华德[25]研究了多种技术来改进现有的基于DCNN的图像分类流水线。这些技术包括向训练数据添加更多图像变换,添加更多变换以在测试时生成额外预测,并使用应用于更高分辨率图像的互补模型。王等人。 [26]提出了一种增强DCNN可辨性的新方法。关键思想是构建一个树结构,通过仅在这些类中学习特征,逐步学习细粒度特征以区分类的子集。
主要步骤如下:
1.在第一次迭代中,训练数据集中的每个样本(X={(xi,yi)},i=1⋯m的 k 类)同样分配初始配额 Pt=(1m,⋯,1m)T 。并迭代tlarr;0;学习率alpha;(t);配额参数q0i=1,forall;i; 配额更新函数 f1 ;alpha;=400beta;=10gamma;=600Ť1=1/k,Ť2= 0.99,Delta;=0.20 。
2.根据指定的概率分布值PŤ,随机选择训练集中的各种样本进行训练。
3.根据每个样本的信心pti,训练样本分为三组:公认组 (T2lt;ptile;1 ),混乱组(T1le;ptilt;T2 )和嘈杂的组 (0le;ptilt;T1 )。
4.调整样本的概率分布 Pt=(qt1/Zt,hellip;,qtm/Zt)T 哪里 Zt=sum;mi=1qti ,通过使用每组的相应概率计算公式:计算配额更新功能f1(pti);如果0le;ptilt;T1,f1(pti)=1minus;exp(minus;alpha;pti);否则如果T1le;ptilt;T2和Delta;le;delta;tile;1minus;2T1,f1(pti)=1minus;exp(minus;beta;(1minus;2T1minus;delta;ti));否则如果 if T2lt;ptile;1,f1(pti)=1minus;exp(minus;gamma;(1minus;pti)) ;否则 f1(pti)=1/qtminus;1i;更新配额参数 qtilarr;qtminus;1if1(pti) 。
5.重复②③④直到迭代收敛。
Dropsample主要通过动态改变训练样本的概率分布值来增强混淆样本的学习,从而提高训练样本的整体识别准确率。尽管在Dropsample方法中混淆样本的比例增加,但仍然使用其他样本训练混淆样本。这将导致两个问题。一个是混淆样本不能充分训练,另一个是公认的样本必须继续训练。此外,在识别基于文本的CAPTCHA时,我们发现只有少数类中的某些字符被错误识别。这些混淆类具有类似的特征。例如,字符“X”和字符“Y”具有交叉特征,字符“D”和字符“P”具有闭环特征。
第三节
提议的SLCC方法
对于混淆类识别,本文提出了一种选择性学习混淆类的方法。在SLCC方法中,提出了一种具有两级DCNN的帧,它集成了全级DCNN和混淆级DCNN。根据全类DCNN的识别结果,构造了一个混淆关系矩阵,并提出了一种混淆类的集合划分算法。此外,为了提高混淆类DCNN对混淆字符的识别准确性,提出了一种训练和验证交互式学习算法。整个过程包括两个步骤:培训过程和测试过程。在以下小节中,我们将详细介绍每个步骤和相关算法。
A.我们的方法概述
我们的方法概述包括两个主要过程:训练过程(见图1)和测试过程(见图2)。每个过程描述如下。
(图1:SLCC方法的培训过程。I.训练所有级别的DCNN:①训练具有初始训练数据集的全级DCNN。II。分析输出:②通过混淆矩阵获得混淆关系矩阵。③将混淆类集划分为多个混淆类子集。III。训练混淆类DCNN:④每个混淆类子集对应于混淆数据子集。⑤每个混淆数据子集用于训练新的混淆类DCNN)
(图2:SLCC方法的测试过程。I.测试所有级别的DCNN:①使用初始测试数据集测试所有级别的DCNN。II。分析输出:②判断测试样本的预测结果是否在混淆类集中。③如果不是,记录预测结果。④否则找出预测结果所属的混淆类子集。III。测试混淆类DCNN:⑤通过相应的混淆类DCNN测试测试样本。⑥记录每个混淆级DCNN的输出。IV。记录最终结果。⑦将两个阶段的输出结合起来作为最终识别结果。)
1)训练过程
1训练所有级别的DCNN:首先,通过数据增强和平衡采样对原始数据集进行预处理。其次,使用包含所有类别样本的预处理数据集初始化训练数据集和测试数据集。最后,训练数据集用于训练全级DCNN。
2分析输出:首先,分析全类DCNN输出,我们构造一个混淆关系矩阵来创建一个混淆类集和一个相应的训练集。接下来,根据所提出的集合划分算法,将混淆类集划分为一些子集,并且将新训练集划分为一些子集。
3训练混淆类DCNN:首先,每个新的混淆类DCNN对应于混淆类子集和训练子集。其次,提出的训练和验证交互式学习算法用于训练新的混淆类DCNN。最后,获得训练有素的混淆类DCNN。
2)测试过程
1.测试所有类DCNN:使用初始测试数据集测试所有类DCNN。
2.分析输出:判断测试样本的预测结果是否在混淆类集中。如果预测结果不在混淆类集中,则记录其预测结果; 否则,找出预测结果所属的混淆类子集。
3.测试混淆类DCNN:首先,将测试样本注入相应的混淆类DCNN。其次,记录每个混淆类DCNN的输出。
4.记录最终结果。最后,通过组合两个阶段的输出来获得所有测试样本的最终识别结果。
在两阶段DCNN框架中,属于全类DCNN的混淆类集的训练样本用于再次训练混淆类DCNN。同时,根据全类DCNN的混淆关系矩阵,将混淆类集划分为一个或多个子集,其对应于一个或多个新的混淆类DCNN。
B.训练过程
在本小节中,我们描述了训练所有类DCNN,在提出的SLCC方法的训练过程中分析输出和训练混淆类DCNN。
1)训练全类DCNN
在训练所有类的DCNN之前,需要对数据集进行预处理。在两阶段DCNN模型中,基本的DCNN改编自LeNet-5 [11]。
a:预处理数据集
研究人员通常以两种方式获取CAPTCHA图像:一种是从真实网站收集的; 另一个是由软件自动生成的。由于CAPTCHA图像中的字符是随机生成的,因此数据集包含分布不均匀的多类样本。为了解决这个问题,我们引入了一种数据增强方法,并参考了Label Shuffling的类平衡策略[28]。步骤如下(见图3)。
1按标签顺序对原始图像列表进行排序;
2计算每个类的样本数量并记录最大值;
3计算每类的样本数与最大值之间的差异;
4根据差异,从每个类的样本中随机选择图像;
5将所选图像转换为新图像,并更新图像列表;
6从每个类的样本中随机选择相同数量的图像,并为每个类生成图像列表。
7随机调整所有类的图像列表以获得最终图像列表。
(图3:预处理数据集的示例图。)
平衡采样的目的是减少过度拟合训练的可能性。主要有两个原因:
1.添加样品时,我们在每个类中生成相同数量的样品,以确保所有样品的均衡分布。
2.在每个类中添加样本时,我们对随机选择的图像执行轻微的随机变换以生成新图像。它避免了数据集中的相同样本。
b:DCNN的体系结构
作为深度学习网络,DCNN允许直接输入要识别的单个字符图像而无需特征提取,并且它在位移,缩放和变形方面具有一定程度的鲁棒性。基本DCNN [11]是卷积层和子采样层的替代架构。它的架构共有5层(见图4)。
1.DCNN的输入图像被标准化为大小32times;32。
2第一层是卷积层。在该层中,输出是6个特征映射,并且内核的大小是5个像素。
3第二层是子采样层,也称为池化层,窗口比例为2像素。
4第三层是卷积层。在该层中,输出是12个特征映射,并且内核的大小是5个像素。
5第四层是子采样层,窗口比例是2个像素。
6第五层是DCNN的输出,它是一维矢量。
(图4: 剩余内容已隐藏,支付完成后下载完整资料
资料编号:[20064],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。