什么是循环神经网络

哈喽,大家好。在上一篇文章中我们简单了解了下卷积神经网络的基本介绍和基本的结构原理。一些小伙伴们给我提出了很多的指正。谢谢各位。话不多说,今天让我们来了解下什么是循环神经网络RNN。

在这篇文章中,我们会聊一聊语言分析,序列化数据中穿梭自如的循环神经网络。那么首先第一个问题,RNN是干什么的呢?他和普通的神经网络有什么不同呢?我们接下来会一一进行探讨。首先我们来想一下乔布斯,现在给你一张乔布斯的照片,不出意外,你应该会脱口而出他的名字,因为你很有可能就正在使用他的一款产品。那么现在先抛开这些产品,先来想一想史蒂芬乔布斯的这个名字,再把它逆序念出来,斯布乔.芬蒂史。有点难吧。这就说明对于预测顺序排列是多么重要,我们可以按照一定的排列顺序来预测接下来可能会出现的字。但是打字顺序我们就很难去分析我们在说什么了。我们现在再想象下现在有一组序列数据Date0,Date1,Date2,Date3,在预测result0的时候我们会基于Date0进行分析,同样在预测其他数据的时候,我们也会根据原有的单组数据进行分析,这样,每一次使用的神经网络都是NN,现在在假设Date0,Date1,Date2,Date3这些数据都是具有关联的顺序的,就好比你在厨房做菜酱料A一定会比调料B早下锅,不然就会串味了。所以普通的网络结构NN并不能让这些数据之间产生关联。那么我们应该怎么样让数据之间的关联让NN也可以加以分析呢?

现在先让我们想想人类是怎么样去分析各种事物是怎样关联的吧。最基本的方式呢就是记住这些事物。那么我们就让神经网络也具有记住这种事物的能力。在分析Data0的时候,我们把分析结果存入NN记忆(Ram),在分析Data1的时候,NN会产生新的记忆,但是问题来了,新的记忆和老的记忆并没有什么关联。我们就简单的把老的记忆调用过来一起分析,如果要分析更多的数据,NN就会把更多的数据都累计起来一起分析,我们再重复一下刚才的流程,不过这次要加一下一些数学的东西。现在的NN变成了我们现在的RNN,每次RNN循环完成后都会产生一个对于当前状况的一个描述,我们把这个结果叫做S(t),记为s在t时刻产生的数据,然后这个RNN开始分析在t+1的时候的数据,这时候RNN也会产生s(t+1)的结果,不过这时候做的Y(t+1)其实是由s(t)和s(t+1)共同得到的,最后我们所说的RNN可以表示成下图所示的那个样子。

RNN的结构形式远不仅仅只有这一种,他的结构形式很自由。比如用于分类的问题,比如一个人说了一句话,这句话里所包含的感情色彩是消极的还是积极地,那么我们就可以用只在最后输出判断结果的RNN,又或者这是可以用于图片描述的RNN,我们只需要一个接口来接受输入的图片,然后生成对于图片描述的一段话,或者是语言翻译的RNN,给他一句中文,让他翻译成英文。有了这样不同形式的RNN,RNN的功能就越发的强大,现在看已经有很多的有趣的RNN应用。比如现在说让RNN描述照片,让RNN来写学术论文,让RNN来写程序脚本,让RNN来作曲。对于我们一般人来说,这是很难分辨出这是人写的还是机器写的,最后,放上一个连接,让我们来欣赏下RNN做出的音乐吧。

http://web.mit.edu/felixsun/www/neural-music.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

2853 方格游戏(三维棋盘)

 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 菜菜看到了...

37760
来自专栏牛客网

腾讯应用研究一面 武汉

腾讯应用研究武汉现场一面 一共20分钟。 (比我内推的三轮面试都缺少一点技术含量,内推面试会问我项目,跟我有交流或者提建议,这次就感觉随便找点东西问问,然后最后...

564160
来自专栏Petrichor的专栏

思考: 如何设计 输出结果 具有对称性 的 网络结构

实验室师兄参与了一个强化学习竞赛,让仿生人体学会站立行走乃至跑起来。在比赛的过程中他自己用tensorflow设计出了一个 对称性神经网络 ,能保证输出的 最终...

11330
来自专栏生信技能树

R语言的各种统计分布函数

http://www.bio-info-trainee.com/1656.html

49130
来自专栏人工智能

向量自回归简介

通常,我们试图分析大量的数据来找到有用的信息或预测未来的事件。数据集中最重要的类型之一是时间序列。时间序列表示按时间顺序索引的一系列数据点。有很多模型来分析这种...

80510
来自专栏新智元

【ICLR 2016最佳论文】DeepMind 开发 NPI,有望取代初级程序员(附下载)

【新智元导读】特征学习和深度学习重要会议 ICLR 2016 最佳论文,DeepMind 团队开发了一个“神经编程解释器”(NPI),能自己学习并且编辑简单的程...

33360
来自专栏逍遥剑客的游戏开发

快速LightMap烘焙

13030
来自专栏iOSDevLog

《 Julia 数据科学应用》各章思考题答案

1.如果你以前没有用过 Julia,那么 Juno 是最安全的选择。如果不使用 Juno,那么带有最新 Julia 内核(在 IJulia 界面右上方)的 IJ...

13340
来自专栏机器之心

NIPS 2018 | 程序翻译新突破:UC伯克利提出树到树的程序翻译神经网络

程序是构建计算机应用、IT 产业和数码世界的主要工具。为了方便程序员为不同的应用开发程序,人们发明了各种编程语言。与此同时,当程序员想要将用不同语言编写的程序组...

11410
来自专栏机器之心

从基础概念到实现,小白如何快速入门PyTorch

38170

扫码关注云+社区

领取腾讯云代金券