自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 P-tuning的论文大白话阅读笔记和代码实现

P-tuning论文笔记与代码实现

2022-05-30 22:35:36 1399 4

原创 CRF原理的理解与举例分析

CRF原理的理解与举例分析1.以词性标注为例说明CRF的任务目标2.CRF的特征函数3. 从特征函数到概率4. VS逻辑回归5. VS HMM1.以词性标注为例说明CRF的任务目标句子BobdrankcoffeeatStarbucks可能的标注1名词动词名词介词名词可能的标注2名词动词动词介词名词……………一个长度为k的句子,有m种词性,则有kmk^mkm种可能的标注方法。针对上述例子,第一种显然优于第二种,因为动词+动词这种形

2021-01-18 17:25:22 635 1

原创 如何用MeCab训练一套中文分词软件

MeCab是一套采用CRF算法的开源日文分词软件(内嵌CRF++),由于其使用算法的通用性,可以通过其他语言的语料词典和基于对语言了解所设定的模板,利用MeCab训练日文以外的语言分词软件。本文则以中文为例,记录训练的流程方法。参考:https://zhuanlan.zhihu.com/p/86884557MeCab原理和设计参考:日文分词器 Mecab 文档MeCab设计结构:1.准备1.1 语料库准备采用icwb2-data数据集中提供的中文词库1.2 工作文件夹准备首先在icwb2-

2021-01-06 13:18:30 768

原创 Transformer原理个人解读

文章目录1.为什么要有Transformer1.1 传统RNN-Based Model的缺点(1)不支持并行,效率低(2) 记忆能力有限1.2 Attention方法的出现2.Transformer的原理与结构Transformer的Attention——Self-Attention1.为什么要有Transformer任何一个新事物的出现都来源于对于传统方法的批判和新技术基础的出现。1.1 传统RNN-Based Model的缺点以NLP任务为背景,来分析一下传统RNN-Based Model的缺点

2020-12-01 22:30:32 487

原创 Attention的基本原理与模型结构

我们尝试用人记忆和理解事物的方式来思考人工智能:在这里插入图片描述为什么我们需要引入这种Attention机制:以seq2seq为例:传统的seq2seq可以理解为让RNN从左往右看一遍要Encode的序列,并将记忆不断存入隐藏层。但是隐藏层的维度是有限的,就像人类的记忆力有限,当序列很长时,读到最后一个word时很可能已经对开头的word发生遗忘,要以看一遍的记忆完整复述整个序列或者对序列做翻译等操作,是存在局限的。因此我们可以借助人类产生工作记忆的方式,在decode时计算当前隐藏层和之前序列

2020-11-28 16:39:42 317

原创 LeetCode421 数组中两个数的最大异或值(字典树应用)

题目描述给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 。找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i, j < n 。你能在O(n)的时间解决这个问题吗?示例:输入: [3, 10, 5, 25, 2, 8]输出: 28解释: 最大的结果是 5 ^ 25 = 28.分析首先将所有数字都转化为2进制,我们可以发现这题有一个明显的贪心思想:要想两数异或值最大,则要尽可能使得两数在高位上相异

2020-11-18 20:06:40 149

原创 Trie树(前缀树/字典树)的介绍与实现方法

文章目录1.Trie树介绍2.Trial树的优缺点2.1 优点2.2 缺点3.Trie的典型应用3.1 字符串检索3.2 词频统计3.3 字符串排序3.4 前缀匹配3.5作为其他数据结构和算法的辅助结构4.Trie树的实现(LeetCode208)1.Trie树介绍Trie树,又叫字典树、前缀树,被广泛的应用在字符串匹配,搜索引擎关键词联想等问题上。Trie树是一种多叉树,具有以下性质:root节点不代表字符,除了根节点以外的所有节点每个都代表一个字符从根节点遍历到任意一个节点,遍历到的所有节点

2020-11-18 16:32:53 447

原创 LeetCode134 加油站问题——这又双叒叕是股票问题

今天刷每日一题做到加油站,神经敏感以为是动态规划,转念一想发现类似是股票问题中的单次购买问题。题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: - 如果题目有解,该答案即为唯一答案。- 输入数组均为非空数组,且长度相同。- 输入数组中的

2020-11-18 14:31:43 188 2

原创 动态规划单串——通杀股票问题

