机器学习:循环神经网络

传统的机器学习算法非常依赖人工提取特征,使得图像识别、语音识别、自然语音处理等问题存在特征提取的瓶颈,基于全连接神经网络的方法存在参数太多、无法利用时间序列信息等问题
  
卷积神经网络解决图像的特征提取问题、参数太多问题
循环神经网络解决利用时间序列信息的问题
  
循环神经网络主要用于语音识别、语言模型、机器翻译、时序分析等等
这些应用比如翻译、单词预测都需要考虑上下文关系,也就是说受时序的影响

网络结构
             O(t-1)      O(t)      O(t+1)
             ↑           ↑         ↑
             | V         | V       | V
         W   |       W   |     W   |
        ---> S(t-1) ---> S(t) ---> S(t+1)
             ↑           ↑         ↑
             | U         | U       | U
             |           |         |    
             X(t-1)      X(t)      X(t+1)

X(t):是 t 时刻的输入,例如单词向量
  
S(t):是 t 时刻的状态,由上一个时刻的状态和当前输入得到
  
   \small S(t) = f( X(t) \times U + S(t-1) \times W + b\_state)
  
   其中 \small f 是非线性激活函数(一般是 \small tanh),设 \small S(-1)0
  
O(t):是 t 时刻的输出
  
   \small O(t) = softmax( S(t) \times V + b\_output )
  
每个时刻都使用相同的 U、V、W 参数,反应出 RNN 中每步都在做相同的事,大大减少了参数
  
假设 X 的维度是 (1, n),而 S 的维度是 (1, h),则
  U 的维度是 (n, h)
  W 的维度是 (h, h)
  b_state 的维度是 (1, h)
  
  V 的维度是 (h, 1)
  b_output 的维度是 (1, 1)
  
  共需要参数为 (n x h) + (h x h) + h + h + 1 = (n+h+2) x h + 1
  
RNN 要求每个时刻都有输入,但不是每个时刻都要有输出(比如接收完整的一句话才会有输出)
  
RNN 的输入输出可以有多种情况
  1. 一个输入比如一张图像,输出是单词序列
  2. 输入序列比如一个句子,输出一个值,比如判断句子的分类或预测下一个单词
  3. 输入输出都是序列,比如翻译

训练算法

参数训练通过随时间进行反向传播(Backpropagation Through Time,BPTT)算法
基本原理和 BP 算法一样,也包含三个步骤:
  1. 前向计算每个神经元的输出值
  2. 反向计算每个神经元的误差项值,它是误差函数对神经元的加权输入的偏导数
  3. 计算每个权重的梯度,最后再用随机梯度下降算法更新权重

LSTM(Long Short Term Memory,长短时记忆)

传统 RNN 在实际中很难处理长期依赖问题,比如 "I grew up in France ...... I speak fluent ()" 要预测 () 中该填哪个词,跟很久之前的 "France" 有密切关系
  
LSTM 就是为了解决这个问题,循环神经网络被成功应用的关键就是 LSTM,很多任务采用 LSTM 比标准的 RNN 表现要好
  
LSTM 是一个拥有三个门的结构
  门结构是一个使用 sigmoid 神经网络和一个按位做乘法的操作,这两个操作合在一起就是门
  
  sigmoid 作为激活函数输出 0 到 1 之间的数值
  当输出为 0 时,所有信息都无法通过,当输出为 1 时,所有信息都可以通过
  
  三个门分别是遗忘门、输入门、输出门
  
  遗忘门让 RNN 忘记之前没有用的信息
  比如有文章写了某地碧水蓝天,但后来被污染了,于是 RNN 应该忘记之前碧水蓝天的状态
  
  忘记部分历史信息后,应该从当前输入补充新信息,这就是输入门
  比如把环境被污染这个信息写进去
  
  遗忘门和输入门后产生了新的状态
  输出门根据新的状态和输入信息决定该时刻的输出
  比如当前状态为污染,那么天空的颜色可能就是灰色的

                C(t-1) ---> * ---------> + --- C(t) ----> 
                            ↑            ↑           ↓
                            |      S --> *           F
                            S      ↑     ↑           ↓
                            ↑      |     F     S --> *
                            |      |     ↑     ↑     ↓
                h(t-1) -------------------------     --------- h(t) ------>
                        ↑                            |
                        |                            ↓
                       X(t)                         h(t)

其中 C 是状态,h 是输出,X 是输入,S 是 sigmoid 函数,F 是激活函数(一般是 tanh)
  
h(t-1) 和 X(t) 共同作为输入,被 3 个 S 和 1 个 F 使用,每个都有自己的 W 和 b 系数
  
第一个 S 的输出和 C(t-1) 相乘,起到遗忘门的作用
第二个 S 的输出和 F 的输出相乘得到要添加的新的信息,再和遗忘门的输出相加,起到输入门的作用,得到新的状态 C(t)
第三个 S 的输出和 F 处理 C(t) 后的输出相乘,得到 t 时刻的输出

RNN 的变种

双向循环神经网络:有些问题中,当前的输出不仅和之前的状态有关,也和之后的状态相关
深层循环神经网络:在每个时刻上将循环体结构复制了多次



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,681评论 6 517
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,205评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 169,421评论 0 362
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,114评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,116评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,713评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,170评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,116评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,651评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,714评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,865评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,527评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,211评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,699评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,814评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,299评论 3 379
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,870评论 2 361

推荐阅读更多精彩内容