美文网首页
Chapter - 14 Exercise(1-6)

Chapter - 14 Exercise(1-6)

作者: 博士伦2014 | 来源:发表于2018-11-06 19:25 被阅读0次
    1. 你能想到sequence-to-sequenceRNN的一些应用吗? sequence-to-vector RNN的呢? vector-to-sequence RNN 的呢?

    以下是RNN的一些应用:

    • 对于序列到序列的RNN:预测天气(或任何其他时间序列),机器翻译(使用编码器 - 解码器架构),视频字幕,语音到文本,音乐生成(或其他序列生成),识别歌曲的和弦。
    • 对于序列到矢量RNN:按音乐类型对音乐样本进行分类,分析书评的情绪,根据大脑植入物的读数预测失语症患者正在考虑的单词,预测用户想要观看的概率基于她的观看历史的电影(这是协作过滤的许多可能实现之一)。

    • 对于矢量到序列RNN:图像字幕,基于当前艺术家的嵌入创建音乐播放列表,基于一组参数生成旋律,在图片中定位行人(例如,来自自身的视频帧)驾驶汽车的相机)。

    1. 为什么人们将编码器 - 解码器RNN用于自动翻译而不是简单的sequence-to-sequence RNN?

    一般来说,如果你一次翻译一个单词,结果会很糟糕。
    例如,法语句子“Je vous en prie”的意思是“You are welcome,”如果你一次翻译一个单词,你会得到“I you in pray.”。咦?首先阅读整个句子然后翻译它会好得多。

    普通的序列到序列RNN将在读取第一个字之后立即开始翻译句子,而编码器 - 解码器RNN将首先读取整个句子然后翻译它

    也就是说,人们可以想象一个简单的序列到序列的RNN,只要不确定接下来要说什么就会输出静音(就像人类翻译者必须翻译直播时那样)。

    1. 你如何将卷积神经网络与RNN结合起来对视频进行分类?

    要根据视觉内容对视频进行分类,一种可能的架构可能是

    • (比方说)每秒一帧,

    • 然后通过卷积神经网络运行每一帧,将CNN的输出投喂到序列到矢量RNN,

    • 最后通过softmax层运行其输出,为你提供所有类概率。

    • 对于训练,你只需使用交叉熵作为成本函数。

    如果你也想将音频用于分类,你可以将每秒音频转换为光谱仪(spectrograph),将此光谱仪输入CNN,并将此CNN的输出馈送到RNN(以及其他CNN的相应输出)。

    1. 使用dynamic_rnn()而不是static_rnn()对构建RNN有什么好处?
      使用dynamic_rnn()而不是static_rnn()构建RNN提供了以下几个好处:
    • 它基于while_loop()操作,能够在反向传播期间将GPU的内存交换到CPU的内存,从而避免内存不足错误。

    • 它可以说更容易使用,因为它可以直接将单个张量作为输入和输出(涵盖所有时间步骤),而不是张量列表(每个时间步长一个)。无需堆叠,取消堆叠或转置。

    • 它生成一个较小的图形,更容易在TensorBoard中可视化。

    1. 你如何处理可变长度的输入序列可变长度输出序列呢?
    • 要处理可变长度的输入序列

      • 最简单的选择是在调用static_rnn()dynamic_rnn()函数时设置sequence_length参数。
      • 另一种选择是填充较小的输入(例如,用零)以使它们与最大输入相同(如果输入序列都具有非常相似的长度,则这可能比第一选项快)。
    • 要处理可变长度输出序列

      • 如果事先知道每个输出序列的长度,可以使用sequence_length参数(例如,考虑一个序列到序列的RNN,用暴力评分标记视频中的每一帧: 输出序列与输入序列的长度完全相同)。
      • 如果事先不知道输出序列的长度,则可以使用填充技巧:始终输出相同大小的序列,但忽略序列结束标记之后的任何输出(在计算成本函数时忽略它们)。
    1. 在多个GPU上分配深度RNN的训练和执行的常用方法是什么?

    要在多个GPU上分配深度RNN的训练和执行,常见的技术就是将每个层放在不同的GPU上(参见第12章)。

    相关文章

      网友评论

          本文标题:Chapter - 14 Exercise(1-6)

          本文链接:https://www.haomeiwen.com/subject/vgfpxqtx.html