Speech and Language Processing-笔记(一)

最近这大半个月的时间一直在看一本书《Speech and Language Processing (3rd ed. draft)》(完整版),不得不说这真是一本极好的书,很多概念解释的非常清楚,而且还难能可贵地引入了一些非常前沿的内容(介绍了2017年NLP领域一些比较好的学术成果),看完之后肯定能对NLP在整体上有个很好的感知。因为我没读过其他的NLP书籍,所以不好断言这是最好的入门读物,但我个人强烈推荐此书。然后再说说看完这本书的感受吧。全英文的书看起来有点小累和压抑,主要原因是里面有几个章节涉及到一些语言学(英文语法)的知识让人很头大,的确需要较大的耐心,比较沉闷和乏味吧。虽然看完之后对整个NLP领域有一个清晰的认识,但是也正因如此才感到很失落和失望。那些听起来高大上的NLP技术真的没有想得那么牛逼,比如命名实体识别(Named Entity Recoginition),人机对话(Siri,cotana,Amazon Alex),问答系统(IBM Watson),在明白了其背后的原理后才发现:这些看起来很智能的应用实际上跟智能毫无关系。底层的算法还是太过愚蠢了,本质上还是基于统计[......]

继续阅读

深度学习之神经风格转换

本文介绍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个人脸图像的平均脸[......]

继续阅读

深度学习之目标检测-YOLO算法(二)

上文我们介绍了目标检测和目标定位的基础知识,本文我们就正式开始介绍YOLO算法。YOLO全称是You Only Look Once,这个算法来源于Joseph Redmon等人在CVPR 2015上发表的一篇论文:You Only Look Once: Unified, Real-Time Object Detection,它不仅解决了目标边界框不精确的问题,而且算法速度也很快,下面让我们看看它是如何实现的。

基本思路

YOLO的基本思路是,把一个大的图像分割成更小更精细的n等份的网格,然后每个网格都打上标签,这个格子内是否有目标,目标的位置以及目标所属类别。为了简单起见,我们以\(3 \times 3\)的网格为例,实际使用中的表格会更精细,比如\(19 \times 19\),它们的示意图如下:

Imgur

这样一来输出层的大小就是\(3 \times 3 \times 8\)或者\(19 \times 19 \times 8\)。值得注意的是,YOLO算法是一个卷积实现,所以它的速度非常快,基本可以做到实时检测。还有一[......]

继续阅读

卷积神经网络模型

卷积神经网络模型

本文我们开始介绍Coursera-Deep Learning第四课卷积神经网络的week2的内容:深度卷积神经网络模型

上文我们介绍了卷积神经网络的基本原理,但那只是最基本的模型,在此基础上又诞生了很多变种,它们在性能上都比最基本的模型要好,当然也更复杂。今天我们就介绍一些常见的卷积神经网络模型,主要有以下几种:LeNet-5, AlexNet, VGG-16, ResNet(残差网络)和Inception,其中前三者属于经典模型。

  • LeNet-5

    LeNet-5这个模型是由深度学习大神Yann LeCun于1998年在其发表一篇名为Gradient-Based Learning Applied to Document Recognition的论文中被首次提出的,可以说LeCun大神是CNN的开山鼻祖了,也有人称之为卷积网络之父。LeNet-5的名字就取自于LeCun,而5表示这个模型一共有5层,分别是两个卷积层和两个全连接层,还有一个输出层用于分类。他的结构如下:

    Imgur
    他有什么特点呢?

    • 输入图像只有单通道,也就是黑白图片
    • 没有采用padding技术,所以卷积的图像尺寸越[......]

继续阅读