Blog of Evan Hou

学习 生活 分享

python快速解析XML文件

python解析xml

在XML解析方面,Python贯彻了自己‘开箱即用’(batteries include)的原则。在自带的标准库中,Python提供了大量可以用于处理XML语言的包和工具,数量之多,甚至让Python编程新手无从选择。 本文介绍深入解读利用Python语言解析XML文件的几种方式,并以minidom示例,演示具体使用方法和场景。文中使用的Python版本为3.5.2。 什么是XML X...

Attention机制

Attention

Encoder-Decoder 所谓encoder-decoder模型,又叫做编码-解码模型。这是一种应用于seq2seq问题的模型。 什么是seq2seq呢?简单的说,就是根据一个序列x,来生成另一个输出序列y。seq2seq有很多应用,例如翻译,文档摘要,问答系统等等。在翻译中,输入序列是待翻译的文本,输出序列是翻译后的文本;在问答系统中,输入序列是提出的问题,而输出序列是答案。 ...

理解LSTM神经网络

一步一步理解LSTM

译自《Understanding LSTM Networks》,作者 colah 循环神经网络 人类并不是每时每刻都从头开始思考。在你阅读这篇文章的时候,你都是基于自己已经拥有的先前知识来推断当前词的真实含义。我们不会抛弃所有东西,然后重新开始思考。即我们的思想拥有持久性。 传统的神经的网络不能做到这一点,这看起来是一个巨大的弊端。例如,假设你希望对电影中每个时间点正在发生的事...

在Keras模型中使用预训练的词向量

预训练的词向量引入外部语义

前面三篇教程,我们学习了如何使用Keras搭建深度学习框架,接下来,我们使用预先训练的词向量和卷积神经网络解决一个文本分类问题。 什么是词向量 “词向量”(词嵌入)是将一类词的语义映射到向量空间中的自然语言处理技术。即将一个词用特定的向量来表示,向量之间的距离(例如,任意两个向量之间的L2范式距离或更常用的余弦距离)一定程度上表征了词之间的语义关系。由这些向量形成的几何空间被称为...

Keras入门-下篇

Keras

网络配置 损失函数 目标函数,或称损失函数,是编译一个模型必须的两个参数之一,可以通过传递预定义目标函数名字指定目标函数也可以传递一个Theano/TensorFlow的符号函数作为目标函数,该函数对每个数据点应该只返回一个标量值,并以下列两个参数为参数: y_true:真实的数据标签,Theano/TensorFlow张量 y_pred:预测值,与y_true相同shape...

Keras入门-中篇

Keras

Keras的网络层 关于Keras的层”Layer” ​ 所有的Keras层对象都有如下方法: layer.get_weights():返回层的权重(numpy array) layer.set_weights(weights):从numpy array中将权重加载到该层中,要求numpy array的形状与*layer.get_weights()的形状相同 layer....

Keras入门-上篇

Keras

Keras简介 ​ Keras是一个高层神经网络API,Keras由纯python编写而成基于TensorFlow或Theano .Keras为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有以下需求,请选择Keras: 简易和快速的原型设计(keras具有高度模块化,极简和可扩充性) 支持CNN和RNN,或者二者的结合 无缝CPU和GPU切换 keras适...

循环神经网络-下

RNN

双向RNN ​ 目前为止我们考虑的所有循环神经网络有一个“因果”结构,意味着在时刻$t$的状态只能从过去的序列$x^{(1)},···x^{(x-1)}$以及当前的输入要$x^{(t)}$捕获信息。我们还讨论了某些在$y$可用时,允许过去的$y$值信息影响当前状态的模型。 ​ 然而,在许多应用中,我们要输出的$y^{(t)}$的预测可能依赖于整个输入序列。例如,在语音识别中,由于协同发音...

信息的度量和作用

信息熵

信息熵 ​ 一条信息的信息量与其不确定性有着直接关系。比如说,我们要搞清楚一件非常非常不确定的事情,或是我们一无所知的事情,就需要了解大量的信息。相反,如果对某件事了解比较多,则不需要太多的信息就能把它搞清楚。所以,从这个角度来看,可以认为信息量就是等于不确定性的多少。 ​ 那么如何量化信息量的度量呢?来看一个例子。2014举行了世界杯足球赛,大家都会很关心谁是冠军。假如我错过了看世界杯...

循环神经网络-上

循环神经网络

循环和递归 ​ 循环神经网络(recurrent nerual network)或RNN是一类用于处理序列数据的神经网络。就像卷积网络是专门处理网络化数据X(如一个图像)的神经网络,循环神经网络是专门用于处理序列$x^{1},···,x^{r}$的神经网络。正如卷积网络可以很容易地扩展到具有很大宽度和高度的图像,以及处理大小可变的图像,循环网络可以扩展到更长的序列(比不基于序列的特化网络长...