
机器学习
文章平均质量分 96
vivian_ll
这个作者很懒,什么都没留下…
展开
-
几种半监督的python实现(标签传播、半监督Kmeans、自训练)
半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。它是一类可以自动地利用未标记的数据来提升学习性能的算法。pythonLabelPropagation和LabelSpreading(1)标记传播算法:优点:概念清晰缺点:存储开销大,难以直接处理大规模数据;而且对于新的样本加入,需要对原图重构并进行标记传播(2)迭代式标记传播算法:输入:有标记样本集Dl,未标记样...原创 2020-06-18 16:39:29 · 16431 阅读 · 7 评论 -
面试准备——机器学习中的优化器算法
Adam optimiser的局限性是什么?虽然使用Adam进行训练有助于快速收敛,但结果模型的泛化性能往往不如使用SGD进行动量训练时的泛化性能。另一个问题是,即使Adam有自适应学习率,当使用良好的学习率计划时,它的性能也会提高。特别是在训练的早期,使用较低的学习率来避免发散是有益的。这是因为在一开始,模型的权值是随机的,因此得到的梯度不是很可靠。如果学习率太大,可能会导致模型采取太大的步骤...原创 2020-06-15 20:17:19 · 1763 阅读 · 1 评论 -
解决类别不平衡问题的方法综述
样本不平衡怎样解决(在loss前加系数)数据不平衡 在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果。因为实际数据往往分布得很不均匀,都会存在“长尾现象”,也就是所谓的“二八原理”。Focal loss参考网址:https://www.zhihu.com/question/269698662/a...原创 2020-06-13 17:08:47 · 15795 阅读 · 3 评论 -
面试准备——概率题/智力题
一根棒子分成三段组成三角形的概率原创 2020-03-27 19:50:53 · 2560 阅读 · 0 评论 -
机器学习中的归一化和python计算
如何解决样本不均衡的问题一、数据不平衡 在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果。因为实际数据往往分布得很不均匀,都会存在“长尾现象”,也就是所谓的“二八原理”。如何解决过拟合参考网址:如何解决样本不均衡的问题怎样解决样本不平衡问题?聊一聊深度学习中的样本不平衡问题何恺明大神的「F...原创 2020-02-12 14:29:32 · 803 阅读 · 0 评论 -
bert今生前世全总结
一、Bert简介谷歌AI实验室的BERT深刻影响了NLP的格局。BERT之后,许多NLP架构、训练方法与语言模型如雨后春笋般涌现,比如谷歌的TransformerXL、OpenAI’s GPT-2、 XLNet、ERNIE2.0、 RoBERTa等。BERT团队对该框架的描述:BERT全称Bidirectional Encoder Representations from Transfor...原创 2019-11-25 12:14:54 · 1248 阅读 · 0 评论 -
论文笔记:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
论文地址:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding前言Google在2018年10月发表的一篇文章。AbstractBERT 表示来自 Transformer 的双向编码器表示(Bidirectional Encoder Representations from Tra...原创 2019-11-21 20:03:33 · 1366 阅读 · 0 评论 -
论文笔记:Focal Loss for Dense Object Detection
论文链接: https://arxiv.org/pdf/1708.02002.pdf本篇论文是何恺明及其团队17年发表在ICCV上的paper。最初用于目标检测,因为解决了分类中类别不平衡的问题,nlp中也有应用。下面是各部分的要点,并非全文翻译。Abstract目前最高精度的目标检测器是基于由R-CNN推广的 two-stage 方法,其中分类器应用于稀疏的候选对象位置集。相比之下,...原创 2019-11-20 20:38:14 · 690 阅读 · 0 评论 -
论文笔记:XGBoost: A Scalable Tree Boosting System
这篇论文是Tianqi Chen2016年在arXiv上发表的。陈天奇是机器学习领域著名青年学者,本科就读于上海交大ACM班,华盛顿大学计算机系博士,开发了XGBoost、MXNet、TVM等知名机器学习工具。(因为原文内容较多,很多针对系统而非算法本身的内容,故没有逐句翻译,仅放上了每部分的核心内容,如想阅读全文翻译可以阅读参考网址。)Abstract提升树是一种高效且被广泛使用的机器学...原创 2019-11-12 21:05:43 · 1191 阅读 · 0 评论 -
机器学习中的数学原理——矩阵论
正定矩阵在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。定义:AAA是n阶方阵,如果对任何非零向量xxx,都有xTAx>0x^TAx>0xTAx>0,其中xTx^TxT 表示xxx的转置,就称AAA正定矩阵。性质:正定矩阵的行列式恒为正;实对称矩阵AAA正定当且仅当AAA与单位矩阵合同;两个正定矩阵...原创 2019-05-20 11:29:52 · 2590 阅读 · 0 评论 -
基于医疗知识图谱的问答系统源码详解
项目还是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。项目地址:https://github.com/liuhuanyong/QASystemOnMedi...原创 2019-05-06 16:19:55 · 86338 阅读 · 95 评论 -
使用中文维基百科训练word2vec模型
1.下载原始数据数据下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2首先把需要下载的东西都列出来一、下载内容1.语料:下载地址是https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xm...原创 2019-05-08 19:43:34 · 3482 阅读 · 3 评论 -
基于医疗知识图谱的问答实践中遇到的问题
问题1:ahocorasick安装失败原因:改名为pyahocorasick,pip安装依然失败。error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tool...原创 2019-04-22 17:19:34 · 16051 阅读 · 69 评论 -
Neo4j安装及简单使用
一、Neo4j和图数据库简介neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph。Neo4j图形数据库的主要构建...原创 2019-04-15 21:47:39 · 81119 阅读 · 16 评论 -
TensorFlow实现单层及多层LSTM的MNIST分类和可视化
The MNIST data-setMNIST data-set由一些黑白照片集合组成,每张照片包含手写的数字。图像被格式成28*28像素,并可表示成一个数值矩阵。集合中60000张照片用来训练模型,10000张照片用来测试模型。MNIST data-set可通过网络在MNIST数据库中获得。为方便下载数据,你可以使用input_data.py脚本,该文件也已放在github上。当在Tenso...原创 2019-04-09 10:08:27 · 2462 阅读 · 0 评论 -
Seq2Seq和Attention机制详解
一、Seq2Seq简介seq2seq模型最早可追溯到2014年的两篇paper [1, 2],主要用于机器翻译任务(MT)。seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。由于encoder与decode...原创 2019-04-12 11:29:20 · 5455 阅读 · 0 评论 -
面试准备——RNN和LSTM
LSTM结构推导,为什么比RNN好?推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。...原创 2019-04-08 16:07:53 · 10902 阅读 · 3 评论 -
Bi-LSTM原理及TensorFlow实现序列标注
本文整理了Bi-LSTM的原理,并在静觅博客静觅:TensorFlow Bi-LSTM实现序列标注 的基础上对TensorFlow 搭建一个Bi-LSTM来处理序列标注问题的代码进行了详细的注释。Bi-LSTM理解RNN的意思是,为了预测最后的结果,我先用第一个词预测,当然,只用第一个预测的预测结果肯定不精确,我把这个结果作为特征,跟第二词一起,来预测结果;接着,我用这个新的预测结果结合第三...原创 2019-04-02 16:58:21 · 14014 阅读 · 8 评论 -
半监督学习综述
半监督学习简介自从 1946 年第一台电子计算机 ENIAC 诞生至今,计算机技术得到了迅猛的发展,这使得人类采集、存储数据的能力空前的提高,利用计算机对收集到的数据进行分析提取有价值信息的技术(机器学习技术)也随之而生,并得到了很快的发展。传统的机器学习技术一般只利用有标记样本集或者只利用无标记样本集进行学习,而在实际问题中大多是有标记样本与无标记样本并存,为了更好地利用这些数据,半监督学习技...原创 2018-12-24 21:27:06 · 10775 阅读 · 0 评论 -
FM分解机及其变种(FFM、DeepFM)原理详解
FM(分解机,Factorization Machines)线性回归:y^(x)=w0+w1x1+w2x2+...+wnxn=w0+∑i=1nwixi\hat{y}(x) = w_0+w_1x_1+w_2x_2+...+w_nx_n=w_0+\sum^n_{i=1}w_ix_iy^(x)=w0+w1x1+w2x2+...+wnxn=w0+i=1∑nwixi从方程可知:...原创 2019-05-20 17:37:05 · 2742 阅读 · 1 评论 -
使用sklearn对数据进行标准化/正则化
一、标准化/正则化1. 0-1标准化也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:x∗=x−minmax−minx^*= \frac{x-min} {max-min}x∗=max−minx−min其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。sklearn实现...原创 2019-05-17 15:38:47 · 3387 阅读 · 1 评论 -
线性回归、逻辑回归、各种回归的比较
转载自:http://blog.youkuaiyun.com/viewcode/article/details/8794401回归问题的条件/前提:1) 收集的数据2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。1. 线性回归假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。收集的数据中,每一个分量,就转载 2017-11-07 10:46:50 · 4911 阅读 · 0 评论 -
梯度消失、梯度爆炸及其表现和解决方法
一、梯度消失梯度消失出现的原因:在深层网络中,如果激活函数的导数小于1,根据链式求导法则,靠近输入层的参数的梯度因为乘了很多的小于1的数而越来越小,最终就会趋近于0,例如sigmoid函数,其导数f′(x)=f(x)(1−f(x))的值域为(0,1/4),极易发生这种情况。所以梯度消失出现的原因经常是因为网络层次过深,以及激活函数选择不当,比如sigmoid函数。梯度消失的表现:模型无法...原创 2019-09-17 11:44:10 · 24814 阅读 · 0 评论 -
二分类和多分类的性能评价指标及python计算
一、二分类real\predictPositiveNegativeTrueTPFNFalseFPTNTP、TN、FP、FN 中的第二个字母(列标首字母)是机器学习算法或模型预测的结果(正例:P、反例:N)TP、TN、FP、FN 中的第一个字母(行标首字母)是根据真实情况判断预测结果是否正确(正确:T、错误:F)即:正确地预测为正例:TP正确...原创 2019-08-15 16:05:29 · 28282 阅读 · 10 评论 -
使用pytorch时遇到的问题汇总
遇到问题:embedding的时候遇到数据加载的时候遇到TypeError: 'int' object is not callable问题:数据不是Tensor类型的而是np.array或其他类型的。解决:tensor = torch.LongTensor(data_x)data_x = autograd.Variable(tensor)tensor = torch.Long...原创 2019-08-09 17:11:25 · 44236 阅读 · 25 评论 -
WordPiece和BPE双字节编码
BERT 的模型结构是一个多层双向Transformer 编码器,整体的模型结构其实就是Transformer,但BERT的创新点在于:引入了掩码使得Transformer编码器能够使用双向信息加入两个预训练任务,实现NLP领域的迁移学习WordPieceWordPiece原理现在基本性能好一些的NLP模型,例如OpenAI GPT,google的BERT,在数据预处理的时候都会有Wor...原创 2019-07-29 21:07:08 · 4394 阅读 · 0 评论 -
pytorch中BiLSTM模型构建及序列标注
损失函数NLLLoss() 的 输入 是一个对数概率向量和一个目标标签. 它不会为我们计算对数概率,适合最后一层是log_softmax()的网络. 损失函数 CrossEntropyLoss() 与 NLLLoss() 类似, 唯一的不同是它为我们去做 softmax.可以理解为:CrossEntropyLoss()=log_softmax() + NLLLoss()...原创 2019-07-23 15:57:05 · 8712 阅读 · 2 评论 -
Keras实现BiLSTM+CRF字符级序列标注
BiLSTM即可实现分词或命名实体标注等序列标注任务,单独的CRF也可以很好的实现。但因为单独LSTM预测出来的标注可能会出现(I-Organization-> I-Person,B-Organization - > I-Person)这样的问题序列,所以需要搞一个LSTM + CRF的混合模型。这种错误在CRF中是不存在的,因为CRF的特征函数的存在就是为了对输入序列观察,学习各种...原创 2019-06-26 17:34:21 · 6305 阅读 · 12 评论 -
pytorch安装及基本使用(win10+CPU+Python3.6)
pytorch这两年越来越流行,定义网络结构简单,而且还很直观灵活,数据加载快。一、安装登陆pytorch官网。选择合适的环境:运行安装命令:pip3 install https://download.pytorch.org/whl/cpu/torch-1.1.0-cp36-cp36m-win_amd64.whlpip3 install https://download.p...原创 2019-06-18 16:19:27 · 15486 阅读 · 1 评论 -
python缺失值填充的几种方法
常见的数据缺失填充方式分为很多种,比如删除法、均值法、回归法、KNN、MICE、EM等等。R语言包中在此方面比较全面,python稍差。python目前已有的两种常见的包,第一个是impyute,第二个是fancyimpute。比如fancyimpute中集成了很多方式,包括均值、众数、频数填充,KNN填充、MCMC填充等。一、直接填充data = pd.read_csv(path,enco...原创 2019-06-14 10:37:41 · 63750 阅读 · 5 评论 -
论文笔记:A Mostly Data-driven Approach to Inverse Text Normalization
这篇文章是苹果公司发表在语音识别顶会INTERSPEECH2017上的一篇文章。将逆文本化(ITN)转为标签问题的方法Siri 使用标准的格式化方式来展示日期、时间、地址和金额等对象。这是由于在语音识别的核心组件的输出上应用了一个被称之为逆转文本标准化(ITN,Inverse Text Normalization)的过程。可以通过下面这个案例来理解 ITN 所起的重要作用,如果没有 ITN,S...原创 2019-05-31 14:58:19 · 1995 阅读 · 0 评论 -
基于word2vec的疾病和手术相关词语的相似度计算
项目需要预测是否患有骨质疏松,患者所做手术是其中的一维特征,因此需要得到骨质疏松或骨量减少和手术之间的关系,此处选择用word2vec得到词语之间的相似度。用gensim学习word2vecgensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。当然我们可以可以直接使用C语言版的word...原创 2019-05-27 16:41:38 · 1542 阅读 · 2 评论 -
python数据可视化——直方图、热力图和缺失值可视化
一、绘制直方图首先读入数据def read_data(): path = '../data/forCodeF-2.csv' data = pd.read_csv(path,encoding='gbk') return data然后调用matplotlib.pyplot.hist函数绘制各维特征的分布直方图。import matplotlib.pyplot as p...原创 2019-05-17 16:47:49 · 25820 阅读 · 3 评论 -
神经进化
引言梯度or进化梯度下降和进化算法的比较:在梯度下降中, 我们需要的只是梯度, 让这个神经网络的参数滑到梯度躺平的地方就好了, 因为梯度给你指明了一个优化的方向, 所以如果是监督学习, 优化起来会非常快. 而神经网络的进化, 使用的却是另一种手段. 用原始的点创造出很多新的点, 然后通过新的点来确定下一代的起点在哪. 这样的循环再不断地继续. 可以想象, 如果在监督学习中, 我们需要不断产生...原创 2018-12-12 21:18:04 · 1148 阅读 · 0 评论 -
进化策略原理
上一篇遗传算法中提到了进化策略。这一篇扩展一下,具体细节详见莫烦老师网站。进化策略与遗传算法进化策略 (Evolution Strategy)是另一种使用进化理论的优化模式,与遗传算法略有不同。用一句话概括ES: 在程序里生宝宝, 杀死不乖的宝宝, 让乖宝宝继续生宝宝.ES和GA的不同有以下几点:选好父母进行繁殖 (GA); 先繁殖, 选好的孩子 (ES)通常用二进制编码 DNA (...原创 2018-12-12 19:43:59 · 3440 阅读 · 0 评论 -
遗传算法原理
一、遗传算法简介遗传算法是进化算法的一个分支. 它将达尔文的进化理论搬进了计算机.科学定义如下:**遗传算法(Genetic Algorithm, GA)**起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应...转载 2018-12-12 16:47:35 · 15394 阅读 · 1 评论 -
朴素贝叶斯算法原理小结
粘贴一个博客,写的太好了,讲解得通俗易懂。 朴素贝叶斯算法原理小结原创 2017-10-25 20:29:04 · 1121 阅读 · 0 评论 -
机器学习中的各种损失/误差函数
一、均方误差 二、 三、 四、损失函数和激活函数的组合 1.均方差损失函数+Sigmoid激活函数(不推荐) 对于Sigmoid,当z的取值越来越大后,函数曲线变得越来越平缓,意味着此时的导数σ′(z)也越来越小。同样的,当z的取值越来越小时,也有这个问题。仅仅在z取值为0附近时,导数σ′(z)的取值较大。 在反向传播算法中,每一层向前递推都要乘以σ′(z),得到梯度变化值。Sigmoi原创 2017-11-10 17:49:49 · 3912 阅读 · 0 评论 -
神经网络中的各种激活函数
一、激活函数简介1.激活函数的作用 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function。不一定是step function,可以是其他形式的非线性函数。 使用激活函数的目的是给神经元引入非线性因素,从而使神经网络能够解决线性不可分的问题,比如最简单的异或。Hornik证明,只需一个包含足够多的神经元的原创 2017-11-10 10:26:20 · 18308 阅读 · 1 评论 -
解决过拟合的方法
一、正则化 保留所有的特征,但是减少参数的大小( magnitude) 二、降维 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征, 或者使用一些模型选择的算法来帮忙(例如 PCA)原创 2017-11-09 21:43:19 · 665 阅读 · 0 评论