RNN介绍,较易懂



Recurrent Neural Networks

人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。

传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断后续的事件。

RNN 解决了这个问题。RNN 是包含循环的网络,允许信息的持久化。

[译] 理解 LSTM 网络
RNN 包含循环

在上面的示例图中,神经网络的模块,A,正在读取某个输入 x_i,并输出一个值 h_i。循环可以使得信息可以从当前步传递到下一步。这些循环使得 RNN 看起来非常神秘。然而,如果你仔细想想,这样也不比一个正常的神经网络难于理解。RNN 可以被看做是同一神经网络的多次赋值,每个神经网络模块会把消息传递给下一个。所以,如果我们将这个循环展开:

[译] 理解 LSTM 网络
展开的 RNN

链式的特征揭示了 RNN 本质上是与序列和列表相关的。他们是对于这类数据的最自然的神经网络架构。

并且 RNN 也已经被人们应用了!在过去几年中,应用 RNN 在语音识别,语言建模,翻译,图片描述等问题上已经取得一定成功,并且这个列表还在增长。我建议大家参考 Andrej Karpathy 的博客文章—— The Unreasonable Effectiveness of Recurrent Neural Networks 来看看更丰富有趣的 RNN 的成功应用。

而这些成功应用的关键之处就是 LSTM 的使用,这是一种特别的 RNN,比标准的 RNN 在很多的任务上都表现得更好。几乎所有的令人振奋的关于 RNN 的结果都是通过 LSTM 达到的。这篇博文也会就 LSTM 进行展开。

长期依赖(Long-Term Dependencies)问题

RNN 的关键点之一就是他们可以用来连接先前的信息到当前的任务上,例如使用过去的视频段来推测对当前段的理解。如果 RNN 可以做到这个,他们就变得非常有用。但是真的可以么?答案是,还有很多依赖因素。有时候,我们仅仅需要知道先前的信息来执行当前的任务。例如,我们有一个 语言模型用来基于先前的词来预测下一个词。如果我们试着预测 “the clouds are in the sky” 最后的词,我们并不需要任何其他的上下文 —— 因此下一个词很显然就应该是 sky。在这样的场景中,相关的信息和预测的词位置之间的间隔是非常小的,RNN 可以学会使用先前的信息。

[译] 理解 LSTM 网络

不太长的相关信息和位置间隔

但是同样会有一些更加复杂的场景。假设我们试着去预测“I grew up in France... I speak fluent French”最后的词。当前的信息建议下一个词可能是一种语言的名字,但是如果我们需要弄清楚是什么语言,我们是需要先前提到的离当前位置很远的 France 的上下文的。这说明相关信息和当前预测位置之间的间隔就肯定变得相当的大。不幸的是,在这个间隔不断增大时,RNN 会丧失学习到连接如此远的信息的能力。

[译] 理解 LSTM 网络

相当长的相关信息和位置间隔

在理论上,RNN 绝对可以处理这样的 长期依赖 问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN 肯定不能够成功学习到这些知识。 Bengio, et al. (1994) 等人对该问题进行了深入的研究,他们发现一些使训练 RNN 变得非常困难的相当根本的原因。

然而,幸运的是,LSTM 并没有这个问题!

LSTM 网络

Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息。LSTM 由 Hochreiter & Schmidhuber (1997) 提出,并在近期被 Alex Graves 进行了改良和推广。在很多问题,LSTM 都取得相当巨大的成功,并得到了广泛的使用。

LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力!

所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 tanh 层。

[译] 理解 LSTM 网络

标准 RNN 中的重复模块包含单一的层

LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于 单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。

[译] 理解 LSTM 网络

LSTM 中的重复模块包含四个交互的层

不必担心这里的细节。我们会一步一步地剖析 LSTM 解析图。现在,我们先来熟悉一下图中使用的各种元素的图标。

[译] 理解 LSTM 网络
LSTM 中的图标

在上面的图例中,每一条黑线传输着一整个向量,从一个节点的输出到其他节点的输入。粉色的圈代表 pointwise 的操作,诸如向量的和,而黄色的矩阵就是学习到的神经网络层。合在一起的线表示向量的连接,分开的线表示内容被复制,然后分发到不同的位置。

LSTM 的核心思想

LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。

[译] 理解 LSTM 网络

Paste_Image.png

LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。

[译] 理解 LSTM 网络