文章目录1.买卖股票的最佳时机分析代码2.买卖股票的最佳时机 II分析代码3. 买卖股票的最佳时机 III分析代码4.买卖股票的最佳时机 IV分析代码5. 最佳买卖股票时机含冷冻期分析代码6. 买卖股票的最佳时机含手续费分析代码1.买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出:

2020-11-17 22:04:59 872

原创 论文浅尝|GRAPH-BERT: Only Attentionis Needed for Learning Graph Representations

论文简介论文提出:当前图神经网络(GNN)的主要方法过度依赖图中的连接关系,这样造成了三大问题:(1)模型假死;(2)过度平滑;(3)难以并行计算模型假死:随着神经网络层数的不断加深,模型对于输入的数据开始不进行相应。这个问题的具体原因没在论文里看到,个人理解是由于层之间的非线性变换使得数据分布变换置导数较小的区域,从而使得梯度消失。过度平滑:由于图神经网络大多依靠聚合操作(mean,max,sum)的信息更新方式,这样随着层的不断堆叠,每个节点都会大量受到其他节点信息的影响,从而使得每个节点的em

2020-10-23 20:42:04 1096

原创 论文阅读笔记:Graph Matching Networks for Learning the Similarity of Graph Structured Objects

论文做的是用于图匹配的神经网络研究,作者做出了两点贡献:证明GNN可以经过训练,产生嵌入graph-leve的向量可以用于相似性计算。作者提出了一种新的基于注意力的跨图匹配机制GMN(cross-graph attention-based matching mechanism),来计算出一对图之间的相似度评分。(核心创新点)论文证明了该模型在不同领域的有效性,包括具有挑战性的基于控制流图(control-flow-graph)的函数相似性搜索问题、软件系统漏洞检测。实验分析表明,图匹配模型不仅能够

2020-10-15 13:08:08 2032 2

原创 CRF条件随机场模型笔记

同上一篇《以序列标注为例学习隐马尔可夫模型HMM》一样,仍旧以序列标注问题为例。序列标注问题是给定一个序列XXX,求一个函数fff,使得XXX通过fff映射得到想要的序列YYY,即:f:X→Yf:X \rightarrow Yf:X→Y1.CRF基本假设与HMM模型认为P(x,y)是转移概率和发射概率的乘积不同,CRF认为:P(x,y)∝exp(ωϕ(x,y))P(x,y) \varpropto exp(\omega \phi(x,y))P(x,y)∝exp(ωϕ(x,y))其中ω\o

2020-09-12 13:09:42 169

原创 以序列标注为例学习隐马尔可夫模型HMM

隐马尔可夫模型(HMM)是可用于序列标注的统计概率模型,在自然语言处理、语音识别等领域有广泛的应用。本文以自然语言处理中经典的序列标注问题为例,说明HMM的原理与用法。1.序列标注序列标注问题是给定一个序列XXX,求一个函数fff,使得XXX通过fff映射得到想要的序列YYY,即:f:X→Yf:X \rightarrow Yf:X→Y2.序列标注中HMM的思路为了简便场景,选择序列标注中的词性标注作为代表。step1基于语法规则,生成一个词性序列,例如:“PN V D N”认为pos间

2020-09-11 00:29:47 394

原创 论文浅尝 | Enriching Pre-trained Language Model with Entity Information for Relation Classification

论文针对句子级别的关系抽取问题提出了一种结合BERT预训练模型和目标实体信息的模型。1. 文章主要贡献提出将 BERT 用在了关系抽取任务, 探索了实体和实体位置在预训练模型中的结合方式。可以通过在实体前后加标识符得方式表明实体位置, 代替传统位置向量的做法,论文也证实了这种方法得有效性。2. 论文模型详解2.1 数据预处理1)针对输入进来的句子,需要在句首增加[cls]符号2)在第一个实体前后增加$符号3)在第二个实体前后增加#符号e.g. “The kitchen is

2020-07-23 22:22:48 309

原创 论文浅尝 | K-BERT: Enabling Language Representation with Knowledge Graph

