自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 MITRE知识库中Android行为列表
原力计划

1. 引入 MITRE ATT&CK的介绍来看,它是一个攻击者(adversary)策略(tactic)知识库(knowledge base of adversary tactics and techniques)。该框架理顺了攻击者渗透网络、入侵主机、提升权限、隐秘移动和渗漏数据的攻击链...

2020-06-30 23:28:16 103 0

原创 理解词嵌入WordEmbedding

1. 引入 词嵌入,英文为 Word Embedding,这是语言表示的一种方式。它可以让算法理解一些类似的词。 2. 词表示:one-hot 我们可以用one-hot向量来表示词,如下图所示。 这种表示方式,我们需要首先获取一个字典,比如字典中有100000个词。 对每一个词,都得到一个向量,...

2020-06-19 23:19:31 53 0

原创 深层循环神经网络

1. 引入 我们学过的序列模型,RNN, GRU, LSTM,以及双向的RNN, GRU, LSTM,他们每一个模型都可以独当一面。 如果我们想学习更复杂的函数,通常我们就会把多个RNN堆叠到一起,构建更深层次的网络。 接下来我们就讲述如何构建深层次的循环神经网络。 2. 深层RNN原理 见下图 ...

2020-05-19 23:01:12 62 0

原创 双向RNN原理

1. 引入 我们之前已经了解了RNN中的GRU[2]和LSTM[3]。 怎么样才能进一步优化RNN这样的模型呢?就是使用双向RNN,它能使得我们在序列的某点处,不仅获取之前的信息,还能获取将来的信息。 将来的信息是什么意思呢?为什么根据之前的信息还不足够网络做决策? 我们看下面的一个例子:用传统R...

2020-05-05 22:44:01 151 0

原创 理解LSTM