Paste_Image.png

Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!

LSTM 拥有三个门,来保护和控制细胞状态。

逐步理解 LSTM

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为 忘记门层 完成。该门会读取h_{t-1}和x_t,输出一个在 0 到 1 之间的数值给每个在细胞状态C_{t-1}中的数字。1 表示“完全保留”,0 表示“完全舍弃”。

让我们回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前 主语 的类别,因此正确的 代词 可以被选择出来。当我们看到新的 代词 ,我们希望忘记旧的代词 。

[译] 理解 LSTM 网络
决定丢弃信息

下一步是确定什么样的新信息被存放在细胞状态中。这里包含两个部分。第一,sigmoid 层称 “输入门层” 决定什么值我们将要更新。然后,一个 tanh 层创建一个新的候选值向量,\tilde{C}_t,会被加入到状态中。下一步,我们会讲这两个信息来产生对状态的更新。

在我们语言模型的例子中,我们希望增加新的代词的类别到细胞状态中,来替代旧的需要忘记的代词。

[译] 理解 LSTM 网络
确定更新的信息

现在是更新旧细胞状态的时间了,C_{t-1}更新为C_t。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。

我们把旧状态与f_t相乘,丢弃掉我们确定需要丢弃的信息。接着加上i_t * \tilde{C}_t。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。

在语言模型的例子中,这就是我们实际根据前面确定的目标,丢弃旧代词的类别信息并添加新的信息的地方。

[译] 理解 LSTM 网络
更新细胞状态

最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。

在语言模型的例子中,因为他就看到了一个 代词 ,可能需要输出与一个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如果是动词的话,我们也知道动词需要进行的词形变化。

[译] 理解 LSTM 网络
输出信息

LSTM 的变体

我们到目前为止都还在介绍正常的 LSTM。但是不是所有的 LSTM 都长成一个样子的。实际上,几乎所有包含 LSTM 的论文都采用了微小的变体。差异非常小,但是也值得拿出来讲一下。

其中一个流形的 LSTM 变体,就是由 Gers & Schmidhuber (2000) 提出的,增加了 “peephole connection”。是说,我们让 门层 也会接受细胞状态的输入。

[译] 理解 LSTM 网络
peephole 连接

上面的图例中,我们增加了 peephole 到每个门上,但是许多论文会加入部分的 peephole 而非所有都加。

另一个变体是通过使用 coupled 忘记和输入门。不同于之前是分开确定什么忘记和需要添加什么新的信息,这里是一同做出决定。我们仅仅会当我们将要输入在当前位置时忘记。我们仅仅输入新的值到那些我们已经忘记旧的信息的那些状态 。

[译] 理解 LSTM 网络

coupled 忘记门和输入门

另一个改动较大的变体是 Gated Recurrent Unit (GRU),这是由 Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的 更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

[译] 理解 LSTM 网络
GRU

这里只是部分流行的 LSTM 变体。当然还有很多其他的,如 Yao, et al. (2015) 提出的 Depth Gated RNN。还有用一些完全不同的观点来解决长期依赖的问题,如 Koutnik, et al. (2014) 提出的 Clockwork RNN。

要问哪个变体是最好的?其中的差异性真的重要吗? Greff, et al. (2015) 给出了流行变体的比较,结论是他们基本上是一样的。 Jozefowicz, et al. (2015) 则在超过 1 万中 RNN 架构上进行了测试,发现一些架构在某些任务上也取得了比 LSTM 更好的结果。

结论

刚开始,我提到通过 RNN 得到重要的结果。本质上所有这些都可以使用 LSTM 完成。对于大多数任务确实展示了更好的性能!

由于 LSTM 一般是通过一系列的方程表示的,使得 LSTM 有一点令人费解。然而本文中一步一步地解释让这种困惑消除了不少。

LSTM 是我们在 RNN 中获得的重要成功。很自然地,我们也会考虑:哪里会有更加重大的突破呢?在研究人员间普遍的观点是:“Yes! 下一步已经有了——那就是 注意力 !” 这个想法是让 RNN 的每一步都从更加大的信息集中挑选信息。例如,如果你使用 RNN 来产生一个图片的描述,可能会选择图片的一个部分,根据这部分信息来产生输出的词。实际上, Xu, et al. (2015) 已经这么做了——如果你希望深入探索 注意力 可能这就是一个有趣的起点!还有一些使用注意力的相当振奋人心的研究成果,看起来有更多的东西亟待探索……