1.论文动机论文认为通过泛用型公开语料预训练得到的BERT模型只拥有“常识”,在特定垂直领域(如科技、医疗、教育等)的任务中表现效果存在提升空间。由于pre-training and fine-tuning在领域上的差异,利用BERT做知识驱动任务的时候表现不尽如人意。论文提出的K-BERT通过引进知识图谱(将知识库中的结构化信息(三元组)融入到预训练模型)中,可以更好地解决领域相关任务。如何将外部知识整合到模型是论文解决的核心难点,他存在两个问题:Heterogeneous Embedding S

2020-07-22 19:32:21 1549

原创 游离态GLZ的NLP任务2——用维特比算法实现词性标注

1.词性标注任务的基本分析2.训练集所需要构筑的数据A:词—词性统计库B:bigram模型下wi—wi−1w_i—w_{i-1}wi​—wi−1​统计库pi:句首词词性统计库#给每个单词和词性一个标号,并留下标号和词性转换的字典def generate_id_dict(): word2id,id2word = {},{} #word2id:{apple:0,banana:2...} id2word:{0:apple,1:banana} tag2id,id2tag = {},{}

2020-07-10 17:18:39 294

原创 游离态GLZ的NLP任务1:拼写纠错

当我们使用搜索引擎的时候,经常会发现我们打错了我们想要检索的东西,但是搜索引擎仍旧给了我们正确的答案。比如我们把"python"打成了"pathon",百度成功识别了出来我们真正想要的。拼写纠错的核心在于编辑距离这一NLP任务的常用基础算法。编辑距离等于把一个字符串通过删除、修改、插入三种操作改为另一个字符串的最短距离(强烈建议刷一下这道DP题)。实现拼写纠错时,我们需要预先准备好一个词典库,代表常见的词汇(一般认为这些是正确的)。当用户输入一个可能拼写错误的词时,我们生成编辑距离一定的候选词,把这些

2020-07-07 13:42:21 338

原创 维特比算法的简单理解——以分词算法为例

