本系列为深度学习课程笔记,课程网址在http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS17.html

深度学习的基本步骤:定义模型-->定义损失函数-->找到优化方法

课程大纲

1、熟悉定义符号(略过)

2、RNN

简单地说就是

RNN可以看做是一个function反复迭代。

为什么不用feedFord network,因为我们输入的sequence可能会比较长,这样的话feedFord network可能就会参数很多,容易导致过拟合。

RNN的一个好处是参数少,有可能比较难train,但是你一旦在training data上获得比较好的结果,在testing data上的效果通常也不会差。

Deep RNN要注意到一点是 f1的输出和f2的输入的维度必须一致,这样才好拼接到一起。

双向RNN。就是要加入一个f3,将f1的输出和f2的输出整合在一起。至于f1和f2不必一样,你可以随便设计。

下面介绍一些具体的应用

这个是直接用sqe2sqe的语音识别。第一层是bi-rnn,第二层是将若干第一层的输出(合起来)作为输出,也是bi-rnn,后面都这样下去。这种结够比单纯的深度bi-rnn更容易训练。第二层block虽然需要处理若干第一层block的输出,但是这种法有利于做并行加速。RNN很难做并行,因为下一个节点必须得等第一个节点的输出才能进行,而pyramidal rnn里高层的block,序列变短了,每个block中虽然运算量较大,但是可以用并行运算加速。

最简单的RNN运算如上图。

C变化较慢,可以记住时间比较久的信息。

也可以把C拿下来一块运算。一般W中对应于C的参数都是对角矩阵。

然后如下运算

z_i是输入门,决定了z的哪些信息流入,z_f是遗忘门,决定c_t-1的哪些信息遗忘。

然后就可以反复这个步骤。,以上粗箭头表示乘以一个矩阵,细箭头表示啥也没做。

使用例子(下面是一些炼丹心得,详细了解需要认真去读原论文)

简化版的语音识别任务,每一段声音识别成一个因素即可,多分类问题。

使用单项RNN有一个有效的trick是 Target Delay

在原始声音信号(frame)右端补若干个零(图中是3个),在识别时标签向后延后若干位开始做识别。

以上任务在若干种方法的实验效果

纵轴是分类正确率,横轴Window size是(如果是MLP)是指:如果input是一排frame(每个frame的声音信号可能只有0.01秒),每次判断时将前后若干frame拼接起来作为一个比较长的vector去判断中间一个frame的标签是什么。图中MLP方法的Window size为10时效果最好。

横轴target delay是(如果是RNN或LSTM)是指label往右shift几个frame。

上面这个图的横轴是训练的轮数,从图中可以看出LSTM的训练速度比RNN更快

下面这个图是LSTM的各种架构跑的结果。论文名字叫LSTM 漫游。尝试了各种各样的LSTM架构和参数。

横轴是错误率,纵轴是训练时间。不同的颜色代表不同的LSTM架构,相同的颜色不同的点代表同样的架构,不同的参数。

后面三个MUT1、MUT2、MUT3使用基因演算法去寻找最佳的RNN结构,使用LSTM和GRU的结构为初始基因,使用不同的组合去找。

还有一个比较经典的RNN结构,普通的RNN受输入长度的限制。输入过长时,内存或显存放不下。而下面这个结构Stack RNN输入可以无限长,它是将输入每N个取出来放到一个function里输出需要存储的information同时输出push、pop、nothing操作。具体详见论文吧。

