CN109815566A - 一种sgf格式的围棋ai棋谱文件的异常检测方法 - Google Patents
一种sgf格式的围棋ai棋谱文件的异常检测方法 Download PDFInfo
- Publication number
- CN109815566A CN109815566A CN201910020621.9A CN201910020621A CN109815566A CN 109815566 A CN109815566 A CN 109815566A CN 201910020621 A CN201910020621 A CN 201910020621A CN 109815566 A CN109815566 A CN 109815566A
- Authority
- CN
- China
- Prior art keywords
- word
- text
- data
- sgf
- frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明涉及一种SGF格式的围棋AI棋谱文件的异常检测方法,包括:步骤S1:导入SGF文件的文本数据;步骤S2:基于词袋模型处理文本数据得到一系列词的集合,并基于得到的集合计算每个词的权重;步骤S3:将每个词的权重集中组合得到文本数据的语言模型向量;步骤S4:利用异常检测算法进行异常检测,并输出检测结果。与现有技术相比,本发明基于词袋模型将文本转换为相应的向量形式,从而可以借助于现有的一些异常诊断算法进行诊断,可以实现棋谱文件的机器诊断。
Description
技术领域
本发明涉及一种异常检测方法,尤其是涉及一种SGF格式的围棋AI棋谱文件的异常检测方法。
背景技术
人工智能(Artificial Intelligence,AI)随着人类现实场景的诸多应用得到大力的发展,围棋方面的人工智能进展也取得巨大的成果。SGF是围棋AI的棋谱信息保存的文件格式,是围棋AI权重通过输入残差网络训练的重要文件信息。长期以来,SGF格式棋谱文件的数量规模与棋艺复杂度不断增长,但是围棋AI无法剔除和甄别异常SGF格式文件的棋谱。SGF格式的棋谱文件中异常棋谱严重影响残差网络的训练数据,进而导致残差网络训练数据生成劣质的围棋权重规模扩大,直至导致围棋AI的棋力迅速下降。
异常检测方法可以针对SGF格式的棋谱检测出棋谱异常内容,根据其业务相关性,进行相关异常棋谱内容的定向查找与报错,并得到筛选出异常棋谱的结论信息。
为了减少或避免异常棋谱的发生,异常检测方法是现阶段对棋谱文件内容检测的主要方式,其中异常检测旨在通过大数量优秀SGF格式棋谱建立的检测指标,对给定的SGF格式棋谱文件中棋谱内容的异常做出检测;
现今众多的围棋AI中,权重的网络训练需要十万张以上数量的SGF棋谱,常常忽略数百张异常的SGF棋谱文件,通过残差网络的训练数据生成权重以此来提升围棋AI棋力,而未处理的异常棋谱训练生成的权重会使得围棋AI在对弈时存在许多盲点,其棋力会大打折扣,而且异常的SGF棋谱会耗费大量的权重训练时间,以及造成GPU等硬件的超能损耗。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种SGF格式的围棋AI棋谱文件的异常检测方法。
本发明的目的可以通过以下技术方案来实现:
一种SGF格式的围棋AI棋谱文件的异常检测方法,包括:
步骤S1:导入SGF文件的文本数据;
步骤S2:基于词袋模型处理文本数据得到一系列词的集合,并基于得到的集合计算每个词的权重;
步骤S3:将每个词的权重集中组合得到文本数据的语言模型向量;
步骤S4:利用异常检测算法进行异常检测,并输出检测结果。
所述步骤S2具体包括:
步骤S21:基于词袋模型处理文本数据得到一系列词的集合;
步骤S22:计算每个词的词频:
其中:tfi,j为词i在文本j中的词频,ni,j为词i在文本j中的出现次数,nk,j为在文本j中各个词的出现次数,k为文本j中含有的词的个数;
步骤S23:计算每个词的逆向文件频率:
其中:idfi为词i在语料库文本集合中的逆向文件频率,|D|为语料库中的文本总数,D为语料库文本集合,|{j:ti∈dj}|为满足包含词i条件的文本j的数目,ti表示词i,dj表示文本j;
步骤S24:计算每个词的权重:
tf-idfi,j=tfi,j×idfi
其中:tf-idfi,j为词i的权重,tfi,j为词i在文本j中的词频,idfi为词i在语料库文本集合中的逆向文件频率。
所述异常检测算法为One-Class SVM算法或孤立森林算法。
所述异常检测算法为One-Class SVM算法时,所述步骤S4具体包括:
步骤S411:基于正常情况下文本数据的语言模型向量训练高维超球面;
步骤S412:输入待检测文本的语言模型向量,并判断是否在高维超球面的外部,若为是,则判定该待检测文本发生异常,反之,则判定为正常。
所述异常检测算法为孤立森林算法时,所述步骤S4具体包括:
步骤S421:从训练数据中随机选择若干个样本点,生成森林中若干棵树的根节点集合;
步骤S422:随机选择一个特征对当前特征数据进行切割生成两个子空间,作为节点的左右子树,其中,将指定维度里小于选择的特征的当前特征数据放在当前节点的左子树,把大于等于选择的特征的当前特征数据放在当前节点的右子树;
步骤S423:在子节点中递归步骤S422和S422,不断构造新的子节点,直到子节点无法再继续切割或子节点已到达树的限定高度。
步骤S424:获得设定数目个孤立树木之后,孤立森林算法训练结束,然后用生成的孤立森林来评估诊断。
所述步骤S424中的诊断过程具体包括:
步骤S4241:对于一个数据,令其遍历森林中每一棵独立的树,然后计算该数据在孤立森林的平均高度;
步骤S4242:判断平均高度是否低于设定阈值,若为是,则判定为异常,反之则判定为正常。
与现有技术相比,本发明具有以下有益效果:
1)基于词袋模型将文本转换为相应的向量形式,从而可以借助于现有的一些异常诊断算法进行诊断,可以实现棋谱文件的机器诊断。
2)使用文本处理领域相关的语言模型的方法,将文本数据进行向量化,使其成为能够被异常检测算法所利用的数据格式。
3)在文本向量化后,利用异常检测算法,检测出SGF文件的异常情况
4)可以根据自然语言处理领域中数据预处理的方法,将SGF文件中的文本数据进行向量化,方便进行下一步的操作。
5)可以根据训练集中SGF文件中的文本数据,对SGF文件中的文本数据进行建模,得到SGF文件数据的算法模型。
6)可以对传入模型的SGF文件进行异常状态的检测,获得其异常检测结果,进而保证了围棋AI通过残差网络训练得到的权重是最优秀的,大大提升围棋AI 对弈的棋力且不会出现盲点落子。
附图说明
图1为本发明方法的主要步骤流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
发明人发现,SGF文件是为了存储双人棋类对局记录而设计的一种文件格式是目前最通用的围棋棋谱文件格式,它是以文本格式为基础的。
(;GM[1]FF[4]SZ[19]PW[twoeye]WR[6d]PB[lockhart]BR[6d]CA[UTF-8]ST[2];B[ pd];W[qp];B[dd];W[dp];B[jd];W[qf];B[nd];W[pj];B[cn];W[fq];B[dj];W[cc];B[cd];W[d c];B[fc];W[ec];B[ed])
上述是一个简单的SGF文件中的文本数据的示例。一个完整的SGF文件必须以()开始和结尾,用;隔开的每一个叫做节点。每个节点可以有多个属性,属性名[属性值],第一个节点是对棋局的描述信息,比如棋盘大小,对局名称,黑方姓名,白方姓名等。
对SGF格式棋谱文件中棋谱内容的异常做出检测,其本质上就是对文本数据进行异常检测。
目前,异常检测算法主要分为以下四种:
1.基于统计的异常检测算法:基于统计的异常检测方法通常都是构建一个概率分布模型,并计算某条数据对象符合该模型的概率,把具有低概率的数据视为异常数据;
2.基于邻近度的异常检测算法:基于邻近度的异常检测算法可以在数据对象之间定义邻近性(距离或密度等)度量,如果某条数据的邻域内没有足够多的其他点,则认为该数据为异常值;
3.基于聚类的异常检测算法:基于聚类的异常检测算法可以利用聚类检测异常值的方法是直接丢弃远离其他簇的小簇,也可以针对数据点属于簇的程度进行评价,得分低的点即为异常点;
4.基于分类的异常检测算法:基于分类的异常检测算法是一种基于已标记的训练数据,对正常数据(和(极少)异常数据)构建一个分类模型,从而对每一条新的数据进行正常或异常判断的方法。
基于上述发现,发明人决定将基于文本数据的自然语言处理方法与异常检测方法两者结合,从而构建精确的算法模型,并获得其异常检测结果,从而提供一种 SGF格式的围棋AI棋谱文件的异常检测方法,如图1所示,包括:
步骤S1:导入SGF文件的文本数据;
步骤S2:基于词袋模型处理文本数据得到一系列词的集合,并基于得到的集合计算每个词的权重,使用自然语言处理领域的词袋模型(Bag of words,BOW) 和词频与逆向文件频率(Term Frequency-Inverse Document Frequency,TF-IDF)方法将SGF文件中的文本数据进行向量化,词袋模型是一种文本的表达模型。在 BOW中,文本(段落或者文档)被看作是无序的词汇集合,忽略语法和单词的顺序,其实就是将文本理解成为一系列词的集合。而词袋模型中的特征则是利用 TF-IDF方法得到的。
之后采用TF-IDF方法,该方式是一种基于统计的文本特征提取方法,经常用来评估某一字词对于一个文件集或一个语料库的重要程度,字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。其中,TF表示词条在某特定文本中出现的频率,DF表示词条在其他文本集中的出现频率。TF-IDF算法的主要思想是,如果某个指定的词的词频(TF)越高,文频(DF)越低,则认为此词具有很好的类别区分能力。
具体包括:
步骤S21:基于词袋模型处理文本数据得到一系列词的集合;
步骤S22:计算每个词的词频:
其中:tfi,j为词i在文本j中的词频,ni,j为词i在文本j中的出现次数,nk,j为在文本j中各个词的出现次数,k为文本j中含有的词的个数;
步骤S23:计算每个词的逆向文件频率:
其中:idfi词i在语料库文本集合中的逆向文件频率,|D|为语料库中的文本总数,D为语料库文本集合,|{j:ti∈dj}|为满足包含词i条件的文本j的数目,ti表示词i,dj表示文本j;
步骤S24:计算每个词的权重:
tf-idfi,j=tfi,j×idfi
其中:tf-idfi,j为词i的权重,tfi,j为词i在文本j中的词频,idfi为词i在语料库文本集合中的逆向文件频率。
步骤S3:将每个词的权重集中组合得到文本数据的语言模型向量,各权重值分别为向量中的多个元素;
步骤S4:利用异常检测算法进行异常检测,并输出检测结果,其中,异常检测算法为One-Class SVM算法或孤立森林算法。
异常检测算法为One-Class SVM算法时,步骤S4具体包括:
步骤S411:基于正常情况下文本数据的语言模型向量训练高维超球面;
步骤S412:输入待检测文本的语言模型向量,并判断是否在高维超球面的外部,若为是,则判定该待检测文本发生异常,反之,则判定为正常。
One-Class SVM算法是一种基于SVM的算法。One-Class SVM并不是用来进行分类的,而是用来检测新的数据是否属于原始数据一类的一种算法。One-Class SVM算法的思路:One-Class SVM算法不会对已有标签的数据进行分类判别, One-Class SVM通过训练出一个高维超球面,把数据尽可能紧的包围起来,即根据支持向量域描述(Support VectorDomain Description SVDD),将样本数据训练出一个最小的超球面,此超球面大于3维特征,将数据全部包起来,当进行异常检测时,可通过判断检测样本是否在超球面内,若存在超球面内,则此样本为正常样本,反之,此样本为异常样本。
关于One-Class SVM具体实现,可以通过中国台湾大学林智仁设计和实现的库LibSVM来完成其代码实现。
One-Class SVM算法有能力捕获数据集的形状,因此对于非高斯数据有更加优秀的检测效果。严格来说,One-Class SVM算法的训练集中不能包含异常数据,可能在训练时影响超球面边界的选取。但是,当针对在高维空间中的样本数据集,如果不能做不出有关分布特点的假设,One-class SVM可以得到有效的检测结果。
孤立森林(Isolation Forest)算法是一种基于树的算法。孤立森林(IsolationForest)由t个孤立树(Isolation Tree)组成,每个孤立树(Isolation Tree)是一个二叉树结构,其具体实现步骤如下:
①从训练数据中随机选择若干个样本点,生成森林中若干棵树的根节点集合;;
②随机选择一个特征p对当前特征数据进行切割生成两个子空间,作为节点的左右子树:把指定维度里小于p的数据放在当前节点的左子树,把大于等于p的数据放在当前节点的右子树;
③在子节点中递归步骤①和②,不断构造新的子节点,直到子节点无法再继续切割或子节点已到达树的限定高度。
获得t个孤立树(Isolation Tree)之后,孤立森林(Isolation Forest)的训练就结束,然后用生成的孤立树(Isolation Forest)来评估测试样本数据了。对于一个数据x,令其遍历每一棵孤立树(Isolation Forest),然后计算x在孤立森林(Isolation Forest)的平均高度,从而进行异常检测。根据训练集设定平均高度的阈值,若x 在孤立森林(Isolation Forest)的平均高度低于此阈值的测试数据即为异常,反之,即为正常数据。
上述异常检测方法在SGF数据集上做了性能评估,并采用准确率(precision),召回率(recall)和F-measure作为衡量性能的指标。F-measure是模型查准率和召回率的一种加权平均。即:
F-measure=2*precision*recall/(precision+recall)
训练数据集中正常数据为KGS比赛中获取的棋谱文件5000条,异常数据为网络上各开源文本数据库随机下载500条。测试数据集中正常数据为KGS比赛中获取的棋谱文件5000条,异常数据为网络上各开源文本数据库随机下载5000条。
因为实验存在随机性,因此分别进行五次实验并记录,结果如表1所示。
表1
Claims (6)
1.一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,包括:
步骤S1:导入SGF文件的文本数据;
步骤S2:基于词袋模型处理文本数据得到一系列词的集合,并基于得到的集合计算每个词的权重;
步骤S3:将每个词的权重集中组合得到文本数据的语言模型向量;
步骤S4:利用异常检测算法进行异常检测,并输出检测结果。
2.根据权利要求1所述的一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,所述步骤S2具体包括:
步骤S21:基于词袋模型处理文本数据得到一系列词的集合;
步骤S22:计算每个词的词频:
其中:tfi,j为词i在文本j中的词频,ni,j为词i在文本j中的出现次数,nk,j为在文本j中各个词的出现次数,k为文本j中含有的词的个数;
步骤S23:计算每个词的逆向文件频率:
其中:idfi为词i在语料库文本集合中的逆向文件频率,|D|为语料库中的文本总数,D为语料库文本集合,|{j:ti∈dj}|为满足包含词i条件的文本j的数目,ti表示词i,dj表示文本j;
步骤S24:计算每个词的权重:
tf-idfi,j=tfi,j×idfi
其中:tf-idfi,j为词i的权重,tfi,j为词i在文本j中的词频,idfi为词i在语料库文本集合中的逆向文件频率。
3.根据权利要求1所述的一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,所述异常检测算法为One-Class SVM算法或孤立森林算法。
4.根据权利要求3所述的一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,所述异常检测算法为One-Class SVM算法时,所述步骤S4具体包括:
步骤S411:基于正常情况下文本数据的语言模型向量训练高维超球面;
步骤S412:输入待检测文本的语言模型向量,并判断是否在高维超球面的外部,若为是,则判定该待检测文本发生异常,反之,则判定为正常。
5.根据权利要求3所述的一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,所述异常检测算法为孤立森林算法时,所述步骤S4具体包括:
步骤S421:从训练数据中随机选择若干个样本点,生成森林中若干棵树的根节点集合;
步骤S422:随机选择一个特征对当前特征数据进行切割生成两个子空间,作为节点的左右子树,其中,将指定维度里小于选择的特征的当前特征数据放在当前节点的左子树,把大于等于选择的特征的当前特征数据放在当前节点的右子树;
步骤S423:在子节点中递归步骤S422和S422,不断构造新的子节点,直到子节点无法再继续切割或子节点已到达树的限定高度。
步骤S424:获得设定数目个孤立树木之后,孤立森林算法训练结束,然后用生成的孤立森林来评估诊断。
6.根据权利要求5所述的一种SGF格式的围棋AI棋谱文件的异常检测方法,其特征在于,所述步骤S424中的诊断过程具体包括:
步骤S4241:对于一个数据,令其遍历森林中每一棵孤立的树,然后计算该数据在孤立森林的平均高度;
步骤S4242:判断平均高度是否低于设定阈值,若为是,则判定为异常,反之则判定为正常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020621.9A CN109815566A (zh) | 2019-01-09 | 2019-01-09 | 一种sgf格式的围棋ai棋谱文件的异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020621.9A CN109815566A (zh) | 2019-01-09 | 2019-01-09 | 一种sgf格式的围棋ai棋谱文件的异常检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109815566A true CN109815566A (zh) | 2019-05-28 |
Family
ID=66603320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910020621.9A Pending CN109815566A (zh) | 2019-01-09 | 2019-01-09 | 一种sgf格式的围棋ai棋谱文件的异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815566A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382278A (zh) * | 2020-03-04 | 2020-07-07 | 华中师范大学 | 一种基于时空轨迹的社交网络构建方法及构建系统 |
CN112949282A (zh) * | 2021-02-26 | 2021-06-11 | 中国联合网络通信集团有限公司 | 配置文件检查方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102976A (zh) * | 2017-03-23 | 2017-08-29 | 北京大学 | 基于微博的娱乐新闻自动构建技术与系统 |
CN107992741A (zh) * | 2017-10-24 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 一种模型训练方法、检测url的方法及装置 |
US10045218B1 (en) * | 2016-07-27 | 2018-08-07 | Argyle Data, Inc. | Anomaly detection in streaming telephone network data |
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
-
2019
- 2019-01-09 CN CN201910020621.9A patent/CN109815566A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10045218B1 (en) * | 2016-07-27 | 2018-08-07 | Argyle Data, Inc. | Anomaly detection in streaming telephone network data |
CN107102976A (zh) * | 2017-03-23 | 2017-08-29 | 北京大学 | 基于微博的娱乐新闻自动构建技术与系统 |
CN107992741A (zh) * | 2017-10-24 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 一种模型训练方法、检测url的方法及装置 |
CN108985632A (zh) * | 2018-07-16 | 2018-12-11 | 国网上海市电力公司 | 一种基于孤立森林算法的用电数据异常检测模型 |
Non-Patent Citations (3)
Title |
---|
刘敬 等: ""基于单分类支持向量机和主动学习的网络异常检测研究"", 《通信学报》 * |
赵恒立: ""恶意代码检测与分类技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
郭力森: ""基于云服务器的高性能与高稳定性基于云服务器的高性能与高稳定性围棋搜索服务的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382278A (zh) * | 2020-03-04 | 2020-07-07 | 华中师范大学 | 一种基于时空轨迹的社交网络构建方法及构建系统 |
CN111382278B (zh) * | 2020-03-04 | 2023-08-08 | 华中师范大学 | 一种基于时空轨迹的社交网络构建方法及构建系统 |
CN112949282A (zh) * | 2021-02-26 | 2021-06-11 | 中国联合网络通信集团有限公司 | 配置文件检查方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111612041B (zh) | 异常用户识别方法及装置、存储介质、电子设备 | |
US20130097125A1 (en) | Automated analysis of unstructured data | |
US11810000B2 (en) | Systems and methods for expanding data classification using synthetic data generation in machine learning models | |
CN110442516B (zh) | 信息处理方法、设备及计算机可读存储介质 | |
Qu et al. | Efficient online summarization of large-scale dynamic networks | |
Alhammady et al. | Using emerging patterns and decision trees in rare-class classification | |
CN108243191A (zh) | 风险行为识别方法、存储介质、设备及系统 | |
US20220279045A1 (en) | Global iterative clustering algorithm to model entities' behaviors and detect anomalies | |
CN111581092A (zh) | 仿真测试数据的生成方法、计算机设备及存储介质 | |
CN109815566A (zh) | 一种sgf格式的围棋ai棋谱文件的异常检测方法 | |
Bruzzese et al. | DESPOTA: DEndrogram slicing through a pemutation test approach | |
Aghaei et al. | Ensemble classifier for misuse detection using N-gram feature vectors through operating system call traces | |
Ye et al. | Projected outlier detection in high-dimensional mixed-attributes data set | |
CN111612641A (zh) | 一种社交网络中有影响力用户的识别方法 | |
CN109033224A (zh) | 一种风险文本识别方法和装置 | |
Wang et al. | Causality Based Propagation History Ranking in Social Networks. | |
CN110929285B (zh) | 一种隐私数据的处理方法及装置 | |
Kobler | On the structure of low sets [complexity classes] | |
Chen et al. | Data curation and quality assurance for machine learning-based cyber intrusion detection | |
CN114155012A (zh) | 欺诈群体识别方法、装置、服务器及存储介质 | |
Constantinou et al. | How do some Bayesian Network machine learned graphs compare to causal knowledge? | |
CN109784047B (zh) | 基于多特征的程序检测方法 | |
US10574510B2 (en) | System for decomposing events from managed infrastructures using syntax pattern | |
Abdullah et al. | Tracing significant association rules using critical least association rules model | |
US20220284307A1 (en) | Decision tree native to graph database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190528 |
|
RJ01 | Rejection of invention patent application after publication |