神经网络基础

神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下:

将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢?

为什么需要RNN(循环神经网络)

他们都只能单独的去处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列; 当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

以nlp的一个最简单词性标注任务来说,将我 吃 苹果 三个单词标注词性为 我/nn 吃/v 苹果/nn。

那么这个任务的输入就是:

我 吃 苹果 (已经分词好的句子)

这个任务的输出是:

我/nn 吃/v 苹果/nn(词性标注好的句子)

对于这个任务来说,我们当然可以直接用普通的神经网络来做,给网络的训练数据格式了就是我-> 我/nn 这样的多个单独的单词->词性标注好的单词。

但是很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测苹果的时候,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。

所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。

RNN结构

首先看一个简单的循环神经网络如,它由输入层、一个隐藏层和一个输出层组成:

不知道初学的同学能够理解这个图吗,反正我刚开始学习的时候是懵逼的,每个结点到底代表的是一个值的输入,还是说一层的向量结点集合,如何隐藏层又可以连接到自己,等等这些疑惑~这个图是一个比较抽象的图。

我们现在这样来理解,如果把上面有W的那个带箭头的圈去掉,它就变成了最普通的全连接神经网络。x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);

U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵

那么,现在我们来看看W是什么。循环神经网络隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。

我们给出这个抽象图对应的具体图:

我们从上图就能够很清楚的看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的。

如果我们把上面的图展开,循环神经网络也可以画成下面这个样子:

RNN时间线展开图

总结

好了,到这里大概讲解了RNN最基本的几个知识点,能够帮助大家直观的感受RNN和了解为什么需要RNN,后续总结它的反向求导知识点。

最后给出RNN的总括图:

注意:为了简单说明问题,偏置都没有包含在公式里面。

致谢:夏冲和实验室的小伙伴们 参考:零基础入门深度学习(5) - 循环神经网络(多谢这么好的资料)

rnn按时间展开_一文搞懂RNN(循环神经网络)基础篇相关推荐

  1. 循环取矩阵的某行_一文搞懂RNN(循环神经网络)基础篇

    神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下: 将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特 ...

  2. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  3. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  4. pythonxpath定位_一文搞懂 XPath 定位

    一文搞懂XPath 定位 XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. XPath定位在爬虫和自动化测试中 ...

  5. rnn按时间展开_作词家下岗系列:教你用 RNN 算法做一个写词软件

    作者 | 李秋键 编辑 | Carol 出品 | CSDN(ID:CSDNnews) 自然语言处理作为人工智能的一个重要分支,在我们的生活中得到了广泛应用.其中RNN算法作为自然语言处理的经典算法之一 ...

  6. 【直观理解】一文搞懂RNN(循环神经网络)基础篇

    推荐阅读时间8min~15min 主要内容简介:神经网络基础.为什么需要RNN.RNN的具体结构.以及RNN应用和一些结论 1神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够 ...

  7. rnn按时间展开_双向RNN的理解

    我们在学习某种神经网络模型时,一定要把如下几点理解透了,才算真正理解了这种神经网络. 网络的架构:包含那些层,每层的输入和输出,有那些模型参数是待优化的 前向传播算法 损失函数的定义 后向传播算法 什 ...

  8. python输入时间_一文搞懂python日期时间处理

    前言 datetime是python的内置模块,用来处理日期和时间. 该模块常用的类有: 本文旨在讲解datetime模块中datetime类的使用方法. datetime对象是 date 与 tim ...

  9. 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

最新文章

  1. http://blog.csdn.net/u011001723/article/details/456210272222
  2. 工作总结-基于R的数据分析
  3. GetLBText()和GetWindowText()区别
  4. linux gdb 寄存器,x86 调试寄存器
  5. selenium测试(Java)-- 显式等待(九)
  6. android模拟器参数设置,模拟器设置界面详解 - 新手引导 - 逍遥安卓论坛 - Powered by Discuz!...
  7. 拓扑图是用什么软件画的?
  8. 讯飞输入法pad版x86_讯飞输入法Pad版软件下载_讯飞输入法Pad版app下载_讯飞输入法Pad版安卓下载_亲亲宝贝网...
  9. 森松尼N-J60双模机械键盘按键操作说明
  10. windows图片和传真查看器的调出
  11. login.defs文件基础
  12. 使用代理ip进行反反爬虫——爬取句子迷网站,获取小说龙族经典句子
  13. 量子前沿英雄谱|激光界泰斗Robert Byer(罗伯特·拜尔)
  14. Android笔记(3)使用dataBinding数据的错误啊啊啊啊啊啊啊啊!!!!
  15. eMarketer:女性网民更偏爱网络社区
  16. catch小说内容-从gui到爬虫(2)
  17. 神经网络的多任务学习概览
  18. 深入剖析Spring架构与设计原理(一)
  19. 2021-09-10 网安实验-XCTF真题实战之密码学
  20. python数据集处理

热门文章

  1. Oracle Database 12C 学习之多租户(连载四)
  2. Java Core系列之ConcurrentHashMap实现(JDK 1.7)
  3. Java线程池 / Executor / Callable / Future
  4. juniper CLI 基本操作
  5. 应用C语言编辑画图程序
  6. ISA Server 2004防火墙的基本配置
  7. 娱乐的NBA全明星,成熟的科比,回归的切尔西
  8. 信息学奥赛一本通 2023:【例4.8】数据统计
  9. OpenJudge NOI 1.2 04:填空:类型转换1
  10. 图论 —— 2-SAT 问题