越来越胖的GuanRunwei
前WEB开发码农,.NET发烧友,前NLP菜鸡,利物浦大学在读博士
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NER简单综述
目录什么是NERNER相关综述类论文NER数据集、评测方法、工具库NER相关的数据集NER评测方法完全匹配松弛匹配NER工具库NER主要方法基于规则的方法无监督学习方法基于特征的监督学习方法深度学习方法BiLSTM+CRFIDCNN+CRFBert+BiLSTM+CRFFLATNER任务的demo代码NER的应用NER未来的研究方向References什么是NERNER全称是命名实体识别(Named Enti原创 2022-04-20 10:08:13 · 4868 阅读 · 0 评论 -
大道至简 —— 条件随机场与逻辑回归、隐马尔科夫模型的比较
前言大道至简 —— 白话条件随机场Conditional Random Fields上一节我们讲到,为了建一个条件随机场,我们首先要定义一个特征函数集,每个特征函数都以整个句子,当前位置,位置和的标签为输入。然后为每一个特征函数赋予一个权重,然后针对每一个标注序列,对所有的特征函数加权求和,必要的话,可以把求和的值转化为一个概率值。那么,我们同样会发现,条件随机场在形式和作用上好像和逻辑回归和HMM有点相似。条件随机场和逻辑回归观察公式:上式含义为,对给定序列,标注序列在所有标注序.原创 2022-04-15 11:12:46 · 3375 阅读 · 0 评论 -
大道至简 —— 白话条件随机场Conditional Random Fields
前言李航大佬的《统计学习方法》相信很多人都拜读过,在条件随机场那章有非常多的理论证明和公式推导,非常之抽象,因此理解起来也比较困难。那么今天,我将会用一种大白话的方式将条件随机场具象化,让这玩意儿没有任何学习壁垒。一个例子假如你有小明同学一天内不同时段的照片,从小明起床到睡觉各个时间段都有。现在我们的任务是对这些照片进行分类,比如照片1是吃饭,那就给照片1打上吃饭的标签;照片2是睡觉,那就给照片2打上睡觉的标签;照片3是学习,那就给照片3打上学习的标签。但是,既然要分类,人工分类的效率毫无疑问是原创 2022-04-15 10:34:30 · 888 阅读 · 0 评论 -
EM算法小结
最近因科研工作需要,把EM重新过了一遍。特点迭代算法 每次迭代分为E步(求期望),M步(求极大) 用于含有隐变量的概率模型参数的极大似然估计或极大后验估计注:如果模型中仅有观测变量,那么仅需极大似然估计或贝叶斯估计即可。要点含有隐变量的概率模型的数据表示为,在这里,是观测变量,是隐变量,是模型参数。EM算法通过迭代求解观测数据的对数似然函数的极大化,实现极大似然估计。每次迭代包括两步:E步,求期望,即求关于的期望:我们称之为Q函数,这里是参数的第次的估计值;M步,求极大,即极大原创 2022-02-03 15:13:00 · 1062 阅读 · 0 评论 -
浅析自回归模型
自回归模型用于预测时间序列中将来的值。使用该模型时,通常需要假定一个随机变量的值依赖于它前面的值。另外,该模型还假定前后值之间的关系是线性的,我们要做的就是拟合数据,以便给数据找到适当的参数。自回归模型的数学公式如下:上面公式中,c是常量,最后一项是随机分量,又名白噪声。这给我们提出了一个很常见的线性回归问题,但从实用性考虑,保持模型的简单性十分重要,因此我们只保留必要的滞后分量。按机器学习的专业术语来说,这些叫做特征。处理回归问题时,目前首先会选择使用python的scikit-learn原创 2021-10-04 10:28:08 · 2334 阅读 · 0 评论 -
傻子都能看懂的——详解AdaBoost原理
之前纠结是否要离开CSDN,最近还是决定留下来继续。关于Boost集成学习中有两个重要概念,分别为Bagging和Boost。其中Boost也被称为增强学习或提升法,是一种重要的集成学习方法,它能够将预测精度仅仅比随机猜测略高的弱学习器增强为预测精度很高的强学习器。这是在直接构造强学习器较为困难的情况下,为学习算法提供了一种有效的新思路和新方法。其中较为成功的是上个世纪90年代Yoav Freund和Robert Schapire提出的AdaBoost算法。Boost原理图可以将上图过程总结原创 2021-09-18 16:33:29 · 39780 阅读 · 26 评论 -
浅析集成学习(Ensemble Learning)
目录0 导语1 集成学习1.1 Bagging1.2 Boosting1.3 Stacking2. 代表算法2.1Random Forest2.1.1 思想2.1.2 优缺点2.2 Adaboost2.2.1 思想0 导语当做重要决定时,大家往往会考虑吸收多个专家而非仅仅一个人的意见。同样地,这种思想也可用于机器学习。机器学习领域内有许多回归或分类模型算法,我们自然是可以将这些算法组合起来,这种组合结果就被称为集成方法(ensemble me...原创 2021-05-08 19:52:13 · 842 阅读 · 0 评论 -
浅析生成对抗网络(Generative Adversarial Networks)
导语除却变分自编码器VAE(Variational Auto-Encoder), 生成对抗网络GAN(Generative Adversarial Networks)同样也是一种生成模型(Generative Model)。VAE中比较恶心的是隐变量z的求解,我们通常使用以下公式生成隐变量z的概率分布,通常假设p(z)服从标准正态分布(参数和可调整)。VAE的问题就在于我们无法对其进行直接优化,而是根据可能性推导和优化下限(相关博文后面会更新,详细推导VAE的整个过程)。在VAE中,..原创 2021-05-02 17:51:56 · 2560 阅读 · 3 评论 -
详解马尔科夫链
引言先不上定义,先以一个例子开头。例子最简单的一个例子:已知父母具有某项特长天赋的条件下,孩子也拥有的概率,与,已知祖宗十八代和父母的信息的条件下,孩子拥有这项天赋的概率,是一样的。 若要用人生的例子来讲,已知你大学学习情况下 和已知你在幼儿园小学初中高中大学的所有学习情况下,考研能不能考上的概率是一样的。再来个例子:有一只青蛙呆在井底(q=1),一层一层的向上跳,到达第i层之后,他能跳上去的概率和跳不上去(直接回到底层)的概率:也就是说,每一次这只青蛙站在比如第..原创 2021-03-29 16:54:35 · 2842 阅读 · 0 评论 -
简述迁移学习(Transfer Learning)
迁移学习定义《深度学习》第526页对于迁移学习的定义:迁移学习和域适应指的是在一种环境中学到的知识被用在另一个领域中来提高它的泛化性能。原创 2021-03-21 01:33:38 · 10951 阅读 · 0 评论 -
激活函数归纳
目录写在前面:1.Sigmoid2. tanh3.ReLU4. Leaky ReLU, PReLU(Parametric Relu), RReLU(Random ReLU)Sigmoid tanh ReLU LeakyReLU, PReLU(Parametric Relu), RReLU写在前面:神经网络为什么需要激活函数:首先数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是原创 2021-03-17 02:32:10 · 551 阅读 · 0 评论 -
优化法——动量法
动量梯度下降(Gradient Descent With Momentum),简称为动量方法(Momentum),运行速度几乎总是快于标准的梯度下降算法,并且能够解决随机梯度下降所遇到的山谷震荡以及鞍部停滞问题,这部分内容请阅读上一篇博客梯度下降算法。根据梯度下降算法的参数更新公式:参数的更新仅仅取决于当前位置的梯度以及步长,试想一下这样一个情境:我们将某一个物品往山谷里丢,在梯度下降算法的规则下,该物品仅仅收到当前触碰在它身上的力,而忽略其他的力,例如重力、空气阻力等等。我们可以把它想象成一张原创 2021-03-13 18:33:22 · 1302 阅读 · 0 评论 -
小议前馈神经网络(Feedforward Neural Network )
目录定义01 多层感知机(MLP)介绍02 深度神经网络的激活函数Sigmoid激活函数Tanh激活函数LReLU激活函数03 深度神经网络的损失函数均方误差损失函数交叉熵损失函数04 多层感知机的反向传播算法05 神经网络的训练技巧Data Augmentation参数初始化学习率Dropout原理Batch Normalization原理Regularizations(正则化)Model Ensemble(模型集成)06信息传.原创 2021-02-28 04:30:11 · 3080 阅读 · 0 评论 -
判别式模型和生成式模型
https://zhuanlan.zhihu.com/p/74586507原创 2021-02-04 23:40:15 · 239 阅读 · 0 评论 -
详解支持向量机SVM——以最通俗易懂的方式
引言支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。——来自百度百科SVM与“三八线”不少人包括我自己在初识SVM时会感觉到高深难懂。这几天在网上看到有大佬用“三八线”引入SVM这个概念就觉得挺巧妙的。回忆下小时候原创 2020-08-25 20:09:51 · 5076 阅读 · 0 评论 -
Datawhale_day2决策树
介绍决策树是一种常见的分类模型,在金融分控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本能方法。例如在婚恋市场中,女方通常会先看男方是否有房产,如果有房产再看是否有车产,如果有车产再看是否有稳定工作……最后得出是否要深入了解的判断。决策树的主要优点:具有很好的解释性,模型可以生成可以理解的规则。 可以发现特征的重要程度。 模型的计算复杂度较低。决策树的主要缺点:模型容易过拟合,需要采用减枝技术处理。 不能很好利用连原创 2020-08-24 10:47:48 · 254 阅读 · 0 评论 -
关于sklearn中的random_state参数
random_state的值相当于一种规则,通过设定为相同的数,每次分割的结果都是相同的,因而Accuracy这些值也都不会变原创 2020-08-23 17:00:49 · 1067 阅读 · 0 评论 -
傻子都能看懂的——条件熵
引言关于信息熵请看之前一篇博客:傻子都能看懂的——信息熵(香农熵)条件熵H(Y|X) 表示在已知随机变量X的条件下随机变量Y的不确定性。条件熵H(Y|X) 定义为X给定条件下Y的条件概率分布的熵对X的数学期望。如何理解这个数学期望,请看下图公式第二步,是不是一个经典的数学期望式子?第二步到第三步,也就是条件概率到联合概率:P(x,y)=P(x∩y)=P(x|y)*P(y)例子假如我们有上面数据:设随机变量Y={嫁,不嫁}我们可以统计出,嫁的个...原创 2020-08-22 11:13:32 · 7178 阅读 · 0 评论 -
Datawhale_day1逻辑回归
引言逻辑回归属于有监督机器学习。我们习惯将这类预测未来的问题称作回归问题,机器学习中按照目的不同可以分为两大类:回归和分类。那么逻辑回归既是用来完成分类任务的为什么名字中还有“回归”呢?大概是使用回归的思想去完成分类任务吧。、一个例子代码:import numpy as npimport matplotlib.pyplot as pltimport seaborn as snsfrom sklearn.linear_model import LogisticRegressio原创 2020-08-20 15:40:32 · 285 阅读 · 0 评论 -
Datawhale_day6
划水打卡,以防忘记,回头再补原创 2020-08-03 21:05:35 · 247 阅读 · 0 评论 -
Daywhale_day5
分词:import jiebaimport jieba.analyseimport jieba.posseg as psegimport codecs, sysdef cut_words(sentence): # print sentence return " ".join(jieba.cut(sentence)).encode('utf-8')f = codecs.open('wiki.zh.jian.text', 'r', encoding="utf8")tar原创 2020-07-29 15:43:26 · 211 阅读 · 0 评论 -
详解Hierarchical Softmax
1. 霍夫曼树输入:权值为(w1,w2,…wn)的n个节点输出:对应的霍夫曼树 将(w1,w2,…wn)看做是有n棵树的森林,每个树仅有一个节点 在森林中选择根节点权值最小的两棵树进行合并,得到一个新的树,这两颗树分布作为新树的左右子树。新树的根节点权重为左右子树的根节点权重之和 将之前的根节点权值最小的两棵树从森林删除,并把新树加入森林 重复步骤 2 和 3 直到森林里只有一棵树为止 下面我们用一个具体的例子来说明霍夫曼树建立的过程,我们有(a,b,c,d,原创 2020-07-29 11:07:40 · 5800 阅读 · 1 评论 -
小议负采样(Negative sampling)
训练一个神经网络意味着要输入训练样本并且不断调整神经元的权重,从而不断提高对目标的准确预测。每当神经网络经过一个训练样本的训练,它的权重就会进行一次调整。所以,词典的大小决定了我们的Skip-Gram神经网络将会拥有大规模的权重矩阵,所有的这些权重需要通过数以亿计的训练样本来进行调整,这是非常消耗计算资源的,并且实际中训练起来会非常慢。负采样(negative sampling)解决了这个问题,它是用来提高训练速度并且改善所得到词向量的质量的一种方法。不同于原本每个训练样本更新所有的权重,负采样每次原创 2020-07-29 10:40:47 · 3593 阅读 · 1 评论 -
Datawhale_day4
import pandas as pdimport fasttextimport osfrom sklearn.metrics import f1_score# 转换为fasttext需要的形式data_set = os.path.join(os.getcwd(), "数据集\\train_set.csv\\train_set.csv")train_df = pd.read_csv(data_set, sep='\t', nrows=15000)train_df['label_ft'] =.原创 2020-07-27 15:12:20 · 208 阅读 · 0 评论 -
sklearn——TfidfVectorizer笔记
代码:from sklearn.feature_extraction.text import TfidfVectorizercorpus = ['I had had a dream', 'My dream will come true']vectorizer = TfidfVectorizer()matrix = vectorizer.fit_transform(corpus)print("特征词IDF值:\n", vectorizer.idf_)print("特征词原创 2020-07-26 15:11:33 · 446 阅读 · 0 评论 -
详解sklearn——CountVectorizer
One-hot这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示。具体将每个字/词编码一个索引,然后根据索引进行赋值。One-hot表示方法的例子如下:句子1:我 爱 北 京 天 安 门句子2:我 喜 欢 上 海首先对所有句子的字进行索引,即将每个字确定一个编号:{ '我': 1, '爱': 2, '北': 3, '京': 4, '天': 5, '安': 6, '门': 7, '喜': 8, '欢': 9, '上': 10, '海': 1原创 2020-07-26 13:57:51 · 5656 阅读 · 0 评论 -
Datawhale_day3
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizerfrom sklearn.linear_model import RidgeClassifierfrom sklearn.metrics import f1_scoreimport osimport pandas as pddata_set = os.path.join(os.getcwd(), "数据集\\train_set.csv\\tra.原创 2020-07-25 16:18:39 · 189 阅读 · 0 评论 -
傻子都能看懂的——分类任务与回归任务最通俗的解释
我们可以按照任务的种类,将任务分为回归任务和分类任务.那这两者的区别是什么呢?按照较官方些的说法,输入变量与输出变量均为连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题。回归通俗一点讲,我们要预测的结果是一个数,比如要通过一个人的饮食预测一个人的体重,体重的值可以有无限多个,有的人50kg,有的人51kg,在50和51之间也有无限多个数.这种预测结果是某一个确定数,而具体是哪个数有无限多种可能的问题,我们会训练出一个模型,传入参数后得到这个确...原创 2020-07-24 15:42:21 · 7781 阅读 · 0 评论 -
机器学习相关术语
目录定义标签特征样本模型回归与分类定义什么是(监督式)机器学习?简单来说,它的定义如下:机器学习系统通过学习如何组合输入信息来对从未见过的数据做出有用的预测。下面我们来了解一下机器学习的基本术语。标签标签是我们要预测的事物,即简单线性回归中的y变量。标签可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何事物。特征特征是输入变量...原创 2020-03-26 10:56:12 · 255 阅读 · 0 评论 -
Training Loss Computation训练损失计算
在训练模型第一阶段过程当中,我们是使用有标签样本进行训练,在线性回归当中我们也可以看到,有很多点并不是直接通过了直线,让我们来看一下这张数据图表。 线性回归我们可以看到,有一些点是没有通过直线的,机器学...原创 2020-03-26 10:27:54 · 4206 阅读 · 0 评论 -
tensorflow2.0使用小贴士(不断更新)
问题1:AttributeError: module 'tensorflow' has no attribute 'placeholder'解决:使用import tensorflow.compat.v1 as tftf.disable_v2_behavior()替换import tensorflow as tf问题2:'module' object has ...原创 2019-12-01 20:08:35 · 685 阅读 · 3 评论 -
简述Sigmoid函数(附Python代码)
sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点:优点:平滑、易于求导。缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。...原创 2019-11-25 21:24:42 · 52132 阅读 · 3 评论 -
维基中文语料数据抽取代码修改版(适用于Python3)
#!/usr/bin/env python# -*- coding: utf-8 -*-# 修改后的代码如下:import loggingimport os.pathimport sysfrom gensim.corpora import WikiCorpusif __name__ == '__main__': program = os.path.basename...原创 2019-11-17 19:55:00 · 392 阅读 · 0 评论 -
关于word2vec java版如何使用
这是源码地址:https://github.com/NLPchina/Word2VEC_java下载导入Eclipse之后发现这是个maven项目,再看了Learn.java文件之后,发现好像需要加两个文件:learn.learnFile(new File("library/xh.txt")); learn.saveModel(new File("library/javaVector"));上面一...原创 2018-02-13 15:14:02 · 981 阅读 · 0 评论