1、深度学习模型的基本结构——RNN的更多相关文章

  1. 在NLP中深度学习模型何时需要树形结构?

    在NLP中深度学习模型何时需要树形结构? 前段时间阅读了Jiwei Li等人[1]在EMNLP2015上发表的论文<When Are Tree Structures Necessary for ...

  2. 『深度应用』NLP机器翻译深度学习实战课程·壹(RNN base)

    深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内容:(更新 ...

  3. AI佳作解读系列(一)——深度学习模型训练痛点及解决方法

    1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的.选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公 ...

  4. 『高性能模型』Roofline Model与深度学习模型的性能分析

    转载自知乎:Roofline Model与深度学习模型的性能分析 在真实世界中,任何模型(例如 VGG / MobileNet 等)都必须依赖于具体的计算平台(例如CPU / GPU / ASIC 等 ...

  5. 利用 TFLearn 快速搭建经典深度学习模型

      利用 TFLearn 快速搭建经典深度学习模型 使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<Tenso ...

  6. Roofline Model与深度学习模型的性能分析

    原文链接: https://zhuanlan.zhihu.com/p/34204282 最近在不同的计算平台上验证几种经典深度学习模型的训练和预测性能时,经常遇到模型的实际测试性能表现和自己计算出的复 ...

  7. Apple的Core ML3简介——为iPhone构建深度学习模型(附代码)

    概述 Apple的Core ML 3是一个为开发人员和程序员设计的工具,帮助程序员进入人工智能生态 你可以使用Core ML 3为iPhone构建机器学习和深度学习模型 在本文中,我们将为iPhone ...

  8. 用 Java 训练深度学习模型,原来可以这么简单!

    本文适合有 Java 基础的人群 作者:DJL-Keerthan&Lanking HelloGitHub 推出的<讲解开源项目> 系列.这一期是由亚马逊工程师:Keerthan V ...

  9. 深度学习模型stacking模型融合python代码,看了你就会使

    话不多说,直接上代码 def stacking_first(train, train_y, test): savepath = './stack_op{}_dt{}_tfidf{}/'.format( ...

随机推荐

  1. Window attributes属性详解

    以下属性以Dialog为例来讲解: <item name="windowBackground"> 窗体的背景 </item><item name=&q ...

  2. 第二章 在Html中使用JavaScript

    https://www.jianshu.com/p/8247a9401725 2.1 Script元素 https://developer.mozilla.org/en-US/docs/Web/HTM ...

  3. 解决openresty http客户端不支持https的问题

    OpenResty默认没有提供Http客户端,需要使用第三方提供:当然我们可以通过ngx.location.capture 去方式实现,但它只能发送一个子请求. 第三方基本是以lua-resty-ht ...

  4. JDK8中函数式流编程推荐

    强烈推荐使用Java8中函数流API库来处理集合相关的数据,今天又看来一个项目代码里面用到来很多这样的处理,基本上可以解决大部分遍历问题.并且代码简洁清晰. JAVA8与lambda表达式 JDK8  ...

  5. poj3421 X-factor Chains——分解质因数

    题目:http://poj.org/problem?id=3421 好久没有独立A题了...做点水题还是有助于提升自信心的: 这题就是把 x 质因数分解,质因数指数的和 sum 就是最长的长度,因为每 ...

  6. bzoj1227

    离散化+树状数组+排列组合 很久以前就看到过这道题,现在依然不会做...看完题解发现思路很简单,就是有点难写 我们先将坐标离散化,x和y最大是w,然后我们就有了一个暴力做法, 枚举每块墓地,统计,因为 ...

  7. MySQL 1045登录失败(转)

    http://blog.csdn.net/bbirdsky/article/details/8134528# 当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或 ...

  8. spring基础学习---aop

    1:无参aop下面为项目结构 2:通知类.MyAdvice package cn.edu.aop; import org.aspectj.lang.ProceedingJoinPoint; //通知类 ...

  9. AdminLTE介绍和zTree的简单使用

    一.AdminLTE介绍 1.介绍 ​ AdminLTE是一个开源的后台控制面板和仪表盘 WebApp 模板,是建立在Bootstrap3框架和JQuery之上的开源模板主题工具,它提供了一系列响应的 ...

  10. jQuery——this

    js注册事件this代表的dom对象 jQuery注册事件this代表的也是dom对象,所以需要$(this)转成jQuery对象