月度归档:2018年02月

GloVe详解

引言

前几天的一篇文章自然语言处理入门里提到了一个词嵌入工具GloVe,今天我们花点时间介绍下它的工作原理。不管是英文还是中文,网上关于GloVe的介绍并不多,所以本文的内容主要来自于Stanford NLP Group的Jeffrey Pennington, Richard Socher, Christopher D. Manning在2014年的Empirical Methods in Natural Language Processing (EMNLP)上发表的一篇论文:GloVe: Global Vectors for Word Representation。相对而言这篇论文还是很容易读懂的,下面我们进入正题。

什么是GloVe?

正如论文的标题而言,GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性[……]

继续阅读

聊聊这小半年

谁也没想到时间过得这么快,再过几天就真的到27岁了,无论怎么和我妈argue我的年龄这个时刻还是来了。年龄是岁月的标识,有时候无意间照镜子确实能感受到岁月在脸上留下的痕迹,再也不是二十一二岁的毛头小伙子啦。但也不必过于伤感,每一个年龄都有它自己的特点,与其感叹时间飞速流逝不如想想如何活好当下。之前的26年每一次过年都在家,而今年春节则有那么一点点不一样,和几个同学好友在远离家乡千里之外的香港度过了一个很特别、很开心的春节。我们在年三十的晚上一起做饭,小伙伴儿们的手艺太赞了,年夜饭太过丰盛,甚至比我在家吃的还好,有点小感动。席间把酒言欢,欢声笑语不断,于我而言真的会有种不真实的感觉。那一晚我喝多了,很早就睡了,好多事不记得了,略感遗憾。只记得春晚刚开始时主持人提到“港澳同胞”时我们一片欢呼,没想到有一天会以这样的身份观看春晚,真的不一样。春晚,这个年年被吐槽的晚会好像一年年被削弱了,它已经成为一种文化符号了,至于内容究竟怎么样,是否有人看,是否值得吐槽真的不太重要了。
Imgur
我一直有个观点,一个人的变化是潜移默化的。你自己可能根本察觉不到,但是如果让你穿越到几年前的某个时间节点,再去比较现在[……]

继续阅读

自然语言处理入门

本文主要介绍自然语言处理(Natural Language Processing:NLP)中的一些最基础的概念,可以帮助读者在整体上感知这一领域,算是一篇入门读物。

词库

Vocabulary,表示所有词的集合。一般而言,经过one-hot encoding之后的向量的长度即为词库的大小。

语料库

Corpus,由词库里所有的词组成的句子,短语等语料信息,可以简单理解为一个/多个documents。

词向量

Word Vector,就是把一个Word表示成一个向量(vector),最常见的有one-hot encoding。

分布的假设

我们知道一个单词最原始的表达方式(Word Representation)是one-hot encoding,但是这种方式是有缺陷的,它仅仅将单词符号化,不包含任何语义信息。那如何才能表达出一个词的语义呢?Harris 在 1954 年提出的分布假说( Distributional Hypothesis)为这一设想提供了理论基础:上下文相似的词,其语义也相似。 这个很好理解,比如有如下两句话:

深度学习之神经风格转换

本文介绍Coursera-Deep Learning第四课卷积神经网络最后一节内容:神经风格转换(Neural Style Transfer)。

什么是神经风格转换?

这个概念其实没有明确的定义,但是看一张图就能一目了然了:

Imgur
最左边是一张古城的照片,而右边则是梵高的著名油画作品:星夜。现在我们在两者的基础上合成一张含有星夜的风格的古城照片,这就是神经风格转换。这应该是神经网络应用里最有趣最好玩的一个了,那么它具体是如何实现的呢?

问题描述

为了后面的解释更清楚,我们先做一些定义:

  • 内容图片称为Content Image,简写为C
  • 风格图片称为Style Image,简写为S
  • 合成图片称为Generated Image,简写为G

直觉上,最后合成的图像G至少应该满足以下两个条件:

  • 1.内容要和内容图片的内容尽可能接近
  • 2.风格要和风格图片的风格尽可能接近

损失函数

要实现一个有趣的神经网络应用,最重要的是你如何去定义或者说找到它的损失函数。根据上面所说的条件,那么神经风格转换的损失函数应该由两部分组成,它的大致形式如下:

$$
J(G) = \alpha[……]

继续阅读

深度学习之人脸识别

本文介绍Coursera-Deep Learning第四课卷积神经网络最后一节内容:人脸识别。

基础概念

  • 人脸检测(Face Detection)
    人脸检测(Face Detection)指的是给定一张图片,判断其是否是一张人脸。它仅仅具备识别功能,并不能进行身份验证。
  • 人脸识别(Face Recognition)
    所谓的人脸识别(Face Recognition),指的是给定一个人脸图像,从一个包含k个人脸信息的数据库中,查找出这张脸是否属于其中某个人,这就是人脸识别,它在人脸检测的基础上增加了身份验证功能。

特征脸算法(Eigenfaces)

在深度学习起飞之前,基于纯粹的图像处理的人脸识别方法已经存在了,第一个有效的人脸识别方法叫做特征脸方法(Eigenfaces)。该方法首先由Sirovich and Kirby (1987)提出,并由Matthew Turk和Alex Pentland用于人脸分类。它大致的原理是先对图像进行预处理,比如做直方图均值化(Histogram equalization);再通过PCA对图像进行降维,然后计算出数据库中K个人脸图像的平均脸[……]

继续阅读