自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一起来书写我们的青春

角声寒 夜阑珊 怕人寻问 咽泪装欢

  • 博客(52)
  • 资源 (4)
  • 收藏
  • 关注

原创 【自然语言处理】聊聊注意力机制(Attention Mechanism)的发展

前言其实,关于注意力机制的文章真的有很多,而且写得相当精彩(毕竟过去这么多年了),那这篇侧重于简单的一个介绍,使大家对注意力机制有个初步了解。正文首先这件事还要从序列到序列模型(Seq2seq Model)开始说起,最早的序列到序列模型是一个CNN+LSTM。简单来说就是把CNN把编码端映射成一个固定向量,然后用LSTM一步步解码。接着一个自然的想法是使用LSTM,因为LSTM的处理序列...

2019-08-08 16:15:43 4003

原创 【自然语言处理】神经文本生成综述

前言首先本文主要是对《 Neural Text Generation: Past, Present and Beyond 》这篇论文的总结,该论文是上海交通大学团队写的,查阅过数次,觉得写得很棒,在此总结一下,以此共勉。要点这篇的文章关注点在于神经网络的文本生成。极大似然估计首先,最开始的是用神经网络语言模型(NNLM)。以及的后来的RNNLM(基于RNN循环神经网络)。P(xt∣st...

2019-05-23 22:38:30 3869

原创 【统计学习方法】 支持向量机(SVM) Python实现

支持向量机,一个理论先于实践的产物,由Corinna Cortes和Vapnik等在1995年首次提出的,取得了非常好的效果。 SVM分为线性可分(又可分硬间隔与软间隔)和线性不可分的问题,线性不可分可通过核函数进行映射到空间里,从而线性可分。线性可分支持向量机模型:f(x)=sign(w⋅x+b)f(x)=sign(w⋅x+b)f\left( x \right) = sign\le...

2019-05-23 08:46:15 2885 4

原创 【统计学习方法】 逻辑斯谛回归(Logistic Regression) Python实现

代码可在Github上下载:[代码下载](https://github.com/FlameCharmander/MachineLearning)今天看了一下《统计学习方法》里的逻辑斯谛回归,结合下《机器学习实战》里面的代码,很精炼。公式如下:模型:> $P(Y=1|x)=\frac {exp(w\cdot x+b)}{1+exp(w\cdot x+b)}$> $P(Y=0|x)=1-P(Y=1|x)=\frac {1}{1+exp(w\cdot x+b)}$策略:对数损失函数算法:梯度下降算法

2019-05-22 09:37:45 3673 2

原创 《统计学习方法》 决策树 ID3和C4.5 生成算法 Python实现

在博主刚接触编程的时候,曾经想过一个如何实现聊天机器人,当时最直接的想法是打算用if-else来做(事实上真用VB实现了一个简单的以自嗨)。而今天的决策树就是可以视为一种if-else的集合。而决策树的可以用来分类也可以用来完成回归任务。本部分介绍的决策树实现了ID3和C4.5算法。两者算法差别在于一个使用了信息增益一个使用了信息增益比。

2019-05-17 23:33:53 5068 5

原创 【自然语言处理】基于双向LSTM(Bi-LSTM)文本分类的Tensorflow实现

Github:Github下载地址RNN在自然语言处理的文本处理上取得了很大的成功。双向LSTM可以捕获上下文的内容,从而使得分类效果更佳。在本文的这次分类中,本文使用了IMDB电影评价的数据集,最终的模型可以将正面情感和负面情感通过双向LSTM给分类出来。

2019-02-25 14:09:02 8269 5

原创 【深度学习】基于GAN生成对抗网络的Python实现

前言此文参考原文Github代码本文Github代码GAN是2014年提出的一个框架。简单来说,这个框架有一个生成器和一个判别器,生成器生成数据(假币),判别器判别数据真假(判别假币),基于这种max-min极大极小值博弈算法,最终生成器生成的数据(假币)会使判别器分辨不出,也就是说D(p_data)和D(p_gen_data)均在0.5左右。基于这一框架生成器得到了出色的生成效果引起了许多...

2018-12-14 02:29:48 17459 4

原创 【自然语言处理】LSTM文本生成Python(纯Numpy)实现

前言RNN存在着梯度消失的问题,Hochreiter & Schmidhuber (1997)在1997年提出了LSTM(Long Short-Term Memory)长短期记忆单元来解决这个问题,现在自然语言处理的大部分任务都用到了LSTM,例如机器翻译,文本生成,,同理还有GRU。数据集数据集跟上一篇博客RNN文本生成使用的一样,都是古诗的语料库,这里不再赘述。...

2018-05-28 00:12:08 6773 2

原创 【自然语言处理】RNN文本生成Python(纯Numpy)实现

前言由于RNN具有记忆功能,之前文章有介绍RNN来实现二进制相加,并取得了比较好的效果。那这次本文使用RNN来进行古诗生成。数据集数据集就是我们的古诗了,每行都是一首古诗,并且以格式”题目:古诗”。 首先需要创建一个词典,词典可以是每个字的词频高的前6000字作为词典,然后用one-hot来表示词向量。def getVocab(filename='poetry.txt'):...

2018-05-26 20:35:10 7167 5

原创 【机器学习】Softmax回归 Python实现

前言常常会遇到需要多分类的问题,比如手写体识别,你需要识别手写的数字是几(0~9),比如文本生成,你需要知道生成的是哪个字,都需要进行多分类。那么我们最常用的多分类函数就是softmax了。接下来本文将会实现一个softmax来进行手写体识别。数据集本次的数据集分为训练集:文件名为”trainingDigits”和测试集:文件名为”testDigits”,每个文件夹里面有txt文件若干...

2018-05-24 16:28:02 14963 17

原创 【统计学习方法】隐马尔可夫模型(HMM) Python实现

前言隐马尔可夫模型在自然语言处理等各领域中,经常被用来处理标注问题。 隐马尔可夫模型由初始状态概率向量ππ\pi 、状态转移概率矩阵A和观测概率矩阵B决定。其中ππ\pi和A决定状态序列,B决定观测序列。 λ=(A,B,π)λ=(A,B,π)\lambda=(A,B,\pi) A=[aij]N×NA=[aij]N×N{\rm{A = }}{\left[ {{a_{ij}}}...

2018-05-04 21:39:41 4729

原创 【深度学习】RNN循环神经网络Python简单实现

前言循环神经网络是一种时间序列预测模型,多应用在自然语言处理上。 原理网上是有很多的,不展开解释,本文基于一个二进制加法,进行python实现。 其实python代码并非本人实现 具体参考两篇博客,第一篇是英语原文,第二篇是译文。 https://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/ http://blog.csdn....

2018-03-13 15:34:05 7341 8

原创 【深度学习】BP反向传播算法Python简单实现

  个人觉得BP反向传播是深度学习的一个基础,所以很有必要把反向传播算法好好学一下   得益于一步一步弄懂反向传播的例子这篇文章,给出一个例子来说明反向传播   不过是英文的,如果你感觉不好阅读的话,优秀的国人已经把它翻译出来了。   一步一步弄懂反向传播的例子(中文翻译)   然后我使用了那个博客的图片。这次的目的主要是对那个博客的一个补充。但是首先我觉得先用面向过程的思想来实现一遍...

2017-11-25 17:07:54 10496 5

原创 【统计学习方法】 Adaboost算法 Python实现

前言  俗话说三个臭皮匠,顶个诸葛亮。应用在机器学习里面讲就是多个弱分类器,通过组合可以变成一个强分类器,这也便是集成学习的思想。今天所要讲的Adaboost(自适应提升)算法便是种思想的一种代表算法。Adaboost不同于SVM,是一种实践优先于理论的一种产物,是先发现这种算法有效,后来人们不断研究,用前向加法模型来证明它,为何会这种算法是有效的。算法  首先先来看下P138的算...

2017-09-25 12:55:59 2667 1

原创 《统计学习方法》 决策树 CART生成算法 回归树 Python实现

先说明一下在看《统计学习方法》Cart回归树的时候懵懵的,也没又例子。然后发现《机器学习实战》P162有讲到这个,仔细看了一下。 所以这下面是《机器学习实战》的代码,但书上没有什么原理,如果不太懂原理的话,会有点难以理解。而它的实现就是《统计学习方法》P69的算法5.5(最小二乘回归树的生成算法)。引用《统计学习方法》P69的算法5.5 输入:训练数据集 D; 输出:回...

2017-08-23 15:21:27 3697 6

原创 【统计学习方法】 决策树 CART生成算法 分类树 Python实现

代码可在Github上下载:[代码下载](https://github.com/FlameCharmander/MachineLearning)Cart(Classification and regression tree)分类与回归树,是一种可以用来分类或者回归(属性可以是连续值,标签必须离散)的决策树(二叉树)。对回归树使用平方误差最小化准则,对分类树使用基尼系数最小化准则。该篇讲述的就是使用基尼系数来构造决策树。

2017-08-22 16:58:00 2112 6

原创 《统计学习方法》 朴素贝叶斯 贝叶斯估计 Python实现

《统计学习方法》 朴素贝叶斯 贝叶斯估计 Python实现为了解决极大似然估计会出现概率值为0的情况,我们采用贝叶斯估计解决这个问题。

2017-08-19 10:36:10 2142 2

原创 《统计学习方法》 朴素贝叶斯 极大使然估计 Python实现

代码可在Github上下载:(https://github.com/FlameCharmander/MachineLearning)前言使用贝叶斯法来进行分类,我们的模型就是\(f(x)=\mathop {\arg \max }\limits_{{c_k}} P\left( {Y = {C_k}|X = x} \right)\)(后验概率P(隐变量|观测变量)。算法理论先介绍贝叶斯...

2017-08-18 20:33:17 2583 2

原创 【统计学习方法】k近邻 kd树的python实现

前言代码可在Github上下载:代码下载k近邻可以算是机器学习中易于理解、实现的一个算法了,《机器学习实战》的第一章便是以它作为介绍来入门。而k近邻的算法可以简述为通过遍历数据集的每个样本进行距离测量,并找出距离最小的k个点。但是这样一来一旦样本数目庞大的时候,就容易造成大量的计算。所以需要将数据用树形结构存储,以便快速检索,这也就是本文要阐述的kd树。实现分为两部分,一个是k...

2017-08-17 15:22:35 9435 44

原创 【统计学习方法】感知机Python 对偶形式实现

代码可在Github上下载:(https://github.com/FlameCharmander/MachineLearning)前言上篇博文感知机的原始形式提到了感知机的原始形式,而这篇博文介绍的是感知机的对偶形式。算法理论感知机的原始形式提到的参数更新:\[\begin{array}{l}w \leftarrow w + \eta {y_i}{x_i}\\b \lef...

2017-08-15 19:54:36 2763

原创 【统计学习方法】感知机Python 原始形式实现

前言代码可在Github上下载:(https://github.com/FlameCharmander/MachineLearning)感知机作为一个二分类模型,在1957年由Rosenblatt提出,是感知机是支持向量机SVM和神经网络的一个基础。目的是通过将一个实例(比如一个西瓜是否好坏)进行分类,输入的是实例特征向量,输出的是实例的类别。紧记机器学习三要素:模型,策略,算法。...

2017-08-15 16:12:54 2968 3

原创 【Python】问题小记录

前言在使用Map对str批量数据转换只收,直接使用np.argmax得到的索引值是有问题的。问题可简化为如下代码。先记录,等空了探究。np.argmax([0, 1, 2, 3, 4])结果:4a = "1 2 3 4 5"np.argmax(map(float, a))结果:0...

2020-03-20 01:15:07 265

原创 【自然语言处理】谣言检测小结

前言博主最近研究了下Ma Jing博士的谣言检测。现将她的一些文章进行一些总结。内容第一篇《Detect Rumors Using Time Series of Social Context Information on Microblogging Websites》由于谣言检测模型只是对用户信息,模式传播和文本内容进行建模,忽略了时间的变化这一信息。作者提出了一种DSTS模型。第二篇《...

2020-01-24 16:08:48 6335 7

原创 【自然语言处理】使用Tensorflow-Bert进行分类任务时输出每个Train Epoch的信息

前言最近任务需要用到Bert,一个头疼的地方是官方代码只有在跑完指定的epoch次数之后才进行评估。可是基于任务的要求,需要输出每轮的评估信息(比如Acc, Loss)。相似的需求类似:How to get a total training set loss for an epoch using Tensorflow Estimator api方法由于Bert在Tensorflow使用了E...

2020-01-10 21:20:39 3641 6

原创 【自然语言处理】tf.contrib.seq2seq.GreedyEmbeddingHelper源码解析

前言本文衔接TrainingHelper,也可以衔接BasicDecoder。先说明一下,GreedyEmbeddingHelper主要作用是接收开始符,然后生成指定长度大小的句子。正文GreedyEmbeddingHelper代码传送门class GreedyEmbeddingHelper(Helper): """A helper for use during inference....

2019-08-12 21:03:56 2651 2

原创 【自然语言处理】tf.contrib.seq2seq.TrainingHelper源码解析

前言本文衔接tf.contrib.seq2seq.dynamic_decode源码分析以及tf.contrib.seq2seq.BasicDecoder源码解析。除了TrainingHelper后面还会介绍到GreedyEmbeddingHelper

2019-08-12 20:21:28 3524 1

原创 【自然语言处理】聊聊曝光误差(Exposure Bias)怎么被解决的

前言曝光误差(exposure bias)简单来讲是因为文本生成在训练和推断时的不一致造成的。不一致体现在推断和训练时使用的输入不同,在训练时输入是真实样本,但是在推断时用的却是上一个词的输出。解决方案1.使用scheduled-sampling,简单的做法就是在训练阶段使用的输入以p的概率选择真实样本,以1-p的概率选择上一个词的输出。而这个概率p是随着训练次数的增加衰减,可以使用指数函数...

2019-08-05 19:37:19 10943

原创 【自然语言处理】tf.contrib.seq2seq.BasicDecoder源码解析

前言tf.contrib.seq2seq.dynamic_decode源码分析本文衔接上文。首先tf.contrib.seq2seq.dynamic_decode主要作用是接收一个Decoder类,然后依据Encoder进行解码,实现序列的生成(映射)。其中,这个函数主要的一个思想是一步一步地调用Decoder的step函数(该函数接收当前的输入和隐层状态会生成下一个词),实现最后的一句话的...

2019-06-11 19:36:56 5637

原创 【自然语言处理】tf.contrib.seq2seq.dynamic_decode源码分析

前段时间因为自己的任务,看了好久的seq2seq的源码,了解了它的内部机制。现分享一波源码解析给大家以共勉。首先tf.contrib.seq2seq.dynamic_decode主要作用是接收一个Decoder类,然后依据Encoder进行解码,实现序列的生成(映射)。其中,这个函数主要的一个思想是一步一步地调用Decoder的step函数(该函数接收当前的输入和隐层状态会生成下一个词),实现最后的一句话的生成。该函数类似tf.nn.dynamic_rnn。

2019-06-02 12:03:05 8487

原创 【自然语言处理】SeqGAN的探索(踩坑)记录

SeqGAN是2017年[《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》](https://arxiv.org/pdf/1609.05473.pdf)这篇论文提出的模型,使用了强化学习的策略梯度解决了之前GAN只能应用在生成器输出为连续值的问题(文本中词与词之间的表示是离散的)。属于比较开创的工作,之后的许多工作都是在这篇文章的基础进行的。今天主要是想研究SeqGAN这么久以来的一个踩坑记录的总结,主要是要讨论关于蒙特

2019-05-31 00:00:04 5183 5

原创 [数据结构]堆排序的C语言简单实现

堆排序的C语言简单实现

2017-12-10 14:22:31 1939

原创 [数据结构]图的DFS用栈消除递归的C语言简单实现

用栈消除递归

2017-12-01 18:35:44 2294

原创 [数据结构]图基于邻接矩阵的BFS与DFS的C语言简单实现

基于邻接矩阵的BFS和DFS

2017-12-01 14:08:57 3243

原创 [数据结构]图邻接矩阵C语言简单实现

图的邻接矩阵基于C语言实现

2017-12-01 08:25:05 13222 2

原创 [数据结构]单链表C语言的简单实现

单链表的C语言实现

2017-11-30 15:23:59 2443

原创 [数据结构]二叉树遍历、求深度C语言的简单实现

二叉树先序遍历,中序遍历,后序遍历三种递归遍历与求深度的简单实现...

2017-11-30 12:12:30 6879 6

原创 [数据结构]队列的C语言简单实现

循环队列的实现。

2017-11-27 10:05:17 3122

原创 [数据结构]栈的C语言简单实现

顺序栈的C语言简单实现。

2017-11-27 09:12:01 2277

原创 [数据结构]顺序表的C语言简单实现

线性表的顺序表基于C语言简单实现

2017-11-23 11:30:22 1762

原创 XML多个根节点提示“文档中根元素后面的标记必须格式正确”解决

XML多个根节点提示“文档中根元素后面的标记必须格式正确”解决

2017-11-10 21:53:25 15802 1

《Vim实用技巧》书中代码

Practical Vim, Edit Text at Speed of Thought

2017-08-23

《统计学习方法》 k近邻Python kd树实现

《统计学习方法》中,kd树的Python实现。

2017-08-17

感知机Python实现

感知机的Python实现,用随机梯度下降算法实现的。

2017-08-15

吴恩达 编程练习与答案

网上大多下载的是答案(已做过的练习),我提供了一份原版练习和答案,供大家使用

2017-08-12

空空如也

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

TA关注的人

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