人工智能
文章平均质量分 73
吃肉唐僧
这个作者很懒,什么都没留下…
展开
-
模型评估与验证(三)
继上一篇了解模型评估的参数含义之后,我们来用ROC曲线与AUC两个指标来判别之前DGA的几个检测模型的好坏,之前只是用了准确率(accuracy)做了判别。实验步骤1.朴素贝叶斯算法的ROC曲线与AUC2.XGBoost算法的ROC曲线与AUC3.MLP算法的ROC曲线与AUC4.RNN算法的ROC曲线与AUC5.总结实战部分1.朴素贝叶斯(1)在统计特征模型情况下,auc为7...原创 2021-01-11 11:58:02 · 398 阅读 · 0 评论 -
模型评估与验证(二)
在前面大致了解模型评估与验证在整个流程所处的地位与作用之后,这一次我们来重点学习分类用的指标含义。1.混淆矩阵通俗的讲就是:真实值是positive,模型认为是positive的数量(True Positive=TP)真实值是positive,模型认为是negative的数量(False Negative=FN)真实值是negative,模型认为是positive的数量(False P...原创 2021-01-11 11:59:09 · 784 阅读 · 0 评论 -
DGA系列之RNN(三)
继上一篇介绍完RNN算法之后,我们现在来进行代码实战代码实战这次同样是验证码识别,不同的是上次DNN是tensorflow实现的,而这次是用tflearn框架实验的。实验步骤1.DNN的tflearn实现mnist验证码识别2.RNN的tflearn实现mnist验证码识别加载数据DNNDNN算法,这个维度维度是784,这是将所有数据放在一个维度里。最后softmax分类作...原创 2021-01-11 12:07:35 · 204 阅读 · 0 评论 -
DGA系列之RNN(二)
继上一篇DGA检测代码涉及到的RNN,我们来挖一挖RNN(循环神经网络)发展史在了解这个算法之前,先了解它为何出现。说下个人理解,神经网络是基于感知机的扩展,而DNN可以理解为有很多隐藏层的神经网络。多层神经网络和深度神经网络DNN其实也是指的一个东西,DNN存在一些局限性,例如参数数量膨胀,局部最优,梯度消失和无法对时间序列上的变化进行建模。而RNN就是为了解决无法对时间序列上的变化进行建模...原创 2021-01-11 12:09:08 · 310 阅读 · 0 评论 -
DGA系列之RNN(一)
这篇博客是对书中《web安全深度学习实战》DGA域名检测RNN的代码进行复现与解释。实验步骤获取样本数据提取特征将样本划分为训练集和测试集使用朴素贝叶斯算法在训练集上训练,获得模型数据使用模型数据在测试集上进行测试验证RNN算法的结果获取样本数据老规矩,加载正常样本和黑样本。提取特征与划分数据集训练、预测和验证RNN将提取出来的特征数据二值化,并定义长度为64,不...原创 2021-01-11 12:09:16 · 493 阅读 · 0 评论 -
DGA系列之MLP(三)
继上一篇介绍完MLP的原理之后,这一篇进入代码实战部分。使用tensoflow基于mnist识别验证码,体现MLP思想。代码实战我们将通过以下步骤:1.直接使用softmax函数,看看只使用线性函数处理效果如何2.加一层隐藏层,看处理效果如何3.多个隐藏层,看处理效果如何直接使用softmax函数MSIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片(0-9),也包含了每...原创 2021-01-11 12:09:54 · 305 阅读 · 0 评论 -
DGA系列之MLP(二)
继上一篇DGA深度学习方面的应用之后,我们来深扒一下MLP多层感知机的算法的原理和代码实践发展史针对机器学习对深度学习技术的发展过渡,发表一些个人的理解。一开始的机器学习,是基于特征去实现让机器具有识别工作,但需要识别的目标数量变得大的时候,机器学习所需要训练的数量也会变大,而这个人们初期用的方法是在同一个维度的横向扩展(不断地使用特征数据训练),这样的确可以达到高的命中率,构造一个完美的分类...原创 2021-01-11 12:09:24 · 599 阅读 · 0 评论 -
DGA系列之MLP(一)
这篇博客是对书中《web安全机器学习入门》DGA域名检测XGBoost的代码进行复现与解释。代码大部分与之前我发布的朴素贝叶斯算法的代码差不多。实验步骤如下:1. 获取样本数据2. 提取特征3. 将样本划分为训练集和测试集4. 使用朴素贝叶斯算法在训练集上训练,获得模型数据5. 使用模型数据在测试集上进行测试6. 验证MLP算法的结果获取样本数据老规矩,加载正常样本和黑样本。...原创 2021-01-11 12:09:32 · 504 阅读 · 0 评论 -
DGA系列之XGBoost(三)
继上一篇XGBoost的公式推导之后,这一篇说一下XGBoost的代码上的实战代码实战首先,我们拿到一个糖尿病人的各项指标数据,我们希望用XGBoost来根据这些数据来区分那些是病人那些不是最后一行是否是病人的标签,前面7列是各项指标先将数据划分,然后将他们分为训练集和测试集训练与测试,并输出准确率输出结果如下,准确率为77.95%基于这个基础上,我们尝试着不断给他加入(树...原创 2021-01-11 12:10:03 · 143 阅读 · 0 评论 -
DGA系列之XGBoost(二)
继上一篇博客,简单使用了XGBoost对DGA进行检测之后,这一篇博客试图去更深一层,在数学原理和代码层面了解XGBoost算法基本概念XGBoost全名叫(eXtreme Gradient Boosting)极端梯度提升,经常被用在一些比赛中,其效果显著。它是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包。XGBoost 所应用的算法就是 GB...原创 2021-01-11 12:11:36 · 204 阅读 · 0 评论 -
DGA系列之XGBoost(一)
这篇博客是对书中《web安全机器学习入门》DGA域名检测XGBoost的代码进行复现与解释。代码大部分与之前我发布的朴素贝叶斯算法的代码差不多。实验步骤如下: 1. 获取样本数据 2. 提取特征 3. 将样本划分为训练集和测试集 4. 使用朴素贝叶斯算法在训练集上训练,获得模型数据 5. 使用模型数据在测试集上进行测试 6. 验证XGBoost算法的结果...原创 2021-01-11 12:11:54 · 373 阅读 · 0 评论 -
DGA系列之朴素贝叶斯(三)
这篇博客是是基于DGA系列用到的朴素贝叶斯算法的再往深一层深入,试图在简单的数学算法和不适用sklean库的方面上,理解该算法。理论1.数学基础条件概率(Condittional probability),就是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示最终可变形为:P(A)称为"先验概率"(Prior probability),即在B事件发生之前,我们对A事件概率...原创 2021-01-11 12:12:11 · 294 阅读 · 0 评论 -
DGA系列之朴素贝叶斯(二)
这篇博客是《web安全机器学习入门》DGA域名检测朴素贝叶斯的代码进行复现与解释。实验步骤如下1.数据搜集和数据清洗2.特征化3.训练样本4.效果验证数据搜集和数据清洗返回如下结果load_dga特征化、训练与验证使用三折交叉验证法,输出结果命中率还不错率还不错想深入了解三折交叉验证法得话,看我另一篇Blog其中,对某些代码与函数解释初始化变量y1,y2,y3...原创 2021-01-11 12:13:42 · 344 阅读 · 0 评论 -
DGA系列之朴素贝叶斯(一)
这篇博客是对书中《web安全机器学习入门》DGA域名检测朴素贝叶斯的代码进行复现与解释。 实验步骤如下: 1. 获取样本数据 2. 提取特征 3. 将样本划分为训练集和测试集 4. 使用朴素贝叶斯算法在训练集上训练,获得模型数据 5. 使用模型数据在测试集上进行测试 6. 验证朴素贝叶斯算法的结果获取样本数据 加载正常样本和dga黑样本...原创 2021-01-11 12:37:20 · 666 阅读 · 0 评论 -
模型评估与验证(一)
最近在搞朴素贝叶斯算法的DGA检测的时候,将网上开源的代码down下来在机子上跑了一下,代码与原理也专研明白了一些。但是有个问题在我心里一直挥之不去,详情如下(若要了解更多可以到我主页看朴素贝叶斯之DGA检测系列博客)《web安全深度学习实战》的朴素贝叶斯运行结果(为了方便描述以下成为A结果):《web安全机器学习入门》的朴素贝叶斯运行结果(为了方便描述以下成为B结果):...原创 2019-12-01 14:46:38 · 3067 阅读 · 0 评论 -
安全之人工智能入门
前言 最近需要搞毕业设计,CTF玩耍告一段落。毕设涉及到安全与人工智能领域结合。当初真的一时冲动…当时觉得搞人工智能挺厉害的,没想太多就选了。真开始搞的时候才发现一头雾水 >_< ,之前人工智能是零基础,只用过python写过一些安全脚本,听说人工智能又要学高数,线性代数和概率论三件套,对电脑性能要求高劈里啪啦一大堆的…都是令新手望而止步的一些原因。 写这个博客也是为了解决...原创 2021-01-11 11:56:47 · 1656 阅读 · 0 评论