作者:禅与计算机程序设计艺术
1.简介
在本系列教程中,我们将会详细地探索循环神经网络(Recurrent Neural Network)的数学基础。在开始学习之前,需要对以下几个知识点有一个大概的了解:
- 对循环神经网络(Recurrent Neural Network,简称RNN)、传统神经网络(Neural Network)以及它们之间的关系有一个基本的认识。
- 掌握Python语言,可以轻松阅读和编写简单的代码示例。
- 有一定的数学基础(微积分、线性代数),并能够熟练运用计算工具进行求解和绘图。
如果你还不太熟悉这些知识点,建议先花一段时间阅读一些相关材料,这样能够帮助你更好地理解本文的内容。为了让你有个好的开头,这里给出一个简单的回顾。
RNN/LSTM/GRU/Seq2seq是什么?
首先,我们应该清楚地知道什么是循环神经网络(Recurrent Neural Network,RNN)。它是一个具有记忆功能的神经网络模型。传统的神经网络模型只能处理时序数据,而无法处理存在时间关系的数据。比如,对于文本分类任务,我们通常希望模型能够识别输入序列中的每一句话所属的类别。然而,对于一些存在时间上的依赖关系的数据,比如股票价格走势等,传统的神经网络模型就束手无策了。因此,循环神经网络应运而生。
如上图所示,循环神经网络由若干个单元组成。每个单元包括两部分:循环结构和激活函数。循环结构即该单元可对前一时刻的输出做参考,反馈给当前时刻的输入。激活函数