From 83c9462ba90fdc74d9691eb3bc016d08955f6f0c Mon Sep 17 00:00:00 2001 From: xujin07 Date: Mon, 27 May 2019 07:04:46 +0000 Subject: [PATCH] modify understand_sentiment doc --- 06.understand_sentiment/README.cn.md | 10 ++++------ .../{formula_lstm_1.png => formula_lstm.png} | Bin ...formula_lstm_2.png => formula_lstm_more.png} | Bin .../image/formula_recurrent.png | Bin 0 -> 19451 bytes 06.understand_sentiment/image/formula_rnn_2.png | Bin 19738 -> 0 bytes 5 files changed, 4 insertions(+), 6 deletions(-) rename 06.understand_sentiment/image/{formula_lstm_1.png => formula_lstm.png} (100%) rename 06.understand_sentiment/image/{formula_lstm_2.png => formula_lstm_more.png} (100%) create mode 100755 06.understand_sentiment/image/formula_recurrent.png delete mode 100755 06.understand_sentiment/image/formula_rnn_2.png diff --git a/06.understand_sentiment/README.cn.md b/06.understand_sentiment/README.cn.md index 8548aab..0764b18 100755 --- a/06.understand_sentiment/README.cn.md +++ b/06.understand_sentiment/README.cn.md @@ -22,7 +22,7 @@ 本章我们所要介绍的深度学习模型克服了BOW表示的上述缺陷,它在考虑词顺序的基础上把文本映射到低维度的语义空间,并且以端对端(end to end)的方式进行文本表示及分类,其性能相对于传统方法有显著的提升\[[1](#参考文献)\]。 ## 硬件环境的要求 -本文档支持GPU训练,如果您使用了本文配套的docker镜像,请注意:该镜像对GPU的支持仅限于CUDA 8,cuDNN 5 +本文档支持CPU和GPU训练,如果您使用了本文配套的docker镜像,请注意:该镜像对GPU的支持仅限于CUDA 8,cuDNN 5 ## 模型概览 @@ -67,15 +67,14 @@ 相比于简单的循环神经网络,LSTM增加了记忆单元$c$、输入门$i$、遗忘门$f$及输出门$o$。这些门及记忆单元组合起来大大提升了循环神经网络处理长序列数据的能力。若将基于LSTM的循环神经网络表示的函数记为$F$,则其公式为:

-
+

$F$由下列公式组合而成\[[7](#参考文献)\]:

-
+

其中,$i_t, f_t, c_t, o_t$分别表示输入门,遗忘门,记忆单元及输出门的向量值,带角标的$W$及$b$为模型参数,$tanh$为双曲正切函数,$\odot$表示逐元素(elementwise)的乘法操作。输入门控制着新输入进入记忆单元$c$的强度,遗忘门控制着记忆单元维持上一时刻值的强度,输出门控制着输出记忆单元的强度。三种门的计算方式类似,但有着完全不同的参数,它们各自以不同的方式控制着记忆单元$c$,如图3所示: @@ -88,8 +87,7 @@ $F$由下列公式组合而成\[[7](#参考文献)\]: LSTM通过给简单的循环神经网络增加记忆及控制门的方式,增强了其处理远距离依赖问题的能力。类似原理的改进还有Gated Recurrent Unit (GRU)\[[8](#参考文献)\],其设计更为简洁一些。**这些改进虽然各有不同,但是它们的宏观描述却与简单的循环神经网络一样(如图2所示),即隐状态依据当前输入及前一时刻的隐状态来改变,不断地循环这一过程直至输入处理完毕:**

-
+

其中,$Recrurent$可以表示简单的循环神经网络、GRU或LSTM。 diff --git a/06.understand_sentiment/image/formula_lstm_1.png b/06.understand_sentiment/image/formula_lstm.png similarity index 100% rename from 06.understand_sentiment/image/formula_lstm_1.png rename to 06.understand_sentiment/image/formula_lstm.png diff --git a/06.understand_sentiment/image/formula_lstm_2.png b/06.understand_sentiment/image/formula_lstm_more.png similarity index 100% rename from 06.understand_sentiment/image/formula_lstm_2.png rename to 06.understand_sentiment/image/formula_lstm_more.png diff --git a/06.understand_sentiment/image/formula_recurrent.png b/06.understand_sentiment/image/formula_recurrent.png new file mode 100755 index 0000000000000000000000000000000000000000..74df7224cc0cb14e29a72735be66df2dd3df0f70 GIT binary patch literal 19451 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 literal 0 HcmV?d00001 diff --git a/06.understand_sentiment/image/formula_rnn_2.png b/06.understand_sentiment/image/formula_rnn_2.png deleted file mode 100755 index ca8ffc8bbb2efdba3cd582dfc23ef9c136e582d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19738 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 -- GitLab