
NLP
Mr Robot
When I’m old and dying, I plan to look back on my life and say “wow, that was an adventure,” not “wow, I sure felt safe.”
山东南海岸程序猿,美国《时代周刊》2006年度风云人物;
《感动中国》2008年度人物;
联合国2019年度“地球卫士奖”
国际奥委会2022年”奥林匹克奖杯“获奖者
展开
-
深度学习之NLP
词嵌入是一种使用密集向量表示单词或文档的NLP技术,与使用大型稀疏向量的词袋技术相比,词嵌入通过将数字向量链接到字典中的每个单词,使得单词的语义含义投射到几何空间中,既而通过任何两个向量之间的距离捕获两个相关单词之间的语义关系,由这些向量形成的几何空间被称为嵌入空间。利用预装的GloVe进行词嵌入。GloVe提供了一套预训练的词嵌入流程,我们会使用60亿词和100维的数据训练的GloVe,即glove.6B.100d.txt。最后,在给定文档中对神经网络的性能进行评估,从而获得在训练数据本身的训练准确率。.原创 2022-08-17 22:45:00 · 1061 阅读 · 0 评论 -
使用RNN像进行写作
简单起见,这里将使用基于TensorFlow运行的框架TFLearn(http://tflearn.org/),这里所使用的例子只是标准版的一部分(https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_shakespeare.py),所开发的模型是字符级RNN语言模型,考虑的序列则是字符序列而不是单词序列。然后,用训练好的模型来生成新文本,这些文本看起来像是英国最伟大的作家所写的。迟一天就多一天平庸的困扰。...原创 2022-08-12 23:45:00 · 303 阅读 · 0 评论 -
RNN理论详解
真正使RNN强大的是它能够处理向量序列,其中RNN的输入和输出可以是序列,下图很好地说明了这一点,最左边的例子是一个传统(非递归)网络,后面跟着一个序列输出的RNN,接着跟着一个序列输入的RNN,其次跟着序列输入和序列输出不同步的RNN,最后是序列输入和序列输出同步的RNN。在音乐中,一首曲子的下一个音符肯定取决于前面的音符,而在视频领域,电影中的下一帧肯定与先前的帧有关。基于时间序列的模型可以用RNN来描述,其中,时刻i输入为Xi,输出为Yi,时刻[0,i-1]区间的状态信息被反馈至网络。...原创 2022-08-11 13:11:29 · 504 阅读 · 0 评论 -
深度学习之word embedding学习笔记(8)
物理学家、化学家和程序员坐在一辆车里,车子却无法启动。“也许是没油了?”化学家说。“也许是发动机的问题?”物理学家说。“也许我们都下车,再上车,就好了?”程序员说。词嵌入栗子代码# encoding = utf-8import numpy as npimport tensorflow as tffrom tensorflow.contrib.crf import crf_log_likelihoodfrom tensorflow.contrib.crf import viterbi_de原创 2021-08-27 10:35:20 · 473 阅读 · 0 评论 -
深度学习之word embedding学习笔记(7)
在一次 Java 的学术会议上,与会者被问了一个问题。如果你登上一架客机,发现这架飞机的控制软件是你的程序员团队负责的,你们中会有多少人,决定立刻下飞机?大家纷纷尴尬地举手。可是,有一个人却坐在那里一动不动。主持人问,为什么你对自己的团队这么有信心?他回答说:如果是我的团队负责的,那飞机连滑行出跑道都不太可能,更不用说起飞了。没有什么风险。word2vec实现代码#encoding=utf8from __future__ import absolute_importfrom __future__ i原创 2021-08-27 10:32:30 · 460 阅读 · 0 评论 -
实战深度学习之Seq2Seq(12)
训练过程源代码import timeimport data_utilsimport tensorflow as tfimport seq2seqimport ostf.app.flags.DEFINE_string("data_dir", "data/", "Data directory.")tf.app.flags.DEFINE_string("train_dir", "model/", "Train directory.")tf.app.flags.DEFINE_float("lea.原创 2021-08-27 10:26:40 · 216 阅读 · 1 评论 -
实战深度学习之Seq2Seq(11)
import tensorflow as tfimport data_utilsimport osimport mathimport sysimport timeclass Seq2SeqModel(object): def __init__(self, learning_rate, learning_rate_decay_factor, source_vocab_size=40000, \ target_vocab_size=40000, num_steps=100, nu.原创 2021-08-27 10:24:05 · 206 阅读 · 0 评论 -
深度学习之word embedding学习笔记(6)
Skip-gram再举一个例子原创 2021-08-27 08:15:40 · 143 阅读 · 1 评论 -
深度学习之word embedding学习笔记(5)
Skip-gram公式推导对于skip-ngram模型也需要设定一个目标函数,随后采用优化方法找到该model的最佳参数解,目标函数如下:Skip-gram公式推导分析上述model发现,预概率时的softmax操作,需要计算隐藏层和输出层所有V中单词之间的概率,这是一个非常耗时的操作,因此,为了优化模型的训练,minkov文中提到Hierarchical softmax 和Negative sampling 两种方法对上述模型进行训练...原创 2021-08-26 20:40:35 · 352 阅读 · 1 评论 -
深度学习之word embedding学习笔记(4)
b、Skip-Gram Modely 是 x 的上下文,所以 y 只取上下文里一个词语的时候,语言模型就变成:用当前词 x 预测它的下一个词 y但如上面所说,一般的数学模型只接受数值型输入,这里的 x 该怎么表示呢? 显然不能用 Word2vec,因为这是我们训练完模型的产物,现在我们想要的是 x 的一个原始输入形式。答案是:one-hot encoderb、Skip-Gram Model下图Skip-gram 的网络结构了,x 就是上面提到的 one-hot encoder形式的输入,y 是.原创 2021-08-26 20:40:16 · 177 阅读 · 1 评论 -
深度学习之word embedding学习笔记(3)
Word2Vec什么是 Word2vec在聊 Word2vec 之前,先聊聊 NLP (自然语言处理)。NLP 里面,最细粒度的是 词语,词语组成句子,句子再组成段落、篇章、文档。所以处理NLP 的问题,首先就要拿词语开刀。举个简单例子,判断一个词的词性,是动词还是名词。用机器学习的思路,我们有一系列样本(x,y),这里 x 是词语,y 是它们的词性,我们要构建f(x)->y 的映射,但这里的数学模型 f(比如神经网络、SVM)只接受数值型输入,而 NLP 里的词语,是人类的抽象总结,是符号形式的原创 2021-08-26 20:32:22 · 307 阅读 · 1 评论 -
深度学习之word embedding学习笔记(2)
“小李,我们街道的网站做好了吗”“主任,网站建好了,需要申请网址,网址是什么”主任打开百度查了下说,“url”小李说,好的于是湖南省长沙市长沙县泉塘街道的官网是 http://url.gov.cn语言模型词向量模型与语言模型非常紧密地交织在一起。语言模型的质量评估是基于它们对词语用概率分布的表征能力。事实上,许多最先进的词向量模型都在攻坚的任务就是已有一串词语序列,预测下一个出现的词语将会是什么。语言模型是干嘛的?chunking语言 模型 可以 计算 任何句子的概率。例如,“I love原创 2021-08-26 20:20:35 · 263 阅读 · 2 评论 -
深度学习之word embedding学习笔记(1)
词向量的来历语言模型Word2Vec词向量的来历词向量的来历自上世纪90年代开始,特征空间模型就应用于分布式语言理解中。在当时,许多模型用连续型的表征来表示词语,包括潜在语义分析(Latent SemanticAnalysis)和潜在狄利克雷分配(Latent Dirichlet Allocation)模型。这篇文章详细介绍了词向量方法在那个阶段的发展。Bengio等人在2003年首先提出了词向量的概念,当时是将其与语言模型的参数一并训练得到的。Collobert和Weston则第一次正式使用预原创 2021-08-26 20:14:53 · 307 阅读 · 1 评论 -
实战深度学习之Seq2Seq(10)
Seq2Seq案例最基础的Seq2Seq模型包含了三个部分,即Encoder、Decoder以及连接两者的中间状态向量,Encoder通过学习输入,将其编码成一个固定大小的状态向量S,继而将S传给Decoder,Decoder再通过对状态向量S的学习来进行输出。import tensorflow as tfimport data_utilsimport osimport mathimport sysimport timeclass Seq2SeqModel(object): d原创 2021-08-17 16:52:12 · 392 阅读 · 1 评论 -
实战深度学习之Seq2Seq(9)
Soft Attention和Hard Attention区别Soft Attention通常是指以上我们描述的这种全连接(如MLP计算Attention 权重),对每一层都可以计算梯度和后向传播的模型;不同于Soft attention那样每一步都对输入序列的所有隐藏层hj(j=1….Tx) 计算权重再加权平均的方法,Hard Attention是一种随机过程,每次以一定概率抽样,以一定概率选择某一个隐藏层hj*,在估计梯度时也采用蒙特卡罗抽样Monte Carlo sampling的方法。左图为Sof原创 2021-08-17 16:45:08 · 185 阅读 · 0 评论 -
实战深度学习之Seq2Seq(8)
Seq2Seq+attention代码def attention(self, prev_state, enc_outputs):#paramprev_state: the decoder hidden state at time i-1#paramenc_outputs: the encoder outputs, a length 'T' list.e_i= []c_i= []for output in enc_outputs:atten_hidden= tf.tanh(tf.add(tf.m原创 2021-08-17 16:43:19 · 215 阅读 · 0 评论 -
实战深度学习之Seq2Seq(7)
Seq2Seq+attention手写公式观察所有输入的东西,可见是所有encoder的输出和decoder的每个state 一起作为输入,搅和在一起,然后target/output就是一个类似score的东西。原创 2021-08-17 16:41:28 · 138 阅读 · 0 评论 -
实战深度学习之Seq2Seq(6)
Seq2Seq with attention decoderattention Decoder的流程图如上图所示,与参考论文中不同的一点是,我把hidden_state之后Dense_layer之前的maxoutlayer去掉了,因为看到google Seq2Seq的实现中也没有maxoutlayer,与朋友讨论的结果是可能maxoutlayer会增加更多的计算量。还有就是最后的softmax直接变成argmax了。上图中拿掉右边方框内的的Attention机制就是一个基本的decoder,基本的原创 2021-08-17 16:39:00 · 168 阅读 · 0 评论 -
实战深度学习之Seq2Seq(5)
Seq2Seq with attentionLSTM模型虽然具有记忆性,但是当Encoder阶段输入序列过长时,解码阶段的LSTM也无法很好地针对最早的输入序列解码。基于此,Attention注意力分配的机制被提出,就是为了解决这个问题。在Decoder阶段每一步解码,都能够有一个输入,对输入序列所有隐藏层的信息h_1,h_2,…h_Tx进行加权求和。打个比方就是每次在预测下一个词时都会把所有输入序列的隐藏层信息都看一遍,决定预测当前词时和输入序列的那些词最相关。Attention机制代表了在解码Dec原创 2021-08-17 16:36:25 · 163 阅读 · 0 评论 -
实战深度学习之Seq2Seq(4)
Seq2Seq结构及原理Seq2Seq解决问题的主要思路是通过深度神经网络模型(常用的是LSTM)将一个作为输入的序列映射为一个作为输出的序列,这一过程由编码(encoder)输入与解码(decoder)输出两个环节组成。上图中,使用x={x1,x2,…,xn}代表输入的语句,y={y1, y2, …, yn}代表输出的语句,yt代表当前输出词。即输出的yt不仅依赖之前的输出{y1, y2, …, yt−1},还依赖输入语句x,模型再怎么变化都是在上文公式的约束之下。模式一:普通作弊basic原创 2021-08-17 16:33:35 · 343 阅读 · 2 评论 -
实战深度学习之Seq2Seq(3)
Seq2Seq结构及原理最基础的Seq2Seq模型包含了三个部分,即Encoder、Decoder以及连接两者的中间状态向量,Encoder通过学习输入,将其编码成一个固定大小的状态向量c,继而将c传给Decoder,Decoder再通过对状态向量c的学习来进行输出。下图中,图中每一个box代表了一个RNN单元,通常是LSTM或者GRU。Encoder-Decoder框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<X,Y&g原创 2021-08-17 14:33:13 · 376 阅读 · 0 评论 -
实战深度学习之Seq2Seq(2)
Seq2Seq应用场景机器翻译自动对话机器人文档摘要自动生成图片描述自动生成诗词生成生成代码补全故事风格改写等等总而言之,Seq2Seq应用场景,包括了经典的机器翻译、文本摘要和对话生成等,也包括了一些非常有趣的应用,比如:根据公式图片生成latex 代码,生成commit message 等。自然语言生成(NLG)是一个非常有意思,也非常有前途的研究领域,简单地说,就是解决一个条件概率p(output| context)的建模问题,即根据context 来生成output,这里原创 2021-08-17 14:26:33 · 375 阅读 · 1 评论 -
实战深度学习之Seq2Seq(1)
课程内容什么是Seq2SeqSeq2Seq应用场景Seq2Seq结构及原理Seq2Seq案例Seq2Seq实战什么是Seq2SeqSeq2Seq技术,全称Sequence to Sequence,它被提出于2014年,最早由两篇文章独立地阐述了它主要思想,分别是Google Brain团队的《Sequence to Sequence Learning with Neural Networks》和Yoshua Bengio团队的《Learning Phrase Representation us原创 2021-08-17 14:23:33 · 416 阅读 · 0 评论 -
天啦撸,联合开发网竟然倒闭了!!!(分享一个非常牛的人工智能教程!!!)
天啦撸,联合开发网竟然倒闭了,很早吧,记得还是上学的时候,跟着导师做项目,查找一些资料,机缘巧合就认识了这个网站,上传了自己的代码,也从网站上下载了一些学习资源,网上资源很多,各种代码资料,什么C,C++,java啥的,今年4月份差不多,突然打不开网站了,不知道网站发生了什么样的变故,今天打开,竟然是这个样的结果,有点惋惜可惜,不知道网站具体发生了什么样的事,希望站长能够再次振作吧!很多人都想学人工智能,它比黑客技术更加神秘更加吸引人。但是很多人都不敢学,因为传统教材的门槛都很高——需要编程,高数,统计原创 2021-07-13 15:53:57 · 14050 阅读 · 0 评论 -
深度学习和机器学习是什么?
很多人都想学人工智能,它比黑客技术更加神秘更加吸引人。但是很多人都不敢学,因为传统教材的门槛都很高——需要编程,高数,统计学等等知识。所以我才创建了这个教学网站,力求通俗易懂,接地气,无需高数,只要你上过高中,就可以学!而且,传统教学很枯燥,即使老师讲得很易懂但依然很少人能坚持学下去,因为太枯燥了。所以我主张快乐学习,尽量加入搞笑的成分在教学里面,其实我生活中就很乐观幽默,歌手李健就是我性格的一个写照吧,只不过我能说黄段子他不能。我希望通过这个网站使越来越多的中国人掌握人工智能技术,人工智能是中国的一次机遇原创 2021-06-18 10:32:04 · 2823 阅读 · 0 评论