使用RNN和CNN处理序列
击球手将球击出。外野手立即开始奔跑,预测球的轨迹。他跟踪它,调整自己的运动,最后抓住球。不管你是在听完朋友的话还是在早餐时期待咖啡的味道,预测都是你一直在做的事情。循环神经网络(RNN),这是一类可以预测未来的网络(在一定程度上)。它们可以分析时间序列数据(例如股票价格),并告诉你何时进行买卖。在自动驾驶系统中,它们可以预测汽车的行驶轨迹并帮助避免发生事故。更笼统地说,它们可以处理任意长度的序列,而不是像到目前为止的所有网络一样,用于固定大小的输入。例如,它们可以将句子、文档或音频样本作为输入,使其对于自然语言处理应用非常有用,例如自动翻译或语音转文本。
RNN面临的两个主要困难:
- 不稳定的梯度,可以使用多种技术解决,包括递归dropout和递归层归一化
- (非常)有限的短期记忆,可以使用LSTM和GRU单元进行拓展
RNN并不是唯一能够处理顺序数据的神经网络类型:对于较小的序列,常规的密集网络可以解决问题。对于很长的序列,例如音频样本或文本,卷积神经网络实际上也可以很好地工作。