人工智能之循环神经网络(RNN)

人工智能之循环神经网络(RNN)



前言

在我的上一篇博客计算机视觉之卷积神经网络(CNN),讲述了计算机如何利用卷积神经网络来进行图像识别,在识别图像时,输入的每张图片都是孤立的,识别出这张图片是猫并不会对识别出下一张图片是狗造成影响。
但是对于语言来说,顺序是十分重要的, 比如“我打游戏”和“游戏打我”,词语顺序的改变,完全表达了不同的意义。为了补充数据的这种关联,科学家提出了RNN,一个高度重视序列信息的网络。


一、RNN是什么?

要解决这个问题,我们首先要了解大脑是如何处理比如视频、语音、文本等时序数据的?人类并不是每时每刻都从一片空白的大脑开始他们的思考。比如在你阅读某篇小说时,是基于原有知识经验,来推断当前词的真实含义。我们并不是将所有的东西都全部丢弃,然后用空白的大脑进行思考。

传统的神经网络并不能做到这点,在传统神经网络中,信息的传递是单向的,可以看作一个复杂的函数,每次输入都是独立的,即网络的输出只依赖于当前的输入.但是在很多现实任务中,网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关循环神经网络RNN解决了这个问题。

循环神经网络(Recurrent Neural Network,RNN),是一类具有短期记忆能力的神经网络.在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构.循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上

二、RNN与全连接神经网络的区别

1.全连接神经网络

学习RNN之前,首先要了解一下最基本的单隐层网络,它的结构如下图所示:

在这里插入图片描述

此时输出层的神经元公式为:y= 𝑓( ∑ i = 1 n w i x i − \sum_{i=1}^{n} w_ix_i- i=1nwixi θ \theta θ)

利用已经划分好的训练集和初始化参数权重V,激活函数选用sigmoid函数。

第一步,计算神经网络隐层的输出b。
若sigmoid(X_train.dot(V)-t0)>0,函数被激活,信息传递至输出层

第二步,计算神经网络输出层的输出Y0。
Y0=sigmoid(b.dot(W)-t1)>0,则直接输出

反复执行上述,直至预测结果与真实结果的均方误差小于规定的误差或者达到一定的训练次数时,表示参数训练到达一定精度。

2.循环神经网络(CNN)

RNN的基础结构仍然是全连接神经网络,只是多出了一个虚拟单元“延时器”,用来记录数据输入时网络的状态 ,在下一次输入数据时,网络必须考虑“延时器”中保存的信息,随着数据的一次次输入,存储的信息也在不断的更新,“延迟器”中的信息被称为隐状态。
在这里插入图片描述

由于RNN比全连接神经网络多了参数𝒉𝑡 ,因此RNN的神经元公式会比全连接神经网络的神经元多一项。
此时隐层输出层的神经元公式为:𝒉𝑡 = 𝑓(𝑼𝒉𝑡−1 + 𝑾𝒙𝑡 + 𝒃)

注意:在计算时,每一步使用的参数U、W、b都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点。

3.RNN参数学习过程

在这里我们举一个简单的例子,来说明RNN的参数学习过程:

假设U、W均为1,b为0,𝒉0=0
输入层输入分别为x={1,1};{1,1};{2,2}时,输出值Ot等于多少?

在这里插入图片描述

当输入x0={1,1}时:
根据𝒉𝑡 = 𝑓(𝑼𝒉𝑡−1 + 𝑾𝒙𝑡 + 𝒃)
  𝒉1 = 𝑓(𝑼𝒉0 + 𝑾𝒙0 )
  𝒉1=1* x+1* x+1* h0+1* h0
  𝒉1=1* 1+1* 1+1* 0+1* 0
  𝒉1=2
  O1=𝑓(𝑾𝒙𝑡 + 𝒃)
  O1= 1* 2+1* 2
  O1= 4

此时h1=2;

当输入x1={1,1}时:
根据𝒉𝑡 = 𝑓(𝑼𝒉𝑡−1 + 𝑾𝒙𝑡 + 𝒃)
  𝒉2 = 𝑓(𝑼𝒉1 + 𝑾𝒙1 )
  𝒉1=1* x+1* x+1* h1+1* h1
  𝒉2=1* 1+1* 1+1* 2+1* 2
  𝒉2=6
  O2=𝑓(𝑾𝒙𝑡 + 𝒃)
  O2= 1* 6+1* 6
  O2= 12

此时h2=6;

当输入x2={2,2}时:
根据𝒉𝑡 = 𝑓(𝑼𝒉𝑡−1 + 𝑾𝒙𝑡 + 𝒃)
  𝒉3 = 𝑓(𝑼𝒉2 + 𝑾𝒙2 )
  𝒉1=1* x+1* x+1* h2+1* h2
  𝒉3=1* 2+1* 2+1* 6+1* 6
  𝒉3=16
  O3=𝑓(𝑾𝒙𝑡 + 𝒃)
  O3= 1* 16+1* 16
  O3= 32

最终输出层Ot的值依次为{4,4};{12,12};{32,32}。

尤其要注意:在计算时,每个步骤的参数都是共享的,因此,每一步使用的参数U、W、b都是一样的。

4.总结

本章内容,讲述了重点讲述了循环神经网络(RNN)的基本结构与全连接神经网络的联系与区别,有了对RNN的基本认识,我们将在下一章节,简述RNN的几种变形及其实际应用,敬请期待!别忘了点个赞噢!

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值