注意:请先看解释GRU的博客,否则不容易看懂本文 1. 引入 GRU(门控循环单元)允许我们在序列学习中,学习非常深的连接。 其他类型的单元,也能做到这个效果,比如本文要讲的LSTM,它甚至比GRU的效果要好(更通用,更强大)。 下面是对GRU做的一个总结,需要深入了解的,可以先看(补充GRU博客...

2020-04-19 20:43:06 91 0

原创 RNN中的门控循环单元GRU
原力计划

1. RNN隐层单元结构可视化 下面是一个基本的RNN隐层单元结构: 其中,a是上一个时刻的激活函数输出值,x是当前时刻的输入,y是当前时刻的输出。 要理解这个单元结构,需要注意2点: a与x结合,通过激活函数的作用后,有两个分支,一个分支作为下一个时刻的输入a 另一个分支通过softmax作...

2020-04-07 21:52:24 367 0

原创 RNN中的梯度消失与梯度爆炸

1. 引入 我们可以在[1]中,看到RNN的结构,如下图所示。 假设我们输入两个句子如下: The cat, which already xxx yyy zzz …, was full. The cats, which alrady xxx yyy zzz …, were full. 这两句...

2020-03-17 20:50:35 92 0

原创 java源代码转jar包

引入 jar文件具有跨平台、数据压缩、多文件封装的优点,所以我们常将java源程序和其他的文件(比如资源文件、签名)打包到一起,变成jar包。这样对java程序的部署会更方便,也更安全。 用IDEA等IDE,可以直接将java文件转换为jar包。本文讲解如何用JDK命令来转换。 本文实验环境 w...

2020-03-05 21:21:11 223 0

原创 详解语言模型

语言模型,能够告诉你,某个特定的句子,出现的概率是多少

2020-02-26 20:30:53 96 0

原创 将java文件转换为DEX并在Android真机运行

引入 DEX文件在Android中很重要,它与APK瘦身、热修复、插件化、应用加固、逆向工程、64K方法数限制都有关系[1]。 所以,我们先来认识一下本文的主角,DEX文件。 Dalvik虚拟机在Android中的作用,与JVM在Linux中的作用类似。我们用java语言来开发Android程序,...

2020-02-12 21:03:36 244 0

原创 RNN的5种典型结构

引入 我已经在文章[1]中介绍了一些序列模型的应用,比如“中文翻译为英文”,“NER命名实体识别”,“歌词生成”,“情绪识别”。 也在文章[2]中介绍了RNN结构的基本原理。 那问题来了,要实现“中译英”和“歌词生成”,我们选用的RNN结构是一样的吗?RNN有哪些典型的结构,分别对应哪些应用场景呢...

2020-01-27 21:49:03 398 0

原创 APK反编译后插入调试代码动态运行

1. 引入 当我们拿到一个APK,没有源代码,该怎么样去研究APK的核心逻辑呢? 限于运行环境的复杂,我们会首先使用静态分析的方式,大概可以想出这样一些静态分析APK的方法: 用apktool直接将APK转换为smali程序,再阅读smali代码(比较痛苦) 用dextojar将APK中的...

2020-01-07 22:53:14 257 0

原创 详解python中的*args与**kwargs的用法

引入 用itertools做多个item的组合问题,使用方式如下 import itertools all_list = [['A', 'B'], ['C', 'D'], ['E','F&...

2019-12-28 20:09:56 168 0

原创 理解RNN的结构+特点+计算公式

引入 在某一些情况下,我们是无法使用标准的全连接神经网络的。比如,预测句子中哪几个单词是人名,如果使用标准的全连接神经网络,网络结构如下: 如果使用这种结构,会存在两个问题 输入句子长度和输出向量的维度,可能会不一样。对不同的样本,其输入/输出维度都不同。 当然你可以采用zero padd...

2019-12-08 21:39:23 290 1

原创 多个列表中的元素做组合的逻辑与python实现

引入 本文组合逻辑的讲解,与代码,都是基于python的。 我们在实际编程中,会遇到多个元素做组合的过程,比如,给定如下4个列表 list1 = ['A', 'B'] list2 = ['C', 'D'] list3 ...

2019-11-25 23:11:27 222 0

原创 序列模型用途介绍及数学符号

1. 序列模型用途 之所以要用到序列模型,是因为,在现实生活中,我们的很多数据都具有连续的关系,比如 语音识别:根据音频数据,识别为语言文本 音乐生成:给定0个或某几个音节,自动生成歌曲 情感分析:根据一段文本,来判断其情绪 DNA序列分析:从给定的DNA序列中,标记出值得关注的...

2019-11-07 21:52:30 209 0

原创 详解python3的新特性:函数注解(Function Annotations)与类型注解

文章目录引入函数注解变量注解静态类型检查模块mypy总结参考 引入 我们在阅读python3写的代码时,会看到类似如下的程序: def add(x: int, y: int) -> int: return x+y 初步看上去,与python2相比,这个函数在定义上,多了3个int。...

2019-10-18 22:56:43 662 0

原创 浅析Attention机制

引入 Attention机制目前在深度学习领域应用的越来越多了,在CV和NLP领域都有大量应用。使用keras的Attention模块,可以说是能随意为深度学习模型插上Attention的翅膀了。 那Attention机制的基本原理是什么?它有哪些优缺点呢? Attention机制的提出 Atte...

2019-10-08 22:29:26 79 0

原创 MITRE ATT&CK安全知识库介绍

1. 引入 通过学习MITRE ATT&CK,能快速对安全领域做一个全面的了解。 本文只是对MITRE ATT&CK做一个初步介绍,更深入的内容后续还会再写。 2. MITRE是什么 从wikipedia[1]上可以看到介绍: The Mitre Corporation (styl...

2019-09-26 21:18:04 3545 0

原创 IDA动态调试Android进程的配置步骤

确保ADB能正常连接手机 (装了AndroidStudio后,ADB位于 C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools) 把IDA中的\dbgsrv\android_server复制到手机 adb root adb push ...

2019-09-02 20:56:44 272 0

原创 MongoDB从零安装到SHELL管理到远程连接配置与编程访问

引入 本文主要讲下面几点: 在CentOS下安装mongo的过程 安装完成后,本地访问mongo以及在mongo shell下基础的mongo管理命令 无法远程访问mongo的解决方法 本文环境 CentOS Linux 7 (Core) MongoDB 4.2 远程连接:Win...

2019-08-18 21:11:15 407 0

原创 详解多分类模型的Micro-F1/Precision/Recall计算过程

引入 关于准确率(accuracy)、精度(precision)、查全率(recall)、F1的计算过程,之前写过一篇文章[1]。 根据文章[1]中的公式,我们可以知道,精度(precision)、查全率(recall)、F1的计算,是针对于二分类器来说的。他们的计算,只与y_true/y_pre...

2019-08-01 20:19:51 2905 0

原创 详解多分类模型的Macro-F1/Precision/Recall计算过程

引入 关于准确率(accuracy)、精度(precision)、查全率(recall)、F1的计算过程,之前写过一篇文章[1]。 根据文章[1]中的公式,我们可以知道,精度(precision)、查全率(recall)、F1的计算,是针对于二分类器来说的。他们的计算,只与y_true/y_pre...

2019-07-19 22:34:24 7959 1

原创 kaldi中SHELL调用C++程序过程源码分析

引入 kaldi真正的核心源码,都是C++写成的,这个结论可以从如下两点得以确认: (1)在kaldi的源码kaldi/src目录下,能看到很多扩展名为.cc的源程序,这是linux下C++源码; (2)在源码中,比如kaldi\src\featbin\compute-mfcc-feats.cc,...

2019-07-05 23:24:20 471 0

原创 学完deeplearning.ai的Course1和Course4

文章目录说明学习过程中写的文章Course1: Neural Networks and Deep Learning内容与学习过程记录Course4:Convolutional Neural Networks内容与学习过程记录 说明 从2018年开始,断断续续在网易云课堂学完了吴恩达在deeplea...

2019-06-14 22:23:58 110 0

原创 kaldi的编译安装与报错解决方法

引入 kaldi是语音识别领域,最常用的一个工具。 它自带了很多特征提取模块,能提取MFCC/ivector/xvector等语音特征;也自带了很多语音模型代码,可以直接使用或重新训练GMM-HMM等模型;它还支持GPU进行训练。可以说是功能很强大了。 更厉害的是,你只需要简单的SHELL编程,就...

2019-06-03 22:21:12 4356 0

原创 用surprise实现SVD协同过滤推荐算法对本地数据做推荐

引入 surprise是Simple Python Recommendation System Engine的缩写,是一个为了实现推荐系统的框架。它自带了SVD,user-based,item-based协同过滤算法等多种推荐算法,接口简单,功能强大。但官方文档写的并不好,笔者花了不少时间,都没有...

2019-05-21 21:56:17 1922 0

原创 通过对比Bagging/Boosting/RF/GDBT来理解XGB

引入 用过XGB模型的人,都大致知道,XGB是由多棵树组成的,像一片森林,这是一种集成学习方法。但是,这片森林里的每棵树都是通过纯度计算与分支划分得到的吗?多棵树是如何组合(集成)在一起共同做决策的呢?XGB和RandomForest是什么区别?XGB和GDBT又有什么区别呢? 如何才能解释这些问...

2019-05-05 22:19:35 338 0

原创 linux下如何将大文件分为多个小文件

背景 我们跑在linux上程序,有时候打出的log很大,动不动就是几个G。即不方便查阅,也不方便下载、传输。有没有办法(命令最好)把这样的大文件拆分为多个小文件呢? 拆分文件的Linux命令 (1)将文件按照存储大小拆分 如下命令,将954M大小的文件httpd.log,按照500MB每个文件大小...

2019-04-27 08:40:33 1676 0

原创 CNN在自动驾驶中的不同结构

1. 引入 真实的驾驶场景,是根据一些测量值,来预测汽车的油门、刹车、方向盘角度的过程。这些测量值可能包括:汽车速度,加速度,转向角,GPS坐标,陀螺仪角度等值,当然也少不了摄像机拍摄的车辆前方的图像。这其中CNN最擅长做的,是图像数据的处理,包括物体识别(行人,车辆,车道,交通标志),也包括回归...

2019-04-08 22:17:14 579 0

原创 Gartner对移动设备应用的一个预测

正文 从一篇博客[1]中,窥得一个Gartner的预测结论: Gartner predicts that 80% of worker tasks will take place on a mobile device by 2020. 这个预测是写在这篇报告中的:(Gartner, “Prepare...

2019-03-20 09:36:58 342 0

原创 通过源码发现nltk.Text.similar相似度衡量标准

1. 如何用nltk来找到text中相似的word 如果我们想搜索某一篇文章(text)中相似的词(word),可以使用nltk这个强大的NLP模块。下面以nltk自带的shakespeare数据集来做示例。 第一次使用nltk,需要先运行下面的代码来下载shakespeare数据集。 impor...

2019-02-10 19:37:46 802 0

原创 jupyter如何重新加载模块

最近几年,jupyter在全球数据科学领域,已经成为不可或缺的重要工具。 在jupyter中用python写程序,若import了自己写的外部模块,如果这个外部模块有更新,再次执行import,jupyter是不会重新导入的。一般的做法是先restart整个jupyter文档,再重新执行代码,以确...

2019-01-30 22:57:06 5469 0

原创 YOLO-V3的一些细节

1. Abstract YOLO的基本思想是通过多层CNN预测Bounding Box的中心(x,y)坐标及其长宽,当然也少不了类别信息,参考[1]。 YOLO-V3的结构/基本原理是什么样?有哪些重要的参数/概念?YOLO-V3的优点是什么?下文着重讲解。 2. YOLO-V3 2.1 模型结构...

2019-01-13 21:26:11 2808 0

原创 详解keras的model.summary()输出参数Param计算过程

摘要 使用keras构建深度学习模型,我们会通过model.summary()输出模型各层的参数状况,如下: ________________________________________________________________ Layer (type) ...

2018-12-22 20:32:24 33978 8

原创 L1正则化与L2正则化的区别

摘要 正则化的本质是在Cost Function中添加的p-范数。本文从正则化的本质p-范数入手,解释了L1正则化和L2正则化的区别。 正则化 在Cost Function上添加了正则化项,就能降低模型的过拟合程度,这就是正则化的作用。 关于正则化更细节的讲述,请参考为什么正则化能减少模型过拟合程...

2018-12-10 20:45:36 4493 0

原创 可视化理解卷积神经网络

摘要 通过可视化分析,更能直观理解CNN各层的功能。 CNN各层能检测到的特征 第1层,学习到一些简单特征,如下图 第2层,检测到复杂的模式和形状,如下图 第3层,检测到了图像中的某一部分,或某些特定的图案(更加复杂的模式),如下图 第4层,比上一层复杂的模式,比如检测到了同一...

2018-11-22 21:58:33 1355 0

原创 详解Siamese网络

摘要 Siamese网络用途,原理,如何训练? 背景 在人脸识别中,存在所谓的one-shot问题。举例来说,就是对公司员工进行人脸识别,每个员工只给你一张照片(训练集样本少),并且员工会离职、入职(每次变动都要重新训练模型)。有这样的问题存在,就没办法直接训练模型来解决这样的分类问题了。 为了解...

2018-11-14 19:23:11 14649 7

原创 CNN训练模型自动驾驶仿真

1. 摘要 本文讲解如何根据开源项目[1]和Udacity的自动驾驶仿真工具[2],训练一个CNN自动驾驶模型,并在仿真器中看到自己模型的自动驾驶效果。 2. 自动驾驶仿真原理 自动驾驶仿真的“硬件”原理图如下: 从原理图中,我们需要知道,人在开车的时候,有检测系统采集了如下参数 三个摄像机采...

2018-10-25 22:34:29 2551 1

原创 MySQL存储引擎(Storage Engine)

1. 什么是存储引擎 MySQL的数据,是由Storage Engine来管理的。下面是MySQL的系统结构图,Storage Engine是MySQL中的一个模块,从中可以出Storage Engine在MySQL中的地位。 MySQL的Storage Engine是可插拔的,它处于SQ...

2018-10-18 22:34:46 1320 0

提示
确定要删除当前文章?
取消 删除