分类目录归档:深度学习

动手学习深度学习系列笔记——循环神经网络RNN


使用潜变量

  • RNN使用了隐藏层来记录过去发生的所有事件的信息,从而引入时许的特性,并且避免常规序列模型每次都要重新计算前面所有已发生的事件而带来的巨大计算量。

RNN

  • 流程如下,首先有一个输入序列,对于时刻t,我们用t-1时刻的输入x~t-1~和潜变量h~t-1~来计算新的潜变量h~t~。同时,对于t时刻的输出o~t~,则直接使用h~t~来计算得到。注意,计算第一个潜变量只需要输入即可(因为前面并不存在以往的潜变量)。
  • 值得注意的是,RNN本质也是一种MLP,尤其是将h~t-1~这一项去掉时就完全退化成

Read more

NLP系列之命名实体识别:四种范式


前言

这篇文章梳理下目前命名实体识别(NER)的业务场景与SOTA方法。 说到NER,是绕不开BERT+CRF的,根据本人的经验,BERT+CRF就算不是你当前数据集的SOTA,也与SOTA相差不大了,但考虑到 更好的效果:CRF虽然引入了无向图,但只约束了相连结点之间的关联,并没有从全局出发来考虑问题 更复杂的业务场景:如Flat NER到Nested NER、不连续NER等复杂业务场景的不断涌现,CRF是否还能优雅地解决问题 更快的线上serving效率:CRF解码复杂度与输入的文本长度呈线性关系 本文,首先梳理下场景,再讨论方法,欢迎大家交流。

场景

嵌套(Nested)

组间嵌套:如上

Read more

动手学习深度学习系列笔记——语言模型


- 53 语言模型

- 学习语言模型

- 马尔可夫模型与n元语法

- 自然语言统计

- 读取长序列数据

- 随机采样

- 顺序分区

53 语言模型

  • 语言模型的目标:

    假设长度为T的文本序列中的词元依次为x~1~,x~2~,…,x~T~。 于是,x~t~(1≤tT) 可以被认为是文本序列在时间步t处的观测或标签。 在给定这样的文本序列时目标是估计序列的联合概率P(x~1~,x~2~,…,x~T~)

学习语言模型

  • 基本想法:

    P(x~1~,x~2~,…,x~T~) = P(x~t~x~1~,…,x~t−1~). (1 <= t <= T) 共T个结果相乘

    例如,包含了四个单

Read more

动手学习深度学习系列笔记——序列模型


序列模型

1.目录

2.1 更多例子

  • 音乐、文本、语言和视频都是连续的

    • 标题“狗咬人”远没有“人咬狗”那么令人惊讶
  • 大地震发生后,很有可能会有几次较小的余震

  • 人的互动是连续的,从网上吵架可以看出

Read more

动手学习深度学习系列笔记——样式迁移


样式迁移

样式迁移类似于手机相机中的滤镜,指的是给定内容图片和风格图片,合成一张新的图片,使得他的内容与内容图片相似,而风格却是风格图片的样子,如下例:

方法

如下图所示,可以用一个预训练好的神经网络来实现样式迁移:

  • 1:复制内容图片来初始化一张图片,之后将这张图片中的像素作为参数进行更新,最终得到合成的图片
  • 2:将内容图片,当前的合成图片,样式图片分别输入一个相同的预训练好的神经网络
  • 3:假设该神经网络的不同层分别提取与内容和风格相关的信息,可以据此得到一个损失:
    • 将合成图片与内容相关的层的输出与内容图片对应层的输出进行处理,得到内容损失
    • 将合成图片与风格相关的层的输出与风格图片对应层的

Read more

动手学习深度学习系列笔记——全连接卷积神经网络(FCN)


48.全连接卷积神经网络(FCN)

  • 48.全连接卷积神经网络(FCN)
  • FCN是深度神经网络来做语义分割的奠定性工作,现在用的不多了
  • 他用转置卷积层来替换CNN最后的全连接层(还有池化层),从而实现每个像素的预测。(如果输入的图片是224 x 224,经过CNN变成 7 x 7,经过 transposed conv,可以还原到 224 x 224 x k,k为通道数)

  • 代码

    • 见code

Read more

动手学习深度学习系列笔记——转置卷积


47-转置卷积

本节目录

1.转置卷积

  • 转置卷积和卷积的区别:
    • 卷积不会增大输入的高宽,通常要么不变、要么减半
    • 转置卷积则可以用来增大输入高宽
  • 转置卷积的具体实现:

如图所示,input里的每个元素和kernel相乘,最后把对应位置相加,相当于卷积的逆变换

  • 为什么称之为“转置:
    • 对于卷积Y=X*W
      • 可以对W构造一个V,使得卷积等价于矩阵乘法Y'=VX'
      • 这里Y',X'是Y,X对应的向量版本
    • 转置卷积等价于Y'=VTX'
    • 如果卷积将输入从(h,w)变成了(h‘,w’)
      • 同样超参数的转置卷积则从(h‘,w’)变成为(h,w)

2.

Read more

动手学习深度学习系列笔记——语义分割


46 语义分割

目录

1.语义分割

有时只能实现框选的目标检测还是太粗糙了,无法得到更精细的信息。语义分割将图片中的每个像素分类到对应的类别。

分割这一概念在计算机视觉中由来已久。最早的图片分割对给定图片使用聚类等方法把语义上比较像的像素放在一起,但通常不会告诉我们这些像素到底是什么。而语义分割可以告诉我们每个像素对应的label是什么。

这也意味着我们需要对图片的每一个像素都做label,使得语义分割成为了一个比较精细且大的任务。语义分割的数据集成本也较高,往往规模小像素高。常用的数据集之一是Pascal VOC2012。

2.应用

背景

Read more

动手学习深度学习系列笔记——目标检测算法


44.物体检测算法:R-CNN,SSD,YOLO

目录

1.区域卷积神经网络

1.1.R-CNN

  • 使用启发式搜索算法来选择锚框
  • 使用预训练模型来对每个锚框抽取特征(每个锚框当作一个图片,用CNN)
  • 训练一个SVM来类别分类(神经网络之前,category pre

Read more

动手学习深度学习系列笔记——物体检测和数据集


- 41 物体检测和数据集

- 物体检测

- 边缘框实现

- 数据集

41 物体检测和数据集

物体检测

  1. 图片分类和目标检测在任务上的区别:图片分类已知有一个确定目标,任务是识别该目标属于何种分类,而目标检测不仅需要检测出图片中所有感兴趣的目标类别,并确定其位置,所以目标检测要比图片分类更复杂应用场景更广。
  2. 图片分类和目标检测在数据集上的区别:由于目标检测中每一张图片可能存在多个目标,每个目标我们不仅需要分类,还需要确定边缘框以给出目标位置信息,因此目标检测数据集的标注成本要显著高于图片分类,也就导致了目标检测数据集较小。
  3. 边缘框:用一个尽量小矩形框将目标物体大体框起来,边框的位置信息就可以表

Read more