RNN Train和Test Mismatch
李宏毅深度学习
https://www.bilibili.com/video/av9770302/?p=8
在看RNN的时候,你是不是也会觉得有些奇怪,
Train的过程中,
是把训练集中的结果作为下一步的输入
目标函数,是每一步的真实输出和训练集结果的交叉熵
Test的过程中,
是直接把每一步的输出作为下一步的输入
可以看到train和test的时候,每一步的输入是不一样的,这种不一致会带来什么问题?
对上面的树形结构,
表示学习的过程,如果网络完全正确的学习到我们的训练集,那就是左边的分支
但如果网络只在第一步没有学对,选择了B,而不是A
那么在test的时候,面对相同的句子,
那么它第一步会选B,但我们之前大部分的学习到的知识都集中在左边的分支,而右边的分支在学习的时候没有碰到过
所以对于网络后续的选择都只能乱选
从这个例子可以看出来,这种mismatch所带来的问题
那么问题是,为什么train的时候,不也把真实的输出作为下一步的输入?
将真实输出作为下一步的输入,会导致网络很难训练
原因是,真实的输出是会变化的,
如上图,开始第一步的输出是B,那么第二步学到的是,输入是B的时候,我们也应该得到一个B
但是随着train的继续,第一步的输出会变成A,趋向正确的结果,这样,之前在第二步学的知识就没有用了,
所以对于训练过程中,我们需要保持condition的稳定性
那到底应该怎么样做?
Scheduled Sampling的方法就是每次用一个随机sampling来决定是用哪一个作为下一步的输入
那这个方法不是也会有我们上面说的不稳定问题吗?
注意上面的曲线图,这里sampling的概率是不断变化的,图表示的是用reference的概率随着训练次数的变化
可以看出来,刚开始选reference的概率非常大,所以刚开始和普通的RNN训练没有区别
但是随着训练次数的增多,慢慢的用model的概率会越来越大
这样做的好处是啥,
因为刚开始的时候model不稳定,所以用reference,但是随着训练的进行,model的输出越来越稳定,这时就换成用medel的输出来训练
这样做的好处是,在condition相对稳定的情况下,又可以消除train和test的mismatch
RNN Train和Test Mismatch的更多相关文章
- RNN入门(二)识别验证码
介绍 作为RNN的第二个demo,笔者将会介绍RNN模型在识别验证码方面的应用. 我们的验证码及样本数据集来自于博客: CNN大战验证码,在这篇博客中,我们已经准备好了所需的样本数据集,不需要 ...
- 自己动手写RNN
说的再好,也不如实际行动,今天手写了一个RNN,没有使用Numpy库,自己写的矩阵运算方法,由于这也只是个学习用的demo,所以矩阵运算那一部分写的比较丑陋,见笑了. import com.mylea ...
- RNN-theano代码解析
import theano import numpy import os import pdb from theano import tensor as T from collections impo ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(五) RNNs in Darknet 递归神经网络是表示随时间变化的数据的强大模型.为了更好地介绍RNNs,我强烈推荐Andrej K ...
- RNN 入门教程 Part 4 – 实现 RNN-LSTM 和 GRU 模型
转载 - Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano ...
- RNN 入门教程 Part 3 – 介绍 BPTT 算法和梯度消失问题
转载 - Recurrent Neural Networks Tutorial, Part 3 – Backpropagation Through Time and Vanishing Gradien ...
- RNN 入门教程 Part 2 – 使用 numpy 和 theano 分别实现RNN模型
转载 - Recurrent Neural Networks Tutorial, Part 2 – Implementing a RNN with Python, Numpy and Theano 本 ...
- RNN神经网络和英中机器翻译的实现
本文系qitta的文章翻译而成,由renzhe0009实现.转载请注明以上信息,谢谢合作. 本文主要讲解以recurrent neural network为主,以及使用Chainer和自然语言处理其中 ...
- RNN and LSTM saliency Predection Scene Label
http://handong1587.github.io/deep_learning/2015/10/09/rnn-and-lstm.html //RNN and LSTM http://hando ...
随机推荐
- ios the request was denied by service delegate for reason unspecified
报错的情况如下: xcode8(The request was denied by service delegate (SBMainWorkspace) for reason: Unspecified ...
- H5中画图标签Canvas---画矩形,画线,画圆,渐变色,图形载入
一: 1.鼠标监视坐标值 <!DOCTYPE html> <head> <meta charset=UTF-8> <title>canvas的演示< ...
- 爬取 Caused by SSLError(SSLError("bad handshake: Error
在爬虫中遇到如下报错: Traceback (most recent call last): File "C:/Users/xuchunlin/PycharmProjects/A9_25/h ...
- MyBatis3 入门学习指南
官网原文:http://www.mybatis.org/mybatis-3/zh/index.html 1.简介 1.1 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 ...
- [ci]容器ci索引
伙计们: 有任何意见或建议或看不懂的请在对应的文章下留言(请注明上下文) 我会及时改动. 这是以前的一些在物理机上搞过 [ci]容器ci索引 http://www.cnblogs.com/iiiihe ...
- [elk]elasticsearch实现冷热数据分离
本文以最新的elasticsearch-6.3.0.tar.gz为例,为了节约资源,本文将副本调为0, 无client角色 https://www.elastic.co/blog/hot-warm-a ...
- 【OpenFOAM案例】03 Docker安装OpenFOAM
"工欲善其事必先利其器",软件装不上,讲再多的使用技巧也是白搭.近期不少留言说OpenFOAM不容易安装,今天来谈谈如何在Linux下利用Docker安装OpenFOAM. Lin ...
- WWDC 17: 开发者的最初观感
WWDC 17: 开发者的最初观感 前言 每年的 WWDC 都是 iOS 开发者集体高潮的时刻.第一天的 WWDC 带来了全新的 iOS 11.MacOS.tvOS 和 watchOS,革命性的 AR ...
- [HDFS Manual] CH7 ViewFS Guide
ViewFS Guide ViewFS Guide 1 介绍 2. The Old World(Prior to Federation) 2.1单个Namenode Clusters 2.2 路径使用 ...
- 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)
文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文字都找不到,那何谈文字识别.今天我们首先来谈一下当今流行的文字检测技术有哪些. 文本检测不是一件简 ...