- 博客(295)
- 资源 (10)
- 收藏
- 关注
原创 从源码理解PyVarObject与PyObject的区别
定长对象(比如int),是基于PyObject来定义的;而变长对象(比如string),是基于PyVarObject来实现的。
2022-09-16 22:02:02 996
原创 ubuntu下ping域名报错Name or service not known
ubuntu下ping域名报错Name or service not known的解决方法
2022-06-01 21:08:45 10402 1
原创 使用foremost对磁盘镜像文件做数字取证
foremost是linux下用于恢复文件的工具,能对dd,Safeback,Encase等工具提取出来的image文件进行恢复。
2022-04-19 23:11:40 5427
原创 vaderSentiment实现文本情感分析
vaderSentiment(参考1)是一个`基于词典和规则`的情感分析工具,作者专门对社交媒体信息做过调优,并在2014年发表过一篇文章(参考2),目前文章的引用量已经高达2680了(截止到20211105)。
2022-02-14 23:06:53 5131
原创 sklearn的LinearRegression源码理解
sklearn的LinearRegression源码,会首先对数据做预处理(X,Y都减去列均值),然后再用numpy中lstsq求解线性回归
2022-01-26 21:28:52 3246 1
原创 用github的Actions来自动训练AI模型(包含YAML的详细配置过程)
github的Actions功能(见参考1),提供了CI的workflow功能,利用该功能训练模型。
2021-12-16 23:10:45 1497
原创 VirusTotal智能搜索
1. VirusTotal介绍从wiki参考4上,可以对VT(VirusTotal)有一个大致了解:VirusTotal.com是一个免费的病毒、蠕虫、木马和各种恶意软件分析服务,可以针对可疑文件和网址进行快速检测,最初由Hispasec维护VirusTotal.com曾在PC World杂志(美国版)的评选中,荣获2007年最优秀的100款产品之一的称号2012年9月7日 Google 已经收购了网络安全创业公司VirusTotal,旨在增强针对自身互联网服务的保护措施2. 智能搜索示例V
2021-12-01 21:46:20 1205
原创 Google对simhash的用法论文读书笔记
1. 引入最近需要对xml计算hash值,做分类与相似性搜索,查资料时正好看了google在2007年发表的“Detecting Near-Duplicates for Web Crawling”,有一些收获,记录一下。2. 为什么用simhashsimhash使用比较短的位数,就能打败(达到相同的效果)其他hash值cryptographic hash(比如sha1或者md5)会让相似输入(文本)的hash值区别很大simhash会让相似输入(文本)的hash值区别很小3. 多特征hash
2021-11-12 23:07:31 467
原创 特征重要性计算之LOFO与FLOFO
1. 引入特征的重要性,即feature importance,使用sklearn自带的一些模型,就能计算出来。比如RandomForest取feature_importance的用法如下:from sklearn.ensemble import RandomForestClassifierfrom sklearn.datasets import load_breast_cancer, load_irisdata = load_iris()x_data = data.datay_data =
2021-11-03 23:25:07 761
原创 博客总排名为1037
难得排名进入到前1200,一直在1200上定格了好久,恭喜自己,记录一下好奇总排名最低的是多少,难以找到这个数据,随便搜了一个其他没怎么写过原创博客的人,发现排名为970000,这还是访问量不算小的,这也许就是局部最低值了(没有什么含义,只是纯粹好奇搜出来的事实)。...
2021-10-13 23:20:42 101
原创 F1,AUC的区别与选择
1. 引入评价一个分类器模型的效果,可以用交叉验证,也可以根据场景将数据切分为训练集、测试集,评价指标有Accuracy,F1-Value,AUC等。那我们该如何选择评价指标呢?不同场景下选择哪个指标更合理呢?2. 原理区别Accuracy准确率准确率高的模型,不一定是好模型比如癌症预测,100个人中只有一个病人,若分类器都输出0,准确率为99%,但我们都知道这无法找到任何一个癌症病人所以大部分场景,都不能直接根据Accuracy来评价模型F1-Value综合考虑了Prec
2021-10-06 23:14:37 3679
原创 LightGBM参数说明与参数调优建议
1. 引入从识别率上来说,LGBM并不逊色于XGB和RF;LGBM在笔者很多场景下都优于CatBoost。从工程化上来说,LGBM的模型size小、训练速度快、支持并发训练、兼容sklearn接口、支持GPU训练,这都使得LGBM的工程化能力更强。和RF比较,在准确率相当的前提下,LGBM的size也是比RF小很多倍(LGBM=4M,RF=100MB)。所以接下来写一下LGBM的调参思路, LGBM的参数以参考1中的接口LGBMClassifier命名为准(兼容sklearn的接口)。2. 调参重
2021-09-23 23:11:35 7667
原创 RandomForest中的包外误差估计out-of-bag (oob) error estimate
1. 引入从RandomForest的鼻祖Breiman的comments(参考1)中,可以看到他说过:对于RandomForest的validation,没有必要像其他模型一样做cross-validation了,可以直接用RandomForest在内部就提供了out-of-bag (oob) error estimate,用这种方法就可以看出RF的训练效果了。那我们该怎么理解out-of-bag (oob) error estimate呢?2. 原理:oob error estimate首先解释
2021-09-18 23:04:31 10508 9
原创 RandomForest的优点
1. 引入最近需要做表格数据(特征可读,特征多300+个,每个特征只有0/1两种值)分类,就尝试了比较适合表格数据的模型,比如RandomForest(后面缩写为RF), XGBoost(后面缩写为XGB), LightGBM, CatBoost。按理来说,1995年贝尔实验室提出的RandomForest是最老的模型;XGBoost是后来2014年出现的;2017年微软提出的LightGBM进一步提升了XGB的训练效率降低了内存消耗;2017年,俄罗斯最大的搜索引擎 Yandex也开发了CatBoos
2021-08-31 23:02:37 335
原创 自动机器学习框架auto-sklearn基础编程案例
1. 引入德国科学家在2015年时,在NIPS会议上发表了关于“自动机器学习框架”的方法(参考2),并开源了一个叫做auto-sklearn的项目(参考1)。在2020年,他们又对这个auto-sklearn框架进行了优化(参考3)。初步看来,auto-sklearn能自动选择sklearn中不同模型,并最终找出最优的ensemble多模型集成学习方案。2. 安装参考4中给出了安装方法,需要python3.6以上的版本。ubuntu上的安装步骤sudo apt-get install bui
2021-08-03 23:36:23 1166 1
原创 从keras中SGD源码理解基于时间的学习速率衰减decay策略
1. 引入在求解神经网络优化问题中,学习速率不应该是固定不变的。最好的学习速率,应该在训练开始时偏大,这样能加快训练速度,并在训练过程中逐步减小,这样能更好的逼近最优点。所以,在参考1中,我们知道了有SGD, Adam, Adadelta 等这些非常经典的优化算法。2. decay从参考2的中,我们能看到如何调节SGD, Adam等优化器的参数。同时我们也发现了一个参数叫做decay,它表示学习速率的衰减值。decay可以用于SGD, Adam, RMSprop, Adagrad, Adadel
2021-07-22 23:15:57 1259 1
原创 从源码理解pickle和joblib加载dict的性能不同
1. 引入最近有发现,pickle在加载(load)比较大的dict时,速度是比joblib快的。上网查了下pickle和joblib的区别,发现写这个主题的内容比较少。所以本文试对“pickle和joblib在加载dict时的快慢区别”这个主题进行了一些测试与研究。2. 验证 pickle 与 joblib 加载 dict 快慢测试使用如下代码,首先建立一个比较大的dict,并用pickle与joblib分别进行dump/load测试。import timeimport pickleimp
2021-06-21 22:06:36 760
原创 每月更新一次的恶意软件排名榜单
1. 引入我们知道,编程语言流行度,会由TIOBE(参考1)每个月发布一次,能从中看到多种编程语言受欢迎程度的排名。在恶意软件领域,有没有类似TIOBE的榜单排名呢?笔者近期就发现了checkpoint公司有做这样的恶意软件排名,信息也是每个月更新一次。2. checkpoint详细的榜单排名,发布在checkpoint的博客(参考3)中。但其博客中发布的信息比较多,不方便检索,所以可以从参考2的链接中,点击年份,搜索关键字“Most Wanted Malware”,就能找到榜单概要。点击标题
2021-06-01 23:15:30 269
原创 详解APK静态分析引擎`quark-engine`的5大功能
1. 引入2020年8月,在DEFCON 28大会上(参考3),发布了一个开源的"Android malware analysis engine",名字叫quark-engine(参考1)。这是台湾“財團法人電信技術中心”(参考2)开发的一个工具。该项目的开发者列表见参考7,目前主要活跃的开发者(负责人)是JunWei Song(参考3,参考5)。这个APK静态分析引擎,有以下几个特点:scoring system,能直接给出恶意度得分neglect certain cases of obfusc
2021-05-25 23:32:31 2891 1
原创 活久见 kernel:NMI watchdog: BUG: soft lockup - CPU#8 stuck for 28s! [xsoftdd/12:0]
1. 引入在一台linux机器上工作,没敲入任何命令,但命令行里突然出现 “kernel:NMI watchdog: BUG: soft lockup - CPU#8 stuck for 28s! [xsoftdd/12:0]” 这样的报错,如下图所示:报错后,又能正常在命令行里运行命令了。这是怎么回事呢?2. soft lockup在google上查到soft lockup相关的解释(参考3):A soft lockup is the symptom of a task or kernel
2021-05-08 23:31:09 3368
原创 手动下载并安装nltk_data
1. 引入使用nltk的tokenizer、模型、语料之前,都要先运行如下代码进行下载:import nltknltk.download()但网络原因,笔者从未成功下载过。发现一种离线安装方式(参考1,2),折腾配置成功了,步骤如下。2. 具体步骤下载nltk_data下载链接: https://github.com/nltk/nltk_data/tree/gh-pages注意下载branch为gh-pages,下载后得到:nltk_data-gh-pages.zip上传到服
2021-04-15 23:10:58 2090 1
原创 dhash计算源码分析
1. dhash参考1中,给出了一种相似图片搜索中,能用于计算图像hash值的算法,叫做dhash。用dhash计算图片hash,既能兼顾计算效率,又能兼顾准确率。那么好的东西,也已经有开源版本实现了,见参考2。2. dhash lib的用法参考2给的lib,根据其readme,得到在python中用法如下:import dhashfrom PIL import Imagedef get_dhash(img_path): image = Image.open(img_path)
2021-04-01 22:34:48 635
原创 详解如何获取深度学习模型中间层的输出值
1. 引入深度学习模型,大都是多层的网络,各个层可能各有不同(Dense, Dropout, Flatten, Activation, BatchNormalization, GlobalAveragePooling2D,Conv2D, MaxPooling2D, ZeroPadding2D,LSTM)。有时候我们需要获取多层网络中某一层的输出值,用于做可视化,或者Embedding。下面就以一个例子为例说明如何获取神经网络某一层的输出值。2. 构建网络,各层加上name本文构建的多层网络模型如下
2021-03-26 23:07:14 6961 4
原创 相似图片搜索中的均值哈希(aHash)
1. 引入参考1中介绍了相似图片搜索的基本原理,借助milvus(参考2)这样的相似性搜索引擎,我们可以非常快速的实现相似性搜索。但实现搜索之前,需要把图片转换为特征向量。本文介绍的均值哈希,就是图片的一种特征。2. 均值哈希的计算过程读入图片并转换为灰度图import numpy as npimport cv2img = cv2.imread('Alyson_Hannigan_200512.jpg', cv2.IMREAD_GRAYSCALE)# IMREAD_GRAYSCALE, IM
2021-02-23 22:01:59 1120
原创 使用keras.layers.Reshape实现不同维度任意层之间的对接
1. 引入keras提供了很多不同的layer给我们使用,常用的比如Dense, Dropout, Flatten, Activation, BatchNormalization, GlobalAveragePooling2D,Conv2D, MaxPooling2D, ZeroPadding2D,LSTM等等。我们使用这些layer,像搭积木一样逐层链接,就能实现深度学习模型。但是,keras提供的layer都是传统的layer。有一些比较新的layer,keras是不能那么快提供给我们用的。所以一些
2021-02-18 23:31:59 12287 2
原创 Seq2Seq模型中的集束搜索(Beam Search)
1. 引入用Seq2Seq模型开发翻译系统时,假设输入一句法语,输出英文。在Decoder输出部分,选择不同的单词,输出(翻译)的结果也会不同。这里用下图来举例说明:一个法语句子,被Seq2Seq模型翻译为不同的4句英文,我们该选择哪个结果作为最终结果呢?上图中,给了一个公式,式中的x表示法语句子,y表示各个单词组成的最终的英文句子,不同的y的组合表示不同的翻译,即y1~yn表示单词序列。解决这个问题的关键,就在于找到合适的y值,使得图中的公式值最大化。但是具体怎么做呢?下面我们介绍一种方法
2021-01-23 23:13:43 451
原创 详细解读Google论文:Google在Malware Hunting领域的新成果
引入最近仔细通读了Google最新的paper,《Spotlight: Malware Lead Generation at Scale》,这是Google在2020年12月份发表在Annual Computer Security Applications Conference (ACSAC) 会议上的论文。ACSAC是计算机安全领域的很好的会议,看到有的分析说是计算机安全排第二梯队的顶会。这是个比较有个性的会议,它上面的论文和学术界的其他会议区别很大。这里论文都是以应用为主的,文章内容注重实践性、工程
2021-01-01 23:11:25 443
原创 大规模向量相似度检索方案
1. 引入有很多指标可以用来衡量向量的相似度,比如余弦距离、汉明距离、欧氏距离等。在图像、视频、文本、音频领域,做向量的相似性搜索,有很多应用点,比如:图像识别,语音识别、垃圾邮件过滤。这种基于相似度检索的方案,不同于机器学习模型的方案。比如用有监督学习模型来做人脸识别,模型的可解释性较低,而基于相似度搜索来做人脸识别,可解释性就更高。但是,当数据量很大,比如几千万张图片,要做相似度搜索,就比较困难了。穷举法固然可行,但非常耗时。针对这种场景,本文主要介绍方案级别的信息。2. 常用方案通用的向量
2020-12-21 23:07:43 2601
nForm 国际化开发一例
2013-07-03
最简单的linux字符设备驱动
2012-11-25
简单的winsock编程客户机、服务器示例
2011-03-09
数据结构(C#语言版)
2011-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人