在中文分词任务中,一个很棘手的问题是中文词中字组合的复杂性。例如句子:南京市长江大桥,这句话可以有多种分词方法都说的通:(1)南京市/长江大桥(2)南京/市长/江大桥在基于规则匹配的分词法中, 如果多种分法的词在词典中都能找得到,则会有多种可能。我们可以基于统计概率来得到每个词的概率,以此得到分词结果的概率。p(南京市/长江大桥)=p(南京市)p(长江大桥)p(南京/市长/江大桥)=p(南京)p(市长)p(江大桥)p(南京市/长江大桥) = p(南京市)p(长江大桥)\\p(南京/市长/江大

2020-06-26 11:51:32 471

原创 为什么机器学习(八)——来一发随机森林

随机森林是一种典型的集成学习算法。顾名思义,森林是很多棵树构成的,随机森林是多棵决策树构成的。类似治病会诊,会诊时会有很多医生每人给一个意见,最终投票选出最多人认可的意见。随机森林则是由每个决策树给出一个意见,最终投票最多的意见作为预测值。决策树的原理本质是一种贪心算法,每次遍历特征值可分割点,通过基尼系数等方式计算信息增益,找到最大信息增益并以此特征分割点分割。知道最大信息增益低于阈值时停止。随机森林使用了Bootstrap随机抽样,本质是一种抽取n次(n为样本数量)有放回的抽样。其中每次没抽中的概率

2020-05-30 22:13:39 230

原创 为什么机器学习(七)——一起快乐手推SVM

手写代码实现:import timeimport numpy as npimport mathimport randomdef loadDataSet(filename): dataArr = [] labelArr= [] with open(filename,'r') as f: for line in f.readlines(): line = line.split() dataArr.app...

2020-05-24 22:12:00 243

原创 为什么机器学习(六) —— 数据降维LDA线性判别分析原理

因此,LDA降维的套路是:(1)求各个类的均值向量和总的均值向量(2)求类间散布矩阵SBS_BSB​和类内散布矩阵SwS_wSw​(3)计算矩阵乘法S=Sw−1SBS = S_w^{-1}S_BS=Sw−1​SB​(4)对S进行特征值分解,得到特征值和特征向量(5)若想降到k维,则按特征值从大到小排序,把前k个特征向量作为行构建投影矩阵W,xnew=x∗WW,x_{new} = x ...

2020-05-07 23:17:20 223

原创 为什么机器学习(五) —— 数据降维PCA原理

因此,PCA的过程如下:(1)白化:求样本的均值向量,所有向量减去均值向量(2)计算数据集的协方差矩阵(3)求解特征值和特征向量(4)按特征值大小排序,选取前k名的特征向量(k为降成的维度),以这些向量为行,构造投影矩阵(5)新数据 = 投影矩阵*原数据用PCA处理Iris数据集,4维降为2维import numpy as npimport pandas as pdimport...

2020-05-06 17:13:40 466

原创 大白话讲解如何从0开始构筑一个知识图谱+领域问答机器人

从本科毕业设计开始就一直做知识图谱方面的应用,回想起刚开始做的时候连一些概念性的博客都很难找到,想结合学到现在的经验做一个知识图谱入门的介绍和简单实战,有兴趣或者有需求入门知识图谱的同学们欢迎和我一起讨论交流,也希望各路大佬在知识图谱领域能给我写建议和帮助。博客相关代码:https://github.com/GLZ1925/TechServerKG

2020-04-28 14:48:44 1657 5

原创 二叉树刷题笔记(1)——LeetCode105

最近刷题的时候发现很多搜索啊、动态规划啊,本质上都可以用树来理解,其中递归的思想在做题的时候也让人受益良多。本着复习一下树结构和精进递归思想的目的,最近刷了几题二叉树的题。105. 从前序与中序遍历序列构造二叉树这题保研前练习机试的时候就做过,是一个很能体现二叉树题目套路的题了。二叉树的套路大体上记住两点:(1)递归处理一切问题(2)99%的题目本质上都是前/中/后序遍历,抓住这个套路就...

2020-04-19 21:01:16 160

原创 游离态GLZ的股票量化实验(二)—— 双均线策略

上次的量化实验我使用了基于神奇公式的思想进行选股,然后机械化地拿住一年左右卖出,获得了不错的回测收益。选取好的股票显然可以给我们带来好的收益,但大家都知道,股票总是有涨有跌,再好的股票也会有强势的时候和弱势的时候。如果在弱势的时候买进,强势的时候卖出,那么再好的股票也不能给我们带来好的收益了。为了能够获得更好的收益,我们需要一个择时策略看清股票的趋势,争取在股票由弱转强时买入,由强转弱时卖出。...

2020-04-18 19:15:36 845

原创 凯利公式的原理推导和应用方向

凯利公式说明的是当我们参加一项有输有赢,但是收益的数学期望大于0的项目时,我们每次应当投入多少比例的本金能保证我们的收益最大化。举个栗子,比方我们买比赛的输赢,每一场都是64开(别问怎么知道的,问就是内幕),猜对了赢得一倍的投入资金,输了投入资金全部没有了。显然这个比赛的收益数学期望为:E(x)=(0.6∗1−0.4∗1)x=0.2x\begin{aligned}E(x) = (0.6*1...

2020-04-14 18:23:04 2369 2

原创 为什么机器学习(四)—— 朴素贝叶斯的“训练”为什么这么轻松

为什么机器学习(四)—— 朴素贝叶斯的“训练”为什么这么轻松续着上一篇说到的Iris数据集多分类问题,基于softmax的逻辑回归分类需要通过数据训练一轮轮地降低损失函数,以获得最佳的参数w和b。而对于朴素贝叶斯算法来说,其核心源于贝叶斯公式,这个伟大的业余(?)数学家贝叶斯的著名公式:P(a∣b)=P(b∣a)P(a)P(b)\begin{aligned}P(a|b) = \frac...

2020-03-28 21:13:38 1198

原创 为什么机器学习(三)—— 为什么softmax这样求导

为什么机器学习(三)—— 为什么softmax这样求导最近机器学习课有个作业是实现softmax多分类鸢尾花数据集,之前从来没推过softmax的公式,直接拿来用了,好好研究了一下,发现这个原理的推导还是有不少复杂的东西,分享一下结果,公式比较复杂,直接上手写了。...

2020-03-28 15:38:17 246

原创 游离态GLZ的股票量化实验(一)—— 基于神奇公式思想投资策略

游离态GLZ的股票量化实验(一)—— 基于神奇公式思想+布林带择时的投资策略量化断更了两年了,重新开写,希望各路大佬多批评指教。最近上量化课学习了神奇公式,神奇公式是格林布拉特在其《股市稳赢》中提到的一种选股策略,其本人也依靠这个公式获得了长期年华40%的收益,赚的盆满钵满。这个公式的思想简单来说就两步,一是寻找好公司;二是寻找便宜的股票。用量化行业的话来说就是一个双因子策略,选取的两个因子...

2020-03-19 11:50:26 404

原创 为什么机器学习(二)—— 为什么说欠拟合和过拟合会导致模型不准确

为什么说欠拟合和过拟合会导致模型不准确学习机器学习理论的时候很多教材都会提到欠拟合和过拟合的问题。如上图所示,蓝色虚线代表过拟合的情况,黑色实线代表欠拟合的情况。欠拟合是模型过于简单或者特征太少而导致模型不能很好描述数据和结论的关系;过拟合是模型过于复杂或者特征过多而到导致模型过度关心数据里的噪声。感性上的认识是这样的,但是欠拟合和过拟合是如何影响模型预测效果的,如何定量的表示他们的影响...

2020-03-14 16:39:50 583

原创 如何在网页前端里可视化你的知识图谱

如何在网页前端里可视化你的知识图谱最近费尽千辛万苦构造了一份可以用(大概)的知识图谱,并且把要利用知识图谱做的领域命名实体识别和一些推荐的功能做成Web版的demo,顺带想实现一些可视化知识图谱的功能。(凭啥知识图谱就只能在Neo4j里自嗨,不能来前端show一下,歧视吗(¬_¬))找了做前端图表展示的开源库,D3.js和Echarts都能做,我拿Echarts实现了一下功能,先看一下在现在...

2020-03-14 12:00:32 11258 8

原创 为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值

为什么机器学习(一)——Hessian矩阵的正定性为什么可以决定函数是否有极值在学习机器学习的过程中,我们不可绕开的是训练模型的时候怎么找到损失函数的极值。可能大家都曾记住过这样一个结论:若M点处函数的梯度为0,则M为驻点,那么:(1)Hessian矩阵正定=>函数在M点有极小值(2)Hessian矩阵负定=>函数在M点有极大值(3)Hessian矩阵不定=>M点不是极...

2020-03-09 14:17:48 3630

原创 python实现格林威治时间到北京时间的转化

python实现格林威治时间到北京时间的转化最近由于api变动,做量化的时候碰到返回来K线的时间数据是“2019-03-19T16:00:00.000Z”这样格式的格林威治时间,为了方便想对转换为“2019-03-20 00:00:00”这样格式的北京时间(+8小时)。我写了两个函数实现这两种数据的相互转化,供大家在相似问题上参考:# ===UTC2BJSdef UTC2BJS(UTC):...

2020-03-04 17:31:22 2586

原创 scrapy爬虫框架学习(二)scrapy爬取多级网页信息

scrapy爬虫框架学习(二)scrapy爬取多级网页信息1爬取目标:1.1 针对一级页面获取专利详情页的链接信息1.2 针对专利详情页进行详细信息2.项目代码实现2.1 item.py:定义要收集的详情数据结构import scrapy#定义要存储的数据项目class CnkipatentItem(scrapy.Item): application_number ...

2020-02-06 17:01:15 1286

原创 scrapy爬虫框架学习(一)scrapy的配置和项目创建

scrapy爬虫框架学习(一)scrapy的配置和项目创建1.scrapy安装装有anaconda的情况下,进入anaconda命令行用pip安装pip install scrapy根据情况还需要安装pypiwin32(Windows系统)和service_identity,用pip安装即可2.scrapy项目的创建anaconda命令行进入要创建项目的目录下:scrapy st...

2020-02-06 16:55:18 196

原创 金融量化python应用基础篇(1)--numpy的使用

numpy是高性能科学计算和数据分析的基础包,其主要操作对象为ndarray(一个快速,灵活的大数据容器)创建ndarrayimport numpy as np#创建一维data1 = [1,2,3,4]arr1 = np.array(data1)array([1, 2, 3, 4])#创建二维data2 = [data1,data1]arr2 = np.array(data...

2019-05-02 20:52:38 540

原创 游离态GLZ的LeetCode刷题笔记3

3.无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无...

2019-04-23 11:01:22 135

原创 游离态GLZ的LeetCode刷题笔记2

##2.两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ...

2019-04-23 10:26:49 164

原创 youlitaiGLZ的LeetCode刷题笔记1

1.两数之和题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...

2019-04-23 10:08:01 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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