分类目录归档:动手学习深度学习系列

动手学习深度学习系列笔记——长短期记忆网络LSTM


长短期记忆网络

1.目录

2.长短期记忆网络:

  • 忘记门:将值朝0减少
  • 输入门:决定是不是忽略掉输入数据
  • 输出门:决定是不是使用隐状态

可以说,长短期记忆网络的设计灵感来自于计算机的逻辑门。 长短期记忆网络引入了记忆元(memory cell),或简称为单元(cell)。 有些文献认为记忆元是隐状态的一种特殊类型, 它们与隐状态具有相同的形状,其设计目的是用于记录附加的信息。 为了控制记忆元,我们需要许多门。 其中一个门用来从单元中输出条目,我们将其称为输出门(output gate)。 另外一个门用来决定何时将数据读入单元,我们将其称为输入门(input gate)。 我们还需要一种机制来

Read more

动手学习深度学习系列笔记——门控循环单元(GRU)


56-门控循环单元(GRU)

1. 动机:如何关注一个序列

  • 不是每个观察值都是同等重要

比如上图中的序列,若干个猫中出现了一个鼠,那么我们应该重点关注这个鼠,而中间重复出现的猫则减少关注。文本序列同理,通常长文本我们需要关注的是几个关键词,关键句。

  • 想只记住相关的观察需要:
    • 关注的机制(更新门):顾名思义,是否需要根据我的输入,更新隐藏状态
    • 遗忘的机制(重置门):更新候选项时,是否要考虑前一隐藏状态。

2. 门的概念

  • 更新门Zt,重置门Rt的公式大体相同,唯一不同的是学习到的参数。

  • 需要注意的是,计算门的方式和原来RNN的实现中计算新的隐状态相似,只是激活函数改成了sig

Read more

动手学习深度学习系列笔记——循环神经网络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

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


- 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