注意力也不是 RNN 研究领域中唯一的发展方向。例如, Kalchbrenner, et al. (2015) 提出的 Grid LSTM 看起来也是很有钱途。使用生成模型的 RNN,诸如 Gregor, et al. (2015) Chung, et al.(2015) 和 Bayer & Osendorfer (2015) 提出的模型同样很有趣。在过去几年中,RNN 的研究已经相当的燃,而研究成果当然也会更加丰富!

致谢

I’m grateful to a number of people for helping me better understand LSTMs, commenting on the visualizations, and providing feedback on this post.

I’m very grateful to my colleagues at Google for their helpful feedback, especially Oriol Vinyals , Greg Corrado , Jon Shlens , Luke Vilnis , and Ilya Sutskever . I’m also thankful to many other friends and colleagues for taking the time to help me, including Dario Amodei, and Jacob Steinhardt . I’m especially thankful to Kyunghyun Cho for extremely thoughtful correspondence about my diagrams.

Before this post, I practiced explaining LSTMs during two seminar series I taught on neural networks. Thanks to everyone who participated in those for their patience with me, and for their feedback.


原文  http://www.jianshu.com/p/9dc9f41f0b29



e421083458
shashoudouhenleng
qq_25892947
  • qq_25892947
    2017-03-29 16:321楼
  • 你这搬运有点不合格啊,原文是《理解 LSTM 网络》,你的标题是RNN介绍,较易懂

相关文章推荐

循环神经网络(RNN, Recurrent Neural Networks)介绍

循环神经网络(RNN, Recurrent Neural Networks)介绍   这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neura...

人人都能用Python写出LSTM-RNN的代码![你的神经网络学习最佳起步]

我的最佳学习法就是通过玩具代码,一边调试一边学习理论。这篇博客通过一个非常简单的python玩具代码来讲解循环神经网络。 那么依旧是废话少说,放‘码’过来!...
  • zzukun
  • zzukun
  • 2015年11月21日 22:22
  • 39614

成为前端高手的路上,我避开了哪些坑?

大学毕业后我成为前端开发者,从一开始的小白到现在的“高手”,我把一些感想记录下来...

循环神经网络(RNN)

1.NN & RNN在神经网络从原理到实现一文中已经比较详细地介绍了神经网络,下面用一张图直观地比较NN与RNN地不同。从图1中可以看出,RNN比NN多了指向自己的环,即图1中的7,8,9,10节点及...

RNN 调参经验

作者:萧瑟 链接:https://www.zhihu.com/question/41631631/answer/94816420 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 调...

循环神经网络(RNN, Recurrent Neural Networks)介绍

