前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >循环神经网络(一) ——循环神经网络模型与反向传播算法

循环神经网络(一) ——循环神经网络模型与反向传播算法

作者头像
用户1327360
发布2018-03-29 16:56:37
8380
发布2018-03-29 16:56:37
举报

循环神经网络(一)

——循环神经网络模型与反向传播算法

(原创内容,转载请注明来源,谢谢)

一、概述

这一章开始讲循环神经网络(RNN,Recurrent Neural Network),是与卷积神经网络不同的神经网络结构,重点处理的是序列数据。

主要应用场景,在于语音处理、文字处理,包括翻译、情感分析、词法识别、音乐创作、语音识别等。

二、数学符号

对于后面会大量用到的数学符号,这里提前描述。

这里假设某一个输入样本是一句话,分为若干个单词,则第一个单词标记为x<1>,第二个标记为x<2>,以此类推。输出的为y<1>,y<2>等。该样本单词总数为Tx,输出总数为Ty。

输出的y,每一个标记对应的输入的结果,根据需求可以是二分类或多分类,下图表示识别到输入的单词对应的单词表的位置的值为1,其他地方的值为0。

三、使用RNN原因

使用RNN,而不是用标准的神经网络,主要原因如下:

1、输入、输出的长度可以不一样,可以只有一个输入而有多个输出,也可以有多个输入只有一个输出等。

2、对于输入的内容而言,单个样本,输入的一串内容,大部分情况下是有前后关联的,如一句话的前后单词之间的关联。这种关联,换到另一个输入样本,即另一句话的时候,未必在同一个位置。

例如第一句话的前两个单词组成一个词语,第二句话前两个单词可能不能组成词语。

这个特点是至关重要的,直接导致无法使用传统的神经网络,因为对于每个样本的训练都不一样。

四、RNN

1、RNN结构

RNN不是把输入的x都放在第一层,而是每一层放一个输入,每一层都可以有输出,下一层的输出取决于上一层的输出以及本层的输入。

这里有几个共用参数,Waa、Wax、Wya,字母的含义,W即参数系数,以Wax为例,a表示这个W是用于计算a的,x表示这个W后面需要乘以矩阵x。

对于整个RNN,Waa、Wax、Wya的值都是唯一的,即这三个值在每一层都是共用的。

下图是RNN的两种结构图画法。

这里的RNN是单向的RNN,即后面一层感知前面一层的输出,而前面一层对后面层次的输出无感知。这样可能会有缺点,需要双向RNN(BRNN,bidirecctional RNN),后续会学习到。

2、单向RNN的前向传播

由于是单向RNN,因此只有后层对前面一层的感知。这里第一层之前,加了一个a<0>,是一个初始化的参数,可以是0向量。

具体公式如下图所示,其中对于a的激活函数g,常用tanh,有时也用relu;而对于y,由于是分类函数,因此常用sigmoid。

这里计算a时,用到了上一层的a和这一层的x,为了计算简便,可以合并计算,如下图所示:

3、单向RNN的反向传播

这里的反向传播,即从损失函数开始,逐层往前的反向传播。其中,损失函数的定义,和logistic回归的损失函数定义方式一致。

4、各种RNN结构

上面的例子,是样本输入数量和输出数量一致的多对多的RNN,除此之外,还有其他的RNN形式,如下:

其中,一对多的RNN主要用在音乐创作等,如输入一个数字表示要某种感情的音乐,输出一个序列。

多对一的RNN主要用在语句情感分析,根据输入的序列,分析语句的情感,并且用数字返回情感类型。

多对多有两种形式:输入输出一样的多对多,常用于语句分析、单词提取分析等;而先输入后输出的多对多,常用于翻译等,这里的输入模块称为编码器,输出模块称为解码器。

——written by linhxx 2018.03.15

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 决胜机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档