自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

outsider

欢迎技术交流...

  • 博客(67)
  • 收藏
  • 关注

原创 超时的goroutine如何回收?

谈到goroutine并发超时控制,一搜很容易看到下面这样的代码。func TestGoroutine3(t *testing.T) { done := make(chan struct{}, 0) go func() { // do something time.Sleep(time.Second) fmt.Println("server") done <- struct{}{} fmt.Println("send done success!") }() selec

2020-07-28 16:46:38 1277

原创 学习rocketMq笔记

记录学习rocketMq的笔记1 rocketMQ核心概念1.1 mqClient无论是producer还是consumer,他们都使用一个实例那进行生产和消费,这个实例是mqClient,这个实例包括了很多核心的实现,我阅读到的包括:定时从nameserver获取topic的路由信息,主要是更新当前client生产使用的topic或者消费订阅的topic的路由信息,路由信息包括什...

2020-03-18 17:01:13 466

原创 如何正确的学习一门新技术?

ps:这里的新技术,可以是一门语言,一个特定的框架,一个特定的算法等等等不知道你有没有这样的习惯,学习一门新的技术总是依赖于搜索引擎,输入关键字,于是出现了一大片内容,各种博客,点来点去,当你要学习的东西是比较复杂而非比较单一特定的,比如是消息队列rocketMQ而非一个特定的算法快速排序。依赖搜索引擎,几篇博文这种方式让我觉得懵懵懂懂,浮躁,因为没搞懂,所以又去看别的文章,但最后发现都怎么讲得...

2020-03-17 23:47:37 513

原创 DoubleArrayTrie(DAT)双数组字典树原理解读,golang/go语言实现

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...

2020-03-15 00:12:06 873

原创 go语言context包源码解析

go语言context包源码解析由于需要转go,学了基础和一些服务端框架后决定对go的一些源码进行阅读,并适当去实现。第一份源码就看了context,下面对context进行详细的解读。...

2019-11-24 15:02:17 506

原创 java实现监督学习隐马尔科夫模型/HMM用于中文分词

之前写过,只是为了复习下,监督学习版本的写起来也很简单,参数只是统计,核心是维特比算法。代码以及数据全部在一个java文件中。地址:https://github.com/colin0000007/supervised-hmm...

2019-07-26 20:15:19 653

原创 用tensorflow实现一个简单的ResNet,体会ResNet的简单有效。

完整代码已经放置在GitHub:https://github.com/colin0000007/Simple-ResNetResNet全称residual neural network。主要是解决过深的网络带来的梯度弥散,梯度爆炸,网络退化的问题。下面是ResNet一个单元的结构,单元中有多少个layer应该是我们自己决定。从图片中很容易看出ResNet做了什么,就只是把输入x和网...

2019-07-15 11:39:23 1628

原创 tensorflow实现seq2seq:完整部分

完整源码地址:https://github.com/colin0000007/seq2seq源码中我将实现封装为了2个类,一个BasicSeq2SeqModel,一个AttentionSeq2SeqModel。前者包含了bi-rnn,beam search等特效,后者只是多了attention。下面详细讲讲BasicSeq2SeqModel。1.训练数据seq2seq数据分为源序列,目...

2019-07-03 15:54:29 2957

原创 java实现基于密度的离群点/异常点检测,LOF算法

参考文章https://blog.csdn.net/Jasminexjf/article/details/88240598原理部分强烈推荐这篇文章,基本上照着就能写出来这里只提供代码package com.outsider.outlierDetection;import java.io.BufferedReader;import java.io.File;import j...

2019-06-07 10:14:15 2471 1

原创 tensorflow实现seq2seq模型细节(5):如何实现带attention的beam search,tensorflow构建独立的计算图(子图),推理图加载训练图的参数达到参数共享

为什么会有这样的问题,在对encoder构建attention时,训练时传入到AttentionWrapper的参数和解码时是不一样的。构造attention的方法: def build_rnn_layer_attention(self,encoder_output,decoder_layer,decoder_num_units,src_seq_len): #sca...

2019-05-17 22:34:35 1111

原创 tensorflow实现seq2seq模型细节(4):tensorflow nmt中的attention(scaled luong 和 normed bahdanau)和optimizer

1.attentionTensorflow的nmt教程中这样提到:Attention: Bahdanau-style attention often requires bidirectionality on the encoder side to work well; whereas Luong-style attention tends to work well for diffe...

2019-05-17 22:21:18 760 2

原创 tensorflow实现seq2seq模型细节(3):inference推理阶段解码方法,beam search 和 greedy以及解决使用beam search出现key error的错误

1.贪婪法这种策略很简单,输入source后,decoder需要生成target,传入<s>作为序列的开始,生成下一个字符,直接选取概率最大的作为结果,用当前节点的结果作为下一个节点生成的输入,直到生成</s>结束。2.beam search参考https://www.zhihu.com/question/54356960/answer/1389900...

2019-05-17 16:42:14 1387

原创 tensorflow实现seq2seq模型细节(2):tf.contrib.seq2seq.sequence_loss

查看tensorflow源码其内部sequence_loss如果未指定softmax_loss_function使用的sparse_softmax_cross_entropy_with_logits你也可以自己实现这个seq_loss:使用这个tf.contrib.seq2seq.sequence_loss只需要传入masks。而单独使用这需要显式的写代码定义mask对sparse_sof...

2019-05-17 16:38:46 3685

原创 tensorflow实现seq2seq模型细节(1): tf.nn.dynamic_rnn和tf.nn.bidirectional_dynamic_rnn,双向rnn encoder的输出连接方式

tf.nn.dynamic_rnn:将单向的rnn沿时间序列展开outputs, state = tf.nn.dynamic_rnn(cell=multi_rnn_cell, inputs=data, dtype=tf.float32)Outputs...

2019-05-17 16:34:11 834

原创 DBSCAN算法java实现,基于密度的聚类

《数据挖掘》课程的实验作业,只提供代码和数据,原理请参照其他。在实现这个算法时我发现和weka跑出来的结果完全不一样,后来发现,weka原来默认对数据进行了归一化,我在代码中也提供了这个可选的操作,不过还是建议归一化,效果更好。数据使用iris,在我的另一篇文章中已经给出。kmeans java实现代码:package com.outsider.dbscan;import j...

2019-04-29 21:43:59 2297

原创 kmeans算法java实现

《数据挖掘》平时实验作业,只提供代码和数据。代码:package com.outsider.kmeans;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.Arrays;import java.util.HashSet;imp...

2019-04-29 21:41:09 2237 1

原创 apriori算法java实现,关联规则分析

一门课程的作业,原理就网上随便找找,文章只提供代码和测试数据。代码:package com.outsider.apriori;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayL...

2019-04-29 21:38:22 1246

原创 CNN不要关心模板/filter的参数怎么来,attention不要关心权重怎么来的。神经网络不要关心参数怎么来的。

一些个人想法。在刚开始学习CNN的时候,很好奇filter的参数是怎么来的。看视频过程中也有人问。实际上我们并不需要关心filter中的参数,只要能做梯度下降,那么我们的目标就是使得loss下降。而filter中的参数自然会变得更有利于loss下降。至于filter卷积后是在提取什么特征,这完全需要我们自己下定义。最近复习attention机制,讲attention的例子时会给人一种权重是事先...

2019-04-20 16:36:03 938

原创 为什么sigmoid会造成梯度消失?

这里仅仅做一些数学上的简单分析,首先看sigmoid的公式:它的导数:的图像如下:也就是说任何输入都会被缩放到0到1,如果隐层的所有layer都使用sigmoid,除了第一层的输入,最后一层的输出,其他层的输入输出都是0到1,看看的完整图像:z大概在-5到5之间,才有值,而除第一层隐层的输入都在0到1之间,所以的图像如下:最终取值大概0.2到0.25之间,下...

2019-03-25 22:06:12 17413 1

原创 深度学习初步,全连接神经网络,MLP从原理到实现(三)实现部分,用java实现MLP

原理部分完全参照另外2篇:深度学习初步,全连接神经网络,MLP从原理到实现(一)原理部分,反向传播详细解释和实际计算例子深度学习初步,全连接神经网络,MLP从原理到实现(二)原理部分,过拟合,激活函数,batchsize和epochs,训练DL模型的建议说明:这个实现全部用java实现,依赖矩阵运算库jblas和画图的一个库jfree(不需要画学习率衰减曲线的可以不用这个库),无论是预...

2019-03-25 17:15:33 2027

原创 深度学习初步,全连接神经网络,MLP从原理到实现(二)原理部分,过拟合,激活函数,batchsize和epochs,训练DL模型的建议

其他两篇:深度学习初步,全连接神经网络,MLP从原理到实现(一)原理部分,反向传播详细解释和实际计算例子深度学习初步,全连接神经网络,MLP从原理到实现(三)实现部分,用java实现MLP1.激活函数(1)SigmoidSigmoid将所有输入压缩到0到1之间,这样造成的问题是,当随着神经网络的层次加深时,特征的变化由于sigmoid而慢慢衰减。这样会造成靠近输入层的梯度很...

2019-03-25 16:30:54 3903

原创 深度学习初步,全连接神经网络,MLP从原理到实现(一)原理部分,反向传播详细解释和实际计算例子

其他两篇:深度学习初步,全连接神经网络,MLP从原理到实现(二)原理部分,过拟合,激活函数,batchsize和epochs,训练DL模型的建议深度学习初步,全连接神经网络,MLP从原理到实现(三)实现部分,用java实现MLP下面的内容主要是李宏毅老师的机器学习课程,加上自己的整理和补充,文章有点长,有一定的ml基础,认真读就能搞懂,数学部分建议自己手写推导。如果对反向传播部分没有理...

2019-03-25 12:05:58 10556

原创 算法细节:关于CRF和最大熵模型中计算模型期望和先验期望的公式理解(最大熵模型/CRF条件随机场的实现细节)

如果只是简单看看条件随机场和最大熵模型的原理。我打赌绝大多数人没有意识到我下面提到的公式是这个意思。自己实现算法涉及到细节时稀里糊涂写出来,最近看到一个最大熵模型的实现想不通的时候,才慢慢想明白为什么这样写。正文:之前看条件随机场的时候计算特征函数模型期望是下面这样的公式:计算先验模型期望时看到这样的公式:式子中有先验分布,实现算法时,p(x)和p(x,y)对于先验分布的遍...

2018-12-22 22:44:04 1633 8

原创 杂谈:序列模型特征和普通模型特征,CRF,最大熵模型,最大熵马尔科夫模型

 1.模型最近在弄基于最大熵模型的依存句法分析,看到最大熵模型,觉得和CRF(条件随机场很相似),都使用特征函数这种东西,最大熵可以使用联合概率建模,也可以使用条件概率建模,crf和最大熵在同使用条件概率建模的时候:p(y|x)的计算看公式基本一样:但crf作为一种序列模型,还是和最大熵有区别,最大熵模型并不能当作序列模型使用。序列模型版本的最大熵模型是最大熵马尔可夫模型,传统的最...

2018-12-21 23:22:45 615

转载 汉语树库/CoNLL格式,依存句法分析语料

转载自码农场,原文链接:http://www.hankcs.com/nlp/corpus/chinese-treebank.html本文旨在介绍CoNLL格式的中文依存语料库(汉语依存树库)、CoNLL格式相关工具,以及提供两个公开的中文依存语料库下载。最近做完了分词、词性标注、命名实体识别、关键词提取、自动摘要、拼音、简繁转换、文本推荐,感觉HanLP初具雏形。现在希望拿下依存句法分析,...

2018-12-19 23:38:37 11377

原创 中文分词的探索,CRF(条件随机场)和HMM(隐马尔可夫模型)用于分词的对比,以及中文分词的评估

在中文分词这个应用上我试验得比较多了,所以这里想对自己做过关于分词的做一些对比,总结。可能很多人在入门隐马尔科夫模型的时候都举例过分词这个模型,我也是,当时觉得好神奇,竟然这么准确,但是后面当我越来越深入做分词这一块,学到条件随机场,并且自己实现测试,发现纯序列标注用HMM分词实际上一般般,下面就我这2个标注模型在分词种做一个对比。1.CRF和HMM模型特点的对比首先,先说一下2个模型...

2018-11-10 00:12:01 4348

转载 中文分词的评估及实现

这篇文章理论部分来自https://www.codelast.com/%E5%8E%9F%E5%88%9B%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%99%A8%E5%88%86%E8%AF%8D%E6%95%88%E6%9E%9C%E7%9A%84%E8%AF%84%E6%B5%8B%E6%96%B9%E6%B3%95/实现是我自己写的。实现在最下...

2018-11-09 23:21:35 6903

原创 分享一个抓取网易云不同分类下歌曲热评的python爬虫,并且不怕被封ip(非使用代理)

这个爬虫是我一门课程的作业中用到,很久了,偶然想起就分享到这里吧,我写的大部分代码,小部分由我同学完成。再抓评论过程中被封ip这是个令人头疼的事情,如果你是宽带用户,并且是动态ip,被封ip后直接调用windos的cmd命令重新连接就可以获得新的ip。下面是python代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-import re...

2018-11-05 23:51:08 1461 6

原创 隐马尔科夫模型(HMM)的无监督学习算法java实现(baum-welch迭代求解),包括串行以及并行实现

HMM的原理就不说了,这里主要说算法的实现。实际实现起来并不是很困难,前提是你仔细看过hmm的原理,然后很多实现就照着公式写出对应的代码,比如前向算法,后向算法,参数更新都是有明确的公式的,只需要对应写成代码,这里需要提到2点技巧。1,所有概率需要取对数,这是因为有的概率实在是太小了,容易溢出,或者精度不够。2.对一个求和的式子取对数概率时需要用到一个技巧。下面直接贴出我写的关于这个计...

2018-11-04 22:06:11 4091

原创 java对象的字段/属性中是基本类型的声明为对应的包装类的好处

真实结果在末尾。在写CRF/条件随机场时由于遇到这样一个问题,声明了一个对象,其中的2个字段都是int,但是现在的需求时我只需要其中一个字段赋值,另外一个不赋值,由于声明的是基本类型,所以无论赋不赋值都会占用内存,不要小瞧这点内存,由于我频繁使用这个对象,有时候内存中达到上千万个这样的对象,这样下来白白浪费了很多内存,于是想到声明为Integer,对象可以为null,基本不占用啥内存,于是做了...

2018-11-02 23:40:34 1358

转载 梯度下降,损失函数,代价函数,假设函数

梯度下降涉及到的一些东西:梯度下降https://www.cnblogs.com/pinard/p/5970503.html损失函数,代价函数,假设函数https://blog.csdn.net/lyl771857509/article/details/79428475常用损失函数https://blog.csdn.net/u010976453/article/detail...

2018-10-03 19:20:31 766

原创 CRF++/CRF/条件随机场的特征函数模板

由于最近想实现CRF,学完了理论后就开始怎么想怎么实现,想参照CRF++的开源实现,但首先要解决的怎么理解特征模板,所以写了此文,主要参考了2篇文章,在此感谢。http://www.52nlp.cn/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E6%A0%87%E6%B3%A8%E6%B3%9...

2018-10-01 23:11:20 10016 11

转载 词性标注对照表

来自:http://www.hankcs.com/nlp/part-of-speech-tagging.htmlHanLP词性标注集 a           形容词   ad           副形词   ag           形容词性语素   al           形容词性惯用语   an        ...

2018-09-24 22:13:08 4142

原创 代价一致搜索java实现

上人工智能导论课要求实现这个算法,基本没有找到什么对这个算法的解释,ppt也没说细节,就随便写写了,目前只测试了两个图。思路:如上图所示(这里以有向图举例只是为了方便),需要找到从0到3的最短路径:代价一致的做法,维护一个边缘集,用优先队列存储,步骤:1.初始边缘集为0的所有后继节点,也就是{1(80),4(90)},()中是到节点的路径长2.从边缘集合中取出路径值最小的节...

2018-09-21 00:27:21 2072 2

原创 自己开发的一个自然语言处理java开源库CONLP(适合nlp初学者)

CONLP自己开发的一个自然语言处理java库,后期可能会加入机器学习的一些模型,不限于nlp。 项目地址:https://github.com/colin0000007/CONLP 欢迎关注 CONLP是瞎取的名字,暂定。 1.介绍一个通用的隐马模型的java实现,包括一阶(bigram),和二阶模型(trigram)的,二阶模型目前没有使用平滑处理,并在此基础上实现了一阶和...

2018-09-10 12:44:12 3012 3

转载 PCA原理以及python实现(另外说说SVD奇异值分解)

说明:大部分内容摘自这个链接http://blog.codinglabs.org/articles/pca-tutorial.html,由于没联系到博主,若侵权,望谅解,联系我删除,我觉得原文写得非常好所以分享到这里,算法实现部分以及第3点还有少点杂七杂八的是我自己写的。一.基于最大可分性来解释PCA(1)简单说明对于原有的数据我们希望降维后能够尽量的离散,这样能保留原有信息,方...

2018-08-10 21:57:11 7217 2

转载 使用scikit-learn工具计算文本TF-IDF值

原文:https://blog.csdn.net/eastmount/article/details/50323063三. TF-IDF计算          Scikit-Learn中TF-IDF权重计算方法主要用到两个类:CountVectorizer和TfidfTransformer。       1.CountVectorizer        CountVecto...

2018-08-10 09:35:35 491

原创 逻辑回归python实现

1.问题使用线性回归怎么解决分类问题?这就是逻辑回归要做的事情,并且逻辑回归可以计算出概率2.模型以及求解(线性)给出一组m个样本数据,每个样本数据有n个特征,并且带有标记0或者1,代表属于哪一类,为了把输入的参数代入到预测函数后始终是一个0到1之间的数,这样我们可以把0,1看做两个类别, 引入sigmod函数 1/(1+e^-t) 这个函数的函数值始终是在0到1之间让s...

2018-08-09 10:48:53 41324 2

原创 基于监督学习的隐马尔科夫模型(HMM)实现中文分词

因为语料是分好词来训练的,所以代码写起来还算简单,HMM的参数pi,A,B训练只是做一个简单的统计工作反倒是写维特比算法时出了一些问题,因为之前都是纸上谈兵,真正写这个算法才发现之前有的地方没有搞明白!!维特比的算法大致如下:注:下面[]中代表下标在计算δ[t](i)是需要遍历δ[t-1](j),j遍历所有的隐状态,找到一个隐状态使得δ[t](i)最大,计算完所有的δ后是一个观...

2018-07-16 20:54:52 4858 6

转载 机器学习常用算法对比

转自http://www.csuldw.com/2016/02/26/2016-02-26-choosing-a-machine-learning-classifier/侵权删除本文主要回顾下几个常用算法的适应场景及其优缺点!(提示:部分内容摘自网络)。机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实...

2018-06-02 22:16:34 3450

空空如也

空空如也

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

TA关注的人

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