循环神经网络(RNN, Recurrent Neural Networks)介绍   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多自然语言处理(Natu...

TensorFlow on Android:物体识别

如何在 Android 上面运行 TensorFlow,并利用基于 TensorFlow 的 Object Detection API 来实现一个可以识别静态图片中的物体的应用?

深度学习(十一)RNN入门学习

RNN中文名又称之为:递归神经网络。在计算机视觉里面用的比较少,我目前看过很多篇计算机视觉领域的相关深度学习的文章,就除了2015 ICCV的一篇图像语意分割文献《Conditional Random...
  • hjimce
  • hjimce
  • 2015年10月13日 10:46
  • 12188

RNN-RBM for music composition 网络架构及程序解读

RNN(recurrent neural network)是神经网络的一种,主要用于时序数据的分析,预测,分类等。 RNN的general介绍请见下一篇文章《Deep learning From I...

RNN以及LSTM的介绍和公式梳理

前言好久没用正儿八经地写博客了,csdn居然也有了markdown的编辑器了,最近花了不少时间看RNN以及LSTM的论文,在组内『夜校』分享过了,再在这里总结一下发出来吧,按照我讲解的思路,理解RNN...

RNN

在深度学习领域,传统的前馈神经网络(feed-forward neural net,简称FNN)具有出色的表现,取得了许多成功,它曾在许多不同的任务上——包括手写数字识别和目标分类上创造了记录。甚至到...

RNN的通俗讲解(初级篇)

程序媛的处女作,主要介绍机器学习中的RNN语言模型。用十分通俗的讲法讲解RNN理解中可能遇到的令人困惑的概念和计算。 (RNN初级篇)...
  • soiliml
  • soiliml
  • 2015年08月11日 15:50
  • 2492

循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论

RNN(Recurrent Neuron Network)是一种对序列数据建模的神经网络。继Bengio提出基于神经网络的概率语言模型并获得成功之后,Mikolov于2010年提出利用RNN建模语言模...

通俗理解RNN

全连接神经网络和卷积神经网络他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理...

DeepLearning之RNN和LSTM详解及实现

RNN1. 什么是RNNs RNNs的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问...

RNN学习笔记(五)-RNN 代码实现

RNN学习笔记(五)-RNN 代码实现

序列标注问题中将分类标签引入RNN网络结构的尝试

本文讲了讲我们在解决序列标注问题中将分类标签引入RNN网络结构的一次不成功的尝试。

深度学习(Deep Learning)读书思考六:循环神经网络一(RNN)

概述 循环神经网络(RNN-Recurrent Neural Network)是神经网络家族中的一员,擅长于解决序列化相关问题。包括不限于序列化标注问题、NER、POS、语音识别等。RNN内容比较多...

LSTM模型理论总结(产生、发展和性能等)

从LSTM模型原文开始,对LSTM模型提出的动机,所采取的机制、设计的模型、算法进行了梳理。对现今采用的主流的LSTM进行了介绍,对LSTM的性能进行了阐述和总结。

深度学习应用于时间序列数据的异常检测

本文关键点 神经网络是一种模仿生物神经元的机器学习模型,数据从输入层进入并流经激活阈值的多个节点。 递归性神经网络一种能够对之前输入数据进行内部存储记忆的神经网络,所以他们能够学习到数据流中的...

关于RNN(Seq2Seq)的一点个人理解与感悟

自己在这近三个月的深度网络学习中的一点小感悟,希望对自己的后面学习和实验能有所启发。

深度学习(Deep Learning)读书思考八:循环神经网络三(RNN应用)

概述 通过前两小节的介绍,可以清楚的了解RNN模型的网络结构以及LSTM。本小节主要介绍RNN其他变形以及应用,包括 1.GRU单元 2.序列到序列(Seq2Seq)模型 3.注...

深度学习之六,基于RNN(GRU,LSTM)的语言模型分析与theano代码实现

引言前面已经介绍过RNN的基本结构,最基本的RNN在传统的BP神经网络上,增加了时序信息,也使得神经网络不再局限于固定维度的输入和输出这个束缚,但是从RNN的BPTT推导过程中,可以看到,传统RNN在...

LightRNN:高效利用内存和计算的循环神经网络

选自arXiv.org机器之心编译摘要循环神经网络(RNN)已经在许多自然语言处理任务上取得了最出色的表现,比如语言建模和机器翻译。然而当词汇量很大时,RNN 模型会变得很大(可能超过 GPU 最大的...

循环神经网络(一般RNN)推导

本文章的例子来自于WILDMLvanillaRNN是相比于LSTMs和GRUs简单的循环神经网络,可以说是最简单的RNN。RNN结构RNN的一个特点是所有的隐层共享参数(U,V,W)(U, V, W)...

使用RNN解决NLP中序列标注问题的通用优化思路

序列标注问题应该说是自然语言处理中最常见的问题,而且很可能是最而没有之一。在深度学习没有广泛渗透到各个应用领域之前,传统的最常用的解决序列标注问题的方案是最大熵、CRF等模型,尤其是CRF,基本是最主...

递归神经网络(RNN)简介

在此之前,我们已经学习了前馈网络的两种结构——多层感知器和卷积神经网络,这两种结构有一个特点,就是假设输入是一个独立的没有上下文联系的单位,比如输入是一张图片,网络识别是狗还是猫。但是对于一些有明显的...

BP神经网络和RNN神经网络的学习和实现。

一直在研究神经网络和深度学习。所以写下一些心得。无奈总是不记得反向更新的公式,所以记下来。神经网络和深度学习并不是想象中的那么不平易近人。只要掌握两点那么自己都可以写出来了。只要注意一个前向是怎么传播...

王小草【深度学习】笔记第七弹--RNN与应用案例:注意力模型与机器翻译

标签(空格分隔): 王小草深度学习笔记1. 注意力模型1.2 注意力模型概述注意力模型(attention model)是一种用于做图像描述的模型。在笔记6中讲过RNN去做图像描述,但是精准度可能差强...

RNN记忆特性

RNN与语义分析 RNN的祖先是1982年提出的Hopfield网络。 Hopfield网络因为实现困难,外加没有合适应用,被86年后的前馈网络取代。 90年代恰逢神经网络衰落期,前馈MLP在O...

RNN浅析(上)

A Survey on Recurrent Neural Network

RNN训练过程详解

Hinton 第七课 。这里先说下RNN有recurrent neural network 和 recursive neural network两种,是不一样的,前者指的是一种人工神经网络,后者指的是...

从最初rnn 到lstm 演变, lstm各个控制门的实现过程

自剪枝神经网络 Simple RNN从理论上来看,具有全局记忆能力,因为T时刻,递归隐层一定记录着时序为1的状态 但由于Gradient Vanish问题,T时刻向前反向传播的Gradie...

RNN的历史(from Deep Learning RNNaissance with Dr. Juergen Schmidhuber)

看一个视频,Deep Learning RNNaissance。最早开始Deep Learning的是这位同志:现在的乌克兰,以前的苏联人。 最早发明Back Propagation的: 然后是L...

RNN介绍,较易懂

原文  http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思...

RNN学习笔记

RNN学习笔记参考cs224d Lecture 7:Recurrent Neural NetworksRNN层数RNN不是单隐层的神经网络,对于xt−1 x_{t-1}来说,其到输出yt+1y_{t+...

端到端的OCR:基于CNN的实现

端到端的OCR:基于CNN的实现 OCR是一个古老的问题。这里我们考虑一类特殊的OCR问题,就是验证码的识别。传统做验证码的识别,需要经过如下步骤: 1. 二值化 2. 字符分割 3. 字符识...

深度学习之OCR(二)——RNN/LSTM/GRU + CTC

待研究。

从循环神经网络(RNN)到LSTM网络

从循环神经网络(RNN)到LSTM网络  通常,数据的存在形式有语音、文本、图像、视频等。因为我的研究方向主要是图像识别,所以很少用有“记忆性”的深度网络。怀着对循环神经网络的兴趣,在看懂了有关它的理...

TensorFlow中RNN样例代码详解

关于RNN的理论部分已经在上一篇文章中讲过了,本文主要讲解RNN在TensorFlow中的实现。与theano不同,TensorFlow在一个更加抽象的层次上实现了RNN单元,所以调用tensorfl...

深度学习与自然语言处理(7)_斯坦福cs224d 语言模型,RNN,LSTM与GRU

说明:本文为斯坦福大学CS224d课程的中文版内容笔记,已得到斯坦福大学课程@Richard Socher教授的授权翻译与发表 1.语言模型 语言模型用于对特定序列的一系列词汇的出现概率进行计算。...

Intel系列处理器的三种工作模式

Intel系列处理器的三种工作模式 微机中常用的Intel系列微处理器的主要发展过程是:8080,8086/8088,80186, 80286,80386,80486,Pentium,Pen...

Matlab中image、imagesc和imshow函数用法解析

原文转自:http://blog.csdn.net/zhupananhui/article/details/16340345 1、显示RGB图像 相同点:这三个函数都是把m*n*3的矩阵中...

form表单的两种提交方式,submit和button的用法

1.当输入用户名和密码为空的时候,需要判断。这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写;有两种方法,一种是用submit提交。一种是用button提交。 方法一: 在jsp的...

怎么使用jquery判断一个元素是否含有一个指定的类(class)

在jquery中可以使用2种方法来判断一个元素是否包含一个确定的类(class)。两种方法有着相同的功能。2种方法如下: 1.           is(‘.classname’) 2....
  • taiyb
  • taiyb
  • 2014-10-15 23:02
  • 121869

strcpy、sprintf、memcpy的区别

最近在做远程升级的内容,通过实践才真正体会到不同拷贝函数的作用 char*strcpy(char *dest, const char *src); 其对字符串进行操作,完成从源字符串到目的字符串的...

Http请求中Content-Type讲解以及在Spring MVC中的应用

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值...

jquery获取所有选中的checkbox

获取所有name为spCodeId的checkbox      var spCodesTemp = "";       $("input:checkbox[name=...

Hbase中多版本(version)数据获取办法

前言:本文介绍2种获取列的多版本数据的方式:shell和spring data hadoop 一、hbase shell中如何获取     1、在shell端创建一个Hbase表 creat...

将Web项目War包部署到Tomcat服务器基本步骤

参考来源: http://www.cnblogs.com/pannysp/archive/2012/03/07/2383364.html   1. 常识: 1.1 War包 War包一...

十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按...
  • dc_726
  • dc_726
  • 2015-01-16 21:31
  • 397366

Google Brain讲解注意力模型和增强RNN

深度学习能力的拓展,Google Brain讲解注意力模型和增强RNN
  • jdbc
  • jdbc
  • 2016-11-22 22:10
  • 1195

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B >...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

Radon变换理论介绍与matlab实现--经验交流

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

CT图像重建技术

由于csdn贴图不方便,并且不能上传附件,我把原文上传到了资源空间CT图像重建技术 1.引言 计算机层析成像(Computed Tomography,CT)是通过对物体进行不同角度的射线投影测量而...

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...

linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|xargs g...

Radon变换入门matlab CT原理

http://hi.baidu.com/hi9394/blog/item/0d492b8bfd714700c8fc7aa9.html 简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累...

Excel2016右键新建工作表,打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”的解决办法

上午新建excel工作表时,发现新建完之后居然打不开 提示: 尼玛这坑爹的,难道我的Excel坏了?? 排查问题之后发现 只有新建“Microsoft Excel 工作表”时...

js弹出框、对话框、提示框、弹窗总结

js弹出框、对话框、提示框、弹窗总结 一、JS的三种最常见的对话框 [javascript] view plaincopy //=...

详细:idea如何设置类头注释和方法注释

idea和eclipse的注释还是有一些差别的。idea:类头注释:打开file->setting->Editor->Filr and Code Templates->Includes->File H...

js中获取 table节点各tr及td的内容方法

第一行 第二行 第三行 ...

Kmeans算法详解及MATLAB实现

首先要来了解的一个概念就是聚类,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子...

聚类分析--k中心点算法

k中心点算法思想:k-means是每次选簇的均值作为新的中心,迭代直到簇中对象分布不再变化。其缺点是对于离群点是敏感的,因为一个具有很大极端值的对象会扭曲数据分布。那么我们可以考虑新的簇中心不选择均值...

springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解

前言:         相信很人都被springmvc接收数组问题折磨过,查过几个解决方案,都不能很好的解决。那些方法一般存在一个问题:把接收到的数据类型转换成你想要的类型时,不好处理。为什么说不好...

matlab实现一元线性回归和多元线性回归

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。 ...

matlab实现fbp算法

matlab提供大量函数,可以方便的完成fbp算法 fbp

【图像处理】平行线投影radon变换

从一个角度,用光源照射对象物体,屏幕上会形成对象物体的影子;如果物体是半透明的,那么影子便有灰度而不是纯黑的,这说明屏幕上的像可以反映物体内部对可见光的衰减作用。我们从落于[0~π\pi]的一系列连续...

spring mvc 请求转发和重定向

spring mvc3中的addFlashAttribute方法 url: http://www.software8.co/wzjs/java/2943.html   记得在spring mvc...
  • jackpk
  • jackpk
  • 2014-02-12 16:15
  • 312547

xcode 经常出现的警告问题解决方法ld: warning: directory not found for option '-L/Users/

解决引入第三方又删除之后xcode出现的警告问题

Unity Shader-后处理:简单的颜色调整(亮度,饱和度,对比度)

好久没坚持写blog了,是时候开始撸一波新博文了!学习Unity有一段时间了,关于Shader的书也看了几本《Unity Shader入门精要》,《Unity 3D ShaderLab 开发实战详解》...

[Git高级教程(二)] 远程仓库版本回退方法

1 简介最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回...

【C++】String类中的运算符重载

模块化设计: 头文件: #ifndef operator_operator_h #define operator_operator_h #include #include ...

使用redis存储Java对象

Java序列化为byte数组方式。在Jedis开发中,我们很多时候希望直接把一个对象放到Redis中,然后在需要的时候取出来。Redis的key和value都支持二进制安全的字符串,存储Java对象不...

Android 系统字体

0、对Android字库的认识:Android系统对字体的载入和Linux桌面很像,有一个Priority Order(优先级顺序)的,当然先是西方字符,然后是一些符号字体(包括emoji字体),再就...

.net中连接各种数据库的connection string的格式

SQL Server ODBC Standard Security: "Driver={SQL Server};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd...

es6 数组对象新增方法 Array.from()将两类对象转为真正的数组

Array.from方法用于将两类对象转为真正的数组:类似数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map )...

【数据结构】-线性表-顺序表-1787:求最大值(竟然这么水的题.....)

1787: 求最大值题目描述输入10个数,要求输出其中的最大值。输入测试数据有多组,每组10个数。输出对于每组输入,请输出其最大值(有回车)。样例输入10 22 23 152 65 79 85 96 ...

Android自定义控件系列一:如何测量控件尺寸

测量控件尺寸(宽度、高度)是开发自定义控件的第一步,只有确定尺寸后才能开始画(利用canvas在画布上画,我们所使用的控件实际上都是这样画上去的)。当然,这个尺寸是需要根据控件的各个部分计算出来的,比...

js 字符串转换成数字的三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形...

Webstorm常用快捷键

常用快捷键—Webstorm入门指南 提高代码编写效率,离不开快捷键的使用,Webstorm拥有丰富的代码快速编辑功能,你可以自由配置功能快捷键。 快捷键配置 点击“File”-> “set...

JSONObject、JSONArray

最近两个星期接触最多的就是json和map了。    之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去...

计算地球上两经纬度点 A B 间距离

在 GIS 应用中,计算两点之间距离的公式非常重要,这里仅列出几种计算方法。 假设地球是一个标准球体,半径为 R, 并且假设东经为正,西经为负,北纬为正,南纬为负, 则 A(...

js 实时监听input中值变化

RunJS 实时监测input中值的变化

Matlab画热度图,某地人流密度热力图

最近帮一位朋友做可视化统计,需要统计某地铁站的人流密度,将统计好的数据用matlab作数据可视化处理,形成热度图。 一下变为实现的效果,分别有二维和三维两种视角 参数说明:X轴和Y轴建立在二维...

Mysql字符串字段判断是否包含某个字符串的3种方法

方法一: SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用mysql 字符串函数 find...

caffe参数理解

solver.prototxt net: "vggface_mycmd/vggface_train_test.prototxt" test_iter: 365 test_interval: ...

Android Accessibility 的简单用法

Accessbility 又叫做辅助功能,是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作的,也可以用来干一些别的事,比如自动抢红包啊,静默安装点击啊等已知或者未知的应用。出于某种需求...

在Eclipse里使用JSHint 检查 js代码

在 Eclipse 中使用 JSHint 检查 JavaScript 代码   之前使用 JSlint 来校验 JavaScript 代码,发现灵活性不够,因此改用 JSHint。按照官方的说法,JS...

ios之正则表达式的匹配参数详解

引言     正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和...

微信公众平台开发教程(十)Scope参数错误或没有Scope权限解决方法

一 报错信息: 二 出现原因分析: 出现这种错误网上查出现有的原因是: 1. 订阅号没有相关的权限 2. 账号没有认证,没有相关的权限 那么这里遇到问题两种都...

Oracle sqlplus 登录命令

1、运行SQLPLUS工具   C:\Users\wd-pc>sqlplus 2、直接进入SQLPLUS命令提示符   C:\Users\wd-pc>sqlplus /nolog 3、以O...

Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法

Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法 Linux下c/c++开发程序崩溃(Segment fault)通常都是指针错误引起...

sql server 备份失败[上加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇]

....上加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇。 这句话的意思是,我的C:\Program Files (x86)\Microsoft SQL Serv...

linq学习(Last和First)

比如一个学生类 class Student { public string Name { get; set; } pu...

Java数据结构——循环链表的实现

一、描述 循环链表:表中的最后一个节点的指针域指向头结点,整个链表形成一个环。循环链表判空条件:有的说是判断p或p->next是否等于头指针,有的说判断tail是否等于head,有的说判断head是...

shader:最简单的改变颜色

Shader //抬头"FixedShader/Test" //unity中选择shader的路径 //shader名字 { Properties //变量块 { MainColor( "Main_C...

关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作

最近我做的一些项目,经常需要用到对应用程序的配置文件操作,如app.config和web.config的配置文件,特别是对配置文件中的[appSettings]和[connectionStrings]...
  • ruijc
  • ruijc
  • 2013-04-10 17:50
  • 3622
没有更多内容了, 返回首页
  • 31
    点赞
  • 273
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值